Documentation

Mathlib.Order.OrderDual

Order dual #

This file defines OrderDual α, a type synonym reversing the meaning of all inequalities, with notation αᵒᵈ.

Notation #

αᵒᵈ is notation for OrderDual α.

Implementation notes #

One should not abuse definitional equality between α and αᵒᵈ. Instead, explicit coercions should be inserted:

def OrderDual (α : Type u_2) :
Type u_2

Type synonym to equip a type with the dual order: means and < means >. αᵒᵈ is notation for OrderDual α.

Equations
Instances For

    Type synonym to equip a type with the dual order: means and < means >. αᵒᵈ is notation for OrderDual α.

    Equations
    Instances For
      instance OrderDual.instNonempty (α : Type u_2) [h : Nonempty α] :
      @[implicit_reducible]
      instance OrderDual.instLE (α : Type u_2) [h : LE α] :
      Equations
      @[implicit_reducible]
      instance OrderDual.instLT (α : Type u_2) [h : LT α] :
      Equations
      @[implicit_reducible]
      instance OrderDual.instOrd (α : Type u_2) [h : Ord α] :
      Equations
      @[implicit_reducible]
      instance OrderDual.instMaxOfMin (α : Type u_2) [h : Min α] :
      Equations
      @[implicit_reducible]
      instance OrderDual.instMinOfMax (α : Type u_2) [h : Max α] :
      Equations
      instance OrderDual.instIsTransLe {α : Type u_1} [LE α] [T : IsTrans α LE.le] :
      instance OrderDual.instIsTransLt {α : Type u_1} [LT α] [T : IsTrans α LT.lt] :
      @[implicit_reducible]
      instance OrderDual.instPreorder (α : Type u_2) [Preorder α] :
      Equations
      @[implicit_reducible]
      Equations
      @[implicit_reducible]
      Equations
      @[implicit_reducible]
      instance OrderDual.instDecidableLT (α : Type u_2) [LT α] [h : DecidableLT α] :
      Equations
      @[implicit_reducible]
      instance OrderDual.instDecidableLE (α : Type u_2) [LE α] [h : DecidableLE α] :
      Equations
      @[implicit_reducible]
      Equations
      • One or more equations did not get rendered due to their size.
      @[implicit_reducible, deprecated "This declaration shouldn't have existed" (since := "2026-04-08")]
      def LinearOrder.swap (α : Type u_2) :

      The opposite linear order to a given linear order

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[implicit_reducible]
        instance OrderDual.instInhabited {α : Type u_1} [h : Inhabited α] :
        Equations
        theorem OrderDual.Ord.dual_dual (α : Type u_2) [H : Ord α] :
        @[implicit_reducible]
        instance OrderDual.instUnique {α : Type u_1} [h : Unique α] :
        Equations
        def OrderDual.toDual {α : Type u_1} :
        α αᵒᵈ

        toDual is the identity function to the OrderDual of a linear order.

        Equations
        Instances For
          def OrderDual.ofDual {α : Type u_1} :
          αᵒᵈ α

          ofDual is the identity function from the OrderDual of a linear order.

          Equations
          Instances For
            @[simp]
            theorem OrderDual.toDual_ofDual {α : Type u_1} (a : αᵒᵈ) :
            @[simp]
            theorem OrderDual.ofDual_toDual {α : Type u_1} (a : α) :
            @[simp]
            @[simp]
            theorem OrderDual.toDual_inj {α : Type u_1} {a b : α} :
            toDual a = toDual b a = b
            theorem OrderDual.ofDual_inj {α : Type u_1} {a b : αᵒᵈ} :
            ofDual a = ofDual b a = b
            theorem OrderDual.ext {α : Type u_1} {a b : αᵒᵈ} (h : ofDual a = ofDual b) :
            a = b
            theorem OrderDual.ext_iff {α : Type u_1} {a b : αᵒᵈ} :
            a = b ofDual a = ofDual b
            @[simp]
            theorem OrderDual.toDual_le_toDual {α : Type u_1} [LE α] {a b : α} :
            @[simp]
            theorem OrderDual.toDual_lt_toDual {α : Type u_1} [LT α] {a b : α} :
            toDual a < toDual b b < a
            @[simp]
            theorem OrderDual.ofDual_le_ofDual {α : Type u_1} [LE α] {a b : αᵒᵈ} :
            @[simp]
            theorem OrderDual.ofDual_lt_ofDual {α : Type u_1} [LT α] {a b : αᵒᵈ} :
            ofDual a < ofDual b b < a
            theorem OrderDual.le_toDual {α : Type u_1} [LE α] {a : αᵒᵈ} {b : α} :
            theorem OrderDual.toDual_le {α : Type u_1} [LE α] {a : αᵒᵈ} {b : α} :
            theorem OrderDual.lt_toDual {α : Type u_1} [LT α] {a : αᵒᵈ} {b : α} :
            a < toDual b b < ofDual a
            theorem OrderDual.toDual_lt {α : Type u_1} [LT α] {a : αᵒᵈ} {b : α} :
            toDual b < a ofDual a < b
            def OrderDual.rec {α : Type u_1} {motive : αᵒᵈSort u_2} (toDual : (a : α) → motive (toDual a)) (a : αᵒᵈ) :
            motive a

            Recursor for αᵒᵈ.

            Equations
            Instances For
              @[simp]
              theorem OrderDual.forall {α : Type u_1} {p : αᵒᵈProp} :
              (∀ (a : αᵒᵈ), p a) ∀ (a : α), p (toDual a)
              @[simp]
              theorem OrderDual.exists {α : Type u_1} {p : αᵒᵈProp} :
              ( (a : αᵒᵈ), p a) (a : α), p (toDual a)
              theorem LE.le.dual {α : Type u_1} [LE α] {a b : α} :

              Alias of the reverse direction of OrderDual.toDual_le_toDual.

              theorem LT.lt.dual {α : Type u_1} [LT α] {a b : α} :

              Alias of the reverse direction of OrderDual.toDual_lt_toDual.

              theorem LE.le.ofDual {α : Type u_1} [LE α] {a b : αᵒᵈ} :

              Alias of the reverse direction of OrderDual.ofDual_le_ofDual.

              theorem LT.lt.ofDual {α : Type u_1} [LT α] {a b : αᵒᵈ} :

              Alias of the reverse direction of OrderDual.ofDual_lt_ofDual.

              DenselyOrdered for OrderDual #

              Pushing order definitions through Equiv #

              @[reducible, inline]
              abbrev Equiv.top {α : Type u_1} {β : Type u_2} (e : α β) [Top β] :
              Top α

              Transfer Top across an Equiv.

              Equations
              Instances For
                theorem Equiv.top_def {α : Type u_1} {β : Type u_2} (e : α β) [Top β] :
                @[reducible, inline]
                abbrev Equiv.bot {α : Type u_1} {β : Type u_2} (e : α β) [Bot β] :
                Bot α

                Transfer Bot across an Equiv.

                Equations
                Instances For
                  theorem Equiv.bot_def {α : Type u_1} {β : Type u_2} (e : α β) [Bot β] :
                  @[reducible, inline]
                  abbrev Equiv.compl {α : Type u_1} {β : Type u_2} (e : α β) [Compl β] :

                  Transfer Compl across an Equiv.

                  Equations
                  Instances For
                    theorem Equiv.compl_def {α : Type u_1} {β : Type u_2} (e : α β) [Compl β] (a : α) :
                    a = e.symm (e a)
                    @[reducible, inline]
                    abbrev Equiv.sdiff {α : Type u_1} {β : Type u_2} (e : α β) [SDiff β] :

                    Transfer SDiff across an Equiv.

                    Equations
                    Instances For
                      theorem Equiv.sdiff_def {α : Type u_1} {β : Type u_2} (e : α β) [SDiff β] (a b : α) :
                      a \ b = e.symm (e a \ e b)
                      @[reducible, inline]
                      abbrev Equiv.himp {α : Type u_1} {β : Type u_2} (e : α β) [HImp β] :
                      HImp α

                      Transfer HImp across an Equiv.

                      Equations
                      Instances For
                        theorem Equiv.himp_def {α : Type u_1} {β : Type u_2} (e : α β) [HImp β] (a b : α) :
                        a b = e.symm (e a e b)
                        @[reducible, inline]
                        abbrev Equiv.hnot {α : Type u_1} {β : Type u_2} (e : α β) [HNot β] :
                        HNot α

                        Transfer HNot across an Equiv.

                        Equations
                        Instances For
                          theorem Equiv.hnot_def {α : Type u_1} {β : Type u_2} (e : α β) [HNot β] (a : α) :
                          a = e.symm (e a)