a field-theory motivated approach to computer algebra

lower_free_indices

Make all free indices in an expression subscripts.
Free indicies (indices declared with the Indices(position=free) property) can appear as subscripts or superscripts, but sometimes it is useful to move them all into the same position.
{a,b,c}::Indices(name=A, position=free); {m,n,p}::Indices(name=B, position=fixed); ex:=A_{a b m} B^{a b m};
$$\displaystyle{}\text{Attached property Indices(position=free) to }\left[a, b, c\right].$$
$$\displaystyle{}\text{Attached property Indices(position=fixed) to }\left[m, n, p\right].$$
$$\displaystyle{}A_{a b m} B^{a b m}$$
A_{a b m} B^{a b m}
lower_free_indices(_);
$$\displaystyle{}A_{a b m} B_{a b}\,^{m}$$
A_{a b m} B_{a b}^{m}
The opposite of this is raise_free_indices, which moves all indices to be superscripts.