Zulip Chat Archive
Stream: mathlib4
Topic: Naming of liftAlgHom in PiTensorProduct
Robert Maxton (Jul 20 2024 at 01:50):
Having looked into Mathlib.RingTheory.PiTensorProduct
to show equivalence to FreeProduct
in the commutative case, I found docs#PiTensorProduct.liftAlgHom. Unlike e.g. docs#RingQuot.liftAlgHom or many others which lift AlgHom
s to AlgHom
s, PiTensorProduct.liftAlgHom
lifts a MultilinearMap
to an AlgHom
.
Is this the sort of thing that should just be changed, either by renaming or by providing the expected API, or is this an insufficient reason to change an existing file? I'm new to working in large collaborations so this is as much a question about social norms as anything else
Robert Maxton (Jul 20 2024 at 01:51):
Paging @Jujian Zhang whose name is on the file
Robert Maxton (Jul 20 2024 at 01:53):
(Personally I would strongly prefer, especially in PiTensorProduct
which is the canonical coproduct in , that the name lift
be reserved for "homogenous" lifts of morphisms within a specific category, whether that be for MultilinearMap
or in this case. I'll need to write the version either way to prove the equivalence, so this is mostly a question about naming priority.)
Eric Wieser (Jul 20 2024 at 07:46):
I think the homogenous version is usual called map
not lift
? Maybe I misunderstand which version you're describing.
Robert Maxton (Jul 20 2024 at 07:54):
map
usually relates functions that are semantically "parallel" or equivalent; the general form is Functor.map
lift
usually factors a function into a standard part general to the type constructor and the specific part to the function you're factoring
Robert Maxton (Jul 20 2024 at 07:54):
map
usually produces functions that have a type constructor application on both sides of the arrow
map (f : α → β) : τ α → τ β
lift
usually produces functions that have an application on the domain only
lift (f : α → β) : τ α → β
Eric Wieser (Jul 20 2024 at 08:33):
Ah, then you're using a different meaning of homogenous to the one I thought
Eric Wieser (Jul 20 2024 at 08:34):
Do you object to the naming of docs#TensorAlgebra.lift, or docs#WithOne.lift ?
Robert Maxton (Jul 20 2024 at 08:35):
Ah, yeah. By "homogenous" I mean that lift
should take AlgHoms
and return an AlgHom
Robert Maxton (Jul 20 2024 at 08:37):
Eric Wieser said:
Do you object to the naming of docs#TensorAlgebra.lift, or docs#WithOne.lift ?
Somewhat, but it's much lessened there by the fact that e.g. TensorAlgebra
concept is inherently one that turns something that isn't an algebra into an algebra, so homogeneity/staying within a category is impossible
In that regard while PiTensorProduct.lift
mildly bugs me, it's liftAlgHom
, which is in the Algebra subfile and has AlgHom
in the name but doesn't take a family of AlgHom
s, that I actually object to
Eric Wieser (Jul 20 2024 at 08:44):
Ah, sorry for not doing this earlier. Now that I clicked on the link, I think morally PiTensorProduct.liftAlgHom takes a "MultiAlgebraMap`, but that type doesn't exist (and may not be useful anywhere else), so it takes it in pieces as a multilinear map and some extra assumptions.
Eric Wieser (Jul 20 2024 at 08:46):
Is it necessarily the case that on algebras, such a map always factorizes as a collection of algebra maps composed with the product "multialgebra map"?
Robert Maxton (Jul 20 2024 at 08:48):
I dunno about factorizes but it's certainly true that such a map is always uniquely defined by such
that's basically what makes it the categorical coproduct; if I give you a family of maps I've specified exactly one map out of the tensor product and vice versa
Robert Maxton (Jul 20 2024 at 08:55):
Conceptually, for a family of maps f : (i : ι) → A i →ₗ[R] S
, this is basically just
--wrong
liftAlgHom (MultilinearMap.mkPiAlgebra R ι S |>.compLinearMap f) ...
But mkPiAlgebra
, and similar functions like bigprod
, require Fintype ι
, which I haven't assumed yet and don't want to
Robert Maxton (Jul 20 2024 at 08:57):
They can theoretically work with finite support on a non-Fintype
too, which as a coproduct I believe I do actually have here, but I haven't figured out how to use that fact yet
I may end up resorting to transfinite induction/well-ordering
Last updated: May 02 2025 at 03:31 UTC