I want to define a "prefix" (D_i) covariant derivative operator CD[] for symbolic tensors in form of a function, i.e. for
$Assumptions={Element[g,Arrays[{3,3},Reals,Symmetric[{1,2}]]]}
also
Element[CD[g],Arrays[{3,3,3},Reals,Symmetric[2,3]]]
should be made an assumption, an additional slot is created on the left. So far the only way I found to make this possible is defining a function
$Assumptions = {Element[v,Vectors[3, Reals]]}
CDdef[a_] := (AppendTo[$Assumptions,
Element[CD[a],Arrays[{3}~Join~TensorDimensions[a]],Reals,
TensorSymmetry[TensorProduct[v, a]]]];
$Assumptions = DeleteDuplicates[$Assumptions]; CD[a])
and effectively writing all the assumption by hand into $Assumptions. But this could generate a huge list in bigger calculations. All my attempts of the kind
$Assumptions={Element[CD[a_?SomeSymmetryQ],Arrays["one more slot"]]}
to use pattern that are at least valid for all tensors with the same symmetries have failed. Is there any effective way to proceed?
Many thanks, Hendrik
$Assumptions={Element[g,Arrays[{3,3},Reals],Symmetric[{1,2}]]}
but$Assumptions = Element[g, Arrays[{3, 3}, Reals, Symmetric[{1, 2}]]]
$\endgroup$Reals
: the argumentSymmetric
belongs insideArrays
. $\endgroup$