Commit 2025-01-30 16:37 4f099bd2
View on Github →feat(Algebra/Category): concrete category refactor for MonCat
(#21222)
This is a step towards a concrete category redesign, as outlined in this Zulip post: https://leanprover.zulipchat.com/#narrow/channel/287929-mathlib4/topic/Concrete.20category.20class.20redesign/near/493903980
This PR updates the concrete category definitions of (Add)(Comm)MonCat to match the standard set by AlgebraCat, ModuleCat and RingCat:
- Package objects and homs into structures.
- Replace HasForget with ConcreteCategory.
- Set up a good @[simp] set.
- Ensure constructors and projections are reducible. See MathlibTest/CategoryTheory/ConcreteCategory/MonCat.lean for the specification of all the new functionality.
Currently there are still a couple issues around actions and tensor products, where
simp [the_lemma]
doesn't work even thoughsimp [(the_lemma)]
does. Not sure why this is happening, the discrimination tree keys look perfectly normal andtrace.Meta.Tactic.simp
doesn't say anything useful. I have not tried to look for code that can be cleaned up now, only at what broke. I want to get started on cleanup when the other concrete category instances are in.