DerivedFlag - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim

ExteriorDifferentialSystems[DerivedFlag] - calculate the derived flag for a distribution of vector fields or a Pfaffian differential system

Calling Sequences

      DerivedFlag(A,  options)

      DerivedFlag(Theta,  options)


   A        - a list of vector fields on a manifold M, defining a distribution

   Theta    - a lists of 1-forms on a manifold M, defining the (differential) generators for a Pfaffian differential system

   options  - (optional keyword arguments) flagtype = "WeakDerivedFlag" 



 In differential geometry a distribution is a set of vector fields 𝒜 defined on a manifold M. Associated to any distribution 𝒜 are two increasing nested sequences of distributions called the derived flag 𝒟i and the weak derived flag 𝒲i.  They are defined inductively by:

𝒟0  = 𝒜 ,    𝒟1  =  [𝒟0 , 𝒟0]   +  𝒟0 ,   ...,     𝒟i+1  = [𝒟i , 𝒟i]  + 𝒟i  


 𝒲0 = 𝒜 ,    𝒲1  = [𝒲0 , 𝒲0]   +  𝒲0 ,   ...,    𝒲i+1  = [𝒲0 , 𝒲i]  + 𝒲i  .


These distributions satisfy 𝒟i  𝒟i+1 and [𝒟i , 𝒟j]𝒟i+j and, likewise,  𝒲i 𝒲 i+1 and [𝒲i , 𝒲j]𝒲i+j.  Note that 𝒟1= 𝒲1   these are called the derived distribution of 𝒜 and are often denoted by𝒜 ' .


 Let ℐ be a Pfaffian differential system generated by a space of 1-forms Θ.  Then the derived differential system of ℐ is the Pfaffian system ℐ' generated by the 1 forms Θ' = {θ  | dθ   0 mod Θ}.  If  𝒜 is the distribution annihilated by Θ, that is, if 𝒜 = ann(Θ), then Θ' = ann(𝒜'). The derived flag of ℐ is defined inductively by ℐ1 = ℐ'   and ℐi+1 = ℐi'   .


The command DerivedFlag returns a list DF of lists of vector fields or a list of lists of 1-forms. The first list DF1 is always the original list of vector fields or 1-forms specified in the calling sequence and DFℓ = 𝒟ℓ1 or = ℐ1. The computation of the derived flag terminates at 𝒟ℓ, 𝒲 ,  or  ℐℓ  if   𝒟ℓ =  𝒟ℓ+1,  𝒲  =  𝒲 ℓ +1or  ℐℓ = ℐℓ+1 . If the last differential system in the derived flag for a Pfaffian system ℐ is 0, then an empty list is given.

See Also






with(DifferentialGeometry): with(ExteriorDifferentialSystems):


Example 1.

In this example, we calculate the derived flags for the standard contact system ℐ on the jet space J4ℝ, ℝ . First, we introduce the coordinates that are needed.


DGsetup([x, y, y1, y2, y3, y4], M);

frame name: M



Here are the 1-form generators for the contact system.

M > 

Theta := evalDG([dy - y1*dx, dy1 - y2*dx, dy2 - y3*dx, dy3 - y4*dx]);




Here is the derived flag.

M > 

DF1 := DerivedFlag(Theta);




We see that the rank of the differential systems in the derived flag decreases by one at each iteration.

M > 

map(nops, DF1);




Here is the distribution defined by as the annihilator of the contact system.

M > 

A := Annihilator(Theta);




The command CanonicalBasis can be used to simplify this output.

M > 

A := Tools:-CanonicalBasis(A);




Here is the derived flag for the distribution A.

M > 

DF2 := DerivedFlag(A);




We see that the rank of the distributions in the derived flag increases by one at each iteration.

M > 

map(nops, DF2);




Here is the weak derived flag. In this simple example, the derived flag and weak derived flag coincide.

M > 

DerivedFlag(A, flagtype = "WeakDerivedFlag");




Example 2

In this example, we calculate the derived flag for the Pfaffian system defined by the underdetermined ODE  z''= y''2.


M > 

DGsetup([x, z, z1, y, y1, y2], M2);

frame name: M2



The generators for the Pfaffian system are:

M2 > 

Theta := evalDG([dy - y1*dx, dy1 - y2*dx, dz - z1*dx, dz1 - y2^2*dx]);


M2 > 

DF := DerivedFlag(Theta);




Notice that the rank of second derived system is two less than that of the first derived system.

M2 >