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
            class IsMaxCone {S : Type u_1} {G : Type u_2} [AddCommGroup G] [SetLike S G] (C : S) :

            Typeclass for maximal additive cones.

            Instances
              class IsMaxMulCone {S : Type u_1} {G : Type u_2} [CommGroup G] [SetLike S G] (C : S) :

              Typeclass for maximal multiplicative cones.

              Instances
                theorem mem_or_inv_mem {S : Type u_1} {G : Type u_2} [CommGroup G] [SetLike S G] (C : S) [IsMaxMulCone C] (a : G) :
                a C a⁻¹ C
                theorem mem_or_neg_mem {S : Type u_1} {G : Type u_2} [AddCommGroup G] [SetLike S G] (C : S) [IsMaxCone C] (a : G) :
                a C -a C

                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]
                        @[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] [IsMaxMulCone 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] [IsMaxCone 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.