{
	"cell_id" : 153469803931434802,
	"cells" : 
	[
		{
			"cell_id" : 3324461703110413508,
			"cell_origin" : "client",
			"cell_type" : "latex",
			"cells" : 
			[
				{
					"cell_id" : 14419213666533296135,
					"cell_origin" : "client",
					"cell_type" : "latex_view",
					"source" : "\\package{cdb.relativity.abstract}{Core general relativity package, mainly a library of various standard expressions.}\n\nImporting this library will make \\verb|\\partial| a partial derivative and will also declare the\ngreek indices to be space-time indices."
				}
			],
			"hidden" : true,
			"source" : "\\package{cdb.relativity.abstract}{Core general relativity package, mainly a library of various standard expressions.}\n\nImporting this library will make \\verb|\\partial| a partial derivative and will also declare the\ngreek indices to be space-time indices."
		},
		{
			"cell_id" : 12613540530229412949,
			"cell_origin" : "client",
			"cell_type" : "input",
			"cells" : 
			[
				{
					"cell_id" : 7383066680787787249,
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"source" : "\\begin{dmath*}{}\\text{Attached property PartialDerivative to~}\\partial{\\#}.\\end{dmath*}"
				},
				{
					"cell_id" : 13136258987904215825,
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"source" : "\\begin{dmath*}{}\\text{Attached property Indices(position=fixed) to~}\\left[\\mu,~\\discretionary{}{}{} \\nu,~\\discretionary{}{}{} \\rho,~\\discretionary{}{}{} \\sigma,~\\discretionary{}{}{} \\kappa,~\\discretionary{}{}{} \\gamma,~\\discretionary{}{}{} \\lambda\\right].\\end{dmath*}"
				}
			],
			"source" : "\\partial{#}::PartialDerivative;\n{\\mu,\\nu,\\rho,\\sigma,\\kappa,\\gamma,\\lambda}::Indices(spacetime, position=fixed);"
		},
		{
			"cell_id" : 11955494087904535027,
			"cell_origin" : "client",
			"cell_type" : "latex",
			"cells" : 
			[
				{
					"cell_id" : 15119378517043388215,
					"cell_origin" : "client",
					"cell_type" : "latex_view",
					"source" : "\\algorithm{riemann_from_christoffel(R: Ex, c: Ex) -> Ex}{Generates an equality which determines the Riemann tensor in terms of the Christoffel symbols.}"
				}
			],
			"hidden" : true,
			"source" : "\\algorithm{riemann_from_christoffel(R: Ex, c: Ex) -> Ex}{Generates an equality which determines the Riemann tensor in terms of the Christoffel symbols.}"
		},
		{
			"cell_id" : 14094191732391016476,
			"cell_origin" : "client",
			"cell_type" : "input",
			"source" : "def riemann_from_christoffel(R=$R$, c=$\\Gamma$):\n    ex:= @(R)^{\\rho}_{\\sigma\\mu\\nu} = \\partial_{\\mu}{@(c)^{\\rho}_{\\nu\\sigma}} \n                                     -\\partial_{\\nu}{@(c)^{\\rho}_{\\mu\\sigma}} \n                                     + @(c)^{\\rho}_{\\mu\\lambda} @(c)^{\\lambda}_{\\nu\\sigma} \n                                     - @(c)^{\\rho}_{\\nu\\lambda} @(c)^{\\lambda}_{\\mu\\sigma}:\n    return ex"
		},
		{
			"cell_id" : 17711059759552177114,
			"cell_origin" : "client",
			"cell_type" : "latex",
			"cells" : 
			[
				{
					"cell_id" : 2943028165866679465,
					"cell_origin" : "client",
					"cell_type" : "latex_view",
					"source" : "\\algorithm{christoffel_from_metric(c: Ex, g: Ex) -> Ex}{Generates an equality which determines the Christoffel symbols in terms of the metric.}"
				}
			],
			"hidden" : true,
			"source" : "\\algorithm{christoffel_from_metric(c: Ex, g: Ex) -> Ex}{Generates an equality which determines the Christoffel symbols in terms of the metric.}"
		},
		{
			"cell_id" : 16328687583199300518,
			"cell_origin" : "client",
			"cell_type" : "input",
			"source" : "def christoffel_from_metric(c=$\\Gamma$, g=$g$):\n    ex:= @(c)^{\\lambda}_{\\mu\\nu} = 1/2 g^{\\lambda\\kappa} ( \\partial_{\\mu}{ g_{\\kappa\\nu} }\n                                                           + \\partial_{\\nu}{ g_{\\kappa\\mu} } - \\partial_{\\kappa}{ g_{\\mu\\nu} } ).\n    return ex\n"
		},
		{
			"cell_id" : 17531443358799556997,
			"cell_origin" : "client",
			"cell_type" : "latex",
			"cells" : 
			[
				{
					"cell_id" : 16528097175233509746,
					"cell_origin" : "client",
					"cell_type" : "latex_view",
					"source" : "\\algorithm{riemann_to_ricci}{Convert contractions of Riemann tensors to Ricci tensors or scalars.}"
				}
			],
			"hidden" : true,
			"source" : "\\algorithm{riemann_to_ricci}{Convert contractions of Riemann tensors to Ricci tensors or scalars.}"
		},
		{
			"cell_id" : 6890929525873944922,
			"cell_origin" : "client",
			"cell_type" : "input",
			"source" : "def riemann_to_ricci(ex, R=$R$):\n    rl1:= @(R)^{a?}_{b? a? c?}     =  @(R)_{b? c?}, @(R)^{a?}_{b? c? a?}     = -@(R)_{b? c?}.\n    rl2:= @(R)_{a?}_{b?}^{a?}_{c?} =  @(R)_{b? c?}, @(R)_{a?}_{b? c?}^{a?}   = -@(R)_{b? c?}.\n    rl3:= @(R)_{b?}^{a?}_{c? a?}   =  @(R)_{b? c?}, @(R)_{b?}^{a?}_{a? c?}   = -@(R)_{b? c?}.\n    rl4:= @(R)_{b?}_{a?}^{c? a?}   =  @(R)_{b?}^{c?}.\n    rl5:= @(R)^{a?}_{a?} = @(R), @(R)_{a?}^{a?} = @(R).\n    rl6:= @(R)^{a?}_{a? b? c?} = 0.\n\n    substitute(ex, rl1+rl2+rl3+rl4+rl5, repeat=True)\n    return ex"
		},
		{
			"cell_id" : 3773496488914727547,
			"cell_origin" : "client",
			"cell_type" : "input",
			"cells" : 
			[
				{
					"cell_id" : 9254795296086812746,
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"cells" : 
					[
						{
							"cell_id" : 9775705670236367127,
							"cell_origin" : "server",
							"cell_type" : "input_form",
							"source" : "R^{a}_{b c a}-R^{a}_{b a c}"
						}
					],
					"source" : "\\begin{dmath*}{}R^{a}\\,_{b c a}-R^{a}\\,_{b a c}\\end{dmath*}"
				}
			],
			"ignore_on_import" : true,
			"source" : "ex:= R^{a}_{b c a} - R^{a}_{b a c};"
		},
		{
			"cell_id" : 2143829647108705411,
			"cell_origin" : "client",
			"cell_type" : "input",
			"cells" : 
			[
				{
					"cell_id" : 11401984921286068745,
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"cells" : 
					[
						{
							"cell_id" : 16470249316118331173,
							"cell_origin" : "server",
							"cell_type" : "input_form",
							"source" : "-2R_{b c}"
						}
					],
					"source" : "\\begin{dmath*}{}-2R_{b c}\\end{dmath*}"
				}
			],
			"ignore_on_import" : true,
			"source" : "riemann_to_ricci(ex);"
		},
		{
			"cell_id" : 8133262252432645091,
			"cell_origin" : "client",
			"cell_type" : "input",
			"source" : ""
		}
	],
	"description" : "Cadabra JSON notebook format",
	"version" : 1
}
