Typed Formalized Semiformula/Formula #
structure
LO.Arith.Language.Semiformula
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(L : Arith.Language V)
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
(n : V)
:
Type u_1
- val : V
- prop : L.IsSemiformula n self.val
@[reducible, inline]
abbrev
LO.Arith.Language.Formula
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
(L : Arith.Language V)
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
:
Type u_1
Equations
- L.Formula = L.Semiformula 0
@[simp]
theorem
LO.Arith.Language.Semiformula.isUFormula
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula n)
:
L.IsUFormula p.val
def
LO.Arith.instLogicalConnectiveSemiformula
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
:
LogicalConnective (L.Semiformula n)
def
LO.Arith.Language.Semiformula.cast
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n n' : V}
(p : L.Semiformula n)
(eq : n = n' := by simp)
:
L.Semiformula n'
Equations
- p.cast eq = eq ▸ p
def
LO.Arith.verums
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(k : V)
:
L.Semiformula n
Equations
- LO.Arith.verums k = { val := LO.Arith.qqVerums k, prop := ⋯ }
@[simp]
theorem
LO.Arith.Language.Semiformula.val_cast
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n n' : V}
(p : L.Semiformula n)
(eq : n = n')
:
(p.cast eq).val = p.val
def
LO.Arith.Language.Semiformula.all
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula (n + 1))
:
L.Semiformula n
Equations
- p.all = { val := LO.Arith.qqAll p.val, prop := ⋯ }
def
LO.Arith.Language.Semiformula.ex
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula (n + 1))
:
L.Semiformula n
Equations
- p.ex = { val := LO.Arith.qqEx p.val, prop := ⋯ }
@[simp]
theorem
LO.Arith.Language.Semiformula.val_verum
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.val_falsum
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.val_and
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.val_or
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.val_neg
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.val_imp
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.val_all
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula (n + 1))
:
@[simp]
theorem
LO.Arith.Language.Semiformula.val_ex
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula (n + 1))
:
@[simp]
theorem
LO.Arith.Language.Semiformula.val_iff
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p q : L.Semiformula n)
:
theorem
LO.Arith.Language.Semiformula.val_inj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
{p q : L.Semiformula n}
:
theorem
LO.Arith.Language.Semiformula.ext
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
{p q : L.Semiformula n}
(h : p.val = q.val)
:
p = q
@[simp]
theorem
LO.Arith.Language.Semiformula.and_inj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
{p₁ p₂ q₁ q₂ : L.Semiformula n}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.or_inj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
{p₁ p₂ q₁ q₂ : L.Semiformula n}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.all_inj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
{p q : L.Semiformula (n + 1)}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.ex_inj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
{p q : L.Semiformula (n + 1)}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.val_verums
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n k : V}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.verums_zero
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.verums_succ
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(k : V)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.neg_verum
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.neg_falsum
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.neg_and
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.neg_or
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.neg_all
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula (n + 1))
:
@[simp]
theorem
LO.Arith.Language.Semiformula.neg_ex
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula (n + 1))
:
theorem
LO.Arith.Language.Semiformula.imp_def
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.neg_neg
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula n)
:
def
LO.Arith.Language.Semiformula.shift
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula n)
:
L.Semiformula n
Equations
- p.shift = { val := L.shift p.val, prop := ⋯ }
def
LO.Arith.Language.Semiformula.substs
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(p : L.Semiformula n)
(w : L.SemitermVec n m)
:
L.Semiformula m
@[simp]
theorem
LO.Arith.Language.Semiformula.val_shift
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula n)
:
p.shift.val = L.shift p.val
@[simp]
theorem
LO.Arith.Language.Semiformula.val_substs
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(p : L.Semiformula n)
(w : L.SemitermVec n m)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.shift_verum
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.shift_falsum
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.shift_and
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.shift_or
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.shift_all
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula (n + 1))
:
p.all.shift = p.shift.all
@[simp]
theorem
LO.Arith.Language.Semiformula.shift_ex
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula (n + 1))
:
p.ex.shift = p.shift.ex
@[simp]
theorem
LO.Arith.Language.Semiformula.neg_inj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
{p q : L.Semiformula n}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.imp_inj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
{p₁ p₂ q₁ q₂ : L.Semiformula n}
:
@[simp]
theorem
LO.Arith.Language.Semiformula.shift_neg
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.shift_imp
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.substs_verum
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(w : L.SemitermVec n m)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.substs_falsum
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(w : L.SemitermVec n m)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.substs_and
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(w : L.SemitermVec n m)
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.substs_or
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(w : L.SemitermVec n m)
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.substs_all
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(w : L.SemitermVec n m)
(p : L.Semiformula (n + 1))
:
@[simp]
theorem
LO.Arith.Language.Semiformula.substs_ex
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(w : L.SemitermVec n m)
(p : L.Semiformula (n + 1))
:
@[simp]
theorem
LO.Arith.Language.Semiformula.substs_neg
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(w : L.SemitermVec n m)
(p : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.substs_imp
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(w : L.SemitermVec n m)
(p q : L.Semiformula n)
:
@[simp]
theorem
LO.Arith.Language.Semiformula.substs_imply
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(w : L.SemitermVec n m)
(p q : L.Semiformula n)
:
Equations
- One or more equations did not get rendered due to their size.
structure
LO.Arith.Language.SemiformulaVec
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
(n : V)
:
Type u_1
- val : V
def
LO.Arith.Language.SemiformulaVec.conj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(ps : SemiformulaVec n)
:
L.Semiformula n
Equations
- ps.conj = { val := LO.Arith.qqConj ps.val, prop := ⋯ }
def
LO.Arith.Language.SemiformulaVec.disj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(ps : SemiformulaVec n)
:
L.Semiformula n
Equations
- ps.disj = { val := LO.Arith.qqDisj ps.val, prop := ⋯ }
def
LO.Arith.Language.SemiformulaVec.nth
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(ps : SemiformulaVec n)
(i : V)
(hi : i < len ps.val)
:
L.Semiformula n
Equations
- ps.nth i hi = { val := LO.Arith.nth ps.val i, prop := ⋯ }
@[simp]
theorem
LO.Arith.Language.SemiformulaVec.val_conj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(ps : SemiformulaVec n)
:
@[simp]
theorem
LO.Arith.Language.SemiformulaVec.val_disj
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(ps : SemiformulaVec n)
:
@[simp]
theorem
LO.Arith.Language.SemiformulaVec.val_nth
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(ps : SemiformulaVec n)
(i : V)
(hi : i < len ps.val)
:
theorem
LO.Arith.Language.TSemifromula.subst_eq_self
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n : V}
(w : L.SemitermVec n n)
(p : L.Semiformula n)
(H : ∀ (i : V) (hi : i < n), w.nth i hi = L.bvar i hi)
:
@[simp]
theorem
LO.Arith.Language.TSemifromula.subst_eq_self₁
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
(p : L.Semiformula (0 + 1))
:
@[simp]
theorem
LO.Arith.Language.TSemifromula.subst_nil_eq_self
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{p : L.Semiformula 0}
(w : L.SemitermVec 0 0)
:
theorem
LO.Arith.Language.TSemifromula.shift_substs
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m : V}
(w : L.SemitermVec n m)
(p : L.Semiformula n)
:
theorem
LO.Arith.Language.TSemifromula.substs_substs
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{L : Arith.Language V}
{pL : FirstOrder.Arith.LDef}
[L.Defined pL]
{n m l : V}
(v : L.SemitermVec m l)
(w : L.SemitermVec n m)
(p : L.Semiformula n)
:
def
LO.Arith.Language.Semiterm.equals
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t u : ⌜ℒₒᵣ⌝.Semiterm n)
:
⌜ℒₒᵣ⌝.Semiformula n
def
LO.Arith.Language.Semiterm.notEquals
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t u : ⌜ℒₒᵣ⌝.Semiterm n)
:
⌜ℒₒᵣ⌝.Semiformula n
def
LO.Arith.Language.Semiterm.lessThan
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t u : ⌜ℒₒᵣ⌝.Semiterm n)
:
⌜ℒₒᵣ⌝.Semiformula n
def
LO.Arith.Language.Semiterm.notLessThan
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t u : ⌜ℒₒᵣ⌝.Semiterm n)
:
⌜ℒₒᵣ⌝.Semiformula n
Equations
- LO.Arith.«term_='_» = Lean.ParserDescr.trailingNode `LO.Arith.«term_='_» 75 76 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " =' ") (Lean.ParserDescr.cat `term 76))
Equations
- LO.Arith.«term_≠'_» = Lean.ParserDescr.trailingNode `LO.Arith.«term_≠'_» 75 76 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≠' ") (Lean.ParserDescr.cat `term 76))
Equations
- LO.Arith.«term_<'_» = Lean.ParserDescr.trailingNode `LO.Arith.«term_<'_» 75 76 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " <' ") (Lean.ParserDescr.cat `term 76))
Equations
- LO.Arith.«term_≮'_» = Lean.ParserDescr.trailingNode `LO.Arith.«term_≮'_» 75 76 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≮' ") (Lean.ParserDescr.cat `term 76))
def
LO.Arith.Language.Semiformula.ball
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t : ⌜ℒₒᵣ⌝.Semiterm n)
(p : ⌜ℒₒᵣ⌝.Semiformula (n + 1))
:
⌜ℒₒᵣ⌝.Semiformula n
Equations
- LO.Arith.Language.Semiformula.ball t p = ((⌜ℒₒᵣ⌝.bvar 0 ⋯).notLessThan t.bShift ⋎ p).all
def
LO.Arith.Language.Semiformula.bex
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t : ⌜ℒₒᵣ⌝.Semiterm n)
(p : ⌜ℒₒᵣ⌝.Semiformula (n + 1))
:
⌜ℒₒᵣ⌝.Semiformula n
Equations
- LO.Arith.Language.Semiformula.bex t p = ((⌜ℒₒᵣ⌝.bvar 0 ⋯).lessThan t.bShift ⋏ p).ex
@[simp]
theorem
LO.Arith.Formalized.val_equals
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t u : ⌜ℒₒᵣ⌝.Semiterm n)
:
@[simp]
theorem
LO.Arith.Formalized.val_notEquals
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t u : ⌜ℒₒᵣ⌝.Semiterm n)
:
@[simp]
theorem
LO.Arith.Formalized.val_lessThan
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t u : ⌜ℒₒᵣ⌝.Semiterm n)
:
@[simp]
theorem
LO.Arith.Formalized.val_notLessThan
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t u : ⌜ℒₒᵣ⌝.Semiterm n)
:
@[simp]
theorem
LO.Arith.Formalized.neg_equals
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t₁ t₂ : ⌜ℒₒᵣ⌝.Semiterm n)
:
@[simp]
theorem
LO.Arith.Formalized.neg_notEquals
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t₁ t₂ : ⌜ℒₒᵣ⌝.Semiterm n)
:
@[simp]
theorem
LO.Arith.Formalized.neg_lessThan
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t₁ t₂ : ⌜ℒₒᵣ⌝.Semiterm n)
:
@[simp]
theorem
LO.Arith.Formalized.neg_notLessThan
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t₁ t₂ : ⌜ℒₒᵣ⌝.Semiterm n)
:
@[simp]
theorem
LO.Arith.Formalized.shift_equals
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t₁ t₂ : ⌜ℒₒᵣ⌝.Semiterm n)
:
(t₁.equals t₂).shift = t₁.shift.equals t₂.shift
@[simp]
theorem
LO.Arith.Formalized.shift_notEquals
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t₁ t₂ : ⌜ℒₒᵣ⌝.Semiterm n)
:
(t₁.notEquals t₂).shift = t₁.shift.notEquals t₂.shift
@[simp]
theorem
LO.Arith.Formalized.shift_lessThan
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t₁ t₂ : ⌜ℒₒᵣ⌝.Semiterm n)
:
(t₁.lessThan t₂).shift = t₁.shift.lessThan t₂.shift
@[simp]
theorem
LO.Arith.Formalized.shift_notLessThan
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t₁ t₂ : ⌜ℒₒᵣ⌝.Semiterm n)
:
(t₁.notLessThan t₂).shift = t₁.shift.notLessThan t₂.shift
theorem
LO.Arith.Formalized.neg_ball
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t : ⌜ℒₒᵣ⌝.Semiterm n)
(p : ⌜ℒₒᵣ⌝.Semiformula (n + 1))
:
theorem
LO.Arith.Formalized.neg_bex
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t : ⌜ℒₒᵣ⌝.Semiterm n)
(p : ⌜ℒₒᵣ⌝.Semiformula (n + 1))
:
@[simp]
theorem
LO.Arith.Formalized.shifts_ball
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t : ⌜ℒₒᵣ⌝.Semiterm n)
(p : ⌜ℒₒᵣ⌝.Semiformula (n + 1))
:
(Language.Semiformula.ball t p).shift = Language.Semiformula.ball t.shift p.shift
@[simp]
theorem
LO.Arith.Formalized.shifts_bex
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n : V}
(t : ⌜ℒₒᵣ⌝.Semiterm n)
(p : ⌜ℒₒᵣ⌝.Semiformula (n + 1))
:
(Language.Semiformula.bex t p).shift = Language.Semiformula.bex t.shift p.shift
@[simp]
theorem
LO.Arith.Formalized.substs_ball
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n m : V}
(w : ⌜ℒₒᵣ⌝.SemitermVec n m)
(t : ⌜ℒₒᵣ⌝.Semiterm n)
(p : ⌜ℒₒᵣ⌝.Semiformula (n + 1))
:
(Language.Semiformula.ball t p)^/[w] = Language.Semiformula.ball (t^ᵗ/[w]) (p^/[w.q])
@[simp]
theorem
LO.Arith.Formalized.substs_bex
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n m : V}
(w : ⌜ℒₒᵣ⌝.SemitermVec n m)
(t : ⌜ℒₒᵣ⌝.Semiterm n)
(p : ⌜ℒₒᵣ⌝.Semiformula (n + 1))
:
(Language.Semiformula.bex t p)^/[w] = Language.Semiformula.bex (t^ᵗ/[w]) (p^/[w.q])
def
LO.Arith.Formalized.tSubstItr
{V : Type u_1}
[ORingStruc V]
[V ⊧ₘ* 𝐈𝚺₁]
{n m : V}
(w : ⌜ℒₒᵣ⌝.SemitermVec n m)
(p : ⌜ℒₒᵣ⌝.Semiformula (n + 1))
(k : V)
:
Equations
- LO.Arith.Formalized.tSubstItr w p k = { val := LO.Arith.Formalized.substItr w.val p.val k, prop := ⋯ }