@[simp]
instance
FFL.FirstOrder.Tarski.Structure.Eq.models_eq
(L : Language)
[Semiformula.Operator.Eq L]
(M : Type u_2)
[Nonempty M]
[Structure L M]
[Structure.Eq L M]
:
instance
FFL.FirstOrder.Tarski.Structure.Eq.models_eqAxiom'
(L : Language)
[Semiformula.Operator.Eq L]
(M : Type u_2)
[Nonempty M]
[Structure L M]
[Structure.Eq L M]
:
def
FFL.FirstOrder.Tarski.Structure.Eq.eqv
(L : Language)
[Semiformula.Operator.Eq L]
{M : Type u_2}
[Structure L M]
(a b : M)
:
Equations
Instances For
theorem
FFL.FirstOrder.Tarski.Structure.Eq.eqv_equivalence
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u_2}
[Nonempty M]
[Structure L M]
[H : Mβ[L] β§* ππ€ L]
:
Equivalence (eqv L)
def
FFL.FirstOrder.Tarski.Structure.Eq.eqvSetoid
(L : Language)
[Semiformula.Operator.Eq L]
(M : Type u_2)
[Nonempty M]
[Structure L M]
[H : Mβ[L] β§* ππ€ L]
:
Setoid M
Equations
- FFL.FirstOrder.Tarski.Structure.Eq.eqvSetoid L M = { r := FFL.FirstOrder.Tarski.Structure.Eq.eqv L, iseqv := β― }
Instances For
def
FFL.FirstOrder.Tarski.Structure.Eq.QuotEq.func
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u_2}
[Nonempty M]
[Structure L M]
[H : Mβ[L] β§* ππ€ L]
β¦k : ββ¦
(f : L.Func k)
(v : Fin k β QuotEq L M)
:
QuotEq L M
Equations
- FFL.FirstOrder.Tarski.Structure.Eq.QuotEq.func f v = Quotient.liftVec (fun (x : Fin k β M) => β¦FFL.FirstOrder.Tarski.Structure.func f xβ§) β― v
Instances For
@[instance_reducible]
instance
FFL.FirstOrder.Tarski.Structure.Eq.QuotEq.struc
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u_2}
[Nonempty M]
[Structure L M]
[H : Mβ[L] β§* ππ€ L]
:
theorem
FFL.FirstOrder.Tarski.Structure.Eq.QuotEq.val_mk
{L : Language}
{ΞΎ : Type u_1}
[Semiformula.Operator.Eq L]
{M : Type u_2}
[Nonempty M]
[Structure L M]
[H : Mβ[L] β§* ππ€ L]
{n : β}
{bv : Fin n β M}
{fv : ΞΎ β M}
(t : Semiterm L ΞΎ n)
:
Semiterm.val (fun (x : Fin n) => β¦bv xβ§) (fun (x : ΞΎ) => β¦fv xβ§) t = β¦Semiterm.val bv fv tβ§
theorem
FFL.FirstOrder.Tarski.Structure.Eq.QuotEq.eval_mk
{L : Language}
{ΞΎ : Type u_1}
[Semiformula.Operator.Eq L]
{M : Type u_2}
[Nonempty M]
[Structure L M]
[H : Mβ[L] β§* ππ€ L]
{n : β}
{bv : Fin n β M}
{fv : ΞΎ β M}
{Ο : Semiformula L ΞΎ n}
:
(Semiformula.Eval (fun (x : Fin n) => β¦bv xβ§) fun (x : ΞΎ) => β¦fv xβ§) Ο β (Semiformula.Eval bv fv) Ο
instance
FFL.FirstOrder.Tarski.Structure.Eq.QuotEq.structureEq
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u_2}
[Nonempty M]
[Structure L M]
[H : Mβ[L] β§* ππ€ L]
:
Structure.Eq L (QuotEq L M)
theorem
FFL.FirstOrder.consequence_iff_eq_of_models_eq
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
(hEq : β (M : Type v) [inst : Nonempty M] [inst_1 : Tarski.Structure L M], Mβ[L] β§* T β Mβ[L] β§* ππ€ L)
{Ο : Sentence L}
:
T β¨[Tarski.Struc L] Ο β β (M : Type v) [inst : Nonempty M] [inst_1 : Tarski.Structure L M] [Tarski.Structure.Eq L M], Mβ[L] β§* T β Mβ[L] β§ Ο
Consequence can be tested on equality structures when all models satisfy the equality axioms. This is a routine consequence of the quotient-model construction.
theorem
FFL.FirstOrder.satisfiable_iff_eq_of_models_eq
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
(hEq : β (M : Type v) [inst : Nonempty M] [inst_1 : Tarski.Structure L M], Mβ[L] β§* T β Mβ[L] β§* ππ€ L)
:
Semantics.Satisfiable (Tarski.Struc L) T β β (M : Type v) (x : Nonempty M) (x_1 : Tarski.Structure L M) (_ : Tarski.Structure.Eq L M), Mβ[L] β§* T
Satisfiability has an equality-structure witness when all models satisfy the equality axioms. This is a routine consequence of the quotient-model construction.
@[simp]
theorem
FFL.FirstOrder.Semiformula.eval_existsUnique
{L : Language}
{ΞΎ : Type u_1}
[Operator.Eq L]
{M : Type u_2}
[s : Tarski.Structure L M]
[Tarski.Structure.Eq L M]
{n : β}
{e : Fin n β M}
{Ξ΅ : ΞΎ β M}
{Ο : Semiformula L ΞΎ (n + 1)}
: