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