simp[Semiformula.eval_rew, Function.comp, Matrix.empty_eq, Matrix.comp_vecCons', ihf, Vector.ofFn_vecCons]
k : ℕ
c✝ : Code k
f✝ : Vector ℕ k →. ℕ
n✝ : ℕ
c : Code (n✝ + 1)
f : Vector ℕ (n✝ + 1) → ℕ
a✝ : c.eval ↑f
ihf : ∀ (y : ℕ) (v : Fin (n✝ + 1) → ℕ), (Semiformula.Evalfm ℕ (y :> v)) (codeAux c) ↔ ↑f (Vector.ofFn v) = Part.some y
y : ℕ
v : Fin n✝ → ℕ
⊢ ((Semiformula.Evalfm ℕ (y :> v)) ((Rew.bind ![] (⸢0⸣ :> Semiterm.fvar)).hom (codeAux c)) ∧
      ∀ x < y,
        ∃ x_1,
          ¬x_1 = 0 ∧
            (Semiformula.Eval (standardModel ℕ) ![x_1, x] (y :> v))
              ((Rew.bind ![] (#0 :> #1 :> fun x => &x.succ)).hom (codeAux c))) ↔
    (Nat.rfind fun n => Part.some (decide (f (n ::ᵥ Vector.ofFn v) = 0))) = Part.some y
k : ℕ
c✝ : Code k
f✝ : Vector ℕ k →. ℕ
n✝ : ℕ
c : Code (n✝ + 1)
f : Vector ℕ (n✝ + 1) → ℕ
a✝ : c.eval ↑f
ihf : ∀ (y : ℕ) (v : Fin (n✝ + 1) → ℕ), (Semiformula.Evalfm ℕ (y :> v)) (codeAux c) ↔ ↑f (Vector.ofFn v) = Part.some y
y : ℕ
v : Fin n✝ → ℕ
⊢ (f (y ::ᵥ Vector.ofFn v) = Semiterm.Operator.val (goedelNumber 0) ![] ∧
      ∀ x < y, ¬f (x ::ᵥ Vector.ofFn fun i => v i) = 0) ↔
    (Nat.rfind fun n => Part.some (decide (f (n ::ᵥ Vector.ofFn v) = 0))) = Part.some y