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.

  • add_mem {s : S} {a b : G} : a โˆˆ s โ†’ b โˆˆ s โ†’ a + b โˆˆ s
  • zero_mem (s : S) : 0 โˆˆ s
  • eq_zero_of_mem_of_neg_mem {C : S} {a : G} : a โˆˆ C โ†’ -a โˆˆ C โ†’ a = 0
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.

    • mul_mem {s : S} {a b : G} : a โˆˆ s โ†’ b โˆˆ s โ†’ a * b โˆˆ s
    • one_mem (s : S) : 1 โˆˆ s
    • eq_one_of_mem_of_inv_mem {C : S} {a : G} : a โˆˆ C โ†’ aโปยน โˆˆ C โ†’ a = 1
    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
          @[implicit_reducible]
          instance GroupCone.instSetLike (G : Type u_1) [CommGroup G] :
          @[implicit_reducible]
          @[implicit_reducible]

          The cone of elements that are at least 1.

          Instances For

            The cone of non-negative elements.

            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]
              theorem AddGroupCone.mem_nonneg {H : Type u_1} [AddCommGroup H] [PartialOrder H] [IsOrderedAddMonoid H] {a : H} :
              a โˆˆ nonneg H โ†” 0 โ‰ค a
              @[simp]
              theorem GroupCone.coe_oneLE {H : Type u_1} [CommGroup H] [PartialOrder H] [IsOrderedMonoid H] :
              โ†‘(oneLE H) = {x : H | 1 โ‰ค x}
              @[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.

              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.

                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.

                  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.

                    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.