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)))]})))