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.

Instances For

    Embedding into WithTop α.

    Instances For
      @[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.

      Instances For
        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.

        Instances For
          @[simp]
          theorem WithTop.subtypeOrderIso_apply_coe {α : Type u_1} [PartialOrder α] [OrderTop α] [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 ) :
          subtypeOrderIso.symm a = a, h

          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.

          Instances For

            Embedding into WithBot α.

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

              The coercion α → WithBot α bundled as monotone map.

              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.

                Instances For
                  @[simp]
                  theorem WithBot.subtypeOrderIso_apply_coe {α : Type u_1} [PartialOrder α] [OrderBot α] [DecidablePred fun (x : α) => x = ] (a : { a : α // a }) :
                  subtypeOrderIso a = a
                  theorem WithBot.subtypeOrderIso_symm_apply {α : Type u_1} [PartialOrder α] [OrderBot α] [DecidablePred fun (x : α) => x = ] {a : α} (h : a ) :
                  subtypeOrderIso.symm a = a, h
                  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 β.

                  Instances For
                    @[simp]
                    theorem OrderHom.withBotMap_coe {α : Type u_1} {β : Type u_2} [Preorder α] [Preorder β] (f : α →o β) :
                    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 β.

                    Instances For
                      @[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.

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

                        A version of WithTop.map for order embeddings.

                        Instances For
                          @[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.

                          Instances For
                            @[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 γ) :
                            def OrderIso.withBotCongr {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (e : α ≃o β) :

                            A version of Equiv.optionCongr for WithBot.

                            Instances For
                              @[simp]
                              theorem OrderIso.withBotCongr_apply {α : Type u_1} {β : Type u_2} [PartialOrder α] [PartialOrder β] (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.

                              Instances For
                                @[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]
                                theorem SupHom.withTop_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [SemilatticeSup α] [SemilatticeSup β] [SemilatticeSup γ] (f : SupHom β γ) (g : SupHom α β) :
                                def SupHom.withBot {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] (f : SupHom α β) :

                                Adjoins a to the domain and codomain of a SupHom.

                                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 SupHom.withBot_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [SemilatticeSup α] [SemilatticeSup β] [SemilatticeSup γ] (f : SupHom β γ) (g : SupHom α β) :
                                  def SupHom.withTop' {α : Type u_1} {β : Type u_2} [SemilatticeSup α] [SemilatticeSup β] [OrderTop β] (f : SupHom α β) :
                                  SupHom (WithTop α) β

                                  Adjoins a to the codomain of a SupHom.

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

                                    Adjoins a to the domain of a SupHom.

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

                                      Adjoins a to the domain and codomain of an InfHom.

                                      Instances For
                                        @[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 InfHom.withTop_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [SemilatticeInf α] [SemilatticeInf β] [SemilatticeInf γ] (f : InfHom β γ) (g : InfHom α β) :
                                        def InfHom.withBot {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] (f : InfHom α β) :

                                        Adjoins a to the domain and codomain of an InfHom.

                                        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 InfHom.withBot_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [SemilatticeInf α] [SemilatticeInf β] [SemilatticeInf γ] (f : InfHom β γ) (g : InfHom α β) :
                                          def InfHom.withTop' {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] [OrderTop β] (f : InfHom α β) :

                                          Adjoins a to the codomain of an InfHom.

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

                                            Adjoins a to the codomain of an InfHom.

                                            Instances For
                                              @[simp]
                                              theorem InfHom.withBot'_toFun {α : Type u_1} {β : Type u_2} [SemilatticeInf α] [SemilatticeInf β] [OrderBot β] (f : InfHom α β) (a : WithBot α) :
                                              f.withBot' a = Option.elim a f
                                              def LatticeHom.withTop {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :

                                              Adjoins a to the domain and codomain of a LatticeHom.

                                              Instances For
                                                @[simp]
                                                theorem LatticeHom.withTop_toFun {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) (a✝ : WithTop α) :
                                                f.withTop a✝ = WithTop.map (⇑f) a✝
                                                @[simp]
                                                theorem LatticeHom.coe_withTop {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :
                                                f.withTop = WithTop.map f
                                                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.withTop_comp {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Lattice α] [Lattice β] [Lattice γ] (f : LatticeHom β γ) (g : LatticeHom α β) :
                                                def LatticeHom.withBot {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :

                                                Adjoins a to the domain and codomain of a LatticeHom.

                                                Instances For
                                                  @[simp]
                                                  theorem LatticeHom.withBot_toFun {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) (a : WithBot α) :
                                                  f.withBot a = f.withBot a
                                                  @[simp]
                                                  theorem LatticeHom.coe_withBot {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :
                                                  f.withBot = WithBot.map f
                                                  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.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.

                                                  Instances For
                                                    @[simp]
                                                    theorem LatticeHom.withTopWithBot_toFun {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) (a✝ : WithTop (WithBot α)) :
                                                    @[simp]
                                                    theorem LatticeHom.coe_withTopWithBot {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) :
                                                    theorem LatticeHom.withTopWithBot_apply {α : Type u_1} {β : Type u_2} [Lattice α] [Lattice β] (f : LatticeHom α β) (a : WithTop (WithBot α)) :
                                                    @[simp]
                                                    theorem LatticeHom.withTopWithBot_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 codomain of a LatticeHom.

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

                                                      Adjoins a to the domain and codomain of a LatticeHom.

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

                                                        Adjoins a and to the codomain of a LatticeHom.

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