Documentation

Mathlib.ModelTheory.Substructures

First-Order Substructures #

This file defines substructures of first-order structures in a similar manner to the various substructures appearing in the algebra library.

Main Definitions #

Main Results #

def FirstOrder.Language.ClosedUnder {L : FirstOrder.Language} {M : Type w} [FirstOrder.Language.Structure L M] {n : } (f : L.Functions n) (s : Set M) :

Indicates that a set in a given structure is a closed under a function symbol.

Equations
Instances For

    A substructure of a structure M is a set closed under application of function symbols.

    Instances For
      Equations
      • FirstOrder.Language.Substructure.instSetLike = { coe := FirstOrder.Language.Substructure.carrier, coe_injective' := (_ : ∀ (p q : FirstOrder.Language.Substructure L M), p = qp = q) }

      Two substructures are equal if they have the same elements.

      Copy a substructure replacing carrier with a set that is equal to it.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        The substructure M of the structure M.

        Equations
        • One or more equations did not get rendered due to their size.
        Equations
        • FirstOrder.Language.Substructure.instInhabited = { default := }

        The inf of two substructures is their intersection.

        Equations
        • One or more equations did not get rendered due to their size.
        Equations
        • One or more equations did not get rendered due to their size.
        theorem FirstOrder.Language.Substructure.mem_iInf {L : FirstOrder.Language} {M : Type w} [FirstOrder.Language.Structure L M] {ι : Sort u_3} {S : ιFirstOrder.Language.Substructure L M} {x : M} :
        x ⨅ (i : ι), S i ∀ (i : ι), x S i
        @[simp]
        theorem FirstOrder.Language.Substructure.coe_iInf {L : FirstOrder.Language} {M : Type w} [FirstOrder.Language.Structure L M] {ι : Sort u_3} {S : ιFirstOrder.Language.Substructure L M} :
        (⨅ (i : ι), S i) = ⋂ (i : ι), (S i)

        Substructures of a structure form a complete lattice.

        Equations
        • One or more equations did not get rendered due to their size.

        The L.Substructure generated by a set.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]

          The substructure generated by a set includes the set.

          @[simp]

          A substructure S includes closure L s if and only if it includes s.

          Substructure closure of a set is monotone in its argument: if s ⊆ t, then closure L s ≤ closure L t.

          theorem FirstOrder.Language.Substructure.closure_induction {L : FirstOrder.Language} {M : Type w} [FirstOrder.Language.Structure L M] {s : Set M} {p : MProp} {x : M} (h : x (FirstOrder.Language.Substructure.closure L).toFun s) (Hs : xs, p x) (Hfun : ∀ {n : } (f : L.Functions n), FirstOrder.Language.ClosedUnder f (setOf p)) :
          p x

          An induction principle for closure membership. If p holds for all elements of s, and is preserved under function symbols, then p holds for all elements of the closure of s.

          theorem FirstOrder.Language.Substructure.dense_induction {L : FirstOrder.Language} {M : Type w} [FirstOrder.Language.Structure L M] {p : MProp} (x : M) {s : Set M} (hs : (FirstOrder.Language.Substructure.closure L).toFun s = ) (Hs : xs, p x) (Hfun : ∀ {n : } (f : L.Functions n), FirstOrder.Language.ClosedUnder f (setOf p)) :
          p x

          If s is a dense set in a structure M, Substructure.closure L s = ⊤, then in order to prove that some predicate p holds for all x : M it suffices to verify p x for x ∈ s, and verify that p is preserved under function symbols.

          closure forms a Galois insertion with the coercion to set.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            comap and map #

            The preimage of a substructure along a homomorphism is a substructure.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              The image of a substructure along a homomorphism is a substructure.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                map f and comap f form a GaloisCoinsertion when f is injective.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  map f and comap f form a GaloisInsertion when f is surjective.

                  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.

                    The natural embedding of an L.Substructure of M into M.

                    Equations
                    Instances For

                      The equivalence between the maximal substructure of a structure and the structure itself.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem FirstOrder.Language.Substructure.coe_topEquiv {L : FirstOrder.Language} {M : Type w} [FirstOrder.Language.Structure L M] :
                        FirstOrder.Language.Substructure.topEquiv = Subtype.val
                        theorem FirstOrder.Language.Substructure.closure_induction' {L : FirstOrder.Language} {M : Type w} [FirstOrder.Language.Structure L M] (s : Set M) {p : (x : M) → x (FirstOrder.Language.Substructure.closure L).toFun sProp} (Hs : ∀ (x : M) (h : x s), p x (_ : x ((FirstOrder.Language.Substructure.closure L).toFun s))) (Hfun : ∀ {n : } (f : L.Functions n), FirstOrder.Language.ClosedUnder f {x : M | ∃ (hx : x (FirstOrder.Language.Substructure.closure L).toFun s), p x hx}) {x : M} (hx : x (FirstOrder.Language.Substructure.closure L).toFun s) :
                        p x hx

                        A dependent version of Substructure.closure_induction.

                        Reduces the language of a substructure along a language hom.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For

                          Turns any substructure containing a constant set A into a L[[A]]-substructure.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            A first-order hom f : M → N whose values lie in a substructure p ⊆ N can be restricted to a hom M → p.

                            Equations
                            Instances For

                              The range of a first-order hom f : M → N is a submodule of N. See Note [range copy pattern].

                              Equations
                              Instances For

                                The substructure of elements x : M such that f x = g x

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For

                                  If two L.Homs are equal on a set, then they are equal on its substructure closure.

                                  A first-order embedding f : M → N whose values lie in a substructure p ⊆ N can be restricted to an embedding M → p.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For

                                    The equivalence between a substructure s and its image s.map f.toHom, where f is an embedding.

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For

                                      The equivalence between the domain and the range of an embedding f.

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      Instances For

                                        The embedding associated to an inclusion of substructures.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For