Documentation

RealClosedField.Algebra.Order.Support

Supports of submonoids #

Let G be an (additive) group, and let M be a submonoid of G. The support of M is M ∩ -M, the largest subgroup of M. When M ∪ -M = G, the support of M forms an ideal. We define supports and prove how they interact with operations.

Main definitions #

Typeclass for submonoids M of a group G such that M ∪ -M = G.

Instances
    class Submonoid.HasMemOrInvMem {G : Type u_2} [Group G] (M : Submonoid G) :

    Typeclass for submonoids M of a group G such that M ∪ -M = G.

    Instances

      The support of a submonoid M of a group G is M ∩ M⁻¹, the largest subgroup contained in M.

      Equations
      Instances For

        The support of a submonoid M of a group G is M ∩ -M, the largest subgroup contained in M.

        Equations
        Instances For
          theorem Submonoid.mem_supportSubgroup {G : Type u_1} [Group G] {M : Submonoid G} {x : G} :
          theorem Submonoid.coe_supportSubgroup {G : Type u_1} [Group G] (M : Submonoid G) :
          M.supportSubgroup = M (↑M)⁻¹

          Typeclass to track when the support of a submonoid forms an ideal.

          Instances
            theorem AddSubmonoid.hasIdealSupport_iff {R : Type u_1} [Ring R] {M : AddSubmonoid R} :
            M.HasIdealSupport ∀ (x a : R), a M-a Mx * a M -(x * a) M
            theorem AddSubmonoid.smul_mem {R : Type u_1} [Ring R] (M : AddSubmonoid R) [M.HasIdealSupport] (x : R) {a : R} (h₁a : a M) (h₂a : -a M) :
            x * a M
            theorem AddSubmonoid.neg_smul_mem {R : Type u_1} [Ring R] (M : AddSubmonoid R) [M.HasIdealSupport] (x : R) {a : R} (h₁a : a M) (h₂a : -a M) :
            -(x * a) M

            The support M ∩ -M of a submonoid M of a ring R, as an ideal.

            Equations
            Instances For
              theorem AddSubmonoid.mem_support {R : Type u_1} [Ring R] {M : AddSubmonoid R} [M.HasIdealSupport] {x : R} :
              x M.support x M -x M
              theorem AddSubmonoid.coe_support {R : Type u_1} [Ring R] (M : AddSubmonoid R) [M.HasIdealSupport] :
              M.support = M -M
              @[simp]
              theorem Subsemiring.comap_toSubmonoid' {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (f : R →+* S) (Q : Subsemiring S) :
              @[simp]
              theorem Subsemiring.map_toSubmonoid' {R : Type u_1} {S : Type u_2} [Semiring R] [Semiring S] (f : R →+* S) (P : Subsemiring R) :
              @[simp]
              instance Submonoid.instHasMemOrInvMemComapMonoidHom {G : Type u_1} {H : Type u_2} [Group G] [Group H] (f : G →* H) (M' : Submonoid H) [M'.HasMemOrInvMem] :
              @[simp]
              theorem Submonoid.comap_supportSubgroup {G : Type u_1} {H : Type u_2} [Group G] [Group H] (f : G →* H) (M' : Submonoid H) :
              theorem Submonoid.HasMemOrNegMem.map {G : Type u_1} {H : Type u_2} [Group G] [Group H] {f : G →* H} (M : Submonoid G) [M.HasMemOrInvMem] (hf : Function.Surjective f) :
              @[simp]
              theorem Submonoid.map_supportSubgroup {G : Type u_1} {H : Type u_2} [CommGroup G] [CommGroup H] {f : G →* H} {M : Submonoid G} (hsupp : f.ker M.supportSubgroup) :
              @[simp]
              theorem AddSubmonoid.support_inf {R : Type u_1} [Ring R] (M N : AddSubmonoid R) [M.HasIdealSupport] [N.HasIdealSupport] :
              (MN).support = M.supportN.support
              @[simp]
              theorem AddSubmonoid.support_sInf {R : Type u_1} [Ring R] {s : Set (AddSubmonoid R)} (h : Ms, M.HasIdealSupport) :
              (sInf s).support = sInf {I : Ideal R | ∃ (M : AddSubmonoid R) (hM : M s), I = M.support}
              @[simp]
              theorem AddSubmonoid.supportAddSubgroup_sSup {R : Type u_1} [Ring R] {s : Set (AddSubmonoid R)} (hsn : s.Nonempty) (hsd : DirectedOn (fun (x1 x2 : AddSubmonoid R) => x1 x2) s) :
              theorem AddSubmonoid.HasIdealSupport.sSup {R : Type u_1} [Ring R] {s : Set (AddSubmonoid R)} (hsn : s.Nonempty) (hsd : DirectedOn (fun (x1 x2 : AddSubmonoid R) => x1 x2) s) (h : Ms, M.HasIdealSupport) :
              @[simp]
              theorem AddSubmonoid.support_sSup {R : Type u_1} [Ring R] {s : Set (AddSubmonoid R)} (hsn : s.Nonempty) (hsd : DirectedOn (fun (x1 x2 : AddSubmonoid R) => x1 x2) s) (h : Ms, M.HasIdealSupport) :
              (sSup s).support = sSup {I : Ideal R | ∃ (M : AddSubmonoid R) (hM : M s), I = M.support}
              @[simp]
              theorem AddSubmonoid.comap_support {R : Type u_1} {S : Type u_2} [Ring R] [Ring S] (f : R →+* S) (M' : AddSubmonoid S) [M'.HasIdealSupport] :
              @[simp]