#### D.15.4.42 derivationEval

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

Usage:
  phi(df); phi derivation, df difform

Return:
  the polynomial phi(df), the derivation phi evaluated at df

Remarks:
  - By linearity it is enough to compute the sum of all differential forms: (coefficient of dx_i)*(image of dx_i)
  - The coefficient list of df is computed via difformCoef - To avoid searching generators in lists, the coefficient list of df and the structure list of phi are sorted the same way

Note:
  - the differential form 0 is allowed as input
  - an error will occur if the given differential form is not of degree 1 or -1

Example:

    LIB "difform.lib";
    ring R = 13,(x,y,z,t),dp;
    diffAlgebra();
    ==> // The differential algebra Omega_R was constructed and the differential \
       forms dDx, dDy, dDz, dDt, dx, dy, dz, dt are available.
    /////////////////////////////////
    // Construction of derivations //
    /////////////////////////////////
    list L_1; L_1[1] = list(dx,dt,dz,dy); L_1[2] = list(x,y,z,t);
    derivation phi_1 = L_1; phi_1;
    ==>  Omega_R^1 --> R
    ==>        dx |--> x
    ==>        dy |--> t
    ==>        dz |--> z
    ==>        dt |--> y
    ==>
    ==>
    list L_2; L_2[1] = list(dx,dy,dz,dt); L_2[2] = list(y2x-zt,zt + y, t3-x, y4-y5);
    derivation phi_2 = L_2; phi_2;
    ==>  Omega_R^1 --> R
    ==>        dx |--> xy2-zt
    ==>        dy |--> zt+y
    ==>        dz |--> t3-x
    ==>        dt |--> -y5+y4
    ==>
    ==>
    list L_3; L_3[1] = list(dx,dy,dz,dt); L_3[2] = list(0,0,0,0);
    derivation phi_3 = L_3; phi_3;
    ==>  Omega_R^1 --> R
    ==>        dx |--> 0
    ==>        dy |--> 0
    ==>        dz |--> 0
    ==>        dt |--> 0
    ==>
    ==>
    ///////////////////////////////
    // Evaluation of derivations //
    ///////////////////////////////
    phi_1(0);
    ==> 0
    phi_1(dx+dy+dz+dt);
    ==>    ? Cannot apply derivation to non-homogeneous element!
    ==>    ? leaving difform.lib::derivationEval (0)
    phi_1(3*dx - dt);
    ==>    ? Cannot apply derivation to non-homogeneous element!
    ==>    ? leaving difform.lib::derivationEval (0)
    phi_2(dt);
    ==> -y5+y4
    phi_2(dx+dt);
    ==>    ? Cannot apply derivation to non-homogeneous element!
    ==>    ? leaving difform.lib::derivationEval (0)
    phi_2(dx - dy + (x3-y2)*dz + 12*dt);
    ==>    ? Cannot apply derivation to non-homogeneous element!
    ==>    ? leaving difform.lib::derivationEval (0)
    phi_3(dx);
    ==> 0
    phi_3(dy);
    ==> 0
    phi_3(dx - 24*(dx + dz) - x4*dy);
    ==> 0
    kill Omega_R,dx,dy,dz,dt,L_1,L_2,L_3,phi_1,phi_2,phi_3;

See also: difformCoef; difformListSort.

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