{
	"cells" : 
	[
		{
			"cell_origin" : "client",
			"cell_type" : "latex",
			"cells" : 
			[
				{
					"cell_origin" : "client",
					"cell_type" : "latex_view",
					"source" : "\\algorithm{reduce_delta}{Simplify a self-contracted generalised delta.}\n\nReduce a self-contracted generalised Kronecker delta symbol to a simpler\nexpression without self-contractions, according to\n\\begin{equation}\nn! \\, \\delta^{a_1\\cdots a_n}_{b_1\\cdots b_n}\\, \\delta^{b_1}_{a_1}\n\\cdots \\delta^{b_m}_{a_m} = \n\\Big[\\prod_{i=1}^m \\big( d-(n-i) \\big) \\Big]\n\\, (n-m)!\\, \\delta^{a_{m+1}\\cdots a_n}_{b_{m+1}\\cdots b_n}\\, .\n\\end{equation}\nHere is an example:"
				}
			],
			"hidden" : true,
			"source" : "\\algorithm{reduce_delta}{Simplify a self-contracted generalised delta.}\n\nReduce a self-contracted generalised Kronecker delta symbol to a simpler\nexpression without self-contractions, according to\n\\begin{equation}\nn! \\, \\delta^{a_1\\cdots a_n}_{b_1\\cdots b_n}\\, \\delta^{b_1}_{a_1}\n\\cdots \\delta^{b_m}_{a_m} = \n\\Big[\\prod_{i=1}^m \\big( d-(n-i) \\big) \\Big]\n\\, (n-m)!\\, \\delta^{a_{m+1}\\cdots a_n}_{b_{m+1}\\cdots b_n}\\, .\n\\end{equation}\nHere is an example:"
		},
		{
			"cell_origin" : "client",
			"cell_type" : "input",
			"cells" : 
			[
				{
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"source" : "\\begin{dmath*}{}\\text{Attached property KroneckerDelta to~}\\delta\\left(\\#\\right).\\end{dmath*}"
				},
				{
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"source" : "\\begin{dmath*}{}\\text{Attached property Integer to~}\\left(m, n, q\\right).\\end{dmath*}"
				},
				{
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"source" : "\\begin{dmath*}{}\\delta_{m}\\,^{n}\\,_{n}\\,^{q}\\end{dmath*}"
				}
			],
			"source" : "\\delta{#}::KroneckerDelta;\n{m,n,q}::Integer(0..3);\nex:=\\delta_{m}^{n}_{n}^{q};"
		},
		{
			"cell_origin" : "client",
			"cell_type" : "input",
			"cells" : 
			[
				{
					"cell_origin" : "server",
					"cell_type" : "latex_view",
					"source" : "\\begin{dmath*}{} - \\frac{3}{2}\\delta_{m}\\,^{q}\\end{dmath*}"
				}
			],
			"source" : "reduce_delta(_);"
		},
		{
			"cell_origin" : "client",
			"cell_type" : "latex",
			"cells" : 
			[
				{
					"cell_origin" : "client",
					"cell_type" : "latex_view",
					"source" : "Note that this requires that the indices on the Kronecker\ndelta symbol also carry an \\prop{Integer} property to specify\ntheir range."
				}
			],
			"hidden" : true,
			"source" : "Note that this requires that the indices on the Kronecker\ndelta symbol also carry an \\prop{Integer} property to specify\ntheir range."
		},
		{
			"cell_origin" : "client",
			"cell_type" : "input",
			"source" : ""
		}
	],
	"description" : "Cadabra JSON notebook format",
	"version" : 1
}
