Formalized $\Sigma_1$-Completeness #
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
- eq_refl : 𝐑₀' (“∀' !!(Semiterm.bvar 0) = !!(Semiterm.bvar 0)”)
- replace (φ : SyntacticSemiformula ℒₒᵣ 1) : 𝐑₀' (“∀' ∀' (!!(Semiterm.bvar 1) = !!(Semiterm.bvar 0) → !(φ/[Semiterm.bvar 1] ➝ φ/[Semiterm.bvar 0]))”)
- Ω₁ (n m : ℕ) : 𝐑₀' (“(!!↑n + !!↑m) = !!↑(n + m)”)
- Ω₂ (n m : ℕ) : 𝐑₀' (“(!!↑n * !!↑m) = !!↑(n * m)”)
- Ω₃ (n m : ℕ) : n ≠ m → 𝐑₀' (“¬!!↑n = !!↑m”)
- Ω₄ (n : ℕ) : 𝐑₀' (“∀' (!!(Semiterm.bvar 0) < !!↑n ↔ !(disjLt (fun (i : ℕ) => “!!(Semiterm.bvar 0) = !!↑i”) n))”)
Instances For
Equations
- LO.FirstOrder.Theory.«term𝐑₀'» = Lean.ParserDescr.node `LO.FirstOrder.Theory.«term𝐑₀'» 1024 (Lean.ParserDescr.symbol "𝐑₀'")
Instances For
def
LO.Arith.singleton
{L : FirstOrder.Language}
[(k : ℕ) → Encodable (L.Func k)]
[(k : ℕ) → Encodable (L.Rel k)]
[DefinableLanguage L]
(φ : FirstOrder.SyntacticFormula L)
:
{φ}.Delta1Definable
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
LO.Arith.singleton_toTDef_ch_val
{L : FirstOrder.Language}
[(k : ℕ) → Encodable (L.Func k)]
[(k : ℕ) → Encodable (L.Rel k)]
[DefinableLanguage L]
(φ : FirstOrder.SyntacticFormula L)
:
FirstOrder.Arith.HierarchySymbol.Semiformula.val (FirstOrder.Theory.Delta1Definable.toTDef {φ}).ch = (“!!(FirstOrder.Semiterm.bvar 0) = !!↑⌜φ⌝”)
def
LO.Arith.Formalized.Theory.CobhamR0'.eqRefl :
{“∀' !!(FirstOrder.Semiterm.bvar 0) = !!(FirstOrder.Semiterm.bvar 0)”}.Delta1Definable
Equations
Instances For
def
LO.Arith.Formalized.Theory.CobhamR0'.replace :
FirstOrder.Theory.Delta1Definable
{x : FirstOrder.SyntacticFormula ℒₒᵣ |
∃ (φ : FirstOrder.SyntacticSemiformula ℒₒᵣ 1),
(“∀'
∀'
(!!(FirstOrder.Semiterm.bvar 1) = !!(FirstOrder.Semiterm.bvar 0) →
!(φ/[FirstOrder.Semiterm.bvar 1] ➝ φ/[FirstOrder.Semiterm.bvar 0]))”) = x}
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
LO.Arith.Formalized.Theory.CobhamR0'.Ω₁ :
FirstOrder.Theory.Delta1Definable
{φ : FirstOrder.SyntacticFormula ℒₒᵣ | ∃ (n : ℕ) (m : ℕ), φ = (“(!!↑n + !!↑m) = !!↑(n + m)”)}
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
LO.Arith.Formalized.Theory.CobhamR0'.Ω₂ :
FirstOrder.Theory.Delta1Definable
{φ : FirstOrder.SyntacticFormula ℒₒᵣ | ∃ (n : ℕ) (m : ℕ), φ = (“(!!↑n * !!↑m) = !!↑(n * m)”)}
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
LO.Arith.Formalized.Theory.CobhamR0'.Ω₃ :
FirstOrder.Theory.Delta1Definable
{φ : FirstOrder.SyntacticFormula ℒₒᵣ | ∃ (n : ℕ) (m : ℕ), n ≠ m ∧ φ = (“¬!!↑n = !!↑m”)}
Equations
- One or more equations did not get rendered due to their size.
Instances For
def
LO.Arith.Formalized.Theory.CobhamR0'.Ω₄ :
FirstOrder.Theory.Delta1Definable
{x : FirstOrder.SyntacticFormula ℒₒᵣ |
∃ (n : ℕ),
(“∀'
(!!(FirstOrder.Semiterm.bvar 0) < !!↑n ↔
!(disjLt (fun (i : ℕ) => “!!(FirstOrder.Semiterm.bvar 0) = !!↑i”) n))”) = x}
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.
@[reducible, inline]
Instances For
@[reducible, inline]
abbrev
LO.Arith.Formalized.TTheory.CobhamR0'
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
:
⌜ℒₒᵣ⌝.TTheory
Equations
Instances For
Equations
- LO.Arith.Formalized.«term⌜𝐑₀'⌝» = Lean.ParserDescr.node `LO.Arith.Formalized.«term⌜𝐑₀'⌝» 1024 (Lean.ParserDescr.symbol "⌜𝐑₀'⌝")
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
def
LO.Arith.Formalized.Theory.CobhamR0'.replace.proof
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(φ : ⌜ℒₒᵣ⌝.Semiformula (0 + 1))
:
Equations
Instances For
def
LO.Arith.Formalized.Theory.CobhamR0'.Ω₁.proof
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(n m : V)
:
⌜𝐑₀'⌝ ⊢ (typedNumeral 0 n + typedNumeral 0 m).equals (typedNumeral 0 (n + m))
Equations
Instances For
def
LO.Arith.Formalized.Theory.CobhamR0'.Ω₂.proof
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(n m : V)
:
⌜𝐑₀'⌝ ⊢ (typedNumeral 0 n * typedNumeral 0 m).equals (typedNumeral 0 (n * m))
Equations
Instances For
def
LO.Arith.Formalized.Theory.CobhamR0'.Ω₃.proof
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n m : V}
(ne : n ≠ m)
:
⌜𝐑₀'⌝ ⊢ (typedNumeral 0 n).notEquals (typedNumeral 0 m)
Instances For
def
LO.Arith.Formalized.Theory.CobhamR0'.Ω₄.proof
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(n : V)
:
Instances For
instance
LO.Arith.Formalized.Theory.addCobhamR0'Delta1Definable
(T : FirstOrder.Theory ℒₒᵣ)
[d : T.Delta1Definable]
:
@[reducible, inline]
abbrev
LO.FirstOrder.Theory.AddR₀TTheory
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(T : Theory ℒₒᵣ)
[T.Delta1Definable]
:
⌜ℒₒᵣ⌝.TTheory
Equations
- T.AddR₀TTheory = LO.FirstOrder.Theory.tCodeIn V (T + 𝐑₀')
Instances For
@[simp]
theorem
LO.Arith.Formalized.R₀'_subset_AddR₀
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{T : FirstOrder.Theory ℒₒᵣ}
[T.Delta1Definable]
:
@[simp]
theorem
LO.Arith.Formalized.theory_subset_AddR₀
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{T : FirstOrder.Theory ℒₒᵣ}
[T.Delta1Definable]
:
FirstOrder.Theory.tCodeIn V T ⊆ T.AddR₀TTheory
instance
LO.Arith.Formalized.instR₀TheoryAddR₀TTheory
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{T : FirstOrder.Theory ℒₒᵣ}
[T.Delta1Definable]
:
R₀Theory T.AddR₀TTheory
Equations
- One or more equations did not get rendered due to their size.
def
LO.FirstOrder.Theory.Provableₐ
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(T : Theory ℒₒᵣ)
[T.Delta1Definable]
(φ : V)
:
Provability predicate for arithmetic stronger than $\mathbf{R_0}$.
Equations
- T.Provableₐ φ = (LO.FirstOrder.Theory.codeIn V (T + 𝐑₀')).Provable φ
Instances For
theorem
LO.Arith.provableₐ_iff
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{T : FirstOrder.Theory ℒₒᵣ}
[T.Delta1Definable]
{σ : FirstOrder.Sentence ℒₒᵣ}
:
Equations
- T.provableₐ = LO.FirstOrder.Arith.HierarchySymbol.Semiformula.mkSigma ((LO.FirstOrder.Arith.HierarchySymbol.Semiformula.val (T + 𝐑₀').tDef.prv)/[LO.FirstOrder.Semiterm.bvar 0]) ⋯
Instances For
theorem
LO.Arith.provableₐ_defined
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(T : FirstOrder.Theory ℒₒᵣ)
[T.Delta1Definable]
:
𝚺₁-Predicate T.Provableₐ via T.provableₐ
@[simp]
theorem
LO.Arith.eval_provableₐ
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(T : FirstOrder.Theory ℒₒᵣ)
[T.Delta1Definable]
(v : Fin 1 → V)
:
V ⊧/v (FirstOrder.Arith.HierarchySymbol.Semiformula.val T.provableₐ) ↔ T.Provableₐ (v 0)
instance
LO.Arith.provableₐ_definable
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(T : FirstOrder.Theory ℒₒᵣ)
[T.Delta1Definable]
:
𝚺₁-Predicate T.Provableₐ
instance
LO.Arith.provableₐ_definable'
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(T : FirstOrder.Theory ℒₒᵣ)
[T.Delta1Definable]
:
{ Γ := 𝚺, rank := 0 + 1 }-Predicate T.Provableₐ
instance for definability tactic