Defining second order operators/expanding out Lie brackets

113 views
Skip to first unread message

Ethan L

unread,
Aug 30, 2023, 2:17:59 AM8/30/23
to xAct Tensor Computer Algebra
Hi all,

Thanks for the excellent package!
I'm interested in using xAct/Mathematica to do some symbolic commutator estimates of second/third order operators, and am running into a couple issues likely caused by my own lack of expertise, so I have a couple questions:
  • Which type of derivative should I be using for the action of a vector field on a scalar field? (e.g., for the purpose of canonicalization/simplification, is there a preference between the covariant derivatives/Lie derivative)?
  • Related to above, is there any way to compose vector fields as operators? (i.e., I'd like to be able to write X(Y(f)) rather than LieD[X]@LieD[Y][f]).
  • Finally, is there any way to force mathematica to expand out Lie brackets as commutators? In particular, I'd like the following MWE to return 0:
<< xAct`xTensor`

DefManifold[M, 4, {a, b, c}]
DefTensor[X[a], M]
DefTensor[Y[a], M]
DefTensor[f[], M]

LieD[X][LieD[Y][f[]]] - LieD[Y][LieD[X][\[Phi][]]] -  LieD[Bracket[X, Y][a]][f[]] // Simplification

Of course, if this is beyond the scope of this package/if there's be another package better suited to this, please let me know! I've looked at a couple non commutative algebra packages, but it seemed like properly getting typechecking/Leibniz rule expansion working in those was intractable.

Thanks!
Ethan




magma

unread,
Aug 31, 2023, 1:01:12 PM8/31/23
to xAct Tensor Computer Algebra
Indeed in xAct at the moment there is no direct way to represent the action of a vector X on a function f. But this is simply (by definition) the Lie derivative of f by X.
It is not difficult to implement it and I am half way through , but to make it easy to use/type requires a bit more time than what I have now.
So for the time being let's just use the Lie derivative.
The expression you posted is syntactically wrong. This is the correct one

expr = LieD[X[a]][LieD[Y[a]][f[]]] - LieD[Y[a]][LieD[X[a]][f[]]] -
  LieD[Bracket[X[b], Y[b]][a]][f[]]

You have to put the indices to the vectors even if they are dummies.

then you can simplify in 3 steps:

expr1= expr // BracketToCovD

takes away the bracket.

expr2= expr1// LieDToCovD

converts the LieD to PD's

expr3=expr2// ToCanonical

and this gives 0.

So the key simplifiers are BracketToCovD, LieDToCovD and of course  ToCanonical

cheers, Alessandro

Ethan L

unread,
Aug 31, 2023, 3:37:35 PM8/31/23
to xAct Tensor Computer Algebra
Excellent, thanks so much!

One more thing: what would be the canonical way to expand out/simplify vector field expressions for the purposes of substitution/MakeRule?
(e.g., I'd like to input as assumption [X,Y] = Z and have X(Y(f)) - Y(X(f)) simplified to Z(f)).
With the following convenience functions defined, neither of the rules below appear to do additional simplification:

ExpBrDeriv[x_] := ToCanonical[LieDToCovD[BracketToCovD[x]]]
ApplyRule[LHS_ == RHS_] := MakeRule[Evaluate[{LHS, RHS}], MetricOn -> All, ContractMetrics -> True]

expr = LieD[X[a]][LieD[Y[a]][f[]]] - LieD[Y[a]][LieD[X[a]][f[]]] // ExpBrDeriv (*[X,Y] f*)

rule1 = MakeRule[{LieD[Bracket[X[b], Y[b]][a]][f[]], 0}]
rule2 = MakeRule[{Bracket[X[b], Y[b]][a], 0}]
rule3 = ApplyRule[LieD[Bracket[X[b], Y[b]][a]][f[]] == 0]
rule4 = ApplyRule[Bracket[X[b], Y[b]][a] == 0]

expr /.rule1 (*rule 2, rule 3, etc.*)

Attempting to canonicalize these expressions within MakeRule/ApplyRule also seems to cause issues, e.g. all of the following cause MakeRule to throw the error "There is more than one term on the LHS of rule":

rule5 = MakeRule[{LieD[Bracket[X[b], Y[b]][a]][f[]] // ExpBrDeriv, 0}]
rule6 = ApplyRule[LieD[Bracket[X[b], Y[b]][a]][f[]] // ExpBrDeriv == 0]

etc.

(admittedly, it seems like the better solution might be to just expand all the Lie bracket identities/Leibniz rule expansion symbolically in Mathematica first, then to port the result to xAct - I'll make an attempt at this before bothering you all again!)


Thanks!
Ethan
Reply all
Reply to author
Forward
0 new messages