- intro : M
Instances For
Equations
- LO.FirstOrder.Structure.Model.equiv L M = { toFun := fun (x : M) => { intro := x }, invFun := LO.FirstOrder.Structure.Model.intro, left_inv := ⋯, right_inv := ⋯ }
Instances For
instance
LO.FirstOrder.Structure.Model.instZeroOfZero
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiterm.Operator.Zero L]
:
Equations
instance
LO.FirstOrder.Structure.Model.instZero
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiterm.Operator.Zero L]
:
Structure.Zero L (Model L M)
instance
LO.FirstOrder.Structure.Model.instOneOfOne
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiterm.Operator.One L]
:
Equations
instance
LO.FirstOrder.Structure.Model.instOne
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiterm.Operator.One L]
:
Structure.One L (Model L M)
instance
LO.FirstOrder.Structure.Model.instAddOfAdd
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiterm.Operator.Add L]
:
Equations
- LO.FirstOrder.Structure.Model.instAddOfAdd = { add := fun (x y : LO.FirstOrder.Structure.Model L M) => op(+).val ![x, y] }
instance
LO.FirstOrder.Structure.Model.instAdd
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiterm.Operator.Add L]
:
Structure.Add L (Model L M)
instance
LO.FirstOrder.Structure.Model.instMulOfMul
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiterm.Operator.Mul L]
:
Equations
- LO.FirstOrder.Structure.Model.instMulOfMul = { mul := fun (x y : LO.FirstOrder.Structure.Model L M) => op(*).val ![x, y] }
instance
LO.FirstOrder.Structure.Model.instMul
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiterm.Operator.Mul L]
:
Structure.Mul L (Model L M)
instance
LO.FirstOrder.Structure.Model.instExpOfExp
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiterm.Operator.Exp L]
:
Equations
- LO.FirstOrder.Structure.Model.instExpOfExp = { exp := fun (x : LO.FirstOrder.Structure.Model L M) => LO.FirstOrder.Semiterm.Operator.Exp.exp.val ![x] }
instance
LO.FirstOrder.Structure.Model.instExp
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiterm.Operator.Exp L]
:
Structure.Exp L (Model L M)
instance
LO.FirstOrder.Structure.Model.instEq
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiformula.Operator.Eq L]
[Structure.Eq L M]
:
Structure.Eq L (Model L M)
instance
LO.FirstOrder.Structure.Model.instLTOfLT
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiformula.Operator.LT L]
:
Equations
- LO.FirstOrder.Structure.Model.instLTOfLT = { lt := fun (x y : LO.FirstOrder.Structure.Model L M) => op(<).val ![x, y] }
instance
LO.FirstOrder.Structure.Model.instLT
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiformula.Operator.LT L]
:
Structure.LT L (Model L M)
instance
LO.FirstOrder.Structure.Model.instMembershipOfMem
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiformula.Operator.Mem L]
:
Membership (Model L M) (Model L M)
Equations
- LO.FirstOrder.Structure.Model.instMembershipOfMem = { mem := fun (x y : LO.FirstOrder.Structure.Model L M) => op(∈).val ![y, x] }
instance
LO.FirstOrder.Structure.Model.instMem
{L : Language}
{M : Type u_2}
[Structure L M]
[Semiformula.Operator.Mem L]
:
def
LO.FirstOrder.Structure.ofFunc
(F : ℕ → Type u_1)
{M : Type u_2}
(fF : {k : ℕ} → F k → (Fin k → M) → M)
:
Structure (Language.ofFunc F) M
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
LO.FirstOrder.Structure.val_lMap_add₁
{L₁ : Language}
{L₂ : Language}
{M : Type u_1}
[str₁ : Structure L₁ M]
[str₂ : Structure L₂ M]
{μ : Type u_2}
{n : ℕ}
(t : Semiterm L₁ μ n)
(e : Fin n → M)
(ε : μ → M)
:
Semiterm.val (add L₁ L₂ M) e ε (Semiterm.lMap (Language.Hom.add₁ L₁ L₂) t) = Semiterm.val str₁ e ε t
@[simp]
theorem
LO.FirstOrder.Structure.val_lMap_add₂
{L₁ : Language}
{L₂ : Language}
{M : Type u_1}
[str₁ : Structure L₁ M]
[str₂ : Structure L₂ M]
{μ : Type u_2}
{n : ℕ}
(t : Semiterm L₂ μ n)
(e : Fin n → M)
(ε : μ → M)
:
Semiterm.val (add L₁ L₂ M) e ε (Semiterm.lMap (Language.Hom.add₂ L₁ L₂) t) = Semiterm.val str₂ e ε t
@[simp]
theorem
LO.FirstOrder.Structure.eval_lMap_add₁
{L₁ : Language}
{L₂ : Language}
{M : Type u_1}
[str₁ : Structure L₁ M]
[str₂ : Structure L₂ M]
{μ : Type u_2}
{n : ℕ}
(φ : Semiformula L₁ μ n)
(e : Fin n → M)
(ε : μ → M)
:
(Semiformula.Eval (add L₁ L₂ M) e ε) ((Semiformula.lMap (Language.Hom.add₁ L₁ L₂)) φ) ↔ (Semiformula.Eval str₁ e ε) φ
@[simp]
theorem
LO.FirstOrder.Structure.eval_lMap_add₂
{L₁ : Language}
{L₂ : Language}
{M : Type u_1}
[str₁ : Structure L₁ M]
[str₂ : Structure L₂ M]
{μ : Type u_2}
{n : ℕ}
(φ : Semiformula L₂ μ n)
(e : Fin n → M)
(ε : μ → M)
:
(Semiformula.Eval (add L₁ L₂ M) e ε) ((Semiformula.lMap (Language.Hom.add₂ L₁ L₂)) φ) ↔ (Semiformula.Eval str₂ e ε) φ
instance
LO.FirstOrder.Structure.sigma
{ι : Type u_2}
(L : ι → Language)
(M : Type u_1)
[str : (i : ι) → Structure (L i) M]
:
Structure (Language.sigma L) M
Equations
- One or more equations did not get rendered due to their size.
@[simp]
theorem
LO.FirstOrder.Structure.val_lMap_sigma
{ι : Type u_4}
(L : ι → Language)
(M : Type u_1)
[str : (i : ι) → Structure (L i) M]
{i : ι}
{μ : Type u_2}
{n : ℕ}
(t : Semiterm (L i) μ n)
(e : Fin n → M)
(ε : μ → M)
:
Semiterm.val (sigma L M) e ε (Semiterm.lMap (Language.Hom.sigma L i) t) = Semiterm.val (str i) e ε t
@[simp]
theorem
LO.FirstOrder.Structure.eval_lMap_sigma
{ι : Type u_4}
(L : ι → Language)
(M : Type u_1)
[str : (i : ι) → Structure (L i) M]
{i : ι}
{μ : Type u_2}
{n : ℕ}
(φ : Semiformula (L i) μ n)
(e : Fin n → M)
(ε : μ → M)
:
(Semiformula.Eval (sigma L M) e ε) ((Semiformula.lMap (Language.Hom.sigma L i)) φ) ↔ (Semiformula.Eval (str i) e ε) φ
instance
LO.FirstOrder.instStructureULift
{L : Language}
{M : Type v}
[Structure L M]
:
Structure L (ULift.{v', v} M)
Equations
- One or more equations did not get rendered due to their size.
theorem
LO.FirstOrder.Semiterm.valm_uLift
{L : Language}
{M : Type v}
[Structure L M]
{n : ℕ}
{ξ : Type u_1}
{e : Fin n → ULift.{v', v} M}
{ε : ξ → ULift.{v', v} M}
{t : Semiterm L ξ n}
:
valm (ULift.{v', v} M) e ε t = { down := valm M (fun (i : Fin n) => (e i).down) (fun (i : ξ) => (ε i).down) t }
theorem
LO.FirstOrder.Semiformula.evalm_uLift
{L : Language}
{M : Type v}
[Structure L M]
{n : ℕ}
{ξ : Type u_1}
{e : Fin n → ULift.{v', v} M}
{ε : ξ → ULift.{v', v} M}
{φ : Semiformula L ξ n}
:
(Evalm (ULift.{v', v} M) e ε) φ ↔ (Evalm M (fun (i : Fin n) => (e i).down) fun (i : ξ) => (ε i).down) φ
theorem
LO.FirstOrder.uLift_elementaryEquiv
(L : Language)
(M : Type v)
[Structure L M]
[Nonempty M]
:
ULift.{v', v} M ≡ₑ[L] M