;;; ;;; Parameters ;;; (define $x [|α β γ|]) ;; ;; Metric tensor ;; (define $g__ (generate-tensor 2#(* (a α β γ) (G_%1_%2 α β γ)) {3 3})) (define $g~~ (generate-tensor 2#(* (/ 1 (a α β γ)) (G~%1~%2 α β γ)) {3 3})) g_#_# g~#~# ;; ;; Christoffel symbols of the first kind ;; (define $Γ___ (with-symbols {j k l} (* (/ 1 2) (+ (∂/∂ g_j_l x~k) (∂/∂ g_j_k x~l) (* -1 (∂/∂ g_k_l x~j)))))) Γ_#_#_# ;; ;; Christoffel symbols of the second kind ;; (define $Γ~__ (with-symbols {i j k l} (. g~i~j Γ_j_k_l))) Γ~#_#_# ;; ;; Riemann curvature tensor ;; (define $R~i_j_k_l (with-symbols {m} (+ (- (∂/∂ Γ~i_j_l x~k) (∂/∂ Γ~i_j_k x~l)) (- (. Γ~m_j_l Γ~i_m_k) (. Γ~m_j_k Γ~i_m_l))))) R~#_#_#_# ;; ;; Ricci curvature ;; (define $Ric__ (with-symbols {i j k} (contract + R~i_j_k_i))) Ric_#_# ;; ;; Scalar curvature ;; (define $scalar-curvature (with-symbols {j k} (. g~j~k Ric_j_k))) scalar-curvature ;; ;; Wodzicki-Chern-Simons class ;; (let {[[$es $os] (even-and-odd-permutations 3)]} (- (sum (map (lambda [$σ] (. R~u_1_s_(σ 1) R~s_u_(σ 3)_(σ 2))) es)) (sum (map (lambda [$σ] (. R~u_1_s_(σ 1) R~s_t_(σ 3)_(σ 2))) os))))