Emmy, the Algebra System: Differential Geometry Chapter Three

Functional Differential Geometry: Chapter 3
Published

January 29, 2026

3 Vector Fields and One-Form Fields

We want a way to think about how a function varies on a manifold.

3.1 Vector Fields

(define v
  (components->vector-field
    (up (literal-function 'b0 R2->R)
        (literal-function 'b1 R2->R))
    R2-rect))
(print-expression
  ((v (literal-manifold-function 'f-rect R2-rect)) R2-rect-point))
(print-expression
  ((v (chart R2-rect)) R2-rect-point))

[Comment MAK concerning components->vector-field]

The function procedure->vector-field seems to be missing in Scittle

Clojure interns has procedure->vector-field

(comment
  (ns-interns 'emmy.calculus.vector-field))

ClojureScript interns lack procedure->vector-field

(comment
  (kind/reagent
    ['(fn []
        [:tt (str (ns-interns 'emmy.calculus.vector-field))])]))

The function components->vector-field exists as a standard, so we can leave it here as merely a comment

(comment
  (define (components->vector-field components coordsys)
    (define (v f)
      (compose (* (D (compose f (point coordsys)))
                  components)
               (chart coordsys)))
    (vf/procedure->vector-field v)))

Coordinate Representation

need to check the form below, fortunately coordinatize is also standard

(comment
  (define (coordinatize v coordsys)
    (define ((coordinatized-v f) x)
      (let ((b (compose (v (chart coordsys)) (point coordsys))))
        (* ((D f) x) (b x))))
    (make-operator coordinatized-v)))
(print-expression
  (((e/coordinatize v R2-rect) (literal-function 'f-rect R2->R))
   (up 'x0 'y0)))

3.2 Coordinate-Basis Vector Fields

(define-coordinates (up x y) R2-rect)
(define-coordinates (up r theta) R2-polar)
(print-expression
  ((d:dx (square r)) R2-rect-point))
(print-expression
  (((+ d:dx (* 2 d:dy)) (+ (square r) (* 3 x))) R2-rect-point))

3.3 Integral Curves

(define circular (- (* x d:dy) (* y d:dx)))
(print-expression
  (take 6
        (seq
          (((exp (* 't circular)) (chart R2-rect))
           ((point R2-rect) (up 1 0))))))
(print-expression
  ((((e/evolution 6) 'delta-t circular) (chart R2-rect))
   ((point R2-rect) (up 1 0))))

3.5 Coordinate-Basis One-Form Fields

(define omega
  (e/components->oneform-field
    (down (literal-function 'a_0 R2->R)
          (literal-function 'a_1 R2->R))
    R2-rect))
(print-expression
  ((omega (down d:dx d:dy)) R2-rect-point))
(define omega-alt (e/literal-oneform-field 'a R2-rect))
(print-expression
  (((d (literal-manifold-function 'f-rect R2-rect))
    (coordinate-system->vector-basis R2-rect))
   R2-rect-point))
(print-expression
  (((d (literal-manifold-function 'f-polar R2-polar))
    (coordinate-system->vector-basis R2-rect))
   ((point R2-polar) (up 'r 'theta))))
(define-coordinates (up x y) R2-rect)
(print-expression
  ((dx d:dy) R2-rect-point))
(print-expression
  ((dx d:dx) R2-rect-point))
(print-expression
  ((dx circular) R2-rect-point))
(print-expression
  ((dy circular) R2-rect-point))
(print-expression
  ((dr circular) R2-rect-point))
(print-expression
  ((dtheta circular) R2-rect-point))
(define f (literal-manifold-function 'f-rect R2-rect))
(print-expression
  (((- circular d:dtheta) f) R2-rect-point))

Coordinate Transformations

(define omega (literal-oneform-field 'a R2-rect))
(define v (literal-vector-field 'b R2-rect))
(print-expression
  ((omega v) R2-rect-point))
(repl/scittle-sidebar)
source: src/mentat_collective/emmy/fdg_ch03.clj