Documentation

Mathlib.Order.RelClasses

Unbundled relation classes #

In this file we prove some properties of Is* classes defined in Mathlib/Order/Defs/Unbundled.lean. The main difference between these classes and the usual order classes (Preorder etc) is that usual classes extend LE and/or LT while these classes take a relation as an explicit argument.

theorem Std.Refl.swap {α : Type u} (r : ααProp) [Refl r] :
@[deprecated Std.Refl.swap (since := "2026-01-09")]
theorem IsRefl.swap {α : Type u} (r : ααProp) [Std.Refl r] :

Alias of Std.Refl.swap.

theorem Std.Irrefl.swap {α : Type u} (r : ααProp) [Irrefl r] :
theorem IsTrans.swap {α : Type u} (r : ααProp) [IsTrans α r] :
theorem Std.Antisymm.swap {α : Type u} (r : ααProp) [Antisymm r] :
theorem Std.Asymm.swap {α : Type u} (r : ααProp) [Asymm r] :
@[deprecated Std.Asymm.swap (since := "2026-01-05")]
theorem IsAsymm.swap {α : Type u} (r : ααProp) [Std.Asymm r] :

Alias of Std.Asymm.swap.

theorem Std.Total.swap {α : Type u} (r : ααProp) [Total r] :
@[deprecated Std.Trichotomous.swap (since := "2026-01-24")]
theorem IsTrichotomous.swap {α : Type u} (r : ααProp) [Std.Trichotomous r] :

Alias of Std.Trichotomous.swap.

theorem IsPreorder.swap {α : Type u} (r : ααProp) [IsPreorder α r] :
theorem IsStrictOrder.swap {α : Type u} (r : ααProp) [IsStrictOrder α r] :
theorem IsPartialOrder.swap {α : Type u} (r : ααProp) [IsPartialOrder α r] :
theorem eq_empty_relation {α : Type u} (r : ααProp) [Std.Irrefl r] [Subsingleton α] :
@[reducible, inline]
abbrev partialOrderOfSO {α : Type u} (r : ααProp) [IsStrictOrder α r] :

Construct a partial order from an isStrictOrder relation.

See note [reducible non-instances].

Equations
    Instances For
      @[reducible, inline]
      abbrev linearOrderOfSTO {α : Type u} (r : ααProp) [IsStrictTotalOrder α r] [DecidableRel r] :

      Construct a linear order from an IsStrictTotalOrder relation.

      See note [reducible non-instances].

      Equations
        Instances For

          Order connection #

          class IsOrderConnected (α : Type u) (lt : ααProp) :

          A connected order is one satisfying the condition a < c → a < b ∨ b < c. This is recognizable as an intuitionistic substitute for a ≤ b ∨ b ≤ a on the constructive reals, and is also known as negative transitivity, since the contrapositive asserts transitivity of the relation ¬ a < b.

          • conn (a b c : α) : lt a clt a b lt b c

            A connected order is one satisfying the condition a < c → a < b ∨ b < c.

          Instances
            theorem IsOrderConnected.neg_trans {α : Type u} {r : ααProp} [IsOrderConnected α r] {a b c : α} (h₁ : ¬r a b) (h₂ : ¬r b c) :
            ¬r a c
            @[instance 100]

            Inverse Image #

            theorem InvImage.trichotomous {α : Type u} {β : Type v} {r : ααProp} [Std.Trichotomous r] {f : βα} (h : Function.Injective f) :
            @[deprecated InvImage.trichotomous (since := "2026-01-24")]
            theorem InvImage.isTrichotomous {α : Type u} {β : Type v} {r : ααProp} [Std.Trichotomous r] {f : βα} (h : Function.Injective f) :

            Alias of InvImage.trichotomous.

            instance InvImage.asymm {α : Type u} {β : Type v} {r : ααProp} [Std.Asymm r] (f : βα) :

            Well-order #

            class IsWellFounded (α : Type u) (r : ααProp) :

            A well-founded relation. Not to be confused with IsWellOrder.

            Instances
              theorem isWellFounded_iff (α : Type u) (r : ααProp) :
              @[irreducible]
              theorem WellFoundedRelation.asymmetric {α : Sort u_1} [WellFoundedRelation α] {a b : α} :
              rel a b¬rel b a
              @[irreducible]
              theorem WellFoundedRelation.asymmetric₃ {α : Sort u_1} [WellFoundedRelation α] {a b c : α} :
              rel a brel b c¬rel c a
              theorem WellFounded.prod_lex {α : Type u} {β : Type v} {ra : ααProp} {rb : ββProp} (ha : WellFounded ra) (hb : WellFounded rb) :
              theorem WellFounded.psigma_lex {α : Sort u_1} {β : αSort u_2} {r : ααProp} {s : (a : α) → β aβ aProp} (ha : WellFounded r) (hb : ∀ (x : α), WellFounded (s x)) :

              The lexicographical order of well-founded relations is well-founded.

              theorem WellFounded.psigma_revLex {α : Sort u_1} {β : Sort u_2} {r : ααProp} {s : ββProp} (ha : WellFounded r) (hb : WellFounded s) :
              theorem WellFounded.psigma_skipLeft (α : Type u) {β : Type v} {s : ββProp} (hb : WellFounded s) :
              theorem IsWellFounded.induction {α : Type u} (r : ααProp) [IsWellFounded α r] {motive : αProp} (a : α) (ind : ∀ (x : α), (∀ (y : α), r y xmotive y)motive x) :
              motive a

              Induction on a well-founded relation.

              theorem IsWellFounded.apply {α : Type u} (r : ααProp) [IsWellFounded α r] (a : α) :
              Acc r a

              All values are accessible under the well-founded relation.

              def IsWellFounded.fix {α : Type u} (r : ααProp) [IsWellFounded α r] {motive : αSort u_1} (ind : (x : α) → ((y : α) → r y xmotive y)motive x) (x : α) :
              motive x

              Creates data, given a way to generate a value from all that compare as less under a well-founded relation. See also IsWellFounded.fix_eq.

              Equations
                Instances For
                  theorem IsWellFounded.fix_eq {α : Type u} (r : ααProp) [IsWellFounded α r] {motive : αSort u_1} (ind : (x : α) → ((y : α) → r y xmotive y)motive x) (x : α) :
                  fix r ind x = ind x fun (y : α) (x : r y x) => fix r ind y

                  The value from IsWellFounded.fix is built from the previous ones as specified.

                  Derive a WellFoundedRelation instance from an isWellFounded instance.

                  Equations
                    Instances For
                      theorem WellFounded.asymmetric {α : Sort u_1} {r : ααProp} (h : WellFounded r) (a b : α) :
                      r a b¬r b a
                      theorem WellFounded.asymmetric₃ {α : Sort u_1} {r : ααProp} (h : WellFounded r) (a b c : α) :
                      r a br b c¬r c a
                      @[instance 100]
                      instance instAsymmOfIsWellFounded {α : Type u} (r : ααProp) [IsWellFounded α r] :
                      instance instIsWellFoundedTransGen {α : Type u} (r : ααProp) [i : IsWellFounded α r] :
                      @[reducible, inline]
                      abbrev WellFoundedLT (α : Type u_1) [LT α] :

                      A class for a well-founded relation <.

                      Equations
                        Instances For
                          @[reducible, inline]
                          abbrev WellFoundedGT (α : Type u_1) [LT α] :

                          A class for a well-founded relation >.

                          Equations
                            Instances For
                              theorem wellFounded_lt {α : Type u} [LT α] [WellFoundedLT α] :
                              WellFounded fun (x1 x2 : α) => x1 < x2
                              theorem wellFounded_gt {α : Type u} [LT α] [WellFoundedGT α] :
                              WellFounded fun (x1 x2 : α) => x2 < x1
                              class IsWellOrder (α : Type u) (r : ααProp) extends Std.Trichotomous r, IsTrans α r, IsWellFounded α r :

                              A well order is a well-founded linear order.

                              Instances
                                @[instance 100]
                                instance instIsStrictTotalOrderOfIsWellOrder {α : Type u_1} (r : ααProp) [IsWellOrder α r] :
                                theorem WellFoundedLT.induction {α : Type u} [LT α] [WellFoundedLT α] {motive : αProp} (a : α) (ind : ∀ (x : α), (∀ y < x, motive y)motive x) :
                                motive a

                                Inducts on a well-founded < relation.

                                theorem WellFoundedGT.induction {α : Type u} [LT α] [WellFoundedGT α] {motive : αProp} (a : α) (ind : ∀ (x : α), (∀ (y : α), x < ymotive y)motive x) :
                                motive a

                                Inducts on a well-founded > relation.

                                theorem WellFoundedLT.apply {α : Type u} [LT α] [WellFoundedLT α] (a : α) :
                                Acc (fun (x1 x2 : α) => x1 < x2) a

                                All values are accessible under the well-founded <.

                                theorem WellFoundedGT.apply {α : Type u} [LT α] [WellFoundedGT α] (a : α) :
                                Acc (fun (x1 x2 : α) => x2 < x1) a

                                All values are accessible under the well-founded >.

                                def WellFoundedLT.fix {α : Type u} [LT α] [WellFoundedLT α] {motive : αSort u_1} (ind : (x : α) → ((y : α) → y < xmotive y)motive x) (x : α) :
                                motive x

                                Creates data, given a way to generate a value from all that compare as lesser. See also WellFoundedLT.fix_eq.

                                Equations
                                  Instances For
                                    def WellFoundedGT.fix {α : Type u} [LT α] [WellFoundedGT α] {motive : αSort u_1} (ind : (x : α) → ((y : α) → x < ymotive y)motive x) (x : α) :
                                    motive x

                                    Creates data, given a way to generate a value from all that compare as greater. See also WellFoundedGT.fix_eq.

                                    Equations
                                      Instances For
                                        theorem WellFoundedLT.fix_eq {α : Type u} [LT α] [WellFoundedLT α] {motive : αSort u_1} (ind : (x : α) → ((y : α) → y < xmotive y)motive x) (x : α) :
                                        fix ind x = ind x fun (y : α) (x : y < x) => fix ind y

                                        The value from WellFoundedLT.fix is built from the previous ones as specified.

                                        theorem WellFoundedGT.fix_eq {α : Type u} [LT α] [WellFoundedGT α] {motive : αSort u_1} (ind : (x : α) → ((y : α) → x < ymotive y)motive x) (x : α) :
                                        fix ind x = ind x fun (y : α) (x : x < y) => fix ind y

                                        The value from WellFoundedGT.fix is built from the successive ones as specified.

                                        Derive a WellFoundedRelation instance from a WellFoundedLT instance.

                                        Equations
                                          Instances For

                                            Derive a WellFoundedRelation instance from a WellFoundedGT instance.

                                            Equations
                                              Instances For
                                                noncomputable def IsWellOrder.linearOrder {α : Type u} (r : ααProp) [IsWellOrder α r] :

                                                Construct a decidable linear order from a well-founded linear order.

                                                Equations
                                                  Instances For
                                                    def IsWellOrder.toHasWellFounded {α : Type u} [LT α] [hwo : IsWellOrder α fun (x1 x2 : α) => x1 < x2] :

                                                    Derive a WellFoundedRelation instance from an IsWellOrder instance.

                                                    Equations
                                                      Instances For
                                                        theorem Subsingleton.isWellOrder {α : Type u} [Subsingleton α] (r : ααProp) [hr : Std.Irrefl r] :
                                                        @[instance 100]
                                                        instance instIsWellOrderOfIsEmpty {α : Type u} [IsEmpty α] (r : ααProp) :
                                                        instance Prod.Lex.instIsWellFounded {α : Type u} {β : Type v} {r : ααProp} {s : ββProp} [IsWellFounded α r] [IsWellFounded β s] :
                                                        IsWellFounded (α × β) (Prod.Lex r s)
                                                        instance instIsWellOrderProdLex {α : Type u} {β : Type v} {r : ααProp} {s : ββProp} [IsWellOrder α r] [IsWellOrder β s] :
                                                        IsWellOrder (α × β) (Prod.Lex r s)
                                                        instance instIsWellFoundedInvImage {α : Type u} {β : Type v} (r : ααProp) [IsWellFounded α r] (f : βα) :
                                                        instance instIsWellFoundedInvImageNatLt {α : Type u} (f : α) :
                                                        IsWellFounded α (InvImage (fun (x1 x2 : ) => x1 < x2) f)
                                                        theorem Subrelation.isWellFounded {α : Type u} (r : ααProp) [IsWellFounded α r] {s : ααProp} (h : Subrelation s r) :
                                                        @[deprecated Prod.wellFoundedLT (since := "2026-01-12")]
                                                        theorem Prod.wellFoundedLT' {α : Type u} {β : Type v} [Preorder α] [WellFoundedLT α] [Preorder β] [WellFoundedLT β] :

                                                        Alias of Prod.wellFoundedLT.

                                                        @[deprecated Prod.wellFoundedGT (since := "2026-01-12")]
                                                        theorem Prod.wellFoundedGT' {α : Type u} {β : Type v} [Preorder α] [WellFoundedGT α] [Preorder β] [WellFoundedGT β] :

                                                        Alias of Prod.wellFoundedGT.

                                                        def Set.Unbounded {α : Type u} (r : ααProp) (s : Set α) :

                                                        An unbounded or cofinal set.

                                                        Equations
                                                          Instances For
                                                            def Set.Bounded {α : Type u} (r : ααProp) (s : Set α) :

                                                            A bounded or final set. Not to be confused with Bornology.IsBounded.

                                                            Equations
                                                              Instances For
                                                                @[simp]
                                                                theorem Set.not_bounded_iff {α : Type u} {r : ααProp} (s : Set α) :
                                                                @[simp]
                                                                theorem Set.not_unbounded_iff {α : Type u} {r : ααProp} (s : Set α) :
                                                                theorem Set.unbounded_of_isEmpty {α : Type u} [IsEmpty α] {r : ααProp} (s : Set α) :
                                                                instance Order.Preimage.instRefl {α : Type u} {β : Type v} {r : ααProp} [Std.Refl r] {f : βα} :
                                                                instance Order.Preimage.instIrrefl {α : Type u} {β : Type v} {r : ααProp} [Std.Irrefl r] {f : βα} :
                                                                instance Order.Preimage.instIsSymm {α : Type u} {β : Type v} {r : ααProp} [Std.Symm r] {f : βα} :
                                                                instance Order.Preimage.instAsymm {α : Type u} {β : Type v} {r : ααProp} [Std.Asymm r] {f : βα} :
                                                                instance Order.Preimage.instIsTrans {α : Type u} {β : Type v} {r : ααProp} [IsTrans α r] {f : βα} :
                                                                IsTrans β (f ⁻¹'o r)
                                                                instance Order.Preimage.instIsPreorder {α : Type u} {β : Type v} {r : ααProp} [IsPreorder α r] {f : βα} :
                                                                instance Order.Preimage.instIsStrictOrder {α : Type u} {β : Type v} {r : ααProp} [IsStrictOrder α r] {f : βα} :
                                                                instance Order.Preimage.instIsStrictWeakOrder {α : Type u} {β : Type v} {r : ααProp} [IsStrictWeakOrder α r] {f : βα} :
                                                                instance Order.Preimage.instIsEquiv {α : Type u} {β : Type v} {r : ααProp} [IsEquiv α r] {f : βα} :
                                                                IsEquiv β (f ⁻¹'o r)
                                                                instance Order.Preimage.instTotal {α : Type u} {β : Type v} {r : ααProp} [Std.Total r] {f : βα} :
                                                                theorem Order.Preimage.antisymm {α : Type u} {β : Type v} {r : ααProp} [Std.Antisymm r] {f : βα} (hf : Function.Injective f) :
                                                                @[deprecated Order.Preimage.antisymm (since := "2026-01-06")]
                                                                theorem Order.Preimage.isAntisymm {α : Type u} {β : Type v} {r : ααProp} [Std.Antisymm r] {f : βα} (hf : Function.Injective f) :

                                                                Alias of Order.Preimage.antisymm.

                                                                Strict-non strict relations #

                                                                class IsNonstrictStrictOrder (α : Type u_1) (r : semiOutParam (ααProp)) (s : ααProp) :

                                                                An unbundled relation class stating that r is the nonstrict relation corresponding to the strict relation s. Compare lt_iff_le_not_ge. This is mostly meant to provide dot notation on (⊆) and (⊂).

                                                                • right_iff_left_not_left (a b : α) : s a b r a b ¬r b a

                                                                  The relation r is the nonstrict relation corresponding to the strict relation s.

                                                                Instances
                                                                  theorem right_iff_left_not_left {α : Type u} {r s : ααProp} [IsNonstrictStrictOrder α r s] {a b : α} :
                                                                  s a b r a b ¬r b a
                                                                  theorem right_iff_left_not_left_of {α : Type u} (r s : ααProp) [IsNonstrictStrictOrder α r s] {a b : α} :
                                                                  s a b r a b ¬r b a

                                                                  A version of right_iff_left_not_left with explicit r and s.

                                                                  instance instIrreflOfIsNonstrictStrictOrder {α : Type u} {r s : ααProp} [IsNonstrictStrictOrder α r s] :

                                                                  and #

                                                                  theorem subset_of_eq_of_subset {α : Type u} [HasSubset α] {a b c : α} (hab : a = b) (hbc : b c) :
                                                                  a c
                                                                  theorem subset_of_subset_of_eq {α : Type u} [HasSubset α] {a b c : α} (hab : a b) (hbc : b = c) :
                                                                  a c
                                                                  @[simp]
                                                                  theorem subset_refl {α : Type u} [HasSubset α] [Std.Refl fun (x1 x2 : α) => x1 x2] (a : α) :
                                                                  a a
                                                                  theorem subset_rfl {α : Type u} [HasSubset α] {a : α} [Std.Refl fun (x1 x2 : α) => x1 x2] :
                                                                  a a
                                                                  theorem subset_of_eq {α : Type u} [HasSubset α] {a b : α} [Std.Refl fun (x1 x2 : α) => x1 x2] :
                                                                  a = ba b
                                                                  theorem superset_of_eq {α : Type u} [HasSubset α] {a b : α} [Std.Refl fun (x1 x2 : α) => x1 x2] :
                                                                  a = bb a
                                                                  theorem ne_of_not_subset {α : Type u} [HasSubset α] {a b : α} [Std.Refl fun (x1 x2 : α) => x1 x2] :
                                                                  ¬a ba b
                                                                  theorem ne_of_not_superset {α : Type u} [HasSubset α] {a b : α} [Std.Refl fun (x1 x2 : α) => x1 x2] :
                                                                  ¬a bb a
                                                                  theorem subset_trans {α : Type u} [HasSubset α] [IsTrans α fun (x1 x2 : α) => x1 x2] {a b c : α} :
                                                                  a bb ca c
                                                                  theorem subset_antisymm {α : Type u} [HasSubset α] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] :
                                                                  a bb aa = b
                                                                  theorem superset_antisymm {α : Type u} [HasSubset α] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] :
                                                                  a bb ab = a
                                                                  theorem Eq.trans_subset {α : Type u} [HasSubset α] {a b c : α} (hab : a = b) (hbc : b c) :
                                                                  a c

                                                                  Alias of subset_of_eq_of_subset.

                                                                  theorem HasSubset.subset.trans_eq {α : Type u} [HasSubset α] {a b c : α} (hab : a b) (hbc : b = c) :
                                                                  a c

                                                                  Alias of subset_of_subset_of_eq.

                                                                  theorem Eq.subset {α : Type u} [HasSubset α] {a b : α} [Std.Refl fun (x1 x2 : α) => x1 x2] :
                                                                  a = ba b

                                                                  Alias of subset_of_eq.

                                                                  @[deprecated Eq.subset (since := "2026-01-24")]
                                                                  theorem Eq.subset' {α : Type u} [HasSubset α] {a b : α} [Std.Refl fun (x1 x2 : α) => x1 x2] :
                                                                  a = ba b

                                                                  Alias of subset_of_eq.


                                                                  Alias of subset_of_eq.

                                                                  theorem Eq.superset {α : Type u} [HasSubset α] {a b : α} [Std.Refl fun (x1 x2 : α) => x1 x2] :
                                                                  a = bb a

                                                                  Alias of superset_of_eq.

                                                                  theorem HasSubset.Subset.trans {α : Type u} [HasSubset α] [IsTrans α fun (x1 x2 : α) => x1 x2] {a b c : α} :
                                                                  a bb ca c

                                                                  Alias of subset_trans.

                                                                  theorem HasSubset.Subset.antisymm {α : Type u} [HasSubset α] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] :
                                                                  a bb aa = b

                                                                  Alias of subset_antisymm.

                                                                  theorem HasSubset.Subset.antisymm' {α : Type u} [HasSubset α] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] :
                                                                  a bb ab = a

                                                                  Alias of superset_antisymm.

                                                                  theorem subset_antisymm_iff {α : Type u} [HasSubset α] {a b : α} [Std.Refl fun (x1 x2 : α) => x1 x2] [Std.Antisymm fun (x1 x2 : α) => x1 x2] :
                                                                  a = b a b b a
                                                                  theorem superset_antisymm_iff {α : Type u} [HasSubset α] {a b : α} [Std.Refl fun (x1 x2 : α) => x1 x2] [Std.Antisymm fun (x1 x2 : α) => x1 x2] :
                                                                  a = b b a a b
                                                                  theorem ssubset_of_eq_of_ssubset {α : Type u} [HasSSubset α] {a b c : α} (hab : a = b) (hbc : b c) :
                                                                  a c
                                                                  theorem ssubset_of_ssubset_of_eq {α : Type u} [HasSSubset α] {a b c : α} (hab : a b) (hbc : b = c) :
                                                                  a c
                                                                  theorem ssubset_irrefl {α : Type u} [HasSSubset α] [Std.Irrefl fun (x1 x2 : α) => x1 x2] (a : α) :
                                                                  ¬a a
                                                                  theorem ssubset_irrfl {α : Type u} [HasSSubset α] [Std.Irrefl fun (x1 x2 : α) => x1 x2] {a : α} :
                                                                  ¬a a
                                                                  theorem ne_of_ssubset {α : Type u} [HasSSubset α] [Std.Irrefl fun (x1 x2 : α) => x1 x2] {a b : α} :
                                                                  a ba b
                                                                  theorem ne_of_ssuperset {α : Type u} [HasSSubset α] [Std.Irrefl fun (x1 x2 : α) => x1 x2] {a b : α} :
                                                                  a bb a
                                                                  theorem ssubset_trans {α : Type u} [HasSSubset α] [IsTrans α fun (x1 x2 : α) => x1 x2] {a b c : α} :
                                                                  a bb ca c
                                                                  theorem ssubset_asymm {α : Type u} [HasSSubset α] [Std.Asymm fun (x1 x2 : α) => x1 x2] {a b : α} :
                                                                  a b¬b a
                                                                  theorem Eq.trans_ssubset {α : Type u} [HasSSubset α] {a b c : α} (hab : a = b) (hbc : b c) :
                                                                  a c

                                                                  Alias of ssubset_of_eq_of_ssubset.

                                                                  theorem HasSSubset.SSubset.trans_eq {α : Type u} [HasSSubset α] {a b c : α} (hab : a b) (hbc : b = c) :
                                                                  a c

                                                                  Alias of ssubset_of_ssubset_of_eq.

                                                                  theorem HasSSubset.SSubset.false {α : Type u} [HasSSubset α] [Std.Irrefl fun (x1 x2 : α) => x1 x2] {a : α} :
                                                                  ¬a a

                                                                  Alias of ssubset_irrfl.

                                                                  theorem HasSSubset.SSubset.ne {α : Type u} [HasSSubset α] [Std.Irrefl fun (x1 x2 : α) => x1 x2] {a b : α} :
                                                                  a ba b

                                                                  Alias of ne_of_ssubset.

                                                                  theorem HasSSubset.SSubset.ne' {α : Type u} [HasSSubset α] [Std.Irrefl fun (x1 x2 : α) => x1 x2] {a b : α} :
                                                                  a bb a

                                                                  Alias of ne_of_ssuperset.

                                                                  theorem HasSSubset.SSubset.trans {α : Type u} [HasSSubset α] [IsTrans α fun (x1 x2 : α) => x1 x2] {a b c : α} :
                                                                  a bb ca c

                                                                  Alias of ssubset_trans.

                                                                  theorem HasSSubset.SSubset.asymm {α : Type u} [HasSSubset α] [Std.Asymm fun (x1 x2 : α) => x1 x2] {a b : α} :
                                                                  a b¬b a

                                                                  Alias of ssubset_asymm.

                                                                  theorem ssubset_iff_subset_not_subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} :
                                                                  a b a b ¬b a
                                                                  theorem subset_of_ssubset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} (h : a b) :
                                                                  a b
                                                                  theorem not_subset_of_ssubset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} (h : a b) :
                                                                  ¬b a
                                                                  theorem not_ssubset_of_subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} (h : a b) :
                                                                  ¬b a
                                                                  theorem ssubset_of_subset_not_subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} (h₁ : a b) (h₂ : ¬b a) :
                                                                  a b
                                                                  theorem HasSSubset.SSubset.subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} (h : a b) :
                                                                  a b

                                                                  Alias of subset_of_ssubset.

                                                                  theorem HasSSubset.SSubset.not_subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} (h : a b) :
                                                                  ¬b a

                                                                  Alias of not_subset_of_ssubset.

                                                                  theorem HasSubset.Subset.not_ssubset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} (h : a b) :
                                                                  ¬b a

                                                                  Alias of not_ssubset_of_subset.

                                                                  theorem HasSubset.Subset.ssubset_of_not_subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} (h₁ : a b) (h₂ : ¬b a) :
                                                                  a b

                                                                  Alias of ssubset_of_subset_not_subset.

                                                                  theorem ssubset_of_subset_of_ssubset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b c : α} [IsTrans α fun (x1 x2 : α) => x1 x2] (h₁ : a b) (h₂ : b c) :
                                                                  a c
                                                                  theorem ssubset_of_ssubset_of_subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b c : α} [IsTrans α fun (x1 x2 : α) => x1 x2] (h₁ : a b) (h₂ : b c) :
                                                                  a c
                                                                  theorem ssubset_of_subset_of_ne {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (h₁ : a b) (h₂ : a b) :
                                                                  a b
                                                                  theorem ssubset_of_ne_of_subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (h₁ : a b) (h₂ : a b) :
                                                                  a b
                                                                  theorem eq_or_ssubset_of_subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (h : a b) :
                                                                  a = b a b
                                                                  theorem ssubset_or_eq_of_subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (h : a b) :
                                                                  a b a = b
                                                                  theorem eq_of_subset_of_not_ssubset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (hab : a b) (hba : ¬a b) :
                                                                  a = b
                                                                  theorem eq_of_superset_of_not_ssuperset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (hab : a b) (hba : ¬a b) :
                                                                  b = a
                                                                  theorem HasSubset.Subset.trans_ssubset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b c : α} [IsTrans α fun (x1 x2 : α) => x1 x2] (h₁ : a b) (h₂ : b c) :
                                                                  a c

                                                                  Alias of ssubset_of_subset_of_ssubset.

                                                                  theorem HasSSubset.SSubset.trans_subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b c : α} [IsTrans α fun (x1 x2 : α) => x1 x2] (h₁ : a b) (h₂ : b c) :
                                                                  a c

                                                                  Alias of ssubset_of_ssubset_of_subset.

                                                                  theorem HasSubset.Subset.ssubset_of_ne {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (h₁ : a b) (h₂ : a b) :
                                                                  a b

                                                                  Alias of ssubset_of_subset_of_ne.

                                                                  theorem Ne.ssubset_of_subset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (h₁ : a b) (h₂ : a b) :
                                                                  a b

                                                                  Alias of ssubset_of_ne_of_subset.

                                                                  theorem HasSubset.Subset.eq_or_ssubset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (h : a b) :
                                                                  a = b a b

                                                                  Alias of eq_or_ssubset_of_subset.

                                                                  theorem HasSubset.Subset.ssubset_or_eq {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (h : a b) :
                                                                  a b a = b

                                                                  Alias of ssubset_or_eq_of_subset.

                                                                  theorem HasSubset.Subset.eq_of_not_ssubset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (hab : a b) (hba : ¬a b) :
                                                                  a = b

                                                                  Alias of eq_of_subset_of_not_ssubset.

                                                                  theorem HasSubset.Subset.eq_of_not_ssuperset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] (hab : a b) (hba : ¬a b) :
                                                                  b = a

                                                                  Alias of eq_of_superset_of_not_ssuperset.

                                                                  theorem ssubset_iff_subset_ne {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Antisymm fun (x1 x2 : α) => x1 x2] :
                                                                  a b a b a b
                                                                  theorem subset_iff_ssubset_or_eq {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] {a b : α} [Std.Refl fun (x1 x2 : α) => x1 x2] [Std.Antisymm fun (x1 x2 : α) => x1 x2] :
                                                                  a b a b a = b
                                                                  theorem GCongr.ssubset_imp_ssubset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] [IsTrans α fun (x1 x2 : α) => x1 x2] {a b c d : α} (h₁ : c a) (h₂ : b d) :
                                                                  a bc d
                                                                  theorem GCongr.ssuperset_imp_ssuperset {α : Type u} [HasSubset α] [HasSSubset α] [IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 x2] [IsTrans α fun (x1 x2 : α) => x1 x2] {a b c d : α} (h₁ : a c) (h₂ : d b) :
                                                                  a bc d

                                                                  See if the term is a ⊂ b and the goal is a ⊆ b.

                                                                  Equations
                                                                    Instances For

                                                                      Conversion of bundled order typeclasses to unbundled relation typeclasses #

                                                                      instance instReflLe {α : Type u} [Preorder α] :
                                                                      Std.Refl fun (x1 x2 : α) => x1 x2
                                                                      instance instReflGe {α : Type u} [Preorder α] :
                                                                      Std.Refl fun (x1 x2 : α) => x2 x1
                                                                      instance instIsTransLe {α : Type u} [Preorder α] :
                                                                      IsTrans α fun (x1 x2 : α) => x1 x2
                                                                      instance instIsTransGe {α : Type u} [Preorder α] :
                                                                      IsTrans α fun (x1 x2 : α) => x2 x1
                                                                      instance instIsPreorderLe {α : Type u} [Preorder α] :
                                                                      IsPreorder α fun (x1 x2 : α) => x1 x2
                                                                      instance instIsPreorderGe {α : Type u} [Preorder α] :
                                                                      IsPreorder α fun (x1 x2 : α) => x2 x1
                                                                      instance instIrreflLt {α : Type u} [Preorder α] :
                                                                      Std.Irrefl fun (x1 x2 : α) => x1 < x2
                                                                      instance instIrreflGt {α : Type u} [Preorder α] :
                                                                      Std.Irrefl fun (x1 x2 : α) => x2 < x1
                                                                      instance instIsTransLt {α : Type u} [Preorder α] :
                                                                      IsTrans α fun (x1 x2 : α) => x1 < x2
                                                                      instance instIsTransGt {α : Type u} [Preorder α] :
                                                                      IsTrans α fun (x1 x2 : α) => x2 < x1
                                                                      instance instAsymmLt {α : Type u} [Preorder α] :
                                                                      Std.Asymm fun (x1 x2 : α) => x1 < x2
                                                                      instance instAsymmGt {α : Type u} [Preorder α] :
                                                                      Std.Asymm fun (x1 x2 : α) => x2 < x1
                                                                      instance instAntisymmLt {α : Type u} [Preorder α] :
                                                                      Std.Antisymm fun (x1 x2 : α) => x1 < x2
                                                                      instance instAntisymmGt {α : Type u} [Preorder α] :
                                                                      Std.Antisymm fun (x1 x2 : α) => x2 < x1
                                                                      instance instIsStrictOrderLt {α : Type u} [Preorder α] :
                                                                      IsStrictOrder α fun (x1 x2 : α) => x1 < x2
                                                                      instance instIsStrictOrderGt {α : Type u} [Preorder α] :
                                                                      IsStrictOrder α fun (x1 x2 : α) => x2 < x1
                                                                      instance instIsNonstrictStrictOrderLeLt {α : Type u} [Preorder α] :
                                                                      IsNonstrictStrictOrder α (fun (x1 x2 : α) => x1 x2) fun (x1 x2 : α) => x1 < x2
                                                                      instance instIsNonstrictStrictOrderGeGt {α : Type u} [Preorder α] :
                                                                      IsNonstrictStrictOrder α (fun (x1 x2 : α) => x2 x1) fun (x1 x2 : α) => x2 < x1
                                                                      instance instAntisymmLe {α : Type u} [PartialOrder α] :
                                                                      Std.Antisymm fun (x1 x2 : α) => x1 x2
                                                                      instance instAntisymmGe {α : Type u} [PartialOrder α] :
                                                                      Std.Antisymm fun (x1 x2 : α) => x2 x1
                                                                      instance instIsPartialOrderLe {α : Type u} [PartialOrder α] :
                                                                      IsPartialOrder α fun (x1 x2 : α) => x1 x2
                                                                      instance instIsPartialOrderGe {α : Type u} [PartialOrder α] :
                                                                      IsPartialOrder α fun (x1 x2 : α) => x2 x1
                                                                      instance LE.total {α : Type u} [LinearOrder α] :
                                                                      Std.Total fun (x1 x2 : α) => x1 x2
                                                                      instance LE.total' {α : Type u} [LinearOrder α] :
                                                                      Std.Total fun (x1 x2 : α) => x2 x1
                                                                      instance instIsLinearOrderLe {α : Type u} [LinearOrder α] :
                                                                      IsLinearOrder α fun (x1 x2 : α) => x1 x2
                                                                      instance instIsLinearOrderGe {α : Type u} [LinearOrder α] :
                                                                      IsLinearOrder α fun (x1 x2 : α) => x2 x1
                                                                      instance instTrichotomousLt {α : Type u} [LinearOrder α] :
                                                                      Std.Trichotomous fun (x1 x2 : α) => x1 < x2
                                                                      instance instTrichotomousGt {α : Type u} [LinearOrder α] :
                                                                      Std.Trichotomous fun (x1 x2 : α) => x2 < x1
                                                                      instance instTrichotomousLe {α : Type u} [LinearOrder α] :
                                                                      Std.Trichotomous fun (x1 x2 : α) => x1 x2
                                                                      instance instTrichotomousGe {α : Type u} [LinearOrder α] :
                                                                      Std.Trichotomous fun (x1 x2 : α) => x2 x1
                                                                      instance instIsStrictTotalOrderLt {α : Type u} [LinearOrder α] :
                                                                      IsStrictTotalOrder α fun (x1 x2 : α) => x1 < x2
                                                                      instance instIsStrictTotalOrderGt {α : Type u} [LinearOrder α] :
                                                                      IsStrictTotalOrder α fun (x1 x2 : α) => x2 < x1
                                                                      theorem transitive_ge {α : Type u} [Preorder α] :
                                                                      Transitive fun (a a_1 : α) => a_1 a
                                                                      theorem transitive_gt {α : Type u} [Preorder α] :
                                                                      Transitive fun (a a_1 : α) => a_1 < a
                                                                      instance OrderDual.total_le {α : Type u} [LE α] [h : Std.Total fun (x1 x2 : α) => x1 x2] :
                                                                      Std.Total fun (x1 x2 : αᵒᵈ) => x1 x2
                                                                      instance OrderDual.total_ge {α : Type u} [LE α] [h : Std.Total fun (x1 x2 : α) => x2 x1] :
                                                                      Std.Total fun (x1 x2 : αᵒᵈ) => x2 x1
                                                                      @[instance 100]
                                                                      instance isWellOrder_lt {α : Type u} [LinearOrder α] [WellFoundedLT α] :
                                                                      IsWellOrder α fun (x1 x2 : α) => x1 < x2
                                                                      @[instance 100]
                                                                      instance isWellOrder_gt {α : Type u} [LinearOrder α] [WellFoundedGT α] :
                                                                      IsWellOrder α fun (x1 x2 : α) => x2 < x1