{
	"cells" : 
	[
		{
			"cell_origin" : "client",
			"cell_type" : "latex",
			"cells" : 
			[
				{
					"cell_origin" : "client",
					"cell_type" : "latex_view",
					"source" : "\\algorithm{split_index}{Split the range of an index into two subsets}\n\nReplace a sum by a sum-of-sums, abstractly. Concretely, replaces all\nindex contractions of a given type by a sum of two terms, each with\nindices of a different type. Useful for Kaluza-Klein reductions and\nthe like. An example makes this more clear:"
				}
			],
			"hidden" : true,
			"source" : "\\algorithm{split_index}{Split the range of an index into two subsets}\n\nReplace a sum by a sum-of-sums, abstractly. Concretely, replaces all\nindex contractions of a given type by a sum of two terms, each with\nindices of a different type. Useful for Kaluza-Klein reductions and\nthe like. An example makes this more clear:"
		},
		{
			"cell_origin" : "client",
			"cell_type" : "input",
			"source" : "{M,N,P,Q,R}::Indices(full).\n{m,n,p,q,r}::Indices(space1).\n{a,b,c,d,e}::Indices(space2)."
		},
		{
			"cell_origin" : "client",
			"cell_type" : "input",
			"cells" : 
			[
				{
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"source" : "\\begin{dmath*}{}A_{M p} B_{M p}\\end{dmath*}"
				},
				{
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"source" : "\\begin{dmath*}{}A_{m p} B_{m p}+A_{a p} B_{a p}\\end{dmath*}"
				}
			],
			"source" : "ex:=A_{M p} B_{M p};\nsplit_index(_, $M,m,a$);"
		},
		{
			"cell_origin" : "client",
			"cell_type" : "input",
			"cells" : 
			[
				{
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"source" : "\\begin{dmath*}{}A_{M p} B_{M p}\\end{dmath*}"
				},
				{
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"source" : "\\begin{dmath*}{}A_{m p} B_{m p}+A_{4 p} B_{4 p}\\end{dmath*}"
				}
			],
			"source" : "ex:=A_{M p} B_{M p};\nsplit_index(_, $M,m,4$);"
		},
		{
			"cell_origin" : "client",
			"cell_type" : "latex",
			"cells" : 
			[
				{
					"cell_origin" : "client",
					"cell_type" : "latex_view",
					"source" : "Note that the two index types into which the original indices should be\nsplit can be either symbolic (as in the first case above) or numeric\n(as in the second case)."
				}
			],
			"hidden" : true,
			"source" : "Note that the two index types into which the original indices should be\nsplit can be either symbolic (as in the first case above) or numeric\n(as in the second case)."
		},
		{
			"cell_origin" : "client",
			"cell_type" : "input",
			"source" : ""
		}
	],
	"description" : "Cadabra JSON notebook format",
	"version" : 1
}
