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