Documentation

Foundation.FirstOrder.Basic.Semantics.Elementary

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