Basic properties of theory $\mathsf{IOpen}$ #
theorem
LO.FirstOrder.Arithmetic.succ_induction
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
{P : V → Prop}
(hP : ∃ (φ : ArithmeticSemiformula V 1), Semiformula.Open φ ∧ ∀ (x : V), P x ↔ (Semiformula.Eval ![x] id) φ)
(zero : P 0)
(succ : ∀ (x : V), P x → P (x + 1))
(x : V)
:
P x
theorem
LO.FirstOrder.Arithmetic.least_number
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
{P : V → Prop}
(hP : ∃ (φ : ArithmeticSemiformula V 1), Semiformula.Open φ ∧ ∀ (x : V), P x ↔ (Semiformula.Eval ![x] id) φ)
(zero : P 0)
{a : V}
(counterex : ¬P a)
:
Division #
@[implicit_reducible]
noncomputable def
LO.FirstOrder.Arithmetic.instDiv_foundation
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
Div V
Equations
- LO.FirstOrder.Arithmetic.instDiv_foundation = { div := fun (a b : V) => Classical.choose! ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.Arithmetic.div_defined
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
instance
LO.FirstOrder.Arithmetic.div_definable
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
Remainder #
noncomputable def
LO.FirstOrder.Arithmetic.rem
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
(a b : V)
:
V
Equations
- LO.FirstOrder.Arithmetic.rem a b = a - b * (a / b)
Instances For
@[implicit_reducible]
noncomputable def
LO.FirstOrder.Arithmetic.instMod_foundation
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
Mod V
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.Arithmetic.rem_defined
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
instance
LO.FirstOrder.Arithmetic.rem_definable
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
theorem
LO.FirstOrder.Arithmetic.two_prime
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
Prime 2
Square root #
noncomputable def
LO.FirstOrder.Arithmetic.sqrt
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
(a : V)
:
V
Equations
- √a = Classical.choose! ⋯
Instances For
Equations
- LO.FirstOrder.Arithmetic.«term√_» = Lean.ParserDescr.node `LO.FirstOrder.Arithmetic.«term√_» 75 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "√") (Lean.ParserDescr.cat `term 75))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.Arithmetic.sqrt_defined
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
instance
LO.FirstOrder.Arithmetic.sqrt_definable
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
Pairing #
!⟪x, y, z, ...⟫ notation for Seq
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.Arithmetic.pair_defined
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
instance
LO.FirstOrder.Arithmetic.pair_definable
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
@[reducible, inline]
noncomputable abbrev
LO.FirstOrder.Arithmetic.pi₁
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
(a : V)
:
V
Equations
- π₁ a = (LO.FirstOrder.Arithmetic.unpair a).1
Instances For
@[reducible, inline]
noncomputable abbrev
LO.FirstOrder.Arithmetic.pi₂
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
(a : V)
:
V
Equations
- π₂ a = (LO.FirstOrder.Arithmetic.unpair a).2
Instances For
Equations
- LO.FirstOrder.Arithmetic.termπ₁_ = Lean.ParserDescr.node `LO.FirstOrder.Arithmetic.termπ₁_ 80 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "π₁") (Lean.ParserDescr.cat `term 80))
Instances For
Equations
- LO.FirstOrder.Arithmetic.termπ₂_ = Lean.ParserDescr.node `LO.FirstOrder.Arithmetic.termπ₂_ 80 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "π₂") (Lean.ParserDescr.cat `term 80))
Instances For
noncomputable def
LO.FirstOrder.Arithmetic.pairEquiv
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
Equations
- LO.FirstOrder.Arithmetic.pairEquiv = { toFun := Function.uncurry LO.FirstOrder.Arithmetic.pair, invFun := LO.FirstOrder.Arithmetic.unpair, left_inv := ⋯, right_inv := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
instance
LO.FirstOrder.Arithmetic.pi₁_defined
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
instance
LO.FirstOrder.Arithmetic.pi₁_definable
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
instance
LO.FirstOrder.Arithmetic.pi₂_defined
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
instance
LO.FirstOrder.Arithmetic.pi₂_definable
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
noncomputable def
LO.FirstOrder.Arithmetic.npair
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
{n : ℕ}
(v : Fin n → V)
:
V
Equations
- LO.FirstOrder.Arithmetic.npair x_2 = 0
- LO.FirstOrder.Arithmetic.npair v = ⟪v 0, LO.FirstOrder.Arithmetic.npair fun (x : Fin n) => v x.succ⟫
Instances For
noncomputable def
LO.FirstOrder.Arithmetic.unNpair
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
{n : ℕ}
:
Fin n → V → V
Equations
- LO.FirstOrder.Arithmetic.unNpair i x✝ = i.elim0
- LO.FirstOrder.Arithmetic.unNpair i x✝ = Fin.cases (π₁ x✝) (fun (i : Fin n) => LO.FirstOrder.Arithmetic.unNpair i (π₂ x✝)) i
Instances For
Equations
- One or more equations did not get rendered due to their size.
- LO.FirstOrder.Arithmetic.unNpairDef i = i.elim0
Instances For
instance
LO.FirstOrder.Arithmetic.unNpair_defined
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
{n : ℕ}
(i : Fin n)
:
@[simp]
instance
LO.FirstOrder.Arithmetic.unNpair_definable
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝗢𝗽𝗲𝗻]
{n : ℕ}
(i : Fin n)
(Γ : HierarchySymbol)
:
Polynomial induction #
theorem
LO.FirstOrder.Arithmetic.polynomial_induction
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗣𝗔⁻]
(Γ : Polarity)
(m : ℕ)
[V↓[ℒₒᵣ] ⊧* 𝗜𝗡𝗗 Γ m]
{P : V → Prop}
(hP : { Γ := Γ.coe, rank := m }-Predicate P)
(zero : P 0)
(even : ∀ x > 0, P x → P (2 * x))
(odd : ∀ (x : V), P x → P (2 * x + 1))
(x : V)
:
P x
theorem
LO.FirstOrder.Arithmetic.sigma0_polynomial_induction
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₀]
{P : V → Prop}
(hP : 𝚺₀-Predicate P)
(zero : P 0)
(even : ∀ x > 0, P x → P (2 * x))
(odd : ∀ (x : V), P x → P (2 * x + 1))
(x : V)
:
P x
theorem
LO.FirstOrder.Arithmetic.sigma1_polynomial_induction
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
{P : V → Prop}
(hP : 𝚺₁-Predicate P)
(zero : P 0)
(even : ∀ x > 0, P x → P (2 * x))
(odd : ∀ (x : V), P x → P (2 * x + 1))
(x : V)
:
P x
theorem
LO.FirstOrder.Arithmetic.pi1_polynomial_induction
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
{P : V → Prop}
(hP : 𝚷₁-Predicate P)
(zero : P 0)
(even : ∀ x > 0, P x → P (2 * x))
(odd : ∀ (x : V), P x → P (2 * x + 1))
(x : V)
:
P x