Documentation

Mathlib.Algebra.Order.Group.Cone

Construct ordered groups from groups with a specified positive cone. #

In this file we provide the structure GroupCone and the predicate IsMaxCone that encode axioms of OrderedCommGroup and LinearOrderedCommGroup in terms of the subset of non-negative elements.

We also provide constructors that convert between cones in groups and the corresponding ordered groups.

class AddGroupConeClass (S : Type u_1) (G : outParam (Type u_2)) [AddCommGroup G] [SetLike S G] extends AddSubmonoidClass S G :

AddGroupConeClass S G says that S is a type of cones in G.

Instances
    class GroupConeClass (S : Type u_1) (G : outParam (Type u_2)) [CommGroup G] [SetLike S G] extends SubmonoidClass S G :

    GroupConeClass S G says that S is a type of cones in G.

    Instances
      structure AddGroupCone (G : Type u_1) [AddCommGroup G] extends AddSubmonoid G :
      Type u_1

      A (positive) cone in an abelian group is a submonoid that does not contain both a and -a for any nonzero a. This is equivalent to being the set of non-negative elements of some order making the group into a partially ordered group.

      Instances For
        structure GroupCone (G : Type u_1) [CommGroup G] extends Submonoid G :
        Type u_1

        A (positive) cone in an abelian group is a submonoid that does not contain both a and a⁻¹ for any non-identity a. This is equivalent to being the set of elements that are at least 1 in some order making the group into a partially ordered group.

        Instances For
          instance GroupCone.instSetLike (G : Type u_1) [CommGroup G] :
          Equations
            @[deprecated NegMemClass (since := "2025-08-21")]
            def IsMaxCone (S : Type u_3) (G : outParam (Type u_4)) [Neg G] [SetLike S G] :

            Alias of NegMemClass.

            Equations
              Instances For
                @[deprecated InvMemClass (since := "2025-08-21")]
                def IsMaxMulCone (S : Type u_3) (G : outParam (Type u_4)) [Inv G] [SetLike S G] :

                Alias of InvMemClass.

                Equations
                  Instances For

                    The cone of elements that are at least 1.

                    Equations
                      Instances For

                        The cone of non-negative elements.

                        Equations
                          Instances For
                            @[simp]
                            theorem GroupCone.mem_oneLE {H : Type u_1} [CommGroup H] [PartialOrder H] [IsOrderedMonoid H] {a : H} :
                            a oneLE H 1 a
                            @[simp]
                            @[simp]
                            theorem GroupCone.coe_oneLE {H : Type u_1} [CommGroup H] [PartialOrder H] [IsOrderedMonoid H] :
                            (oneLE H) = {x : H | 1 x}
                            @[simp]
                            @[deprecated GroupCone.oneLE.hasMemOrInvMem (since := "2025-08-21")]

                            Alias of GroupCone.oneLE.hasMemOrInvMem.

                            @[deprecated AddGroupCone.nonneg.hasMemOrNegMem (since := "2025-08-21")]

                            Alias of AddGroupCone.nonneg.hasMemOrNegMem.

                            @[reducible, inline]
                            abbrev PartialOrder.mkOfGroupCone {S : Type u_1} {G : Type u_2} [CommGroup G] [SetLike S G] (C : S) [GroupConeClass S G] :

                            Construct a partial order by designating a cone in an abelian group.

                            Equations
                              Instances For
                                @[reducible, inline]
                                abbrev PartialOrder.mkOfAddGroupCone {S : Type u_1} {G : Type u_2} [AddCommGroup G] [SetLike S G] (C : S) [AddGroupConeClass S G] :

                                Construct a partial order by designating a cone in an abelian group.

                                Equations
                                  Instances For
                                    @[simp]
                                    theorem PartialOrder.mkOfGroupCone_le_iff {S : Type u_3} {G : Type u_4} [CommGroup G] [SetLike S G] [GroupConeClass S G] {C : S} {a b : G} :
                                    a b b / a C
                                    @[simp]
                                    theorem PartialOrder.mkOfAddGroupCone_le_iff {S : Type u_3} {G : Type u_4} [AddCommGroup G] [SetLike S G] [AddGroupConeClass S G] {C : S} {a b : G} :
                                    a b b - a C
                                    @[reducible, inline]
                                    abbrev LinearOrder.mkOfGroupCone {S : Type u_1} {G : Type u_2} [CommGroup G] [SetLike S G] (C : S) [GroupConeClass S G] [HasMemOrInvMem C] [DecidablePred fun (x : G) => x C] :

                                    Construct a linear order by designating a maximal cone in an abelian group.

                                    Equations
                                      Instances For
                                        @[reducible, inline]
                                        abbrev LinearOrder.mkOfAddGroupCone {S : Type u_1} {G : Type u_2} [AddCommGroup G] [SetLike S G] (C : S) [AddGroupConeClass S G] [HasMemOrNegMem C] [DecidablePred fun (x : G) => x C] :

                                        Construct a linear order by designating a maximal cone in an abelian group.

                                        Equations
                                          Instances For
                                            theorem IsOrderedMonoid.mkOfCone {S : Type u_1} {G : Type u_2} [CommGroup G] [SetLike S G] (C : S) [GroupConeClass S G] :

                                            Construct a partially ordered abelian group by designating a cone in an abelian group.

                                            Construct a partially ordered abelian group by designating a cone in an abelian group.