theorem
FFL.FirstOrder.Arithmetic.term_primrec
{ξ : Type u_1}
{k : ℕ}
{f : ξ → ℕ}
(t : ArithmeticSemiterm ξ k)
:
Primrec fun (v : List.Vector ℕ k) => Semiterm.val v.get f t
theorem
FFL.FirstOrder.Arithmetic.primrecPred_ball
{ξ : Type u_1}
(ε : ξ → ℕ)
{n : ℕ}
(t : ArithmeticSemiterm ξ n)
{ψ : ArithmeticSemiformula ξ (n + 1)}
(h : PrimrecPred fun (v : List.Vector ℕ (n + 1)) => (Semiformula.Eval v.get ε) ψ)
:
PrimrecPred fun (v : List.Vector ℕ n) => ∀ x < Semiterm.val v.get ε t, (Semiformula.Eval (x :> v.get) ε) ψ
theorem
FFL.FirstOrder.Arithmetic.primrecPred_bexs
{ξ : Type u_1}
(ε : ξ → ℕ)
{n : ℕ}
(t : ArithmeticSemiterm ξ n)
{ψ : ArithmeticSemiformula ξ (n + 1)}
(h : PrimrecPred fun (v : List.Vector ℕ (n + 1)) => (Semiformula.Eval v.get ε) ψ)
:
PrimrecPred fun (v : List.Vector ℕ n) => ∃ x < Semiterm.val v.get ε t, (Semiformula.Eval (x :> v.get) ε) ψ
theorem
FFL.FirstOrder.Arithmetic.delta0_primrec
{ξ : Type u_1}
(ε : ξ → ℕ)
{k : ℕ}
{φ : ArithmeticSemiformula ξ k}
(hp : Hierarchy 𝚺 0 φ)
:
PrimrecPred fun (v : List.Vector ℕ k) => (Semiformula.Eval v.get ε) φ
theorem
FFL.FirstOrder.Arithmetic.sigma1_re
{ξ : Type u_1}
(ε : ξ → ℕ)
{k : ℕ}
{φ : ArithmeticSemiformula ξ k}
(hp : Hierarchy 𝚺 1 φ)
:
REPred fun (v : List.Vector ℕ k) => (Semiformula.Eval v.get ε) φ
def
FFL.FirstOrder.Arithmetic.codeAux
{k : ℕ}
:
Nat.ArithPart₁.Code k → ArithmeticFormula (Fin (k + 1))
Equations
- One or more equations did not get rendered due to their size.
- FFL.FirstOrder.Arithmetic.codeAux (Nat.ArithPart₁.Code.zero k) = (“!!(FFL.FirstOrder.Semiterm.fvar 0) = 0”)
- FFL.FirstOrder.Arithmetic.codeAux (Nat.ArithPart₁.Code.one k) = (“!!(FFL.FirstOrder.Semiterm.fvar 0) = 1”)
- FFL.FirstOrder.Arithmetic.codeAux (Nat.ArithPart₁.Code.add i j) = (“!!(FFL.FirstOrder.Semiterm.fvar 0) = (!!(FFL.FirstOrder.Semiterm.fvar i.succ) + !!(FFL.FirstOrder.Semiterm.fvar j.succ))”)
- FFL.FirstOrder.Arithmetic.codeAux (Nat.ArithPart₁.Code.mul i j) = (“!!(FFL.FirstOrder.Semiterm.fvar 0) = (!!(FFL.FirstOrder.Semiterm.fvar i.succ) * !!(FFL.FirstOrder.Semiterm.fvar j.succ))”)
- FFL.FirstOrder.Arithmetic.codeAux (Nat.ArithPart₁.Code.proj i) = (“!!(FFL.FirstOrder.Semiterm.fvar 0) = !!(FFL.FirstOrder.Semiterm.fvar i.succ)”)
Instances For
def
FFL.FirstOrder.Arithmetic.code
{k : ℕ}
(c : Nat.ArithPart₁.Code k)
:
ArithmeticSemisentence (k + 1)
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
FFL.FirstOrder.Arithmetic.models_code
{k : ℕ}
{c : Nat.ArithPart₁.Code k}
{f : List.Vector ℕ k →. ℕ}
(hc : c.eval f)
(y : ℕ)
(v : Fin k → ℕ)
:
noncomputable def
FFL.FirstOrder.Arithmetic.codeOfPartrec'
{k : ℕ}
(f : List.Vector ℕ k →. ℕ)
:
ArithmeticSemisentence (k + 1)
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
FFL.FirstOrder.Arithmetic.codeOfPartrec'_spec
{k : ℕ}
{f : List.Vector ℕ k →. ℕ}
(hf : Nat.Partrec' f)
{y : ℕ}
{v : Fin k → ℕ}
:
theorem
FFL.FirstOrder.Arithmetic.code_uniq
{M : Type u_1}
[ORingStructure M]
[M↓[ℒₒᵣ] ⊧* 𝗣𝗔⁻]
{k : ℕ}
{c : Nat.ArithPart₁.Code k}
{v : Fin k → M}
{z z' : M}
:
(Semiformula.Evalb (z :> v)) (code c) → (Semiformula.Evalb (z' :> v)) (code c) → z = z'
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
FFL.FirstOrder.Arithmetic.rePred_weak_representation
{T : ArithmeticTheory}
[𝗥₀ ⪯ T]
[T.SoundOnHierarchy 𝚺 1]
{p : ℕ → Prop}
(hp : REPred p)
{x : ℕ}
:
Weak representation of a r.e. predicate
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
FFL.FirstOrder.Arithmetic.codeOfComputablePred_sigma1
(p : ℕ → Prop)
:
Hierarchy 𝚺 1 (codeOfComputablePred p)
theorem
FFL.FirstOrder.Arithmetic.codeOfComputablePred_provable
{p : ℕ → Prop}
{T : ArithmeticTheory}
{x : ℕ}
[𝗥₀ ⪯ T]
(hp : ComputablePred p)
(h : p x)
:
Positive representation of a computable predicate.
theorem
FFL.FirstOrder.Arithmetic.codeOfComputablePred_provable_neg
{p : ℕ → Prop}
{T : ArithmeticTheory}
{x : ℕ}
[𝗣𝗔⁻ ⪯ T]
(hp : ComputablePred p)
(h : ¬p x)
:
Negative representation of a computable predicate.