Zulip Chat Archive
Stream: mathlib4
Topic: transvections, reflections, symmetries
Antoine Chambert-Loir (Nov 10 2025 at 10:27):
In classical mathematics,
- transvections are linear maps of the form where is a linear form and a vector such that .
- symmetries are linear maps which are identity on a subspace and minus identity on a complement
- reflections are (non identical) symmetries that preserve a hyperplane. They can be defined by where is a linear form and is a vector such that .
In mathlib, the maps are known as docs#LinearMap.transvection (once #31164 is merged), while those of the form are known as docs#Module.preReflection.
On the other hand, docs#Submodule.reflection are orthogonal symmetries (essentially, in an complete inner product space).
Antoine Chambert-Loir (Nov 10 2025 at 10:31):
It seems that some unification and terminological clarification would be useful, if not necessary.
-
What should their namespace be?
LinearMaporModule, resp.Submodule? -
I suggest that docs#Submodule.reflection be renamed
orthSymmetry. -
Regarding transvections/preReflections, the issues are the minus sign in the definition of docs#Module.preReflection (so that the type of scalars needs to be a ring), and having
f v = -2as a condition would not be so nice. So maybe both could coexist.
Oliver Nash (Nov 10 2025 at 13:30):
I like the naming of #31164. If we followed that, and the suggestion above about Submodule.reflection, we would have:
LinearMap.transvection,LinearEquiv.transvectionLinearMap.reflection,LinearEquiv.reflectionSubmodule.orthSymmetry
Eric Wieser (Nov 10 2025 at 13:30):
(double $$ for Zulip LaTeX)
Joseph Myers (Nov 10 2025 at 22:42):
Note that Submodule.reflection is in a pair with the affine version EuclideanGeometry.reflection (which arguably ought to be in the AffineSubspace namespace to support dot notation, but we ought to get #27378 and its dependency over the line before doing further refactors in that area).
Last updated: Dec 20 2025 at 21:32 UTC