packages feed

egison-3.7.11: lib/math/geometry/differential-form.egi

(define $df-normalize
  (lambda [%X]
    (let* {[$p (df-order X)]
           [[$es $os] (even-and-odd-permutations p)]}
      (with-symbols {i}
        (/ (- (sum (map (lambda [$σ] (subrefs X (map 1#i_(σ %1) (between 1 p)))) es))
              (sum (map (lambda [$σ] (subrefs X (map 1#i_(σ %1) (between 1 p)))) os)))
           (* (fact p)))))))

(define $wedge
  (lambda [%X %Y]
    !(. X Y)))

(define $Lie.wedge
  (lambda [%X %Y]
    (- !(. X Y) !(. Y X))))

(define $ι
  (lambda [%X %Y]
    (with-symbols {i}
      (* (df-order Y) (. X...~i (df-normalize Y..._i))))))

(define $Lie
  (lambda [%X %Y]
    (match (df-order Y) integer
      {[,0 (ι X (d Y))]
       [,N (d (ι X Y))]
       [_ (+ (ι X (d Y)) (d (ι X Y)))]})))