Documentation

Foundation.FirstOrder.Arithmetic.Prenex

Prenex normal form for the arithmetical hierarchy #

For 𝗕𝚺 s ⪯ T, every Hierarchy Γ s formula φ is T-provably equivalent to φ₀.toPrenex Γ s for some φ₀ : ArithmeticSemisentence (n + s) in Hierarchy 𝚺 0.

References #

structure FFL.FirstOrder.Arithmetic.Prenex (Γ : Polarity) (s : ℕ) (ξ : Type u_1) (n : ℕ) :
Type u_1

A formula in Γ-prenex form of level s, stored as the 𝚺₀ matrix that remains after stripping the s leading alternating quantifiers.

Instances For
    def FFL.FirstOrder.Arithmetic.Prenex.val {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} (φ : Prenex Γ s ξ n) :
    Equations
    Instances For
      def FFL.FirstOrder.Arithmetic.Prenex.neg {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} (φ : Prenex Γ s ξ n) :
      Prenex Γ.alt s ξ n
      Equations
      Instances For
        def FFL.FirstOrder.Arithmetic.Prenex.rew {Γ : Polarity} {s : ℕ} {ξ₁ : Type u_2} {ξ₂ : Type u_3} {n₁ n₂ : ℕ} (φ : Prenex Γ s ξ₁ n₁) (ω : Rew ℒₒᵣ ξ₁ n₁ ξ₂ n₂) :
        Prenex Γ s ξ₂ n₂
        Equations
        Instances For
          def FFL.FirstOrder.Arithmetic.Prenex.sigma {s : ℕ} {ξ : Type u_1} {n : ℕ} (φ : Prenex 𝚷 s ξ (n + 1)) :
          Prenex 𝚺 (s + 1) ξ n
          Equations
          Instances For
            def FFL.FirstOrder.Arithmetic.Prenex.pi {s : ℕ} {ξ : Type u_1} {n : ℕ} (φ : Prenex 𝚺 s ξ (n + 1)) :
            Prenex 𝚷 (s + 1) ξ n
            Equations
            Instances For
              def FFL.FirstOrder.Arithmetic.Prenex.piInv {s : ℕ} {ξ : Type u_1} {n : ℕ} (φ : Prenex 𝚷 (s + 1) ξ n) :
              Prenex 𝚺 s ξ (n + 1)
              Equations
              Instances For
                def FFL.FirstOrder.Arithmetic.Prenex.altUp {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} (φ : Prenex Γ s ξ n) :
                Prenex Γ.alt (s + 1) ξ n
                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem FFL.FirstOrder.Arithmetic.Prenex.val_hierarchy {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} {φ : Prenex Γ s ξ n} :
                  Hierarchy Γ s ↑φ
                  @[simp]
                  theorem FFL.FirstOrder.Arithmetic.Prenex.val_deltaZero {Γ : Polarity} {ξ : Type u_1} {n : ℕ} {φ : Prenex Γ 0 ξ n} :
                  Hierarchy 𝚺 0 ↑φ
                  @[simp]
                  theorem FFL.FirstOrder.Arithmetic.Prenex.val_strictHierarchy {Γ : Polarity} {s n : ℕ} {ξ : Type u_5} {φ : Prenex Γ s ξ n} :
                  StrictHierarchy Γ s ↑φ
                  @[simp]
                  theorem FFL.FirstOrder.Arithmetic.Prenex.val_neg {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} (φ : Prenex Γ s ξ n) :
                  ↑(∼φ) = ∼↑φ
                  @[simp]
                  theorem FFL.FirstOrder.Arithmetic.Prenex.val_rew {Γ : Polarity} {s : ℕ} {ξ₁ : Type u_2} {ξ₂ : Type u_3} {n₁ n₂ : ℕ} (φ : Prenex Γ s ξ₁ n₁) (ω : Rew ℒₒᵣ ξ₁ n₁ ξ₂ n₂) :
                  ↑(φ.rew ω) = (Rewriting.app ω) ↑φ
                  @[simp]
                  theorem FFL.FirstOrder.Arithmetic.Prenex.val_sigma {s : ℕ} {ξ : Type u_1} {n : ℕ} {φ : Prenex 𝚷 s ξ (n + 1)} :
                  ↑φ.sigma = ∃¹ ↑φ
                  @[simp]
                  theorem FFL.FirstOrder.Arithmetic.Prenex.val_pi {s : ℕ} {ξ : Type u_1} {n : ℕ} {φ : Prenex 𝚺 s ξ (n + 1)} :
                  ↑φ.pi = ∀¹ ↑φ
                  @[simp]
                  theorem FFL.FirstOrder.Arithmetic.Prenex.val_sigmaInv {s : ℕ} {ξ : Type u_1} {n : ℕ} {φ : Prenex 𝚺 (s + 1) ξ n} :
                  ↑φ = ∃¹ ↑φ.sigmaInv
                  @[simp]
                  theorem FFL.FirstOrder.Arithmetic.Prenex.val_piInv {s : ℕ} {ξ : Type u_1} {n : ℕ} {φ : Prenex 𝚷 (s + 1) ξ n} :
                  ↑φ = ∀¹ ↑φ.piInv
                  theorem FFL.FirstOrder.Arithmetic.Prenex.models_sigmaInv {s : ℕ} {ξ : Type u_1} {n : ℕ} {V : Type u_4} [ORingStructure V] {f : ξ → V} (φ : Prenex 𝚺 (s + 1) ξ n) (e : Fin n → V) :
                  (Semiformula.Eval e f) ↑φ ↔ ∃ (x : V), (Semiformula.Eval (x :> e) f) ↑φ.sigmaInv
                  theorem FFL.FirstOrder.Arithmetic.Prenex.models_piInv {s : ℕ} {ξ : Type u_1} {n : ℕ} {V : Type u_4} [ORingStructure V] {f : ξ → V} (φ : Prenex 𝚷 (s + 1) ξ n) (e : Fin n → V) :
                  (Semiformula.Eval e f) ↑φ ↔ ∀ (x : V), (Semiformula.Eval (x :> e) f) ↑φ.piInv
                  theorem FFL.FirstOrder.Arithmetic.Prenex.models_sigma {s : ℕ} {ξ : Type u_1} {n : ℕ} {V : Type u_4} [ORingStructure V] {f : ξ → V} (φ : Prenex 𝚷 s ξ (n + 1)) (e : Fin n → V) :
                  (Semiformula.Eval e f) ↑φ.sigma ↔ ∃ (x : V), (Semiformula.Eval (x :> e) f) ↑φ
                  theorem FFL.FirstOrder.Arithmetic.Prenex.models_pi {s : ℕ} {ξ : Type u_1} {n : ℕ} {V : Type u_4} [ORingStructure V] {f : ξ → V} (φ : Prenex 𝚺 s ξ (n + 1)) (e : Fin n → V) :
                  (Semiformula.Eval e f) ↑φ.pi ↔ ∀ (x : V), (Semiformula.Eval (x :> e) f) ↑φ
                  theorem FFL.FirstOrder.Arithmetic.Prenex.models_altUp {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} {V : Type u_4} [ORingStructure V] {f : ξ → V} (φ : Prenex Γ s ξ n) (e : Fin n → V) :
                  (Semiformula.Eval e f) ↑φ.altUp ↔ (Semiformula.Eval e f) ↑φ
                  theorem FFL.FirstOrder.Arithmetic.Prenex.models_ofΔ₀ {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} {V : Type u_4} [ORingStructure V] {f : ξ → V} (φ : HierarchySymbol.Semiformula ξ n 𝚺₀) (e : Fin n → V) :
                  (Semiformula.Eval e f) ↑(ofΔ₀ φ Γ s) ↔ (Semiformula.Eval e f) ↑φ
                  theorem FFL.FirstOrder.Arithmetic.Prenex.models_verum {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} {V : Type u_4} [ORingStructure V] {f : ξ → V} (e : Fin n → V) :
                  theorem FFL.FirstOrder.Arithmetic.Prenex.models_falsum {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} {V : Type u_4} [ORingStructure V] {f : ξ → V} (e : Fin n → V) :
                  theorem FFL.FirstOrder.Arithmetic.Prenex.models_rel {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} {V : Type u_4} [ORingStructure V] {f : ξ → V} {k : ℕ} (r : ℒₒᵣ.Rel k) (v : Fin k → ArithmeticSemiterm ξ n) (e : Fin n → V) :
                  theorem FFL.FirstOrder.Arithmetic.Prenex.models_nrel {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} {V : Type u_4} [ORingStructure V] {f : ξ → V} {k : ℕ} (r : ℒₒᵣ.Rel k) (v : Fin k → ArithmeticSemiterm ξ n) (e : Fin n → V) :
                  @[irreducible]
                  def FFL.FirstOrder.Arithmetic.Prenex.ball {ξ : Type u_1} {Γ : Polarity} {s n : ℕ} :
                  ArithmeticSemiterm ξ n → Prenex Γ s ξ (n + 1) → Prenex Γ s ξ n
                  Equations
                  Instances For
                    @[irreducible]
                    def FFL.FirstOrder.Arithmetic.Prenex.bexs {ξ : Type u_1} {Γ : Polarity} {s n : ℕ} :
                    ArithmeticSemiterm ξ n → Prenex Γ s ξ (n + 1) → Prenex Γ s ξ n
                    Equations
                    Instances For
                      @[simp]
                      theorem FFL.FirstOrder.Arithmetic.Prenex.ball_zero {Γ : Polarity} {ξ : Type u_1} {n : ℕ} {u : ArithmeticSemiterm ξ n} {φ : Prenex Γ 0 ξ (n + 1)} :
                      theorem FFL.FirstOrder.Arithmetic.Prenex.ball_succ_pi {s : ℕ} {ξ : Type u_1} {n : ℕ} {u : ArithmeticSemiterm ξ n} {φ : Prenex 𝚷 (s + 1) ξ (n + 1)} :
                      ball u φ = ∼bexs u (∼φ)
                      @[simp]
                      theorem FFL.FirstOrder.Arithmetic.Prenex.bexs_zero {Γ : Polarity} {ξ : Type u_1} {n : ℕ} {u : ArithmeticSemiterm ξ n} {φ : Prenex Γ 0 ξ (n + 1)} :
                      theorem FFL.FirstOrder.Arithmetic.Prenex.bexs_succ_sigma {s : ℕ} {ξ : Type u_1} {n : ℕ} {u : ArithmeticSemiterm ξ n} {φ : Prenex 𝚺 (s + 1) ξ (n + 1)} :
                      theorem FFL.FirstOrder.Arithmetic.Prenex.bexs_succ_pi {s : ℕ} {ξ : Type u_1} {n : ℕ} {u : ArithmeticSemiterm ξ n} {φ : Prenex 𝚷 (s + 1) ξ (n + 1)} :
                      bexs u φ = ∼ball u (∼φ)
                      @[irreducible]
                      def FFL.FirstOrder.Arithmetic.Prenex.and {ξ : Type u_1} {Γ : Polarity} {s n : ℕ} :
                      Prenex Γ s ξ n → Prenex Γ s ξ n → Prenex Γ s ξ n
                      Equations
                      Instances For
                        @[irreducible]
                        def FFL.FirstOrder.Arithmetic.Prenex.or {ξ : Type u_1} {Γ : Polarity} {s n : ℕ} :
                        Prenex Γ s ξ n → Prenex Γ s ξ n → Prenex Γ s ξ n
                        Equations
                        Instances For
                          @[instance_reducible]
                          instance FFL.FirstOrder.Arithmetic.Prenex.instHWedge {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} :
                          HWedge (Prenex Γ s ξ n) (Prenex Γ s ξ n) (Prenex Γ s ξ n)
                          Equations
                          @[instance_reducible]
                          instance FFL.FirstOrder.Arithmetic.Prenex.instHVee {Γ : Polarity} {s : ℕ} {ξ : Type u_1} {n : ℕ} :
                          HVee (Prenex Γ s ξ n) (Prenex Γ s ξ n) (Prenex Γ s ξ n)
                          Equations
                          @[simp]
                          theorem FFL.FirstOrder.Arithmetic.Prenex.and_zero {Γ : Polarity} {ξ : Type u_1} {n : ℕ} {φ ψ : Prenex Γ 0 ξ n} :
                          φ ⋏ ψ = { matrix := HierarchySymbol.Semiformula.mkSigma (↑φ ⋏ ↑ψ) ⋯ }
                          theorem FFL.FirstOrder.Arithmetic.Prenex.and_succ_pi {s : ℕ} {ξ : Type u_1} {n : ℕ} {φ ψ : Prenex 𝚷 (s + 1) ξ n} :
                          φ ⋏ ψ = ∼(∼φ ⋎ ∼ψ)
                          @[simp]
                          theorem FFL.FirstOrder.Arithmetic.Prenex.or_zero {Γ : Polarity} {ξ : Type u_1} {n : ℕ} {φ ψ : Prenex Γ 0 ξ n} :
                          φ ⋎ ψ = { matrix := HierarchySymbol.Semiformula.mkSigma (↑φ ⋎ ↑ψ) ⋯ }
                          theorem FFL.FirstOrder.Arithmetic.Prenex.or_succ_sigma {s : ℕ} {ξ : Type u_1} {n : ℕ} {φ ψ : Prenex 𝚺 (s + 1) ξ n} :
                          φ ⋎ ψ = (φ.sigmaInv ⋎ ψ.sigmaInv).sigma
                          theorem FFL.FirstOrder.Arithmetic.Prenex.or_succ_pi {s : ℕ} {ξ : Type u_1} {n : ℕ} {φ ψ : Prenex 𝚷 (s + 1) ξ n} :
                          φ ⋎ ψ = ∼(∼φ ⋏ ∼ψ)
                          def FFL.FirstOrder.Arithmetic.Prenex.exs {s : ℕ} {ξ : Type u_1} {n : ℕ} (φ : Prenex 𝚺 (s + 1) ξ (n + 1)) :
                          Prenex 𝚺 (s + 1) ξ n
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def FFL.FirstOrder.Arithmetic.Prenex.all {s : ℕ} {ξ : Type u_1} {n : ℕ} (φ : Prenex 𝚷 (s + 1) ξ (n + 1)) :
                            Prenex 𝚷 (s + 1) ξ n
                            Equations
                            Instances For
                              theorem FFL.FirstOrder.Arithmetic.Prenex.models_exists_prenex {ξ : Type u_1} {Γ Γ' : Polarity} {s n : ℕ} {φ : ArithmeticSemiformula ξ n} (h : Hierarchy Γ s φ) :
                              ∃ (φ' : Prenex Γ s ξ n), ∀ (V : Type u_5) [inst : ORingStructure V] [V↓[ℒₒᵣ] ⊧* 𝗕 Γ' s] (e : Fin n → V) (f : ξ → V), (Semiformula.Eval e f) φ ↔ (Semiformula.Eval e f) ↑φ'
                              theorem FFL.FirstOrder.Arithmetic.exists_prenex_of_hierarchy {Γ : Polarity} {s : ℕ} (T : ArithmeticTheory) [𝗕𝚺s ⪯ T] {n : ℕ} {φ : ArithmeticSemisentence n} (h : Hierarchy Γ s φ) :
                              ∃ (φ' : Prenex Γ s Empty n), T ⊢ ∀¹* (φ 🡘 ↑φ')
                              theorem FFL.FirstOrder.Arithmetic.StrictDefinable.of_definable {V : Type u_1} [ORingStructure V] {Γ Γ' : Polarity} {s k : ℕ} [V↓[ℒₒᵣ] ⊧* 𝗕 Γ' s] {P : (Fin k → V) → Prop} (hP : { Γ := Γ.coe, rank := s }.Definable P) :