induction p <;> simp[elim, *]
L : Language
μ : Type v
inst✝⁴ : (k : ℕ) → Primcodable (L.Func k)
inst✝³ : (k : ℕ) → Primcodable (L.Rel k)
inst✝² : UniformlyPrimcodable L.Func
inst✝¹ : UniformlyPrimcodable L.Rel
inst✝ : Primcodable μ
hr : Primrec fun p => (List.map UTerm.bv (List.ofFn p.snd.2)).sup
hb : Primrec₂ fun m n => max m n
hq : Primrec fun n => n.pred
this :
  Primrec
    (elim 0 0 (fun {k} f v => (List.map UTerm.bv (List.ofFn ⟨k, (f, v)⟩.snd.2)).sup)
      (fun {k} f v => (List.map UTerm.bv (List.ofFn ⟨k, (f, v)⟩.snd.2)).sup) (fun m n => max m n) (fun m n => max m n)
      (fun n => n.pred) fun n => n.pred)
p : UFormula L μ
⊢ elim 0 0 (fun {k} f v => (List.ofFn fun x => (v x).bv).sup) (fun {k} f v => (List.ofFn fun x => (v x).bv).sup)
      (fun m n => max m n) (fun m n => max m n) (fun n => n - 1) (fun n => n - 1) p =
    p.bv
case rel
L : Language
μ : Type v
inst✝⁴ : (k : ℕ) → Primcodable (L.Func k)
inst✝³ : (k : ℕ) → Primcodable (L.Rel k)
inst✝² : UniformlyPrimcodable L.Func
inst✝¹ : UniformlyPrimcodable L.Rel
inst✝ : Primcodable μ
hr : Primrec fun p => (List.map UTerm.bv (List.ofFn p.snd.2)).sup
hb : Primrec₂ fun m n => max m n
hq : Primrec fun n => n.pred
this :
  Primrec
    (elim 0 0 (fun {k} f v => (List.map UTerm.bv (List.ofFn ⟨k, (f, v)⟩.snd.2)).sup)
      (fun {k} f v => (List.map UTerm.bv (List.ofFn ⟨k, (f, v)⟩.snd.2)).sup) (fun m n => max m n) (fun m n => max m n)
      (fun n => n.pred) fun n => n.pred)
arity✝ : ℕ
a✝¹ : L.Rel arity✝
a✝ : Fin arity✝ → UTerm L μ
⊢ (List.ofFn fun x => (a✝ x).bv).sup = Finset.univ.sup fun x => (a✝ x).bv

case nrel
L : Language
μ : Type v
inst✝⁴ : (k : ℕ) → Primcodable (L.Func k)
inst✝³ : (k : ℕ) → Primcodable (L.Rel k)
inst✝² : UniformlyPrimcodable L.Func
inst✝¹ : UniformlyPrimcodable L.Rel
inst✝ : Primcodable μ
hr : Primrec fun p => (List.map UTerm.bv (List.ofFn p.snd.2)).sup
hb : Primrec₂ fun m n => max m n
hq : Primrec fun n => n.pred
this :
  Primrec
    (elim 0 0 (fun {k} f v => (List.map UTerm.bv (List.ofFn ⟨k, (f, v)⟩.snd.2)).sup)
      (fun {k} f v => (List.map UTerm.bv (List.ofFn ⟨k, (f, v)⟩.snd.2)).sup) (fun m n => max m n) (fun m n => max m n)
      (fun n => n.pred) fun n => n.pred)
arity✝ : ℕ
a✝¹ : L.Rel arity✝
a✝ : Fin arity✝ → UTerm L μ
⊢ (List.ofFn fun x => (a✝ x).bv).sup = Finset.univ.sup fun x => (a✝ x).bv