Library[Search] - search through the DifferentialGeometry library to find Lie algebras, Lie algebras of vector fields, or differential equations with specific properties
Search(author, n, indexlist, procedurelists, optionalargs)
author - a string, the author of a table in the DifferentialGeometry Library
n - an integer
indexlist - (optional) indexlist = A, where A is a list of indices for the table with catalogue name author, n
procedurelists - one or more of following: Liealgebraproperties = P; VFSproperties = P; DEproperties = P; here P is a list of procedures returning true or false
optionalargs - manifold = M, where M is the name of a manifold defined using DGsetup
optionalargs - variables = V, where V is the list of independent and dependent variables for a system of differential equations
The Search command will return the sublist of the list indexlist consisting of all table entries for which the procedures in the procedurelists all return true.
If the table entries are Lie algebras, then the Search command will initialize each Lie algebra in indexlist and execute each procedure in the Liealgebraproperties list. Each procedure in the Liealgebraproperties list will assume that a Lie algebra has been initialized. No arguments may be used in defining these procedures.
If the table entries are Lie algebras of vector fields, then the procedures P in the argument VFSproperties = P should accept a single argument Gamma, this being the list of vector fields as provided by the table entry. The Liealgebraproperties procedures are applied to the abstract Lie algebra defined by each table entry. This abstract Lie algebra is automatically calculated and initialized by the Search command.
If the table entries are differential equations, then the procedures in DEproperties = P should accept a single argument called DE, this being the differential equation as provided by the table entry. The VFSproperties procedures are applied to the symmetry algebra of the differential equation and the Liealgebraproperties are applied to the abstract Lie algebra defined by the symmetry algebra of the differential equation. The symmetry algebra of DE will be automatically computed (using the PDEtools package) by the Search program, if required.
The command Search is part of the DifferentialGeometry:-Library package. It can be used in the form Search(...) only after executing the commands with(DifferentialGeometry) and with(Library), but can always be used by executing DifferentialGeometry:-Library:-Search(...).
with(DifferentialGeometry): with(Library): with(LieAlgebras):
Search through the ["Winternitz", 1] library of Lie algebras and find all the Lie algebras of dimension 4 which are solvable but not nilpotent. First we use the command Query to construct the necessary procedures.
P1 := () -> is(Tools:-DGinfo("LieAlgebraDimension") = 4);
P2 := () -> Query("Solvable");
P3 := () -> not Query("Nilpotent");
Alglist1 := Search("Winternitz", 1, Liealgebraproperties = [P1, P2, P3]);
Now narrow the search to find those Lie algebras with a 2 dimensional derived algebra.
P4 := () -> is(nops(DerivedAlgebra()) = 2):
Alglist2 := Search("Winternitz", 1, indexlist = Alglist1, Liealgebraproperties = [P4]);
Thus we conclude that there are just two 4 dimensional solvable and not nilpotent Lie algebras with 2 dimensional derived algebras in the Winternitz table. We can use the Browse command to view these Lie algebras.
Browse("Winternitz", 1, Alglist2);
Search through the first 25 vector field systems in the Gonzalez-Lopez table to see if there is a 3 dimensional semisimple vector field system whose prolongation to the 1-jet is not transitive. (A 3 dimensional vector field system will be non-transitive on the 1-jet if there is a non-trivial isotropy subalgebra.) These are precisely the actions which will admit a first order differential invariant.
DGsetup([x], [y], M, 1):
Q1 := Gamma -> is(nops(Gamma) = 3);
Q2 := proc(Gamma)
local Gamma1, A;
Gamma1 := map(JetCalculus:-Prolong, Gamma, 1);
A := GroupActions:-IsotropySubalgebra(Gamma1, [x = a, y = b, y = c]);
is(nops(A) <> 0);
P1 := () -> Query("Semisimple");
VFS := Browse("Gonzalez-Lopez", 1);
ans := Search("Gonzalez-Lopez", 1, indexlist = VFS[1..25], Liealgebraproperties = [P1], VFSproperties = [Q1, Q2], manifold = M);
Browse("Gonzalez-Lopez", 1, ans, manifold = M);
Download Help Document
What kind of issue would you like to report? (Optional)