Documentation

Foundation.FirstOrder.Basic.Semantics.Elementary

structure LO.FirstOrder.Structure.Hom (L : Language) (M₁ : Type u_2) (M₂ : Type u_3) [s₁ : Structure L M₁] [s₂ : Structure L M₂] :
Type (max u_2 u_3)
  • toFun : M₁M₂
  • func' {k : } (f : L.Func k) (v : Fin kM₁) : self.toFun (func f v) = func f (self.toFun v)
  • rel' {k : } (r : L.Rel k) (v : Fin kM₁) : rel r vrel r (self.toFun v)
Instances For
Equations
  • One or more equations did not get rendered due to their size.
structure LO.FirstOrder.Structure.Embedding (L : Language) (M₁ : Type u_2) (M₂ : Type u_3) [s₁ : Structure L M₁] [s₂ : Structure L M₂] extends M₁ →ₛ[L] M₂ :
Type (max u_2 u_3)
Instances For
Equations
  • One or more equations did not get rendered due to their size.
structure LO.FirstOrder.Structure.Iso (L : Language) (M₁ : Type u_2) (M₂ : Type u_3) [s₁ : Structure L M₁] [s₂ : Structure L M₂] extends M₁ ↪ₛ[L] M₂ :
Type (max u_2 u_3)
Instances For
Equations
  • One or more equations did not get rendered due to their size.
structure LO.FirstOrder.Structure.ClosedSubset (L : Language) (M : Type u_1) [s : Structure L M] :
Type u_1
  • domain : Set M
  • domain_closed {k : } (f : L.Func k) {v : Fin kM} : (∀ (i : Fin k), v i self.domain)func f v self.domain
Instances For
theorem LO.FirstOrder.Structure.ClosedSubset.ext {L : Language} {M : Type u_1} {s : Structure L M} {x y : ClosedSubset L M} (domain : x.domain = y.domain) :
x = y
class LO.FirstOrder.Structure.HomClass (F : Type u_5) (L : outParam Language) (M₁ : outParam (Type u_6)) (M₂ : outParam (Type u_7)) [s₁ : Structure L M₁] [s₂ : Structure L M₂] [FunLike F M₁ M₂] :
  • map_func (h : F) {k : } (f : L.Func k) (v : Fin kM₁) : h (func f v) = func f (h v)
  • map_rel (h : F) {k : } (r : L.Rel k) (v : Fin kM₁) : rel r vrel r (h v)
Instances
class LO.FirstOrder.Structure.EmbeddingClass (F : Type u_5) (L : outParam Language) (M₁ : outParam (Type u_6)) (M₂ : outParam (Type u_7)) [s₁ : Structure L M₁] [s₂ : Structure L M₂] [FunLike F M₁ M₂] extends LO.FirstOrder.Structure.HomClass F L M₁ M₂ :
Instances
class LO.FirstOrder.Structure.IsoClass (F : Type u_5) (L : outParam Language) (M₁ : outParam (Type u_6)) (M₂ : outParam (Type u_7)) [s₁ : Structure L M₁] [s₂ : Structure L M₂] [FunLike F M₁ M₂] extends LO.FirstOrder.Structure.EmbeddingClass F L M₁ M₂ :
Instances
instance LO.FirstOrder.Structure.instFunLikeHom {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] :
FunLike (M₁ →ₛ[L] M₂) M₁ M₂
Equations
instance LO.FirstOrder.Structure.instHomClassHom {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] :
HomClass (M₁ →ₛ[L] M₂) L M₁ M₂
theorem LO.FirstOrder.Structure.Hom.ext {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] (φ ψ : M₁ →ₛ[L] M₂) (h : ∀ (x : M₁), φ x = ψ x) :
φ = ψ
theorem LO.FirstOrder.Structure.HomClass.ext {M₁ : Type u_2} {M₂ : Type u_3} {F : Type u_5} [FunLike F M₁ M₂] (φ ψ : F) (h : ∀ (x : M₁), φ x = ψ x) :
φ = ψ
theorem LO.FirstOrder.Structure.HomClass.func {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] {F : Type u_5} [FunLike F M₁ M₂] [HomClass F L M₁ M₂] (φ : F) {k : } (f : L.Func k) (v : Fin kM₁) :
φ (func f v) = func f (φ v)
theorem LO.FirstOrder.Structure.HomClass.rel {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] {F : Type u_5} [FunLike F M₁ M₂] [HomClass F L M₁ M₂] (φ : F) {k : } (r : L.Rel k) (v : Fin kM₁) :
rel r vrel r (φ v)
theorem LO.FirstOrder.Structure.HomClass.val_term {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] {F : Type u_5} [FunLike F M₁ M₂] [HomClass F L M₁ M₂] (φ : F) {n : } {ξ : Type u_6} (e : Fin nM₁) (ε : ξM₁) (t : Semiterm L ξ n) :
φ (Semiterm.val s₁ e ε t) = Semiterm.val s₂ (φ e) (φ ε) t
instance LO.FirstOrder.Structure.instFunLikeEmbedding {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] :
FunLike (M₁ ↪ₛ[L] M₂) M₁ M₂
Equations
instance LO.FirstOrder.Structure.instEmbeddingClassEmbedding {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] :
EmbeddingClass (M₁ ↪ₛ[L] M₂) L M₁ M₂
theorem LO.FirstOrder.Structure.Embedding.ext {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] (φ ψ : M₁ ↪ₛ[L] M₂) (h : ∀ (x : M₁), φ x = ψ x) :
φ = ψ
def LO.FirstOrder.Structure.EmbeddingClass.toEmbedding {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] {F : Type u_5} [FunLike F M₁ M₂] [EmbeddingClass F L M₁ M₂] (φ : F) :
M₁ M₂
Equations
theorem LO.FirstOrder.Structure.EmbeddingClass.func {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] {F : Type u_5} [FunLike F M₁ M₂] [EmbeddingClass F L M₁ M₂] (φ : F) {k : } (f : L.Func k) (v : Fin kM₁) :
φ (func f v) = func f (φ v)
theorem LO.FirstOrder.Structure.EmbeddingClass.rel {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] {F : Type u_5} [FunLike F M₁ M₂] [EmbeddingClass F L M₁ M₂] (φ : F) {k : } (r : L.Rel k) (v : Fin kM₁) :
rel r (φ v) rel r v
instance LO.FirstOrder.Structure.instFunLikeIso {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] :
FunLike (M₁ ≃ₛ[L] M₂) M₁ M₂
Equations
instance LO.FirstOrder.Structure.instIsoClassIso {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] :
IsoClass (M₁ ≃ₛ[L] M₂) L M₁ M₂
theorem LO.FirstOrder.Structure.Iso.ext {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] (φ ψ : M₁ ≃ₛ[L] M₂) (h : ∀ (x : M₁), φ x = ψ x) :
φ = ψ
theorem LO.FirstOrder.Structure.ClosedSubset.closed {L : Language} {M : Type u_1} [s : Structure L M] (u : ClosedSubset L M) {k : } (f : L.Func k) {v : Fin kM} (hv : ∀ (i : Fin k), v i u) :
func f v u
Equations
  • One or more equations did not get rendered due to their size.
theorem LO.FirstOrder.Structure.ClosedSubset.func {L : Language} {M : Type u_1} [s : Structure L M] (u : ClosedSubset L M) {k : } (f : L.Func k) (v : Fin ku) :
(func f v) = func f fun (i : Fin k) => (v i)
theorem LO.FirstOrder.Structure.ClosedSubset.rel {L : Language} {M : Type u_1} [s : Structure L M] (u : ClosedSubset L M) {k : } (r : L.Rel k) (v : Fin ku) :
rel r v rel r fun (i : Fin k) => (v i)
Equations
  • u.inclusion = { toFun := Subtype.val, func' := , rel' := , toFun_inj := , rel_inv' := }
theorem LO.FirstOrder.Semiformula.eval_hom_iff_of_open {ξ : Type u_6} {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] {F : Type u_5} [FunLike F M₁ M₂] [Structure.EmbeddingClass F L M₁ M₂] (Θ : F) {n : } {e₁ : Fin nM₁} {ε₁ : ξM₁} {φ : Semiformula L ξ n} :
φ.Open((Eval s₁ e₁ ε₁) φ (Eval s₂ (Θ e₁) (Θ ε₁)) φ)
theorem LO.FirstOrder.Semiformula.eval_hom_univClosure {ξ : Type u_6} {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [s₁ : Structure L M₁] [s₂ : Structure L M₂] {F : Type u_5} [FunLike F M₁ M₂] [Structure.EmbeddingClass F L M₁ M₂] (Θ : F) {n : } {ε₁ : ξM₁} {φ : Semiformula L ξ n} (hp : φ.Open) :
(Evalf s₂ (Θ ε₁)) (∀* φ)(Evalf s₁ ε₁) (∀* φ)
def LO.FirstOrder.Structure.ElementaryEquiv (L : Language) (M₁ : Type u_2) (M₂ : Type u_3) [Nonempty M₁] [Nonempty M₂] [s₁ : Structure L M₁] [s₂ : Structure L M₂] :
Equations
Equations
  • One or more equations did not get rendered due to their size.
theorem LO.FirstOrder.Structure.ElementaryEquiv.symm {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [Nonempty M₁] [Nonempty M₂] [s₁ : Structure L M₁] [s₂ : Structure L M₂] :
(M₁ ≡ₑ[L] M₂)M₂ ≡ₑ[L] M₁
theorem LO.FirstOrder.Structure.ElementaryEquiv.trans {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} {M₃ : Type u_4} [Nonempty M₁] [Nonempty M₂] [Nonempty M₃] [s₁ : Structure L M₁] [s₂ : Structure L M₂] [s₃ : Structure L M₃] :
(M₁ ≡ₑ[L] M₂)(M₂ ≡ₑ[L] M₃)M₁ ≡ₑ[L] M₃
theorem LO.FirstOrder.Structure.ElementaryEquiv.models {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [Nonempty M₁] [Nonempty M₂] [s₁ : Structure L M₁] [s₂ : Structure L M₂] (h : M₁ ≡ₑ[L] M₂) {φ : SyntacticFormula L} :
M₁ ⊧ₘ φ M₂ ⊧ₘ φ
theorem LO.FirstOrder.Structure.ElementaryEquiv.modelsTheory {L : Language} {M₁ : Type u_2} {M₂ : Type u_3} [Nonempty M₁] [Nonempty M₂] [s₁ : Structure L M₁] [s₂ : Structure L M₂] (h : M₁ ≡ₑ[L] M₂) {T : Theory L} :
M₁ ⊧ₘ* T M₂ ⊧ₘ* T
theorem LO.FirstOrder.Structure.ElementaryEquiv.ofEquiv {L : Language} {M : Type u_1} [Nonempty M] [s : Structure L M] {N : Type u_5} [Nonempty N] (Θ : M N) :