-- Parameters def x := [|θ, φ, ψ, η, δ|] def X := [| r * (cos θ), r * (sin θ) * (cos φ), r * (sin θ) * (sin φ) * (cos ψ), r * (sin θ) * (sin φ) * (sin ψ) * (cos η), r * (sin θ) * (sin φ) * (sin ψ) * (sin η) * (cos δ), r * (sin θ) * (sin φ) * (sin ψ) * (sin η) * (sin δ) |] -- Local basis def e_i_j := ∂/∂ X_j x~i -- Metric tensors def g{_i_j} := generateTensor (\x y -> V.* e_x_# e_y_#) [5, 5] def g{~i~j} := M.inverse g_#_# -- Christoffel symbols def Γ_i[_j_k] := (1 / 2) * (∂/∂ g_i_k x~j + ∂/∂ g_i_j x~k - ∂/∂ g_j_k x~i) def Γ~i[_j_k] := withSymbols [m] g~i~m . Γ_m_j_k -- Riemann curvature def R~i_j[_k_l] := withSymbols [m] ∂/∂ Γ~i_j_l x~k - ∂/∂ Γ~i_j_k x~l + Γ~m_j_l . Γ~i_m_k - Γ~m_j_k . Γ~i_m_l --R~#_#_#_# --def R{[_a_b][_c_d]} := withSymbols [i] g_a_i . R~i_b_c_d -- Ricci curvature def Ric[_a_b] := withSymbols [m, n] sum (contract (R~m_a_m_b)) Ric_#_# -- 7.422 sec -- Scalar curvature def scalarCurvature := withSymbols [i, j] g~i~j . Ric_i_j -- Conformal curvature tensor def C_i_k_l_m := R_i_k_l_m + (Ric_i_m . g_k_l - Ric_i_l . g_k_m + Ric_k_l . g_i_m - Ric_k_m . g_i_l) + (scalarCurvature / 2) * (g_i_l . g_k_m - g_i_m . g_k_l) --C_#_#_#_# -- Wodzicki-Chern-Simons class def S := let (es, os) := evenAndOddPermutations 5 in sum (map (\σ -> R~u_1_s_(σ 1) . R~s_t_(σ 3)_(σ 2) . R~t_u_(σ 5)_(σ 4)) es) - sum (map (\σ -> R~u_1_s_(σ 1) . R~s_t_(σ 3)_(σ 2) . R~t_u_(σ 5)_(σ 4)) os) --S -- 0 -- 16.957 sec