Bootstrapping theory of equality #
@[simp]
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.eq_refl
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t : Term V ℒₒᵣ)
:
@[simp]
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.eq_symm
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t u : Term V ℒₒᵣ)
:
@[simp]
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.ne_symm
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t u : Term V ℒₒᵣ)
:
@[simp]
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.eq_uniform_trans
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t₁ t₂ t₃ : Term V ℒₒᵣ)
:
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.eq_comm_ctx
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
{T : ArithmeticTheory}
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
{Γ : List (Semiformula V ℒₒᵣ 0)}
{t u : Term V ℒₒᵣ}
:
Γ ⊢[Theory.internalize V T] Semiterm.equals t u → Γ ⊢[Theory.internalize V T] Semiterm.equals u t
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.eq_trans
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
{T : ArithmeticTheory}
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
{t₁ t₂ t₃ : Term V ℒₒᵣ}
:
Theory.internalize V T ⊢ Semiterm.equals t₁ t₂ →
Theory.internalize V T ⊢ Semiterm.equals t₂ t₃ → Theory.internalize V T ⊢ Semiterm.equals t₁ t₃
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.subst_eq
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t₁ t₂ u₁ u₂ : Term V ℒₒᵣ)
:
Theory.internalize V T ⊢ Semiterm.equals t₁ t₂ 🡒 Semiterm.equals u₁ u₂ 🡒 Semiterm.equals t₁ u₁ 🡒 Semiterm.equals t₂ u₂
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.subst_lt
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t₁ t₂ u₁ u₂ : Term V ℒₒᵣ)
:
Theory.internalize V T ⊢ Semiterm.equals t₁ t₂ 🡒 Semiterm.equals u₁ u₂ 🡒 Semiterm.lessThan t₁ u₁ 🡒 Semiterm.lessThan t₂ u₂
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.subst_ne
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t₁ t₂ u₁ u₂ : Term V ℒₒᵣ)
:
Theory.internalize V T ⊢ Semiterm.equals t₁ t₂ 🡒 Semiterm.equals u₁ u₂ 🡒 Semiterm.notEquals t₁ u₁ 🡒 Semiterm.notEquals t₂ u₂
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.subst_nlt
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t₁ t₂ u₁ u₂ : Term V ℒₒᵣ)
:
Theory.internalize V T ⊢ Semiterm.equals t₁ t₂ 🡒 Semiterm.equals u₁ u₂ 🡒 Semiterm.notLessThan t₁ u₁ 🡒 Semiterm.notLessThan t₂ u₂
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.subst_add_eq_add
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t₁ t₂ u₁ u₂ : Term V ℒₒᵣ)
:
Theory.internalize V T ⊢ Semiterm.equals t₁ t₂ 🡒 Semiterm.equals u₁ u₂ 🡒 Semiterm.equals (t₁ + u₁) (t₂ + u₂)
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.subst_mul_eq_mul
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t₁ t₂ u₁ u₂ : Term V ℒₒᵣ)
:
Theory.internalize V T ⊢ Semiterm.equals t₁ t₂ 🡒 Semiterm.equals u₁ u₂ 🡒 Semiterm.equals (t₁ * u₁) (t₂ * u₂)
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.term_replace_aux
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t : V)
:
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.term_replace
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t : Semiterm V ℒₒᵣ 1)
:
Theory.internalize V T ⊢ ∀¹ ∀¹ ((Semiterm.bvar 1).equals (Semiterm.bvar 0) 🡒 (Semiterm.subst ![Semiterm.bvar 1] t).equals (Semiterm.subst ![Semiterm.bvar 0] t))
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.term_replace'
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t : Semiterm V ℒₒᵣ 1)
(u₁ u₂ : Term V ℒₒᵣ)
:
Theory.internalize V T ⊢ Semiterm.equals u₁ u₂ 🡒 (Semiterm.subst ![u₁] t).equals (Semiterm.subst ![u₂] t)
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.replace_eq
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t u : Semiterm V ℒₒᵣ 1)
:
Theory.internalize V T ⊢ ∀¹ ∀¹ ((Semiterm.bvar 1).equals (Semiterm.bvar 0) 🡒 Semiformula.subst ![Semiterm.bvar 1] (t.equals u) 🡒 Semiformula.subst ![Semiterm.bvar 0] (t.equals u))
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.replace_lt
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t u : Semiterm V ℒₒᵣ 1)
:
Theory.internalize V T ⊢ ∀¹ ∀¹ ((Semiterm.bvar 1).equals (Semiterm.bvar 0) 🡒 Semiformula.subst ![Semiterm.bvar 1] (t.lessThan u) 🡒 Semiformula.subst ![Semiterm.bvar 0] (t.lessThan u))
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.replace_ne
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t u : Semiterm V ℒₒᵣ 1)
:
Theory.internalize V T ⊢ ∀¹ ∀¹ ((Semiterm.bvar 1).equals (Semiterm.bvar 0) 🡒 Semiformula.subst ![Semiterm.bvar 1] (t.notEquals u) 🡒 Semiformula.subst ![Semiterm.bvar 0] (t.notEquals u))
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.replace_nlt
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(t u : Semiterm V ℒₒᵣ 1)
:
Theory.internalize V T ⊢ ∀¹ ∀¹ ((Semiterm.bvar 1).equals (Semiterm.bvar 0) 🡒 Semiformula.subst ![Semiterm.bvar 1] (t.notLessThan u) 🡒 Semiformula.subst ![Semiterm.bvar 0] (t.notLessThan u))
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.replace_aux
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(φ : V)
:
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.replace'
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(φ : Semiformula V ℒₒᵣ 1)
:
Theory.internalize V T ⊢ ∀¹ ∀¹ ((Semiterm.bvar 1).equals (Semiterm.bvar 0) 🡒 Semiformula.subst ![Semiterm.bvar 1] φ 🡒 Semiformula.subst ![Semiterm.bvar 0] φ)
theorem
LO.FirstOrder.Arithmetic.Bootstrapping.Arithmetic.replace
{V : Type u_1}
[ORingStructure V]
[V↓[ℒₒᵣ] ⊧* 𝗜𝚺₁]
(T : ArithmeticTheory)
[Theory.Δ₁ T]
[𝗘𝗤 ℒₒᵣ ⪯ T]
(φ : Semiformula V ℒₒᵣ 1)
(u₁ u₂ : Term V ℒₒᵣ)
:
Theory.internalize V T ⊢ Semiterm.equals u₁ u₂ 🡒 Semiformula.subst ![u₁] φ 🡒 Semiformula.subst ![u₂] φ