theorem
LO.Arith.numeral_add_numeral
{M : Type u_1}
[ORingStruc M]
[M β§β* πβ]
(n m : β)
:
ORingStruc.numeral n + ORingStruc.numeral m = ORingStruc.numeral (n + m)
theorem
LO.Arith.numeral_mul_numeral
{M : Type u_1}
[ORingStruc M]
[M β§β* πβ]
(n m : β)
:
ORingStruc.numeral n * ORingStruc.numeral m = ORingStruc.numeral (n * m)
theorem
LO.Arith.numeral_ne_numeral_of_ne
{M : Type u_1}
[ORingStruc M]
[M β§β* πβ]
{n m : β}
(h : n β m)
:
theorem
LO.Arith.lt_numeral_iff
{M : Type u_1}
[ORingStruc M]
[M β§β* πβ]
{x : M}
{n : β}
:
x < ORingStruc.numeral n β β (i : Fin n), x = ORingStruc.numeral βi
@[simp]
theorem
LO.Arith.numeral_inj_iff
{M : Type u_1}
[ORingStruc M]
[M β§β* πβ]
{n m : β}
:
ORingStruc.numeral n = ORingStruc.numeral m β n = m
@[simp]
theorem
LO.Arith.numeral_lt_numeral_iff
{M : Type u_1}
[ORingStruc M]
[M β§β* πβ]
{n m : β}
:
ORingStruc.numeral n < ORingStruc.numeral m β n < m
theorem
LO.Arith.val_numeral
{M : Type u_1}
[ORingStruc M]
[M β§β* πβ]
{ΞΎ : Type u_2}
{n : β}
(t : FirstOrder.Semiterm ββα΅£ ΞΎ n)
(v : Fin n β β)
(f : ΞΎ β β)
:
FirstOrder.Semiterm.valm M (fun (x : Fin n) => ORingStruc.numeral (v x)) (fun (x : ΞΎ) => ORingStruc.numeral (f x)) t = ORingStruc.numeral (FirstOrder.Semiterm.valm β v f t)
theorem
LO.Arith.bold_sigma_one_completeness
{M : Type u_1}
[ORingStruc M]
[M β§β* πβ]
{ΞΎ : Type u_2}
{n : β}
{Ο : FirstOrder.Semiformula ββα΅£ ΞΎ n}
(hp : FirstOrder.Arith.Hierarchy πΊ 1 Ο)
{e : Fin n β β}
{f : ΞΎ β β}
:
(FirstOrder.Semiformula.Evalm β e f) Ο β
(FirstOrder.Semiformula.Evalm M (fun (x : Fin n) => ORingStruc.numeral (e x)) fun (x : ΞΎ) => ORingStruc.numeral (f x))
Ο
theorem
LO.Arith.sigma_one_completeness
{M : Type u_1}
[ORingStruc M]
[M β§β* πβ]
{Ο : FirstOrder.Sentence ββα΅£}
(hΟ : FirstOrder.Arith.Hierarchy πΊ 1 Ο)
: