- refl {L : Language} [Semiformula.Operator.Eq L] : 𝐄𝐐 (“!!(Semiterm.fvar 0) = !!(Semiterm.fvar 0)”)
- symm {L : Language} [Semiformula.Operator.Eq L] : 𝐄𝐐 (“(!!(Semiterm.fvar 0) = !!(Semiterm.fvar 1) → !!(Semiterm.fvar 1) = !!(Semiterm.fvar 0))”)
- trans {L : Language} [Semiformula.Operator.Eq L] : 𝐄𝐐 (“(!!(Semiterm.fvar 0) = !!(Semiterm.fvar 1) → (!!(Semiterm.fvar 1) = !!(Semiterm.fvar 2) → !!(Semiterm.fvar 0) = !!(Semiterm.fvar 2)))”)
- funcExt {L : Language} [Semiformula.Operator.Eq L] {k : ℕ} (f : L.Func k) : 𝐄𝐐 (“(!(Matrix.conj fun (i : Fin k) => “!!(Semiterm.fvar ↑i) = !!(Semiterm.fvar (k + ↑i))”) → !!(Semiterm.func f fun (i : Fin k) => Semiterm.fvar ↑i) = !!(Semiterm.func f fun (i : Fin k) => Semiterm.fvar (k + ↑i)))”)
- relExt {L : Language} [Semiformula.Operator.Eq L] {k : ℕ} (r : L.Rel k) : 𝐄𝐐 ((Matrix.conj fun (i : Fin k) => “!!(Semiterm.fvar ↑i) = !!(Semiterm.fvar (k + ↑i))”) ➝ (Semiformula.rel r fun (i : Fin k) => Semiterm.fvar ↑i) ➝ Semiformula.rel r fun (i : Fin k) => Semiterm.fvar (k + ↑i))
Instances For
Equations
- LO.FirstOrder.Theory.«term𝐄𝐐» = Lean.ParserDescr.node `LO.FirstOrder.Theory.«term𝐄𝐐» 1024 (Lean.ParserDescr.symbol "𝐄𝐐")
Instances For
@[simp]
theorem
LO.FirstOrder.Structure.Eq.models_eqAxiom
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u}
[Nonempty M]
[Structure L M]
[Structure.Eq L M]
:
instance
LO.FirstOrder.Structure.Eq.models_eqAxiom'
(L : Language)
[Semiformula.Operator.Eq L]
(M : Type u)
[Nonempty M]
[Structure L M]
[Structure.Eq L M]
:
def
LO.FirstOrder.Structure.Eq.eqv
(L : Language)
[Semiformula.Operator.Eq L]
{M : Type u}
[Structure L M]
(a b : M)
:
Equations
- LO.FirstOrder.Structure.Eq.eqv L a b = op(=).val ![a, b]
Instances For
theorem
LO.FirstOrder.Structure.Eq.eqv_refl
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u}
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
(a : M)
:
eqv L a a
theorem
LO.FirstOrder.Structure.Eq.eqv_equivalence
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u}
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
:
Equivalence (eqv L)
def
LO.FirstOrder.Structure.Eq.eqvSetoid
(L : Language)
[Semiformula.Operator.Eq L]
(M : Type u)
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
:
Setoid M
Equations
- LO.FirstOrder.Structure.Eq.eqvSetoid L M = { r := LO.FirstOrder.Structure.Eq.eqv L, iseqv := ⋯ }
Instances For
def
LO.FirstOrder.Structure.Eq.QuotEq
(L : Language)
[Semiformula.Operator.Eq L]
(M : Type u)
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
:
Type u
Equations
Instances For
def
LO.FirstOrder.Structure.Eq.QuotEq.func
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u}
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
⦃k : ℕ⦄
(f : L.Func k)
(v : Fin k → QuotEq L M)
:
QuotEq L M
Equations
- LO.FirstOrder.Structure.Eq.QuotEq.func f v = Quotient.liftVec (fun (x : Fin k → M) => ⟦LO.FirstOrder.Structure.func f x⟧) ⋯ v
Instances For
instance
LO.FirstOrder.Structure.Eq.QuotEq.struc
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u}
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
:
Equations
theorem
LO.FirstOrder.Structure.Eq.QuotEq.funk_mk
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u}
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
{k : ℕ}
(f : L.Func k)
(v : Fin k → M)
:
(Structure.func f fun (i : Fin k) => ⟦v i⟧) = ⟦Structure.func f v⟧
theorem
LO.FirstOrder.Structure.Eq.QuotEq.rel_mk
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u}
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
{k : ℕ}
(r : L.Rel k)
(v : Fin k → M)
:
(Structure.rel r fun (i : Fin k) => ⟦v i⟧) ↔ Structure.rel r v
theorem
LO.FirstOrder.Structure.Eq.QuotEq.eval_mk
{L : Language}
{μ : Type u_1}
[Semiformula.Operator.Eq L]
{M : Type u}
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
{n : ℕ}
{e : Fin n → M}
{ε : μ → M}
{φ : Semiformula L μ n}
:
(Semiformula.Evalm (QuotEq L M) (fun (i : Fin n) => ⟦e i⟧) fun (i : μ) => ⟦ε i⟧) φ ↔ (Semiformula.Evalm M e ε) φ
theorem
LO.FirstOrder.Structure.Eq.QuotEq.eval_mk₀
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u}
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
{ξ : Type u_2}
{ε : ξ → M}
{φ : Formula L ξ}
:
(Semiformula.Evalfm (QuotEq L M) fun (i : ξ) => ⟦ε i⟧) φ ↔ (Semiformula.Evalfm M ε) φ
theorem
LO.FirstOrder.Structure.Eq.QuotEq.models_iff
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u}
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
{φ : SyntacticFormula L}
:
instance
LO.FirstOrder.Structure.Eq.QuotEq.structureEq
{L : Language}
[Semiformula.Operator.Eq L]
{M : Type u}
[Nonempty M]
[Structure L M]
[H : M ⊧ₘ* 𝐄𝐐]
:
Structure.Eq L (QuotEq L M)
theorem
LO.FirstOrder.consequence_iff_eq
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
{φ : SyntacticFormula L}
:
theorem
LO.FirstOrder.consequence_iff_eq'
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
{φ : SyntacticFormula L}
:
theorem
LO.FirstOrder.satisfiable_iff_eq
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
:
Semantics.Satisfiable (Struc L) T ↔ ∃ (M : Type v) (x : Nonempty M) (x_1 : Structure L M) (_ : Structure.Eq L M), M ⊧ₘ* T
instance
LO.FirstOrder.instModelsTheoryModelOfSatEqAxiomOfSubtheorySyntacticFormulaTheory
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
:
ModelOfSat sat ⊧ₘ* 𝐄𝐐
def
LO.FirstOrder.ModelOfSatEq
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
:
Type v
Equations
Instances For
instance
LO.FirstOrder.ModelOfSatEq.instNonempty
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
:
Nonempty (ModelOfSatEq sat)
noncomputable instance
LO.FirstOrder.ModelOfSatEq.struc
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
:
Structure L (ModelOfSatEq sat)
instance
LO.FirstOrder.ModelOfSatEq.instEq
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
:
Structure.Eq L (ModelOfSatEq sat)
theorem
LO.FirstOrder.ModelOfSatEq.models
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
:
ModelOfSatEq sat ⊧ₘ* T
instance
LO.FirstOrder.ModelOfSatEq.mod
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
:
ModelOfSatEq sat ⊧ₘ* T
noncomputable instance
LO.FirstOrder.ModelOfSatEq.instZeroOfZero
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiterm.Operator.Zero L]
:
Zero (ModelOfSatEq sat)
Equations
- LO.FirstOrder.ModelOfSatEq.instZeroOfZero sat = { zero := LO.FirstOrder.Semiterm.Operator.val op(0) ![] }
instance
LO.FirstOrder.ModelOfSatEq.strucZero
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiterm.Operator.Zero L]
:
Structure.Zero L (ModelOfSatEq sat)
noncomputable instance
LO.FirstOrder.ModelOfSatEq.instOneOfOne
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiterm.Operator.One L]
:
One (ModelOfSatEq sat)
Equations
- LO.FirstOrder.ModelOfSatEq.instOneOfOne sat = { one := LO.FirstOrder.Semiterm.Operator.val op(1) ![] }
instance
LO.FirstOrder.ModelOfSatEq.instOne
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiterm.Operator.One L]
:
Structure.One L (ModelOfSatEq sat)
noncomputable instance
LO.FirstOrder.ModelOfSatEq.instAddOfAdd
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiterm.Operator.Add L]
:
Add (ModelOfSatEq sat)
Equations
- LO.FirstOrder.ModelOfSatEq.instAddOfAdd sat = { add := fun (x y : LO.FirstOrder.ModelOfSatEq sat) => op(+).val ![x, y] }
instance
LO.FirstOrder.ModelOfSatEq.instAdd
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiterm.Operator.Add L]
:
Structure.Add L (ModelOfSatEq sat)
noncomputable instance
LO.FirstOrder.ModelOfSatEq.instMulOfMul
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiterm.Operator.Mul L]
:
Mul (ModelOfSatEq sat)
Equations
- LO.FirstOrder.ModelOfSatEq.instMulOfMul sat = { mul := fun (x y : LO.FirstOrder.ModelOfSatEq sat) => op(*).val ![x, y] }
instance
LO.FirstOrder.ModelOfSatEq.instMul
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiterm.Operator.Mul L]
:
Structure.Mul L (ModelOfSatEq sat)
instance
LO.FirstOrder.ModelOfSatEq.instLTOfLT
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiformula.Operator.LT L]
:
LT (ModelOfSatEq sat)
Equations
- LO.FirstOrder.ModelOfSatEq.instLTOfLT sat = { lt := fun (x y : LO.FirstOrder.ModelOfSatEq sat) => op(<).val ![x, y] }
instance
LO.FirstOrder.ModelOfSatEq.instLT
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiformula.Operator.LT L]
:
Structure.LT L (ModelOfSatEq sat)
instance
LO.FirstOrder.ModelOfSatEq.instMembershipOfMem
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiformula.Operator.Mem L]
:
Membership (ModelOfSatEq sat) (ModelOfSatEq sat)
Equations
- LO.FirstOrder.ModelOfSatEq.instMembershipOfMem sat = { mem := fun (x y : LO.FirstOrder.ModelOfSatEq sat) => op(∈).val ![y, x] }
instance
LO.FirstOrder.ModelOfSatEq.instMem
{L : Language}
[Semiformula.Operator.Eq L]
{T : Theory L}
[𝐄𝐐 ≼ T]
(sat : Semantics.Satisfiable (Struc L) T)
[Semiformula.Operator.Mem L]
:
Structure.Mem L (ModelOfSatEq sat)
def
LO.FirstOrder.Semiformula.existsUnique
{L : Language}
[Operator.Eq L]
{n : ℕ}
{ξ : Type u_3}
(φ : Semiformula L ξ (n + 1))
:
Semiformula L ξ n
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
LO.FirstOrder.Semiformula.eval_existsUnique
{L : Language}
[Operator.Eq L]
{M : Type u_2}
[s : Structure L M]
[Structure.Eq L M]
{ξ : Type u_3}
{n : ℕ}
{e : Fin n → M}
{ε : ξ → M}
{φ : Semiformula L ξ (n + 1)}
:
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.