internlm/Lean-Github huggingface dataset:
Theorem: LO.FirstOrder.Arith.Model.order_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
ind : ∀ (x : M), (∀ y < x, P y) → P x
⊢ ∀ y < 0, P y
Tactic:
simp
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.order_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
ind : ∀ (x : M), (∀ y < x, P y) → P x
x : M
IH : ∀ y < x, P y
⊢ ∀ y < x + 1, P y
Tactic:
intro y hxy
Proof state after:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
ind : ∀ (x : M), (∀ y < x, P y) → P x
x : M
IH : ∀ y < x, P y
y : M
hxy : y < x + 1
⊢ P y
Theorem: LO.FirstOrder.Arith.Model.order_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
ind : ∀ (x : M), (∀ y < x, P y) → P x
x : M
IH : ∀ y < x, P y
y : M
hxy : y < x + 1
⊢ P y
Tactic:
rcases show y < x ∨ y = x from lt_or_eq_of_le (le_iff_lt_succ.mpr hxy) with (lt | rfl)
Proof state after:
case inl
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
ind : ∀ (x : M), (∀ y < x, P y) → P x
x : M
IH : ∀ y < x, P y
y : M
hxy : y < x + 1
lt : y < x
⊢ P y

case inr
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
ind : ∀ (x : M), (∀ y < x, P y) → P x
y : M
IH : ∀ y_1 < y, P y_1
hxy : y < y + 1
⊢ P y
Theorem: LO.FirstOrder.Arith.Model.order_induction_h
Proof state before:
case inl
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
ind : ∀ (x : M), (∀ y < x, P y) → P x
x : M
IH : ∀ y < x, P y
y : M
hxy : y < x + 1
lt : y < x
⊢ P y
Tactic:
exact IH y lt
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.order_induction_h
Proof state before:
case inr
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
ind : ∀ (x : M), (∀ y < x, P y) → P x
y : M
IH : ∀ y_1 < y, P y_1
hxy : y < y + 1
⊢ P y
Tactic:
exact ind y IH
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.order_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
ind : ∀ (x : M), (∀ y < x, P y) → P x
x : M
⊢ Structure.ORing L M
Tactic:
exact inferInstance
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.order_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
ind : ∀ (x : M), (∀ y < x, P y) → P x
x : M
⊢ M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
Tactic:
exact inferInstance
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
⊢ ∀ (x : M), ¬P x
Tactic:
by_contra A
Proof state after:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
⊢ False
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
⊢ False
Tactic:
have : ∃ x, P x := by simpa using A
Proof state after:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
this : ∃ x, P x
⊢ False
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
this : ∃ x, P x
⊢ False
Tactic:
rcases this with ⟨a, ha⟩
Proof state after:
case intro
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
⊢ False
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
case intro
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
this : ∀ x ≤ a, P (a - x)
⊢ False
Tactic:
have : P 0 := by simpa using this a (by rfl)
Proof state after:
case intro
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
this✝ : ∀ x ≤ a, P (a - x)
this : P 0
⊢ False
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
case intro
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
this✝ : ∀ x ≤ a, P (a - x)
this : P 0
⊢ False
Tactic:
contradiction
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
⊢ ∃ x, P x
Tactic:
simpa using A
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
⊢ ∀ x ≤ a, P (a - x)
Tactic:
intro x
Proof state after:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
⊢ x ≤ a → P (a - x)
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
⊢ 0 ≤ a → P (a - 0)
Tactic:
case zero =>
  intro _; simpa using ha
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
⊢ Structure.ORing L M
Tactic:
case inst => exact inferInstance
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
⊢ M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
Tactic:
case inst => exact inferInstance
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
case Γ
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
⊢ Polarity
Tactic:
exact Γ
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
case m
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
⊢ ℕ
Tactic:
exact m
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
case hP
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
⊢ DefinablePred ?m.133422 (Γ.coe, m) fun x => x ≤ a → P (a - x)
Tactic:
suffices DefinablePred L (Γ, m) fun x => x ≤ a → P (a - x) by exact this
Proof state after:
case hP
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
⊢ DefinablePred L (Γ.coe, m) fun x => x ≤ a → P (a - x)
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
case hP
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
⊢ DefinablePred L (Γ.coe, m) fun x => x ≤ a → P (a - x)
Tactic:
definability
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
this : DefinablePred L (Γ.coe, m) fun x => x ≤ a → P (a - x)
⊢ DefinablePred ?m.133422 (Γ.coe, m) fun x => x ≤ a → P (a - x)
Tactic:
exact this
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
⊢ 0 ≤ a → P (a - 0)
Tactic:
intro _
Proof state after:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
a✝ : 0 ≤ a
⊢ P (a - 0)
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
a✝ : 0 ≤ a
⊢ P (a - 0)
Tactic:
simpa using ha
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
IH : x ≤ a → P (a - x)
⊢ x + 1 ≤ a → P (a - (x + 1))
Tactic:
intro hx
Proof state after:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
IH : x ≤ a → P (a - x)
hx : x + 1 ≤ a
⊢ P (a - (x + 1))
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
IH : x ≤ a → P (a - x)
hx : x + 1 ≤ a
⊢ P (a - (x + 1))
Tactic:
have : P (a - x) := IH (le_of_add_le_left hx)
Proof state after:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
IH : x ≤ a → P (a - x)
hx : x + 1 ≤ a
this : P (a - x)
⊢ P (a - (x + 1))
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
IH : x ≤ a → P (a - x)
hx : x + 1 ≤ a
this : P (a - x)
⊢ P (a - (x + 1) + 1)
Tactic:
rw [←sub_sub, sub_add_self_of_le]
Proof state after:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
IH : x ≤ a → P (a - x)
hx : x + 1 ≤ a
this : P (a - x)
⊢ P (a - x)

M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
IH : x ≤ a → P (a - x)
hx : x + 1 ≤ a
this : P (a - x)
⊢ 1 ≤ a - x
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
IH : x ≤ a → P (a - x)
hx : x + 1 ≤ a
this : P (a - x)
⊢ P (a - x)
Tactic:
exact this
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
IH : x ≤ a → P (a - x)
hx : x + 1 ≤ a
this : P (a - x)
⊢ 1 ≤ a - x
Tactic:
exact le_tsub_of_add_le_left hx
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
⊢ Structure.ORing L M
Tactic:
exact inferInstance
Proof state after:
no goals
Theorem: LO.FirstOrder.Arith.Model.neg_induction_h
Proof state before:
M : Type u_1
inst✝¹⁰ : Zero M
inst✝⁹ : One M
inst✝⁸ : Add M
inst✝⁷ : Mul M
inst✝⁶ : LT M
inst✝⁵ : M ⊧ₘ* 𝐏𝐀⁻
L : Language
inst✝⁴ : L.ORing
inst✝³ : Structure L M
inst✝² : Structure.ORing L M
inst✝¹ : Structure.Monotone L M
Γ : Polarity
m : ℕ
inst✝ : M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
P : M → Prop
hP : DefinablePred L (Γ.coe, m) P
nzero : ¬P 0
nsucc : ∀ (x : M), ¬P x → ¬P (x + 1)
A : ¬∀ (x : M), ¬P x
a : M
ha : P a
x : M
⊢ M ⊧ₘ* Theory.indScheme L (Hierarchy Γ m)
Tactic:
exact inferInstance
Proof state after:
no goals