Zulip Chat Archive
Stream: Is there code for X?
Topic: Conjugation typeclass
Robert Maxton (Aug 01 2025 at 21:29):
Is there any general way to represent adjunction-like types or families of types that have a meaningful "conjugation" operation ? docs#CategoryTheory.Adjunction itself sort of counts, but universe levels in the category theory library are generally stricter than we'd like for something like this I think.
We have docs#Equiv.conj, but that's restricted to a) Equivs and b) single types that are c) inverse 'on the nose'.
If not, is this something we want in Mathlib?
Edward van de Meent (Aug 01 2025 at 21:33):
in what kind of generality are you thinking? are you thinking of something like docs#MulAction?
Robert Maxton (Aug 01 2025 at 21:37):
Extreme generality, one step up from a notational typeclass. Ideally it'd be something that lets the definition of 'inverse' and 'identity' be type-dependent, but I'd settle for just being built off of (families of) EquivLike(s).
Robert Maxton (Aug 01 2025 at 21:38):
MulAction is definitely too narrow; at the least I'd like to be able to tag ULift and Shrink, for example, as well as any other similar "morally a natural transformation between families of types" structures.
Aaron Liu (Aug 01 2025 at 21:39):
Are ULift and Shrink conjugations?
Aaron Liu (Aug 01 2025 at 21:39):
what are they conjugating?
Edward van de Meent (Aug 01 2025 at 21:40):
exactly... i feel like i'm missing the common pattern?
Robert Maxton (Aug 01 2025 at 21:40):
they aren't conjugations, but you can define conjugations on them and they're frequently used -- Equiv.ulift (f (Equiv.ulift.symm ...)
Aaron Liu (Aug 01 2025 at 21:40):
Can you define what a conjugation is?
Aaron Liu (Aug 01 2025 at 21:42):
are you looking for a functor?
Robert Maxton (Aug 01 2025 at 21:45):
Not quite... I think in categorical terms, the thing I'm looking for is basically a pseudonatural equivalence?
... Yeah, the general version is a pseudonatural equivalence, and the more specific version that does things up to strict equality is just a natural isomorphism
Robert Maxton (Aug 01 2025 at 21:46):
e.g. the only thing stopping us from defining a natural isomorphism between the (_root_.) Functors ULift and 𝟭 Type is universe levels
Aaron Liu (Aug 01 2025 at 21:47):
actually I think the problem is your functors have different targets
Robert Maxton (Aug 01 2025 at 21:47):
In what sense?
Aaron Liu (Aug 01 2025 at 21:48):
well I guess if it's ULift.{u, u} then they have the same target and you can define a natural isomorphism (which is docs#CategoryTheory.uliftFunctorTrivial)
Robert Maxton (Aug 01 2025 at 21:49):
oh, well, yeah, but that's the universe level thing I'm talking about
Aaron Liu (Aug 01 2025 at 21:49):
oh ok
Kyle Miller (Aug 02 2025 at 00:19):
docs#Quandle might be unfamiliar, but it's an algebraic structure encoding conjugation-like operations.
docs#Quandle.Conj is a group as a quandle, where the action is conjugation (docs#Quandle.conj_act_eq_conj)
Quandles (more generally racks) have enveloping groups (defined in that file), and it satisfies the adjunction (R →◃ Quandle.Conj G) ≃ (EnvelGroup R →* G), and so there's a universal property that rack homomorphisms to the conjugation quandle of a group factors through the enveloping group of the rack.
I don't remember what conditions you need for the homomorphism from a rack to the conjugation quandle of its enveloping group to be injective. But at least this all suggests that this is a generalization of conjugation. Maybe not the generalization you want, but it could be worth a look.
Edward van de Meent (Aug 02 2025 at 12:06):
Kyle Miller said:
docs#Quandle might be unfamiliar, but it's an algebraic structure encoding conjugation-like operations.
now you're just making up words
it does seem important to note that this encodes an action by some type on the same type
Kevin Buzzard (Aug 02 2025 at 12:45):
I believe it's Conway who was having fun making up words here
Kyle Miller (Aug 02 2025 at 17:33):
"Quandle" is due to David Joyce. Conway was involved in the study a couple decades before, but used the word "wrack".
Kyle Miller (Aug 02 2025 at 17:48):
Edward van de Meent said:
on the same type
Yes, a quandle itself is a type acting on itself, but there's a more general structure (augmented quandles) where you have a group G acting on a set Q, with a function Q -> G such that Q acting on itself via this function is a quandle. For example, if Q is a normal subgroup of G, G acts on Q by conjugation, and Q -> G is the inclusion map, you've got an augmented quandle.
Anyway, this is unlikely to help with Robert's question, even if there were some categorification of quandles that helps organize it. Re-reading the thread more carefully, I see the more general question might be 'how can we organize universe lifting/unlifting arguments better'.
Robert Maxton (Aug 02 2025 at 23:11):
At least partially, yes. I mean, I also want to have a nice interface for e.g. conjugating a functor by a family of categorical equivalences, but I don't mind if that turns out to be best handled separately.
Last updated: Dec 20 2025 at 21:32 UTC