Supports of subsemirings #
Let R be a ring, and let S be a subsemiring of R.
If S - S = S, then the support of S forms an ideal.
Main definitions #
Subsemiring.support: the support of a subsemiring, as an ideal.
theorem
Subsemiring.eq_zero_of_mem_of_neg_mem
{R : Type u_1}
[Ring R]
(S : Subsemiring R)
[S.toAddSubmonoid.IsPointed]
{x : R}
(hx₁ : x ∈ S)
(hx₂ : -x ∈ S)
:
theorem
Subsemiring.eq_zero_of_mem_of_neg_mem₂
{R : Type u_1}
[Ring R]
(S : Subsemiring R)
[S.toAddSubmonoid.IsPointed]
{x : R}
(hx₁ : x ∈ S)
(hx₂ : -x ∈ S)
:
Alias of Subsemiring.eq_zero_of_mem_of_neg_mem.
theorem
Subsemiring.mem_or_neg_mem
{R : Type u_1}
[Ring R]
(S : Subsemiring R)
[S.toAddSubmonoid.IsSpanning]
(a : R)
:
Typeclass to track when the support of a subsemiring forms an ideal.
- smul_mem_support (x : R) {a : R} (ha : a ∈ S.toAddSubmonoid.support) : x * a ∈ S.toAddSubmonoid.support
Instances
theorem
Subsemiring.smul_mem
{R : Type u_1}
[Ring R]
(S : Subsemiring R)
[S.HasIdealSupport]
(x : R)
{a : R}
(h₁a : a ∈ S)
(h₂a : -a ∈ S)
:
theorem
Subsemiring.neg_smul_mem
{R : Type u_1}
[Ring R]
(S : Subsemiring R)
[S.HasIdealSupport]
(x : R)
{a : R}
(h₁a : a ∈ S)
(h₂a : -a ∈ S)
:
The support S ∩ -S of a subsemiring S of a ring R, as an ideal.
Equations
- S.support = { toAddSubmonoid := S.toAddSubmonoid.support.toAddSubmonoid, smul_mem' := ⋯ }
Instances For
theorem
Subsemiring.mem_support
{R : Type u_1}
[Ring R]
{S : Subsemiring R}
[S.HasIdealSupport]
{x : R}
:
@[simp]
theorem
Subsemiring.toAddSubmonoid_support
{R : Type u_1}
[Ring R]
(S : Subsemiring R)
[S.HasIdealSupport]
:
instance
Subsemiring.instHasIdealSupportOfIsSpanningToAddSubmonoid
{R : Type u_1}
[Ring R]
(S : Subsemiring R)
[S.toAddSubmonoid.IsSpanning]
:
@[simp]
theorem
Subsemiring.comap_toSubmonoid'
{R : Type u_2}
{S : Type u_3}
[Semiring R]
[Semiring S]
(f : R →+* S)
(Q : Subsemiring S)
:
@[simp]
theorem
Subsemiring.comap_toAddSubmonoid
{R : Type u_2}
{S : Type u_3}
[Semiring R]
[Semiring S]
(f : R →+* S)
(Q : Subsemiring S)
:
@[simp]
theorem
Subsemiring.map_toSubmonoid'
{R : Type u_2}
{S : Type u_3}
[Semiring R]
[Semiring S]
(f : R →+* S)
(P : Subsemiring R)
:
@[simp]
theorem
Subsemiring.map_toAddSubmonoid
{R : Type u_2}
{S : Type u_3}
[Semiring R]
[Semiring S]
(f : R →+* S)
(P : Subsemiring R)
:
instance
Subsemiring.instHasIdealSupportOfIsPointedToAddSubmonoid
{R : Type u_2}
[Ring R]
(S : Subsemiring R)
[S.toAddSubmonoid.IsPointed]
:
@[simp]
theorem
Subsemiring.support_eq_bot
{R : Type u_2}
[Ring R]
(S : Subsemiring R)
[S.toAddSubmonoid.IsPointed]
:
theorem
Subsemiring.IsPointed.neg_one_notMem
{R : Type u_2}
[Ring R]
(S : Subsemiring R)
[Nontrivial R]
[S.toAddSubmonoid.IsPointed]
:
-1 ∉ S
instance
Subsemiring.instIsSpanningToAddSubmonoidComap
{R : Type u_2}
{R' : Type u_3}
[Ring R]
[Ring R']
(f : R →+* R')
(S' : Subsemiring R')
[S'.toAddSubmonoid.IsSpanning]
:
(comap f S').toAddSubmonoid.IsSpanning
theorem
Subsemiring.IsSpanning.map
{R : Type u_2}
{R' : Type u_3}
[Ring R]
[Ring R']
{f : R →+* R'}
(S : Subsemiring R)
[S.toAddSubmonoid.IsSpanning]
(hf : Function.Surjective ⇑f)
:
theorem
Subsemiring.IsPointed.of_support_eq_bot
{R : Type u_2}
[Ring R]
(S : Subsemiring R)
[S.HasIdealSupport]
(h : S.support = ⊥)
:
theorem
Subsemiring.support_mono
{R : Type u_2}
[Ring R]
{S T : Subsemiring R}
[S.HasIdealSupport]
[T.HasIdealSupport]
(h : S ≤ T)
:
instance
Subsemiring.instHasIdealSupportMin
{R : Type u_2}
[Ring R]
(S T : Subsemiring R)
[S.HasIdealSupport]
[T.HasIdealSupport]
:
(S ⊓ T).HasIdealSupport
@[simp]
theorem
Subsemiring.support_inf
{R : Type u_2}
[Ring R]
(S T : Subsemiring R)
[S.HasIdealSupport]
[T.HasIdealSupport]
:
theorem
Subsemiring.HasIdealSupport.sInf
{R : Type u_2}
[Ring R]
{s : Set (Subsemiring R)}
(h : ∀ S ∈ s, S.HasIdealSupport)
:
@[simp]
theorem
Subsemiring.support_sInf
{R : Type u_2}
[Ring R]
{s : Set (Subsemiring R)}
(h : ∀ S ∈ s, S.HasIdealSupport)
:
theorem
Subsemiring.HasIdealSupport.sSup
{R : Type u_2}
[Ring R]
{s : Set (Subsemiring R)}
(hsn : s.Nonempty)
(hsd : DirectedOn (fun (x1 x2 : Subsemiring R) => x1 ≤ x2) s)
(h : ∀ S ∈ s, S.HasIdealSupport)
:
(sSup s).HasIdealSupport
@[simp]
theorem
Subsemiring.support_sSup
{R : Type u_2}
[Ring R]
{s : Set (Subsemiring R)}
(hsn : s.Nonempty)
(hsd : DirectedOn (fun (x1 x2 : Subsemiring R) => x1 ≤ x2) s)
(h : ∀ S ∈ s, S.HasIdealSupport)
:
instance
Subsemiring.instHasIdealSupportComap
{R : Type u_2}
{R' : Type u_3}
[Ring R]
[Ring R']
(f : R →+* R')
(S' : Subsemiring R')
[S'.HasIdealSupport]
:
(comap f S').HasIdealSupport
@[simp]
theorem
Subsemiring.comap_support
{R : Type u_2}
{R' : Type u_3}
[Ring R]
[Ring R']
(f : R →+* R')
(S' : Subsemiring R')
[S'.HasIdealSupport]
:
theorem
Subsemiring.HasIdealSupport.map
{R : Type u_2}
{R' : Type u_3}
[Ring R]
[Ring R']
{f : R →+* R'}
{S : Subsemiring R}
[S.HasIdealSupport]
(hf : Function.Surjective ⇑f)
(hsupp : f.toAddMonoidHom.ker ≤ S.toAddSubmonoid.support)
:
@[simp]
theorem
Subsemiring.map_support
{R : Type u_2}
{R' : Type u_3}
[Ring R]
[Ring R']
{f : R →+* R'}
{S : Subsemiring R}
[S.HasIdealSupport]
(hf : Function.Surjective ⇑f)
(hsupp : RingHom.ker f ≤ S.support)
:
instance
instIsSpanningToAddSubmonoidNonneg
(R : Type u_2)
[Ring R]
[LinearOrder R]
[IsOrderedRing R]
:
instance
instIsPointedToAddSubmonoidNonneg
(R : Type u_2)
[Ring R]
[PartialOrder R]
[IsOrderedRing R]
:
theorem
IsOrderedRing.mkOfSubsemiring
{R : Type u_2}
[Ring R]
(S : Subsemiring R)
[S.toAddSubmonoid.IsPointed]
:
Equivalence between subsemirings with zero support in a ring R
and partially ordered ring structures on R.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Ring.isPointedPartialOrderEquiv_apply
{R : Type u_2}
[Ring R]
(C : Subsemiring R)
(h : C.toAddSubmonoid.IsPointed)
:
@[simp]
theorem
Ring.isPointedPartialOrderEquiv_symm_apply
{R : Type u_2}
[Ring R]
(o : PartialOrder R)
(h : IsOrderedRing R)
:
noncomputable def
Ring.isPointedLinearOrderEquiv
(R : Type u_2)
[Ring R]
:
{ C : Subsemiring R // C.toAddSubmonoid.IsPointed ∧ C.toAddSubmonoid.IsSpanning } ≃ { o : LinearOrder R // IsOrderedRing R }
Equivalence between maximal subsemirings with zero support in a ring R
and linearly ordered ring structures on R.
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
theorem
Ring.isPointedLinearOrderEquiv_apply
{R : Type u_2}
[Ring R]
(C : Subsemiring R)
(h : C.toAddSubmonoid.IsPointed ∧ C.toAddSubmonoid.IsSpanning)
:
↑((isPointedLinearOrderEquiv R) ⟨C, h⟩) = have this := ⋯;
have this_1 := ⋯;
LinearOrder.mkOfAddSubmonoid C.toAddSubmonoid
@[simp]
theorem
Ring.isPointedLinearOrderEquiv_symm_apply
{R : Type u_2}
[Ring R]
(o : LinearOrder R)
(h : IsOrderedRing R)
: