Theorem: LO.FirstOrder.Arith.Standard.models_succInd (Logic/FirstOrder/Arith/Model.lean)

State before:
n : ℕ
μ : Type v
e : Fin n → ℕ
ε : μ → ℕ
p : Semiformula ℒₒᵣ ℕ 1
⊢ ℕ ⊧ₘ ∀ᶠ* succInd p
Tactic:
simp[Empty.eq_elim, succInd, models_iff, Matrix.constant_eq_singleton, Matrix.comp_vecCons',
  Semiformula.eval_substs, Semiformula.eval_rew_q Rew.toS, Function.comp]
State after:
n : ℕ
μ : Type v
e : Fin n → ℕ
ε : μ → ℕ
p : Semiformula ℒₒᵣ ℕ 1
⊢ ∀ (ε : ℕ → ℕ),
    (Semiformula.Eval (standardModel ℕ) ![0] ε) p →
      (∀ (x : ℕ), (Semiformula.Eval (standardModel ℕ) ![x] ε) p → (Semiformula.Eval (standardModel ℕ) ![x + 1] ε) p) →
        ∀ (x : ℕ), (Semiformula.Eval (standardModel ℕ) ![x] ε) p

State before:
n : ℕ
μ : Type v
e : Fin n → ℕ
ε : μ → ℕ
p : Semiformula ℒₒᵣ ℕ 1
⊢ ∀ (ε : ℕ → ℕ),
    (Semiformula.Eval (standardModel ℕ) ![0] ε) p →
      (∀ (x : ℕ), (Semiformula.Eval (standardModel ℕ) ![x] ε) p → (Semiformula.Eval (standardModel ℕ) ![x + 1] ε) p) →
        ∀ (x : ℕ), (Semiformula.Eval (standardModel ℕ) ![x] ε) p
Tactic:
intro e hzero hsucc x
State after:
n : ℕ
μ : Type v
e✝ : Fin n → ℕ
ε : μ → ℕ
p : Semiformula ℒₒᵣ ℕ 1
e : ℕ → ℕ
hzero : (Semiformula.Eval (standardModel ℕ) ![0] e) p
hsucc : ∀ (x : ℕ), (Semiformula.Eval (standardModel ℕ) ![x] e) p → (Semiformula.Eval (standardModel ℕ) ![x + 1] e) p
x : ℕ
⊢ (Semiformula.Eval (standardModel ℕ) ![x] e) p

State before:
n : ℕ
μ : Type v
e✝ : Fin n → ℕ
ε : μ → ℕ
p : Semiformula ℒₒᵣ ℕ 1
e : ℕ → ℕ
hzero : (Semiformula.Eval (standardModel ℕ) ![0] e) p
hsucc : ∀ (x : ℕ), (Semiformula.Eval (standardModel ℕ) ![x] e) p → (Semiformula.Eval (standardModel ℕ) ![x + 1] e) p
x : ℕ
⊢ (Semiformula.Eval (standardModel ℕ) ![x] e) p
Tactic:
induction' x with x ih
State after:
case zero
n : ℕ
μ : Type v
e✝ : Fin n → ℕ
ε : μ → ℕ
p : Semiformula ℒₒᵣ ℕ 1
e : ℕ → ℕ
hzero : (Semiformula.Eval (standardModel ℕ) ![0] e) p
hsucc : ∀ (x : ℕ), (Semiformula.Eval (standardModel ℕ) ![x] e) p → (Semiformula.Eval (standardModel ℕ) ![x + 1] e) p
⊢ (Semiformula.Eval (standardModel ℕ) ![0] e) p

case succ
n : ℕ
μ : Type v
e✝ : Fin n → ℕ
ε : μ → ℕ
p : Semiformula ℒₒᵣ ℕ 1
e : ℕ → ℕ
hzero : (Semiformula.Eval (standardModel ℕ) ![0] e) p
hsucc : ∀ (x : ℕ), (Semiformula.Eval (standardModel ℕ) ![x] e) p → (Semiformula.Eval (standardModel ℕ) ![x + 1] e) p
x : ℕ
ih : (Semiformula.Eval (standardModel ℕ) ![x] e) p
⊢ (Semiformula.Eval (standardModel ℕ) ![x + 1] e) p

State before:
case zero
n : ℕ
μ : Type v
e✝ : Fin n → ℕ
ε : μ → ℕ
p : Semiformula ℒₒᵣ ℕ 1
e : ℕ → ℕ
hzero : (Semiformula.Eval (standardModel ℕ) ![0] e) p
hsucc : ∀ (x : ℕ), (Semiformula.Eval (standardModel ℕ) ![x] e) p → (Semiformula.Eval (standardModel ℕ) ![x + 1] e) p
⊢ (Semiformula.Eval (standardModel ℕ) ![0] e) p
Tactic:
exact hzero
State after:
no goals

State before:
case succ
n : ℕ
μ : Type v
e✝ : Fin n → ℕ
ε : μ → ℕ
p : Semiformula ℒₒᵣ ℕ 1
e : ℕ → ℕ
hzero : (Semiformula.Eval (standardModel ℕ) ![0] e) p
hsucc : ∀ (x : ℕ), (Semiformula.Eval (standardModel ℕ) ![x] e) p → (Semiformula.Eval (standardModel ℕ) ![x + 1] e) p
x : ℕ
ih : (Semiformula.Eval (standardModel ℕ) ![x] e) p
⊢ (Semiformula.Eval (standardModel ℕ) ![x + 1] e) p
Tactic:
exact hsucc x ih
State after:
no goals