#### D.15.4.1 diffAlgebra

Procedure from library `difform.lib` (see difform_lib).

Side effects:
  If R is the basering, the differential algebra is constructed with name Omega_R and the differential forms dx_1,...,dx_n are available. The name of the differential algebra is stored in the attribute attrib(R,"diffAlgebra").

Note:
  - computations with differential forms need the structure of the differential algebra, so this procedure should be executed first.
  - the variable names 'd' or 'D' should be avoided.
  - the procedure also works for quotient rings

Example:

    LIB "difform.lib";
    ///////////////////////////////////////////////////////////////
    // Example for a differential algebra over a polynomial ring //
    ///////////////////////////////////////////////////////////////
    ring R = 0,(a,b,c),ds;
    diffAlgebra();
    ==> // The differential algebra Omega_R was constructed and the differential \
       forms dDa, dDb, dDc, da, db, dc are available.
    setring Omega_R;
    // The differential algebra is given by:
    basering;
    ==> // coefficients: QQ considered as a field
    ==> // number of vars : 6
    ==> //        block   1 : ordering dp
    ==> //                  : names    Da Db Dc
    ==> //        block   2 : ordering ds
    ==> //                  : names    a b c
    ==> //        block   3 : ordering C
    ==> // noncommutative relations:
    ==> //    DbDa=-Da*Db
    ==> //    DcDa=-Da*Dc
    ==> //    DcDb=-Db*Dc
    ==> // quotient ring from ideal
    ==> _[1]=Da^2
    ==> _[2]=Db^2
    ==> _[3]=Dc^2
    kill R,Omega_R,da,db,dc;
    /////////////////////////////////////////////////////////////
    // Example for a differential algebra over a quotient ring //
    /////////////////////////////////////////////////////////////
    ring R = 0,(x,y,z),lp;
    ideal I = x+y+z,xyz;
    qring S = std(I);
    diffAlgebra();
    ==> // The differential algebra Omega_R was constructed and the differential \
       forms dDx, dDy, dDz, dx, dy, dz are available.
    setring Omega_R;
    // The differential algebra is given by:
    basering;
    ==> // coefficients: QQ considered as a field
    ==> // number of vars : 6
    ==> //        block   1 : ordering dp
    ==> //                  : names    Dx Dy Dz
    ==> //        block   2 : ordering lp
    ==> //                  : names    x y z
    ==> //        block   3 : ordering C
    ==> // noncommutative relations:
    ==> //    DyDx=-Dx*Dy
    ==> //    DzDx=-Dx*Dz
    ==> //    DzDy=-Dy*Dz
    ==> // quotient ring from ideal
    ==> _[1]=y^2*z+y*z^2
    ==> _[2]=x+y+z
    ==> _[3]=Dz*y^4+3*Dz*y^3*z+2*Dz*y^2*z^2
    ==> _[4]=Dy*z^3+2*Dz*y^3+5*Dz*y^2*z+2*Dz*y*z^2
    ==> _[5]=2*Dy*y*z+Dy*z^2+Dz*y^2+2*Dz*y*z
    ==> _[6]=Dx+Dy+Dz
    ==> _[7]=Dy*Dz*y^2+2*Dy*Dz*y*z
    ==> _[8]=Dz^2
    ==> _[9]=Dy^2
    ==> _[10]=Dx^2
    kill Omega_R,dx,dy,dz;

See also: diffAlgebraGens; diffAlgebraStructure; diffAlgebraUnivDerIdeal.

User manual for Singular version 4.4.1, 2025, generated by texi2html.