chriswarbo-net: a95be138b980416506b75a4d9427a6b234cc0fa2
1: ---
2: title: Torsors
3: packages: [ 'mathml' ]
4: ---
5:
6: <small>Part of [my units pages](/projects/units)</small>
7:
8: *Torsors* are 'relative' values, where we can't add them but we can find their
9: difference. Cruicially, such 'differences' are *not* values of our torsor. For
10: example, points in space (of any dimension) cannot be meaningfully 'added'; but
11: we *can* find their difference; and that difference is a vector (not a point).
12:
13: Furthermore, we can always add such 'differences' to our torsor values,
14: resulting in more torsor values. In particular, the following equation holds:
15:
16: ```{.unwrap pipe="sh | math block nosem"}
17: tag() {
18: printf '<%s>' "$1"
19: cat
20: printf '</%s>' "$1"
21: }
22:
23: row() { tag 'mrow'; }
24:
25: mi() { echo "$1" | tag 'mi'; }
26: mo() { echo "$1" | tag 'mo'; }
27:
28:
29: D=$({
30: mi 'tDiff'
31: mo ''
32: { mo '('; mi 'y'; mo ','; mi 'x'; mo ')'; } | row
33: } | row)
34:
35: {
36: {
37: mi 'tAdd'
38: mo ''
39: { mo '('; mi 'x'; mo ','; echo "$D"; mo ')'; } | row
40: } | row
41: mo '='
42: mi 'y'
43: } | row
44: ```
45:
46: In the case of points and vectors, adding the vector
47: `var 'y'; var 'x';`{.unwrap pipe="sh | mapply minus | math"} to the point
48: `x`{.unwrap pipe="var | math"} gives the point `y`{.unwrap pipe="var | math"}.
49:
50: ## Uses ##
51:
52: Torsors are useful for avoiding arbitrary coordinates, i.e. when there's no
53: natural/obvious way to define 'zero'. We would like to build an approach to
54: geometry which avoids the need for arbitrary choices. Projective geometry is a
55: good starting point: we can certainly combine two points to yield the line
56: joining them; and dually we can combine lines to yield the point where they meet
57: (potentially 'at infinity'). However, it's not clear whether adding a line to a
58: point can 'undo' such combinations.
59:
60: We can specialise a projective space to an affine space by choosing a
61: distinguished line (normally this is the line at infinity; but we can use any
62: finite line as a One place we can use this is the affine plane, where there is
63: no 'zero' point or line:
64:
65: - The 'difference' between two points is a *directed line segment*. Note that
66: it is *not* a line, since there's no way to choose an orientation when taking
67: a point from itself (line *segments* avoid this since such zero-length
68: segments have *no* orientation!)
69: - Adding a directed line segment to a point yields another point.
70:
71: We can define line segments in projective space too; but there is no way to
72: uniquely 'transport' segments to coincide with arbitrary projective points.
73: Dually, for affine lines:
74:
75: - The 'difference' between two lines is a *directed angle* (where 'angle'
76: refers to an intersection of lines; not any particular measure!)
77: - Adding a directed angle to a line yields a line. NO! It requires a
78: point on the line, for the intersection! Otherwise we have a *direction*!
79:
80: Again, the second property is affine, so we can Notice that these segments have
81: no particular 'length' (or equivalent metric, like *quadrance*), since
82: projective geometry doesn't impose any. Likewise, these angles have no
83: 'arc-length' or 'radius'. As a consequence, we cannot 'transport' these objects
84: through the space in a unique way: for example, vector addition is as easy as
85: 'gluing' the start of one vector to the end of another; but this requires
86: 'transporting' the vectors around (or, equivalently, redefining their
87: origin). In projective geometry we can 'transport' line segments in
88:
89: (Directed) line segments can interact with (directed) angles: adding an angle to
90: a segment yields another segment: the empty angle acts as identity. I can't
91: think of another interaction between lines/segments and angles...
92:
93: We can imagine rotating around a point, by adding an angle to a point. Adding a
94: line segment to a point doesn't quite represent translations, since the point is
95: irrelevant. Scaling can use a distinguished point (as the centre), but there is
96: no 'unit vector' in projective geometry, so it's unclear how much to scale by:
97: we need two line segments, to bring into coincidence, but doing so can also
98: introduce a rotation.
99:
100: Two angles of a distinguished point point except there's no need for a
101: distinguished point in that case; they
102:
103: ## Affine ##
104:
105: TODO
Generated by git2html.