Documentation

Mathlib.Order.Hom.WithTopBot

Adjoining ⊤ and ⊥ to order maps and lattice homomorphisms #

This file defines ways to adjoin ⊤ or ⊥ or both to order maps (homomorphisms, embeddings and isomorphisms) and lattice homomorphisms, and properties about the results.

Some definitions cause a possibly unbounded lattice homomorphism to become bounded, so they change the type of the homomorphism.

Taking the dual then adding ⊤ is the same as adding ⊥ then taking the dual. This is the order iso form of WithTop.ofDual, as proven by coe_toDualBotEquiv.

Equations
Instances For

    Taking the dual then adding ⊥ is the same as adding ⊤ then taking the dual. This is the order iso form of WithBot.ofDual, as proven by coe_toDualTopEquiv.

    Equations
    Instances For
      @[deprecated WithBot.coe_toDualTopEquiv (since := "2026-03-27")]

      Alias of WithBot.coe_toDualTopEquiv.

      Embedding into WithTop α.

      Equations
      Instances For

        Embedding into WithBot α.

        Equations
        Instances For
          @[simp]
          theorem Function.Embedding.coeWithBot_apply {α : Type u_1} (a✝ : α) :
          coeWithBot a✝ = ↑a✝
          @[simp]
          theorem Function.Embedding.coeWithTop_apply {α : Type u_1} (a✝ : α) :
          coeWithTop a✝ = ↑a✝
          def WithTop.coeOrderHom {α : Type u_4} [Preorder α] :

          The coercion α → WithTop α bundled as monotone map.

          Equations
          Instances For
            def WithBot.coeOrderHom {α : Type u_4} [Preorder α] :

            The coercion α → WithBot α bundled as monotone map.

            Equations
            Instances For
              @[simp]
              @[simp]
              def WithTop.subtypeOrderIso {α : Type u_1} [PartialOrder α] [OrderTop α] [DecidablePred fun (x : α) => x = ⊤] :
              WithTop { a : α // a ≠ ⊤ } ≃o α

              Any OrderTop is equivalent to WithTop of the subtype excluding ⊤.

              See also Equiv.optionSubtypeNe.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def WithBot.subtypeOrderIso {α : Type u_1} [PartialOrder α] [OrderBot α] [DecidablePred fun (x : α) => x = ⊥] :
                WithBot { a : α // a ≠ ⊥ } ≃o α

                Any OrderBot is equivalent to WithBot of the subtype excluding ⊥.

                See also Equiv.optionSubtypeNe.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  @[simp]
                  theorem WithTop.subtypeOrderIso_apply_coe {α : Type u_1} [PartialOrder α] [OrderTop α] [DecidablePred fun (x : α) => x = ⊤] (a : { a : α // a ≠ ⊤ }) :
                  subtypeOrderIso ↑a = ↑a
                  @[simp]
                  theorem WithBot.subtypeOrderIso_apply_coe {α : Type u_1} [PartialOrder α] [OrderBot α] [DecidablePred fun (x : α) => x = ⊥] (a : { a : α // a ≠ ⊥ }) :
                  subtypeOrderIso ↑a = ↑a
                  theorem WithTop.subtypeOrderIso_symm_apply {α : Type u_1} [PartialOrder α] [OrderTop α] [DecidablePred fun (x : α) => x = ⊤] {a : α} (h : a ≠ ⊤) :
                  theorem WithBot.subtypeOrderIso_symm_apply {α : Type u_1} [PartialOrder α] [OrderBot α] [DecidablePred fun (x : α) => x = ⊥] {a : α} (h : a ≠ ⊥) :
                  def OrderHom.withBotMap {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α →o β) :

                  Lift an order homomorphism f : α →o β to an order homomorphism WithBot α →o WithBot β.

                  Equations
                  Instances For
                    def OrderHom.withTopMap {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α →o β) :

                    Lift an order homomorphism f : α →o β to an order homomorphism WithTop α →o WithTop β.

                    Equations
                    Instances For
                      @[simp]
                      theorem OrderHom.withBotMap_coe {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α →o β) :
                      @[simp]
                      theorem OrderHom.withTopMap_coe {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α →o β) :
                      def OrderEmbedding.withBotMap {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α ↪o β) :

                      A version of WithBot.map for order embeddings.

                      Equations
                      Instances For
                        def OrderEmbedding.withTopMap {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α ↪o β) :

                        A version of WithTop.map for order embeddings.

                        Equations
                        Instances For
                          @[simp]
                          theorem OrderEmbedding.withBotMap_apply {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α ↪o β) :
                          @[simp]
                          theorem OrderEmbedding.withTopMap_apply {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α ↪o β) :
                          def OrderIso.withTopCongr {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) :

                          A version of Equiv.optionCongr for WithTop.

                          Equations
                          Instances For
                            def OrderIso.withBotCongr {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) :

                            A version of Equiv.optionCongr for WithBot.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              @[simp]
                              theorem OrderIso.withBotCongr_symm_apply {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) :
                              ⇑(RelIso.symm e.withBotCongr) = (match e with | { toEquiv := iso, map_rel_iff' := h } => { toEquiv := iso, map_rel_iff' := ⋯ }).withBotCongr.invFun
                              @[simp]
                              theorem OrderIso.withBotCongr_apply {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) :
                              @[simp]
                              @[simp]
                              theorem OrderIso.withTopCongr_apply {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) :
                              @[simp]
                              theorem OrderIso.withTopCongr_symm {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) :
                              @[simp]
                              theorem OrderIso.withTopCongr_trans {α : Type u_1} {β : Type u_2} {γ : Type u_3} [PartialOrder α] [PartialOrder β] [PartialOrder γ] (e₁ : α ≃o β) (e₂ : β ≃o γ) :
                              @[simp]
                              theorem OrderIso.withBotCongr_symm {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) :
                              @[simp]
                              theorem OrderIso.withBotCongr_trans {α : Type u_1} {β : Type u_2} {γ : Type u_3} [PartialOrder α] [PartialOrder β] [PartialOrder γ] (e₁ : α ≃o β) (e₂ : β ≃o γ) :
                              def SupHom.withTop {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] (f : SupHom α β) :

                              Adjoins a ⊤ to the domain and codomain of a SupHom.

                              Equations
                              Instances For
                                def InfHom.withBot {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] (f : InfHom α β) :

                                Adjoins a ⊥ to the domain and codomain of an InfHom.

                                Equations
                                Instances For
                                  @[simp]
                                  theorem InfHom.withBot_toFun {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] (f : InfHom α β) (a✝ : WithBot α) :
                                  f.withBot a✝ = WithBot.map (⇑f) a✝
                                  @[simp]
                                  theorem SupHom.withTop_toFun {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] (f : SupHom α β) (a✝ : WithTop α) :
                                  f.withTop a✝ = WithTop.map (⇑f) a✝
                                  @[simp]
                                  @[simp]
                                  @[simp]
                                  theorem SupHom.withTop_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [SemilatticeSup α] [SemilatticeSup β] [SemilatticeSup γ] (f : SupHom β γ) (g : SupHom α β) :
                                  @[simp]
                                  theorem InfHom.withBot_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [SemilatticeInf α] [SemilatticeInf β] [SemilatticeInf γ] (f : InfHom β γ) (g : InfHom α β) :
                                  def SupHom.withBot {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] (f : SupHom α β) :

                                  Adjoins a ⊥ to the domain and codomain of a SupHom.

                                  Equations
                                  Instances For
                                    def InfHom.withTop {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] (f : InfHom α β) :

                                    Adjoins a ⊤ to the domain and codomain of an InfHom.

                                    Equations
                                    Instances For
                                      @[simp]
                                      theorem SupHom.withBot_toFun {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] (f : SupHom α β) (a✝ : WithBot α) :
                                      f.withBot a✝ = WithBot.map (⇑f) a✝
                                      @[simp]
                                      theorem InfHom.withTop_toFun {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] (f : InfHom α β) (a✝ : WithTop α) :
                                      f.withTop a✝ = WithTop.map (⇑f) a✝
                                      @[simp]
                                      theorem SupHom.withBot_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [SemilatticeSup α] [SemilatticeSup β] [SemilatticeSup γ] (f : SupHom β γ) (g : SupHom α β) :
                                      @[simp]
                                      theorem InfHom.withTop_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [SemilatticeInf α] [SemilatticeInf β] [SemilatticeInf γ] (f : InfHom β γ) (g : InfHom α β) :
                                      def SupHom.withTop' {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] [OrderTop β] (f : SupHom α β) :
                                      SupHom (WithTop α) β

                                      Adjoins a ⊤ to the domain of a SupHom.

                                      Equations
                                      Instances For
                                        def InfHom.withBot' {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] [OrderBot β] (f : InfHom α β) :
                                        InfHom (WithBot α) β

                                        Adjoins a ⊥ to the domain of an InfHom.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem SupHom.withTop'_toFun {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] [OrderTop β] (f : SupHom α β) (a : WithTop α) :
                                          @[simp]
                                          theorem InfHom.withBot'_toFun {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] [OrderBot β] (f : InfHom α β) (a : WithBot α) :
                                          def SupHom.withBot' {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] [OrderBot β] (f : SupHom α β) :

                                          Adjoins a ⊥ to the domain of a SupHom.

                                          Equations
                                          Instances For
                                            def InfHom.withTop' {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] [OrderTop β] (f : InfHom α β) :

                                            Adjoins a ⊤ to the domain of an InfHom.

                                            Equations
                                            Instances For
                                              @[simp]
                                              theorem InfHom.withTop'_toFun {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] [OrderTop β] (f : InfHom α β) (a : WithTop α) :
                                              @[simp]
                                              theorem SupHom.withBot'_toFun {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] [OrderBot β] (f : SupHom α β) (a : WithBot α) :
                                              def LatticeHom.withTop {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :

                                              Adjoins a ⊤ to the domain and codomain of a LatticeHom.

                                              Equations
                                              Instances For
                                                def LatticeHom.withBot {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :

                                                Adjoins a ⊥ to the domain and codomain of a LatticeHom.

                                                Equations
                                                Instances For
                                                  @[simp]
                                                  theorem LatticeHom.coe_withTop {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :
                                                  @[simp]
                                                  theorem LatticeHom.coe_withBot {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :
                                                  @[simp]
                                                  theorem LatticeHom.withTop_apply {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) (a : WithTop α) :
                                                  f.withTop a = WithTop.map (⇑f) a
                                                  @[simp]
                                                  theorem LatticeHom.withBot_apply {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) (a : WithBot α) :
                                                  f.withBot a = WithBot.map (⇑f) a
                                                  @[simp]
                                                  theorem LatticeHom.withTop_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Lattice α] [Lattice β] [Lattice γ] (f : LatticeHom β γ) (g : LatticeHom α β) :
                                                  @[simp]
                                                  theorem LatticeHom.withBot_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Lattice α] [Lattice β] [Lattice γ] (f : LatticeHom β γ) (g : LatticeHom α β) :
                                                  def LatticeHom.withTopWithBot {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :

                                                  Adjoins a ⊤ and ⊥ to the domain and codomain of a LatticeHom.

                                                  Equations
                                                  Instances For
                                                    def LatticeHom.withBotWithTop {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :

                                                    Adjoins a ⊥ and ⊤ to the domain and codomain of a LatticeHom.

                                                    Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem LatticeHom.coe_withTopWithBot {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :
                                                      @[simp]
                                                      theorem LatticeHom.coe_withBotWithTop {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :
                                                      @[simp]
                                                      theorem LatticeHom.withTopWithBot_apply {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) (a : WithTop (WithBot α)) :
                                                      @[simp]
                                                      theorem LatticeHom.withBotWithTop_apply {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) (a : WithBot (WithTop α)) :
                                                      @[simp]
                                                      theorem LatticeHom.withTopWithBot_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Lattice α] [Lattice β] [Lattice γ] (f : LatticeHom β γ) (g : LatticeHom α β) :
                                                      @[simp]
                                                      theorem LatticeHom.withBotWithTop_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Lattice α] [Lattice β] [Lattice γ] (f : LatticeHom β γ) (g : LatticeHom α β) :
                                                      def LatticeHom.withTop' {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] [OrderTop β] (f : LatticeHom α β) :

                                                      Adjoins a ⊤ to the domain of a LatticeHom.

                                                      Equations
                                                      Instances For
                                                        def LatticeHom.withBot' {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] [OrderBot β] (f : LatticeHom α β) :

                                                        Adjoins a ⊥ to the domain of a LatticeHom.

                                                        Equations
                                                        Instances For
                                                          @[simp]
                                                          theorem LatticeHom.withBot'_toFun {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] [OrderBot β] (f : LatticeHom α β) (a : WithBot α) :
                                                          @[simp]
                                                          theorem LatticeHom.withTop'_toFun {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] [OrderTop β] (f : LatticeHom α β) (a : WithTop α) :
                                                          def LatticeHom.withTopWithBot' {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] [BoundedOrder β] (f : LatticeHom α β) :

                                                          Adjoins a ⊤ and ⊥ to the domain of a LatticeHom.

                                                          Equations
                                                          Instances For
                                                            def LatticeHom.withBotWithTop' {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] [BoundedOrder β] (f : LatticeHom α β) :

                                                            Adjoins a ⊥ and ⊤ to the domain of a LatticeHom.

                                                            Equations
                                                            Instances For
                                                              @[simp]
                                                              theorem LatticeHom.withTopWithBot'_toFun {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] [BoundedOrder β] (f : LatticeHom α β) (a : WithTop (WithBot α)) :
                                                              @[simp]
                                                              theorem LatticeHom.withBotWithTop'_toFun {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] [BoundedOrder β] (f : LatticeHom α β) (a : WithBot (WithTop α)) :