Torsors of additive group actions #
This file defines torsors of additive group actions.
Notations #
The group elements are referred to as acting on points. This file
defines the notation +ᵥ for adding a group element to a point and
-ᵥ for subtracting two points to produce a group element.
Implementation notes #
Affine spaces are the motivating example of torsors of additive group actions. It may be appropriate
to refactor in terms of the general definition of group actions, via to_additive, when there is a
use for multiplicative torsors (currently mathlib only develops the theory of group actions for
multiplicative group actions).
Notations #
v +ᵥ pis a notation forVAdd.vadd, the left action of an additive monoid;p₁ -ᵥ p₂is a notation forVSub.vsub, difference between two points in an additive torsor as an element of the corresponding additive group;
References #
An AddTorsor G P gives a structure to the nonempty type P,
acted on by an AddGroup G with a transitive and free action given
by the +ᵥ operation and a corresponding subtraction given by the
-ᵥ operation. In the case of a vector space, it is an affine
space.
- vadd : G → P → P
- vsub : P → P → G
- nonempty : Nonempty P
Torsor subtraction and addition with the same element cancels out.
Torsor addition and subtraction with the same element cancels out.
Instances
An AddGroup G is a torsor for itself.
Equations
- addGroupIsAddTorsor G = AddTorsor.mk ⋯ ⋯
Adding a group element to the point p is an injective
function.
Subtracting the point p is an injective function.
Subtracting a point from the point p is an injective
function.
The permutation given by p ↦ v +ᵥ p.
Equations
- Equiv.constVAdd P v = { toFun := fun (x : P) => v +ᵥ x, invFun := fun (x : P) => -v +ᵥ x, left_inv := ⋯, right_inv := ⋯ }
Instances For
Equiv.constVAdd as a homomorphism from Multiplicative G to Equiv.perm P
Equations
- Equiv.constVAddHom P = { toFun := fun (v : Multiplicative G) => Equiv.constVAdd P (Multiplicative.toAdd v), map_one' := ⋯, map_mul' := ⋯ }
Instances For
Point reflection in x as a permutation.
Equations
- Equiv.pointReflection x = (Equiv.constVSub x).trans (Equiv.vaddConst x)
Instances For
x is the only fixed point of pointReflection x. This lemma requires
x + x = y + y ↔ x = y. There is no typeclass to use here, so we add it as an explicit argument.