LeanPool.FormalizationOfBoundedArithmetic.Semantics #
Discharge a realize_* lemma whose displayed form is a relabelEquiv.
The target is the Formula.* reshaping definition being unfolded.
Equations
- One or more equations did not get rendered due to their size.
Instances For
peel_iAlls' k rewrites (iAlls' φ).Realize by peeling exactly
k quantifiers (realize_all; intro).
Equations
- One or more equations did not get rendered due to their size.
Instances For
peel_iExs' k rewrites (iExs' φ).Realize by peeling exactly
k quantifiers (realize_ex; intro).
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
FirstOrder.Language.Formula.realize_iAlls'.Empty
{L : Language}
{M : Type u_1}
[L.Structure M]
{a : Type}
(phi : L.Formula (a ⊕ _root_.Empty))
{v : a → M}
:
theorem
FirstOrder.Language.Formula.realize_iAlls'.Vars1
{L : Language}
{M : Type u_1}
[L.Structure M]
{a : Type}
{n1 : FvName}
(phi : L.Formula (a ⊕ _root_.Vars1 n1))
{v : a → M}
:
theorem
FirstOrder.Language.Formula.realize_iAlls'.Vars2
{L : Language}
{M : Type u_1}
[L.Structure M]
{a : Type}
{n1 n2 : FvName}
(phi : L.Formula (a ⊕ _root_.Vars2 n1 n2))
{v : a → M}
:
theorem
FirstOrder.Language.Formula.realize_iAlls'.Vars3
{L : Language}
{M : Type u_1}
[L.Structure M]
{a : Type}
{n1 n2 n3 : FvName}
(phi : L.Formula (a ⊕ _root_.Vars3 n1 n2 n3))
{v : a → M}
:
theorem
FirstOrder.Term.realize_isnum
{num str : Type u}
[Language.ZambellaModel num str]
{a : Type}
{t : Language.zambella.Term (a ⊕ Fin 0)}
{v : a → num ⊕ str}
:
theorem
FirstOrder.Term.realize_isstr
{num str : Type u}
[Language.ZambellaModel num str]
{a : Type}
{t : Language.zambella.Term (a ⊕ Fin 0)}
{v : a → num ⊕ str}
:
theorem
FirstOrder.Term.realize_in
{num str : Type u}
[Language.ZambellaModel num str]
{a : Type}
{n : ℕ}
{t1 t2 : Language.zambella.Term (a ⊕ Fin n)}
{v : a → num ⊕ str}
{xs : Fin n → num ⊕ str}
:
(«in» t1 t2).Realize v xs ↔ Language.Term.realize (Sum.elim v xs) t1 ∈ Language.Term.realize (Sum.elim v xs) t2
theorem
FirstOrder.Language.Formula.realize_in
{num str : Type u}
[ZambellaModel num str]
{a : Type}
{t1 t2 : zambella.Term (a ⊕ Fin 0)}
{v : a → num ⊕ str}
:
Realize (Term.in t1 t2) v ↔ Term.realize (Sum.elim v default) t1 ∈ Term.realize (Sum.elim v default) t2
theorem
FirstOrder.Language.Formula.realize_notin
{num str : Type u}
[ZambellaModel num str]
{a : Type}
{t1 t2 : zambella.Term (a ⊕ Fin 0)}
{v : a → num ⊕ str}
{xs : Fin 0 → num ⊕ str}
:
(Term.notin t1 t2).Realize v xs ↔ Term.realize (Sum.elim v default) t1 ∉ Term.realize (Sum.elim v default) t2
theorem
FirstOrder.Language.Formula.realize_iBdAll'.Vars1
{a : Type}
{n1 : FvName}
{num str : Type u_2}
[inst1 : ZambellaModel num str]
(phi : zambella.Formula (a ⊕ _root_.Vars1 n1))
{t : zambella.Term (a ⊕ Fin 0)}
{v : a → num ⊕ str}
:
(iBdAll' t phi).Realize v ↔ ∀ x ≤ Term.realize (Sum.elim v default) t,
phi.Realize
(Sum.elim v fun (fv : _root_.Vars1 n1) =>
match fv with
| Vars1.fv1 => x)
theorem
FirstOrder.Language.Formula.realize_iBdAllLt'.Vars1
{L : Language}
{a : Type}
{n1 : FvName}
{M : Type u_2}
[L.IsOrdered]
[L.Structure M]
[Preorder M]
[h : L.OrderedStructure M]
(phi : L.Formula (a ⊕ _root_.Vars1 n1))
{t : L.Term (a ⊕ Fin 0)}
{v : a → M}
:
(iBdAllLt' t phi).Realize v ↔ ∀ x < Term.realize (Sum.elim v default) t,
phi.Realize
(Sum.elim v fun (fv : _root_.Vars1 n1) =>
match fv with
| Vars1.fv1 => x)
theorem
FirstOrder.Language.Formula.realize_iBdAllNum'.Vars1
{a : Type}
{n1 : FvName}
{num str : Type u_2}
[inst1 : ZambellaModel num str]
(phi : zambella.Formula (a ⊕ _root_.Vars1 n1))
{t : zambella.Term (a ⊕ Fin 0)}
{v : a → num ⊕ str}
:
(iBdAllNum' t phi).Realize v ↔ ∀ x ≤ Term.realize (Sum.elim v default) t,
x.isLeft = true →
phi.Realize
(Sum.elim v fun (fv : _root_.Vars1 n1) =>
match fv with
| Vars1.fv1 => x)