;;; Parameters and metrics (define $N 2) (define $params [|x y|]) (define $g__ [| [| 1 0 |] [| 0 1 |] |]) (define $g~~ (M.inverse g_#_#)) ;;; Hodge Laplacian (define $d (lambda [%X] !((flip ∂/∂) params X))) (define $hodge (lambda [%A] (let {[$k (df-order A)]} (with-symbols {i j} (* (sqrt (abs (M.det g_#_#))) (foldl . (. (ε' N k)_[i_1]..._[i_N] A..._[j_1]..._[j_k]) (map 1#g~[i_%1]~[j_%1] (between 1 k)))))))) (define $δ (lambda [%A] (let {[$k (df-order A)]} (* (** -1 (+ (* N (+ k 1)) 1)) (hodge (d (hodge A))))))) (define $Δ (lambda [%A] (match (df-order A) integer {[,0 (δ (d A))] [,2 (d (δ A))] [_ (+ (d (δ A)) (δ (d A)))]}))) (define $f (function [x y])) (d f) ;[| f|x f|y |] (hodge (d f)) ;[| (* -1 f|y) f|x |] (d (hodge (d f))) ;[| [| (* -1 f|y|x) f|x|x |] [| (* -1 f|y|y) f|x|y |] |] (hodge (d (hodge (d f)))) ;(+ f|y|y f|x|x) (Δ f) ;(+ (* -1 f|y|y) (* -1 f|x|x))