Documentation

Foundation.FirstOrder.Arith.Representation

theorem Part.unit_dom_iff (x : Part Unit) :
x.Dom ↔ () ∈ x
theorem Mathlib.List.Vector.cons_get {α : Type u_1} {k : ℕ} (a : α) (v : List.Vector α k) :
(a ::ᵥ v).get = a :> v.get
theorem Nat.Partrec.projection {f : ℕ →. ℕ} (hf : Partrec f) (unif : ∀ {m n₁ n₂ a₁ a₂ : ℕ}, a₁ ∈ f (Nat.pair m n₁) → a₂ ∈ f (Nat.pair m n₂) → a₁ = a₂) :
∃ (g : ℕ →. ℕ), Partrec g ∧ ∀ (a m : ℕ), a ∈ g m ↔ ∃ (z : ℕ), a ∈ f (Nat.pair m z)
theorem Partrec.projection {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Primcodable α] [Primcodable β] [Primcodable γ] {f : α → β →. γ} (hf : Partrec₂ f) (unif : ∀ {a : α} {b₁ b₂ : β} {c₁ c₂ : γ}, c₁ ∈ f a b₁ → c₂ ∈ f a b₂ → c₁ = c₂) :
∃ (g : α →. γ), Partrec g ∧ ∀ (c : γ) (a : α), c ∈ g a ↔ ∃ (b : β), c ∈ f a b
@[simp]
theorem RePred.const {α : Type u_1} [Primcodable α] (p : Prop) :
RePred fun (x : α) => p
theorem RePred.iff {α : Type u_1} [Primcodable α] {p : α → Prop} :
RePred p ↔ ∃ (f : α →. Unit), Partrec f ∧ p = fun (x : α) => (f x).Dom
theorem RePred.iff' {α : Type u_1} [Primcodable α] {p : α → Prop} :
RePred p ↔ ∃ (f : α →. Unit), Partrec f ∧ ∀ (x : α), p x ↔ (f x).Dom
theorem RePred.and {α : Type u_1} [Primcodable α] {p q : α → Prop} (hp : RePred p) (hq : RePred q) :
RePred fun (x : α) => p x ∧ q x
theorem RePred.or {α : Type u_1} [Primcodable α] {p q : α → Prop} (hp : RePred p) (hq : RePred q) :
RePred fun (x : α) => p x ∨ q x
theorem RePred.projection {α : Type u_1} {β : Type u_2} [Primcodable α] [Primcodable β] {p : α × β → Prop} (hp : RePred p) :
RePred fun (x : α) => ∃ (y : β), p (x, y)
theorem RePred.comp {α : Type u_1} {β : Type u_2} [Primcodable α] [Primcodable β] {f : α → β} (hf : Computable f) {p : β → Prop} (hp : RePred p) :
RePred fun (x : α) => p (f x)
theorem LO.FirstOrder.Arith.term_primrec {ξ : Type u_1} {k : ℕ} {f : ξ → ℕ} (t : Semiterm ℒₒᵣ ξ k) :
Primrec fun (v : List.Vector ℕ k) => Semiterm.valm ℕ v.get f t
theorem LO.FirstOrder.Arith.sigma1_re {ξ : Type u_1} (ε : ξ → ℕ) {k : ℕ} {φ : Semiformula ℒₒᵣ ξ k} (hp : Hierarchy 𝚺 1 φ) :
RePred fun (v : List.Vector ℕ k) => (Semiformula.Evalm ℕ v.get ε) φ
Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem LO.FirstOrder.Arith.natCast_nat (n : ℕ) :
    ↑n = n
    theorem LO.FirstOrder.Arith.models_code {k : ℕ} {c : Nat.ArithPart₁.Code k} {f : List.Vector ℕ k →. ℕ} (hc : c.eval f) (y : ℕ) (v : Fin k → ℕ) :
    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
        theorem LO.FirstOrder.Arith.codeOfRePred_spec {p : ℕ → Prop} (hp : RePred p) {x : ℕ} :
        ℕ ⊧/![x] (codeOfRePred p) ↔ p x
        theorem LO.FirstOrder.Arith.re_complete {T : Theory ℒₒᵣ} [𝐑₀ ≼ T] [Sigma1Sound T] {p : ℕ → Prop} (hp : RePred p) {x : ℕ} :
        p x ↔ T ⊢! ↑((codeOfRePred p)/[↑x])