Documentation

Logic.FirstOrder.Arith.Hierarchy

inductive LO.FirstOrder.Arith.Hierarchy {L : LO.FirstOrder.Language} [L.LT] {ξ : Type v} :
LO.Polarity → ℕ → {n : ℕ} → LO.FirstOrder.Semiformula L ξ n → Prop
Instances For
    @[simp]
    @[simp]
    theorem LO.FirstOrder.Arith.Hierarchy.equal {ξ : Type v} {L : LO.FirstOrder.Language} [L.Eq] [L.LT] {n : ℕ} {Γ : LO.Polarity} {s : ℕ} {t : LO.FirstOrder.Semiterm L ξ n} {u : LO.FirstOrder.Semiterm L ξ n} :
    LO.FirstOrder.Arith.Hierarchy Γ s (“!!t = !!u”)
    @[simp]
    theorem LO.FirstOrder.Arith.Hierarchy.lt {ξ : Type v} {L : LO.FirstOrder.Language} [L.LT] {n : ℕ} {Γ : LO.Polarity} {s : ℕ} {t : LO.FirstOrder.Semiterm L ξ n} {u : LO.FirstOrder.Semiterm L ξ n} :
    LO.FirstOrder.Arith.Hierarchy Γ s (“!!t < !!u”)
    @[simp]
    theorem LO.FirstOrder.Arith.Hierarchy.le {ξ : Type v} {L : LO.FirstOrder.Language} [L.Eq] [L.LT] {n : ℕ} {Γ : LO.Polarity} {s : ℕ} {t : LO.FirstOrder.Semiterm L ξ n} {u : LO.FirstOrder.Semiterm L ξ n} :
    LO.FirstOrder.Arith.Hierarchy Γ s (“!!t ≤ !!u”)
    @[simp]
    theorem LO.FirstOrder.Arith.Hierarchy.ball_iff {L : LO.FirstOrder.Language} [L.LT] {ξ : Type v} {Γ : LO.Polarity} {s : ℕ} {n : ℕ} {p : LO.FirstOrder.Semiformula L ξ (n + 1)} {t : LO.FirstOrder.Semiterm L ξ (n + 1)} (ht : t.Positive) :
    @[simp]
    theorem LO.FirstOrder.Arith.Hierarchy.bex_iff {L : LO.FirstOrder.Language} [L.LT] {ξ : Type v} {Γ : LO.Polarity} {s : ℕ} {n : ℕ} {p : LO.FirstOrder.Semiformula L ξ (n + 1)} {t : LO.FirstOrder.Semiterm L ξ (n + 1)} (ht : t.Positive) :
    theorem LO.FirstOrder.Arith.Hierarchy.rew {L : LO.FirstOrder.Language} [L.LT] {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_2} {n₂ : ℕ} {Γ : LO.Polarity} {s : ℕ} (ω : LO.FirstOrder.Rew L ξ₁ n₁ ξ₂ n₂) {p : LO.FirstOrder.Semiformula L ξ₁ n₁} :
    @[simp]
    theorem LO.FirstOrder.Arith.Hierarchy.rew_iff {L : LO.FirstOrder.Language} [L.LT] {ξ₁ : Type u_1} {n₁ : ℕ} {ξ₂ : Type u_2} {n₂ : ℕ} {Γ : LO.Polarity} {s : ℕ} {ω : LO.FirstOrder.Rew L ξ₁ n₁ ξ₂ n₂} {p : LO.FirstOrder.Semiformula L ξ₁ n₁} :
    Equations
    • LO.FirstOrder.Arith.Hierarchy.instAndOrClosedSemiformula = { verum := ⋯, falsum := ⋯, and := ⋯, or := ⋯ }
    Equations
    @[simp]
    theorem LO.FirstOrder.Arith.Hierarchy.matrix_conj_iff {ξ : Type v} {L : LO.FirstOrder.Language} [L.ORing] {m : ℕ} {b : LO.Polarity} {s : ℕ} {n : ℕ} {p : Fin m → LO.FirstOrder.Semiformula L ξ n} :
    LO.FirstOrder.Arith.Hierarchy b s (Matrix.conj fun (j : Fin m) => p j) ↔ ∀ (j : Fin m), LO.FirstOrder.Arith.Hierarchy b s (p j)
    theorem LO.FirstOrder.Arith.sigma₁_induction {ξ : Type v} {P : (n : ℕ) → LO.FirstOrder.Semiformula ℒₒᵣ ξ n → Prop} (hVerum : ∀ (n : ℕ), P n ⊤) (hFalsum : ∀ (n : ℕ), P n ⊥) (hEQ : ∀ (n : ℕ) (t₁ t₂ : LO.FirstOrder.Semiterm ℒₒᵣ ξ n), P n (LO.FirstOrder.Semiformula.rel op(=) ![t₁, t₂])) (hNEQ : ∀ (n : ℕ) (t₁ t₂ : LO.FirstOrder.Semiterm ℒₒᵣ ξ n), P n (LO.FirstOrder.Semiformula.nrel op(=) ![t₁, t₂])) (hLT : ∀ (n : ℕ) (t₁ t₂ : LO.FirstOrder.Semiterm ℒₒᵣ ξ n), P n (LO.FirstOrder.Semiformula.rel op(<) ![t₁, t₂])) (hNLT : ∀ (n : ℕ) (t₁ t₂ : LO.FirstOrder.Semiterm ℒₒᵣ ξ n), P n (LO.FirstOrder.Semiformula.nrel op(<) ![t₁, t₂])) (hAnd : ∀ (n : ℕ) (p q : LO.FirstOrder.Semiformula ℒₒᵣ ξ n), LO.FirstOrder.Arith.Hierarchy 𝚺 1 p → LO.FirstOrder.Arith.Hierarchy 𝚺 1 q → P n p → P n q → P n (p ⋏ q)) (hOr : ∀ (n : ℕ) (p q : LO.FirstOrder.Semiformula ℒₒᵣ ξ n), LO.FirstOrder.Arith.Hierarchy 𝚺 1 p → LO.FirstOrder.Arith.Hierarchy 𝚺 1 q → P n p → P n q → P n (p ⋎ q)) (hBall : ∀ (n : ℕ) (t : LO.FirstOrder.Semiterm ℒₒᵣ ξ n) (p : LO.FirstOrder.Semiformula ℒₒᵣ ξ (n + 1)), LO.FirstOrder.Arith.Hierarchy 𝚺 1 p → P (n + 1) p → P n (“(∀[!!(LO.FirstOrder.Semiterm.bvar 0) < !!(LO.FirstOrder.Rew.bShift t)] !p)”)) (hEx : ∀ (n : ℕ) (p : LO.FirstOrder.Semiformula ℒₒᵣ ξ (n + 1)), LO.FirstOrder.Arith.Hierarchy 𝚺 1 p → P (n + 1) p → P n (∃' p)) (n : ℕ) (p : LO.FirstOrder.Semiformula ℒₒᵣ ξ n) :
    theorem LO.FirstOrder.Arith.sigma₁_induction' {ξ : Type v} {n : ℕ} {p : LO.FirstOrder.Semiformula ℒₒᵣ ξ n} (hp : LO.FirstOrder.Arith.Hierarchy 𝚺 1 p) {P : (n : ℕ) → LO.FirstOrder.Semiformula ℒₒᵣ ξ n → Prop} (hVerum : ∀ (n : ℕ), P n ⊤) (hFalsum : ∀ (n : ℕ), P n ⊥) (hEQ : ∀ (n : ℕ) (t₁ t₂ : LO.FirstOrder.Semiterm ℒₒᵣ ξ n), P n (LO.FirstOrder.Semiformula.rel op(=) ![t₁, t₂])) (hNEQ : ∀ (n : ℕ) (t₁ t₂ : LO.FirstOrder.Semiterm ℒₒᵣ ξ n), P n (LO.FirstOrder.Semiformula.nrel op(=) ![t₁, t₂])) (hLT : ∀ (n : ℕ) (t₁ t₂ : LO.FirstOrder.Semiterm ℒₒᵣ ξ n), P n (LO.FirstOrder.Semiformula.rel op(<) ![t₁, t₂])) (hNLT : ∀ (n : ℕ) (t₁ t₂ : LO.FirstOrder.Semiterm ℒₒᵣ ξ n), P n (LO.FirstOrder.Semiformula.nrel op(<) ![t₁, t₂])) (hAnd : ∀ (n : ℕ) (p q : LO.FirstOrder.Semiformula ℒₒᵣ ξ n), LO.FirstOrder.Arith.Hierarchy 𝚺 1 p → LO.FirstOrder.Arith.Hierarchy 𝚺 1 q → P n p → P n q → P n (p ⋏ q)) (hOr : ∀ (n : ℕ) (p q : LO.FirstOrder.Semiformula ℒₒᵣ ξ n), LO.FirstOrder.Arith.Hierarchy 𝚺 1 p → LO.FirstOrder.Arith.Hierarchy 𝚺 1 q → P n p → P n q → P n (p ⋎ q)) (hBall : ∀ (n : ℕ) (t : LO.FirstOrder.Semiterm ℒₒᵣ ξ n) (p : LO.FirstOrder.Semiformula ℒₒᵣ ξ (n + 1)), LO.FirstOrder.Arith.Hierarchy 𝚺 1 p → P (n + 1) p → P n (“(∀[!!(LO.FirstOrder.Semiterm.bvar 0) < !!(LO.FirstOrder.Rew.bShift t)] !p)”)) (hEx : ∀ (n : ℕ) (p : LO.FirstOrder.Semiformula ℒₒᵣ ξ (n + 1)), LO.FirstOrder.Arith.Hierarchy 𝚺 1 p → P (n + 1) p → P n (∃' p)) :
    P n p