simplifyAssertEq(a'^i':simplifyMetrics(), a'^i') |
${{ a} ^i} = {{ a} ^i}$
GOOD |
time: 2.691000ms stack: size: 7
|
simplifyAssertEq((a'^min' * delta'_i^j'):simplifyMetrics(), a'^mjn') |
${{{{ a} ^m} ^j} ^n} = {{{{ a} ^m} ^j} ^n}$
GOOD |
time: 5.298000ms stack: size: 7
|
|
| ||
|
g shouldn't apply to delta, but delta should apply to g | ||
simplifyAssertEq((g'^ij' * delta'_j^k'):simplifyMetrics(), g'^ik') |
${{{ g} ^i} ^k} = {{{ g} ^i} ^k}$
GOOD |
time: 3.599000ms stack: size: 7
|
simplifyAssertEq((delta'_j^k' * g'^ij'):simplifyMetrics(), g'^ik') |
${{{ g} ^i} ^k} = {{{ g} ^i} ^k}$
GOOD |
time: 2.156000ms stack: size: 7
|
|
| ||
|
delta works on mixed tensors | ||
simplifyAssertEq((a'^i' * delta'_i^j'):simplifyMetrics(), a'^j') |
${{ a} ^j} = {{ a} ^j}$
GOOD |
time: 1.977000ms stack: size: 7
|
simplifyAssertEq((a'^i' * delta'^j_i'):simplifyMetrics(), a'^j') |
${{ a} ^j} = {{ a} ^j}$
GOOD |
time: 1.820000ms stack: size: 7
|
simplifyAssertEq((delta'_i^j' * a'^i'):simplifyMetrics(), a'^j') |
${{ a} ^j} = {{ a} ^j}$
GOOD |
time: 2.070000ms stack: size: 7
|
simplifyAssertEq((delta'^j_i' * a'^i'):simplifyMetrics(), a'^j') |
${{ a} ^j} = {{ a} ^j}$
GOOD |
time: 2.178000ms stack: size: 7
|
|
| ||
|
does delta work when not mixed? it shouldn't (unless the metric is equal to identity) | ||
simplifyAssertEq((a'^i' * delta'_ij'):simplifyMetrics(), a'^i' * delta'_ij') |
${{{{ a} ^i}} {{{{ δ} _i} _j}}} = {{{{ a} ^i}} {{{{ δ} _i} _j}}}$
GOOD |
time: 5.393000ms stack: size: 7
|
|
| ||
|
g raises and lowers | ||
simplifyAssertEq((a'^i' * g'_ij'):simplifyMetrics(), a'_j') |
${{ a} _j} = {{ a} _j}$
GOOD |
time: 2.642000ms stack: size: 7
|
simplifyAssertEq((g'_ij' * a'^i'):simplifyMetrics(), a'_j') |
${{ a} _j} = {{ a} _j}$
GOOD |
time: 2.497000ms stack: size: 7
|
simplifyAssertEq((a'_i' * g'^ij'):simplifyMetrics(), a'^j') |
${{ a} ^j} = {{ a} ^j}$
GOOD |
time: 2.531000ms stack: size: 7
|
simplifyAssertEq((g'^ij' * a'_i'):simplifyMetrics(), a'^j') |
${{ a} ^j} = {{ a} ^j}$
GOOD |
time: 3.777000ms stack: size: 7
|
|
| ||
|
does g work when mixed? technically $g^i_j == \delta^i_j$ | ||
simplifyAssertEq((a'^i' * g'_i^j'):simplifyMetrics(), a'^j') |
${{ a} ^j} = {{ a} ^j}$
GOOD |
time: 2.636000ms stack: size: 7
|
|
| ||
|
how about simplifying solely metrics without any non-metric tensors? | ||
simplifyAssertEq((g'^ik' * delta'_k^l'):simplifyMetrics(), g'^il') |
${{{ g} ^i} ^l} = {{{ g} ^i} ^l}$
GOOD |
time: 2.348000ms stack: size: 7
|
simplifyAssertEq((g'^ik' * delta'_k^l' * delta'_l^m'):simplifyMetrics(), g'^im') |
${{{ g} ^i} ^m} = {{{ g} ^i} ^m}$
GOOD |
time: 2.322000ms stack: size: 7
|
|
| ||
|
how about simplifying from metrics to deltas? | ||
simplifyAssertEq((g'^ik' * g'_kj'):simplifyMetrics(), delta'^i_j') |
${{{ δ} ^i} _j} = {{{ δ} ^i} _j}$
GOOD |
time: 1.915000ms stack: size: 7
|
simplifyAssertEq((g'^ik' * delta'_k^l' * g'_lm'):simplifyMetrics(), delta'^i_m') |
${{{ δ} ^i} _m} = {{{ δ} ^i} _m}$
GOOD |
time: 2.303000ms stack: size: 7
|
simplifyAssertEq((g'^ik' * delta'_k^l' * delta'_l^m' * g'_mn'):simplifyMetrics(), delta'^i_n') |
${{{ δ} ^i} _n} = {{{ δ} ^i} _n}$
GOOD |
time: 3.233000ms stack: size: 7
|
|
| ||
|
how about derivatives? delta should work but g should not. | ||
|
TODO technically g should work on the last ... technically ... but raised partials are awkward to deal with. | ||
|
and on that note, I might as well lower with the metric | ||
simplifyAssertEq((a'_,i' * g'^ij'):simplifyMetrics(), a'_,i' * g'^ij') |
${{{{ a} _{,i}}} {{{{ g} ^i} ^j}}} = {{{{ a} _{,i}}} {{{{ g} ^i} ^j}}}$
GOOD |
time: 4.961000ms stack: size: 7
|
simplifyAssertEq((a'^,i' * g'_ij'):simplifyMetrics(), a'^,i' * g'_ij') |
${{{{ a} ^{,i}}} {{{{ g} _i} _j}}} = {{{{ a} ^{,i}}} {{{{ g} _i} _j}}}$
GOOD |
time: 3.648000ms stack: size: 7
|
simplifyAssertEq((a'_,im' * g'^ij'):simplifyMetrics(), a'_,im' * g'^ij') |
${{{{{ a} _{,i}} _{,m}}} {{{{ g} ^i} ^j}}} = {{{{{ a} _{,i}} _{,m}}} {{{{ g} ^i} ^j}}}$
GOOD |
time: 2.172000ms stack: size: 7
|
simplifyAssertEq((a'^,im' * g'_ij'):simplifyMetrics(), a'^,im' * g'_ij') |
${{{{{ a} ^{,i}} ^{,m}}} {{{{ g} _i} _j}}} = {{{{{ a} ^{,i}} ^{,m}}} {{{{ g} _i} _j}}}$
GOOD |
time: 2.886000ms stack: size: 7
|
simplifyAssertEq((a'_i,m' * g'^ij'):simplifyMetrics(), a'_i,m' * g'^ij') |
${{{{{ a} _i} _{,m}}} {{{{ g} ^i} ^j}}} = {{{{{ a} _i} _{,m}}} {{{{ g} ^i} ^j}}}$
GOOD |
time: 3.804000ms stack: size: 7
|
simplifyAssertEq((a'^i,m' * g'_ij'):simplifyMetrics(), a'^i,m' * g'_ij') |
${{{{{ a} ^i} ^{,m}}} {{{{ g} _i} _j}}} = {{{{{ a} ^i} ^{,m}}} {{{{ g} _i} _j}}}$
GOOD |
time: 4.483000ms stack: size: 7
|
|
| ||
|
but delta should simplify with commas | ||
simplifyAssertEq((a'_,i' * delta'^i_j'):simplifyMetrics(), a'_,j') |
${{ a} _{,j}} = {{ a} _{,j}}$
GOOD |
time: 2.086000ms stack: size: 7
|
simplifyAssertEq((a'^,i' * delta'_i^j'):simplifyMetrics(), a'^,j') |
${{ a} ^{,j}} = {{ a} ^{,j}}$
GOOD |
time: 1.904000ms stack: size: 7
|
simplifyAssertEq((a'_,im' * delta'^i_j'):simplifyMetrics(), a'_,jm') |
${{{ a} _{,j}} _{,m}} = {{{ a} _{,j}} _{,m}}$
GOOD |
time: 2.080000ms stack: size: 7
|
simplifyAssertEq((a'^,im' * delta'_i^j'):simplifyMetrics(), a'^,jm') |
${{{ a} ^{,j}} ^{,m}} = {{{ a} ^{,j}} ^{,m}}$
GOOD |
time: 2.314000ms stack: size: 7
|
simplifyAssertEq((a'_i,m' * delta'^i_j'):simplifyMetrics(), a'_j_,m') |
${{{ a} _j} _{,m}} = {{{ a} _j} _{,m}}$
GOOD |
time: 3.231000ms stack: size: 7
|
simplifyAssertEq((a'^i,m' * delta'_i^j'):simplifyMetrics(), a'^j^,m') |
${{{ a} ^j} ^{,m}} = {{{ a} ^j} ^{,m}}$
GOOD |
time: 5.555000ms stack: size: 7
|
|
| ||
|
TODO someday: | ||
|
allow g_ij to raise/lower the last partial derivative | ||
|
allow g_ij to raise/lower any covariant derivatives not enclosed in partial derivatives. |