feat(Algebra/Group/Submonoid): type class to indicate that supremum in a SubmonoidClass agrees with supremum of submonoids#39687
Conversation
Welcome new contributor!Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests. We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR. Thank you again for joining our community. |
PR summary e97fc580bfImport changes for modified filesNo significant changes to the import graph Import changes for all files
|
…tes a loop. Add simp attribute to iSup_toSubmonoid.
Add a type class
SubmonoidClass.IsConcreteSSupto indicate that the canonical map.ofClassfrom a classSof submonoids ofMtoSubmonoid Mpreserves suprema.This PR implements the minimal type class assumption needed to make „pushfoward of gradings along maps of indexing sets“ – see draft PR #39356 – work in some
SetLikegenerality.Given
{S M : Type*} [SetLike S M] [Monoid M] [SubmonoidClass S M], we have canonical mapsThe first is
Submonoid.ofClass, the second and the composition arecoemaps coming from theSetLikestructures. Depending onS, these maps may or may not satisfy various properties with respect the lattice structures onSubmonoid MandSet M. Mathlib so far includes the type class[IsConcreteLE S M], which asserts that the compositionS → Set Mis order-preserving and order-reflecting. The type class defined here asserts that the first map,S → Submonoid M, preserves suprema.In examples such as
S = Subgroup M,S = Submodule R M, much more is true – in these cases,Sis a complete sublattice ofSubmonoid M. But there are also examples where only the weaker property defined here holds, e.g.S = OpenSubgroup Mfor a topological groupM.Note on
outParam: I did not write(M : outParam Type*)in the assumptions ofSubmonoidClass.IsConcreteSSupin accordance with the DocString ofSetlike. However, we do have(B : outParam Type*)in the definition ofIsConcreteLE, so perhaps I'm misinterpreting the DocString.