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.