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

Online Help

All Products    Maple    MapleSim

JetCalculus[VerticalHomotopy] - apply the vertical homotopy operator to a bi-form on a jet space

Calling Sequences

     VerticalHomotopy(ω, options)


     ω         - a differential bi-form on the jet space of a fiber bundle

     options   - various keyword arguments for specifying the integration path used by the vertical homotopy operator.







Let π:EM be a fiber bundle and let π∞:J∞E  M be the associated infinite jet bundle. Let ω Ωr,sJ∞E be a bi-form of degree r,son J∞E. Then ω is called dV closed if dV ω=0, where dVdenotes the vertical exterior derivative and ω is called dV exact if there exists a bi-form of degree r, s1 such that ω = dV η. Every dV closed bi-form is dV exact in some neighborhood about each point in jet space. If dV ω=0,then there are numerous algorithms for finding a bi-form η such that ω = dV η. One approach is to use the vertical homotopy operators

hVr,s : Ωr,sJ∞E  Ωr,s1J∞E. 

These operators satisfy hvr, s+1 dV ω + dVhVr,s ω = ω so that if dV ω=0, then ω = dV η where η = hVr,s ω.


If ω is a bi-form of degree r, s with s1, then VerticalHomotopy(omega) returns a bi-form η of degree (r, s1) such that ω = dVη.


The optional arguments available to DeRhamHomotopy can also be invoked with VerticalHomotopy.


The command VerticalHomotopy is part of the DifferentialGeometry:-JetCalculus package. It can be used in the form VerticalHomotopy(...) only after executing the commands with(DifferentialGeometry) and with(JetCalculus), but can always be used by executing DifferentialGeometry:-JetCalculus:-VerticalHomotopy(...).


Here are the explicit formulas for the vertical homotopy operators. Let (xi, uα, uiα, uijα, ..., uij  kα, ....) be a local system of jet coordinates and let Θi1i2ikα = duαui1i2ikℓα dxℓ be the contact forms. The vertical radial vector field on E is R = uα       uα and its prolongation to jet space is

pr R = uα       uα + uiα       uiα + uijα       uij α +  

The flow of the vector field pr R is the transformation Φt:JE JE given by Φtxi, uα, uiα, uijα, ...= xi, etuα, etuiα, etuijα, .... The vertical homotopy operators are then defined in terms of pr R and Φt  and the interior product operator ι (see Hook) by

hVr,sω = 011t Φlogt* ιpr Rω dt .

As a concrete example, if ω  Ω1,2JE is given by ω = Aℓ α β   I  J(xi, uα, uiα, uijα, ...) dxℓΘIαΘJβ , then

   hVr,sω = 01 t A α β   I  Jxi, tuα, tuiα, tuijα, ... dxΘIαΘJβ ⅆt.


Thus the formulas for the vertical homotopy operators are essentially the same as that for the standard de Rham homotopy operators.


with(DifferentialGeometry): with(JetCalculus):


Example 1.

Create the jet space J3E for the bundle E =ℝ2×ℝℝ with coordinates x,y,ux,y.

DGsetup([x, y], [u], E, 1):


Show that the form ω1 is dV closed.

E > 

omega1 := evalDG(Cu[] &w Cu[1] &w Cu[2]);


E > 





Apply the vertical homotopy operator to ω1.

E > 

eta1a := VerticalHomotopy(omega1);




Check that the vertical exterior derivative of η1 gives ω1.

E > 

omega1 &minus VerticalExteriorDerivative(eta1a);




Alternatives to η1 can be obtained using the path = "zigzag" option for the VerticalHomotopy command. See DeRhamHomotopy for more details.

E > 

eta1b := VerticalHomotopy(omega1, path = "zigzag");


E > 

omega1 &minus VerticalExteriorDerivative(eta1b);


E > 

eta1c := VerticalHomotopy(omega1, path = "zigzag", variableorder = [u[1], u[2], u[], u[1, 1], u[1, 2], u[2, 2]]);


E > 

omega1 &minus VerticalExteriorDerivative(eta1c);



See Also