Commit 2022-04-10 01:48 b2c707cd
View on Github →feat(group_theory): use generic subobject_class lemmas (#11758)
This subobject class refactor PR follows up from #11750 by moving the {zero,one,add,mul,...}_mem_class lemmas to the root namespace and marking the previous sub{monoid,group,module,algebra,...}.{zero,one,add,mul,...}_mem lemmas as protected. This is the second part of #11545 to be split off.
I made the subobject parameter to the _mem lemmas implicit if it appears in the hypotheses, e.g.
lemma mul_mem {S M : Type*} [monoid M] [set_like S M] [submonoid_class S M]
  {s : S} {x y : M} (hx : x ∈ s) (hy : y ∈ s) : x * y ∈ s
instead of having (s : S) explicit. The generic _mem lemmas are not namespaced, so there is no dot notation that requires s to be explicit. Also there were already a couple of instances for the same operator where s was implicit and others where s was explicit, so some change was needed.