Ideals #
This file defines Left/Right/Two-sided ideals in magmas as bundled Set-Like structures. We also provide functions that return the minimum ideal containing a set/element in semigroups.
We also give an ideal-based characterization of Green's Relations in semigroups.
We also define typeclasses for simple, zero-simple, and regular semigroups.
Main Definitions #
LeftIdeal- A Set-Like structure for sets closed under left multiplication.LeftIdeal.inter- The intersection of two ideals as an ideal.LeftIdeal.ofSet- The minimum left ideal containing a set.RightIdeal- A Set-Like structure for sets closed under right multiplication.RightIdeal.inter- The intersection of two ideals as an ideal.RightIdeal.ofSet- The minimum right ideal containing a set.Ideal'- A Set-Like structure for sets closed under multiplication.Ideal'.inter- The intersection of two ideals as an ideal.Ideal'.ofSet- The minimum ideal containing a set.SimpleSemigroup- A class that extendsSemigroupwith a proof that all ideals are empty or full.ZeroSimpleSemigroup- A class that entendsSemigroupWithZerowith a proof that all ideas are empty, full, or the zero ideal.JPreorder.toSimpleSemigroup- Given that all elements of a semigroup are π-preorder related, an instance forSimpleSemigroupJPreorder.toZeroSimpleSemigroup- Given that all non-zero elements of a semigroup with zero are π-preorder related, an instance forZeroSimpleSemigroupisRegularElemis a predicate on elementsxin a magma stating that there exists aysuch thatx * y * x = x.RegularSemigroupis a class extendingSemigroupwith a proof that every element is regular.
Main Theorems #
LeftIdeal.mem- Left Ideals are closed under left multiplication.RightIdeal.mem- Right Ideals are closed under right multiplication.Ideal'.mul_left_mem- Ideals are closed under left multiplication.Ideal'.mul_right_mem- Ideals are closed under right multiplication.Ideal'.mem- Ideals are closed under two-sided multiplication.
Let x y be elements of a semigroup S
LPreorder.iff_in_leftIdeal-xis in the principal Left Ideal ofyiffx β€π y.RPreorder.iff_in_rightIdeal-xis in the principal right ideal ofyiffx β€π‘ y.JPreorder.iff_in_ideal'-xis in the principal Ideal ofyiffx β€π y.LPreorder.le_in_leftIdeal- ifxis in a left Ideal andy β€π xthenyis in the left ideal too.RPreorder.le_in_rightIdeal- ifxis in a right Ideal andy β€π‘ xthenyis in that right ideal too.JPreorder.le_in_ideal'- ifxis in an Ideal andy β€π xthenyis in that ideal too.LPreorder.iff_leftIdeal_subset- The principal left ideal ofxis a subset of that ofyiffx β€π y.RPreorder.iff_rightIdeal_subset- The principal right ideal ofxis a subset of that ofyiffx β€π‘ y.JPreorder.iff_ideal'_subset- The principal ideal ofxis a subset of that ofyiffx β€π‘ y.LEquiv.iff_leftIdeal_eq- The principal left ideal ofxis equal to that ofyiffx β€π y.REquiv.iff_rightIdeal_eq- The principal right ideal ofxis equal to that ofyiffx β€π‘ y.JEquiv.iff_ideal'_eq- The principal ideal ofxis equal to that ofyiffx β€π‘ y.SimpleSemigroup.ideal- Given aSimpleSemigroupinstance, all ideals are empty or full.ZeroSimpleSemigroup.ideal- Given aZeroSimpleSemigroupinstance, all ideals are empty, full, or the zero ideal.JEquiv.ofSimple- Given aSimpleSemigroupinstance, all elements are π-equivalent.JPreorder.ofZeroSimple- Given aZeroSimpleSemigroupinstance, all non-zero elements are π-preorder related.RegularSemigroup.regular- Given an instance ofRegularSemigroup, for allxthere exists aysuch thatx * y * x = x
Notation #
β€, β or {} : Ideal' Ξ±refer to the full and empty ideals, respectively.- Given
[MulZeroClass Ξ±],β₯represents the left/right/two-sided ideal{0}
For p, q : Ideal' Ξ±:
p β© q : Ideal Ξ±denotes their intersection.p β€ qis notation for(p : Set Ξ±) β (q : Set Ξ±)
Implementation Notes #
The SetLike implementation is from the template in the docstring of Mathlib.Data.Setlike.Basic.
For an p : Ideal' Ξ± and x : Ξ±, the notation x β (p : Set S) is perfered over x β p.carrier
and this is supported by tagging the mem_carrier lemmas with @[simp].
For principal ideals, use Ideal'.ofSet {x}.
TODO #
Prove that ideals are stable under surjective morphisms and inverses of morphisms Prove that a semigroup has at most one minimal ideal
SetLike instance requires we prove that there is an injection from LeftIdeal β Set.
It regesters a coersion to Set and provides various simp lemmas and instances.
Equations
- LeftIdeal.instSetLike = { coe := LeftIdeal.carrier, coe_injective' := β― }
Allows for notation β
: LeftIdeal Ξ± for the empty ideal.
Allows for notation β₯ : LeftIdeal Ξ± for the left ideal {0}.
Equations
- RightIdeal.instSetLike = { coe := RightIdeal.carrier, coe_injective' := β― }
The intersection of right ideals is a right isimpdeal.
Equations
- RightIdeal.instInter = { inter := fun (p q : RightIdeal Ξ±) => { carrier := βp β© βq, mem_mul_mem := β― } }
If p is a right ideal of Ξ±, then p * Ξ± β p.
Given a set in a Semigroup, the minimal right ideal containing the set.
Instances For
For q : Set S, RightIdeal.ofSet q is the minimal right ideal containing the set.
Equations
- p.toRightIdeal = { carrier := p.carrier, mem_mul_mem := β― }
Instances For
Equations
- Ideal'.instSetLike = { coe := Ideal'.carrier, coe_injective' := β― }
Given a set in a Semigroup, the minimal ideal containing the set.
Equations
- Ideal'.ofSet s = { carrier := β(LeftIdeal.ofSet s) βͺ β(RightIdeal.ofSet s) βͺ Set.univ * s * Set.univ βͺ s, mem_mul_mem := β―, mul_mem_mem := β― }
Instances For
Ideal characterization of Greens Relations #
x is in the principal left ideal of y iff x β€π y.
The principal left ideal of x is a subset of that of y iff x β€π y
The principal left ideal of x is a equal to that of y iff x π y.
x is in the principal right ideal of y iff x β€π‘ y.
For x β i : RightIdeal S, if y β€π‘ x then y β i.
The principal right ideal of x is a subset of that of y iff x β€π‘ y
The principal right ideal of x is a equal to that of y iff x π‘ y.
x is in the principal ideal of y iff x β€π y.
The principal ideal of x is a subset of that of y iff x β€π y
The principal ideal of x is a equal to that of y iff x π y.
Simple Semigroups #
In a simple semigroup, all elements are J-preorder related
In a simple semigroup, all elements are π related
If all elements of a semigroup are J-preorder related, then it is a simple semigroup.
Equations
- Semigroup.JPreorder.toSimpleSemigroup h = { toSemigroup := instβ, ideal_eq := β― }
All non-zero elements of a zero-simple-semigroup are J-preorder related.
If all non-zero elements of a semigroup with zero are J-preorder related, then it is a zero-simple semigroup.
Equations
- Semigroup.JPreorder.toZeroSimpleSemigroup h = { toSemigroupWithZero := instβ, ideal_eq := β― }
Regular Semigroups #
See Semigroup.DEquiv.regular_d_class_tfae and regularClass_iff_* / hasIdempotent_iff_* in
MyProject/Green/Location.lean (Proposition 1.9).
A element x of a magma is regular iff β y, x * y * x = x.
Equations
- Semigroup.isRegularElem x = β (y : Ξ±), x * y * x = x