Documentation

Mathlib.Order.Copy

Tooling to make copies of lattice structures #

Sometimes it is useful to make a copy of a lattice structure where one replaces the data parts with provably equal definitions that have better definitional properties.

def OrderTop.copy {α : Type u} {h h' : LE α} (c : OrderTop α) (top : α) (eq_top : top = ⊤) (le_eq : ∀ (x y : α), x ≤ y ↔ x ≤ y) :

A function to create a provable equal copy of a top order with possibly different definitional equalities.

Instances For
    def OrderBot.copy {α : Type u} {h h' : LE α} (c : OrderBot α) (bot : α) (eq_bot : bot = ⊥) (le_eq : ∀ (x y : α), x ≤ y ↔ x ≤ y) :

    A function to create a provable equal copy of a bottom order with possibly different definitional equalities.

    Instances For
      def BoundedOrder.copy {α : Type u} {h h' : LE α} (c : BoundedOrder α) (top : α) (eq_top : top = ⊤) (bot : α) (eq_bot : bot = ⊥) (le_eq : ∀ (x y : α), x ≤ y ↔ x ≤ y) :

      A function to create a provable equal copy of a bounded order with possibly different definitional equalities.

      Instances For
        def Lattice.copy {α : Type u} (c : Lattice α) (le : α → α → Prop) (eq_le : le = LE.le) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) :
        Lattice α

        A function to create a provable equal copy of a lattice with possibly different definitional equalities.

        Instances For
          def DistribLattice.copy {α : Type u} (c : DistribLattice α) (le : α → α → Prop) (eq_le : le = LE.le) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) :

          A function to create a provable equal copy of a distributive lattice with possibly different definitional equalities.

          Instances For
            def GeneralizedHeytingAlgebra.copy {α : Type u} (c : GeneralizedHeytingAlgebra α) (le : α → α → Prop) (eq_le : le = LE.le) (top : α) (eq_top : top = ⊤) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) (himp : α → α → α) (eq_himp : himp = HImp.himp) :

            A function to create a provable equal copy of a generalised heyting algebra with possibly different definitional equalities.

            Instances For
              def GeneralizedCoheytingAlgebra.copy {α : Type u} (c : GeneralizedCoheytingAlgebra α) (le : α → α → Prop) (eq_le : le = LE.le) (bot : α) (eq_bot : bot = ⊥) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) (sdiff : α → α → α) (eq_sdiff : sdiff = SDiff.sdiff) :

              A function to create a provable equal copy of a generalised co-Heyting algebra with possibly different definitional equalities.

              Instances For
                def HeytingAlgebra.copy {α : Type u} (c : HeytingAlgebra α) (le : α → α → Prop) (eq_le : le = LE.le) (top : α) (eq_top : top = ⊤) (bot : α) (eq_bot : bot = ⊥) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) (himp : α → α → α) (eq_himp : himp = HImp.himp) (compl : α → α) (eq_compl : compl = Compl.compl) :

                A function to create a provable equal copy of a heyting algebra with possibly different definitional equalities.

                Instances For
                  def CoheytingAlgebra.copy {α : Type u} (c : CoheytingAlgebra α) (le : α → α → Prop) (eq_le : le = LE.le) (top : α) (eq_top : top = ⊤) (bot : α) (eq_bot : bot = ⊥) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) (sdiff : α → α → α) (eq_sdiff : sdiff = SDiff.sdiff) (hnot : α → α) (eq_hnot : hnot = HNot.hnot) :

                  A function to create a provable equal copy of a co-Heyting algebra with possibly different definitional equalities.

                  Instances For
                    def BiheytingAlgebra.copy {α : Type u} (c : BiheytingAlgebra α) (le : α → α → Prop) (eq_le : le = LE.le) (top : α) (eq_top : top = ⊤) (bot : α) (eq_bot : bot = ⊥) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) (sdiff : α → α → α) (eq_sdiff : sdiff = SDiff.sdiff) (hnot : α → α) (eq_hnot : hnot = HNot.hnot) (himp : α → α → α) (eq_himp : himp = HImp.himp) (compl : α → α) (eq_compl : compl = Compl.compl) :

                    A function to create a provable equal copy of a bi-Heyting algebra with possibly different definitional equalities.

                    Instances For
                      def CompleteLattice.copy {α : Type u} (c : CompleteLattice α) (le : α → α → Prop) (eq_le : le = LE.le) (top : α) (eq_top : top = ⊤) (bot : α) (eq_bot : bot = ⊥) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) (sSup : Set α → α) (eq_sSup : sSup = SupSet.sSup) (sInf : Set α → α) (eq_sInf : sInf = InfSet.sInf) :

                      A function to create a provable equal copy of a complete lattice with possibly different definitional equalities.

                      Instances For
                        def Frame.copy {α : Type u} (c : Order.Frame α) (le : α → α → Prop) (eq_le : le = LE.le) (top : α) (eq_top : top = ⊤) (bot : α) (eq_bot : bot = ⊥) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) (himp : α → α → α) (eq_himp : himp = HImp.himp) (compl : α → α) (eq_compl : compl = Compl.compl) (sSup : Set α → α) (eq_sSup : sSup = SupSet.sSup) (sInf : Set α → α) (eq_sInf : sInf = InfSet.sInf) :

                        A function to create a provable equal copy of a frame with possibly different definitional equalities.

                        Instances For
                          def Coframe.copy {α : Type u} (c : Order.Coframe α) (le : α → α → Prop) (eq_le : le = LE.le) (top : α) (eq_top : top = ⊤) (bot : α) (eq_bot : bot = ⊥) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) (sdiff : α → α → α) (eq_sdiff : sdiff = SDiff.sdiff) (hnot : α → α) (eq_hnot : hnot = HNot.hnot) (sSup : Set α → α) (eq_sSup : sSup = SupSet.sSup) (sInf : Set α → α) (eq_sInf : sInf = InfSet.sInf) :

                          A function to create a provable equal copy of a coframe with possibly different definitional equalities.

                          Instances For
                            def CompleteDistribLattice.copy {α : Type u} (c : CompleteDistribLattice α) (le : α → α → Prop) (eq_le : le = LE.le) (top : α) (eq_top : top = ⊤) (bot : α) (eq_bot : bot = ⊥) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) (sdiff : α → α → α) (eq_sdiff : sdiff = SDiff.sdiff) (hnot : α → α) (eq_hnot : hnot = HNot.hnot) (himp : α → α → α) (eq_himp : himp = HImp.himp) (compl : α → α) (eq_compl : compl = Compl.compl) (sSup : Set α → α) (eq_sSup : sSup = SupSet.sSup) (sInf : Set α → α) (eq_sInf : sInf = InfSet.sInf) :

                            A function to create a provable equal copy of a complete distributive lattice with possibly different definitional equalities.

                            Instances For
                              def ConditionallyCompleteLattice.copy {α : Type u} (c : ConditionallyCompleteLattice α) (le : α → α → Prop) (eq_le : le = LE.le) (sup : α → α → α) (eq_sup : sup = max) (inf : α → α → α) (eq_inf : inf = min) (sSup : Set α → α) (eq_sSup : sSup = SupSet.sSup) (sInf : Set α → α) (eq_sInf : sInf = InfSet.sInf) :

                              A function to create a provable equal copy of a conditionally complete lattice with possibly different definitional equalities.

                              Instances For