check various properties of a Lie algebra, subalgebra, or transformation
Query(arg1, arg2, ..., keyword)
arg1, arg2, ...
(optional) other arguments
The Query function can be used in one of two ways to check various properties of a Lie algebra, subalgebra, or transformation. In the first way the function simply returns true if the property defined by the keyword holds and false otherwise. In the second way, a set of parameters is specified and the function returns the following sequence - TF, Eq, Soln, A. Here TF is true if there is a choice of the parameters which makes the keyword property true; Eq is the list of equations which the parameters must satisfy for the property defined by the keyword to be be true; Soln is the list of all solutions to the equations as found by the Maple solve command; and A is the list of all algebraic structures defined by the previously listed solutions.
The argument keyword must be one of the following, entered as a string (in quotes
Further information is available under ?Query[keyword], where keyword is from the above list.
A user can add new functionality to Query with the command Query:-addCheck(keyword, procedure).
The command Query is part of the DifferentialGeometry:-LieAlgebras package. It can be used in the form Query(...) only after executing the commands with(DifferentialGeometry) and with(LieAlgebras), but can always be used by executing DifferentialGeometry:-LieAlgebras:-Query(...).
Define two Lie algebras.
L1 ≔ _DG⁡LieAlgebra,Alg1,4,1,3,1,1,2,3,2,1:
L2 ≔ _DG⁡LieAlgebra,Alg2,3,2,3,1,1:
In this example we find all the homomorphisms from Alg1 to Alg2 of the form defined by the Matrix A.
A ≔ Matrix⁡a6,0,0,a1,0,a5,0,a2,0,0,a4,a3
TF,Eq,Soln,B ≔ Query⁡Alg1,Alg2,A,a1,a2,a3,a4,a5,a6,Homomorphism
In this example we add functionality to Query. Recall that a Lie algebra is said to be a two-step nilpotent Lie algebra if the second term in the lower central series vanishes. We create a procedure that returns true if the given Lie algebra is two-step nilpotent and false otherwise.
f := proc() local C, k;
if nargs = 1 then ChangeLieAlgebraTo(args) end if;
C := LieAlgebraSeries("Lower");
k := nops(C);
if k = 0 then true else false end if;
Add this procedure to the Query command.
Note that "two-step" has now been added to the keywords list for Query.
Download Help Document