## 26 June 2006

### Lie Groups Mostly Working

It's working! (Mostly.) See:
```;; Welcome to DrScheme, version 350.1-svn21jun2006.
;; Language: Swindle.

;; Require some modules
(require "lie-group-SO3.ss")
(require "lie-groups.ss")
(require "manifolds.ss")
(require "tuples.ss")
;;

;;; Compute the structure constants for SO3 in the
;;; x,y,z coordinate system.  Exactly what you
;;; would expect.
(structure-constants SO3 SO3-rectangular-chart)
;#<down: elts=#(#<down: elts=#(#<up: elts=#(0 0 0)>
;                              #<up: elts=#(0 0 1)>
;                              #<up: elts=#(0 -1 0)>)>
;               #<down: elts=#(#<up: elts=#(0 0 -1)>
;                              #<up: elts=#(0 0 0)>
;                              #<up: elts=#(1 0 0)>)>
;               #<down: elts=#(#<up: elts=#(0 1 0)>
;                              #<up: elts=#(-1 0 0)>
;                              #<up: elts=#(0 0 0)>)>)>

;; Name the euler angle coordinates
(define-named-coordinates (theta phi psi)
SO3-euler-angles-chart)

;; Note that coordinate vectors commute
((vector-field->component-field
(lie-bracket d/dtheta d/dphi)
SO3-euler-angles-chart)
(slot-ref SO3 'identity))
;; #<up: elts=#(0 0 0)>

;; While the extensions of coordinate vectors under
;; left-multiplication do not.
((vector-field->component-field
((lie-algebra-bracket SO3) d/dtheta d/dphi)
SO3-euler-angles-chart)
(slot-ref SO3 'identity))
;; #<up: elts=#(0 0 1)>
```
[Edited: used to say that I didn't understand why [natural-extension(d/dtheta), natural-extension(d/dphi)] <> d/dpsi, but now I do.