# Singular

#### D.15.12.41 derivationMul

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

Usage:
phi*psi; phi,psi derivation

Return:
the componentwise product of phi and psi

Remarks:
The product is computed componentwise - this works since the structure lists of derivations are sorted the same way.

Note:
one can also multiply polynomials and derivations

Example:
 ```LIB "difform.lib"; ring R = 0,(a,b,t),ls; diffAlgebra(); ==> // The differential algebra Omega_R was constructed and the differential \ forms da, db, dt are available. list L_1; L_1[1] = list(da,dt,db); L_1[2] = list(2a,2t-b,2t); list L_2; L_2[1] = list(dt,db,da); L_2[2] = list(-a,-b,-t); ///////////////// // Derivations // ///////////////// derivation phi_1 = L_1; phi_1; ==> Omega_R^1 --> R ==> da |--> 2a ==> db |--> 2t ==> dt |--> 2t-b ==> ==> derivation phi_2 = L_2; phi_2; ==> Omega_R^1 --> R ==> da |--> -t ==> db |--> -b ==> dt |--> -a ==> ==> /////////////////////////////////// // Multiplication of derivations // /////////////////////////////////// phi_1*phi_2; ==> Omega_R^1 --> R ==> da |--> -2at ==> db |--> -2bt ==> dt |--> -2at+ab ==> ==> phi_1*phi_2*phi_2; ==> Omega_R^1 --> R ==> da |--> 2at2 ==> db |--> 2b2t ==> dt |--> 2a2t-a2b ==> ==> phi_2*(3a2-bt); ==> Omega_R^1 --> R ==> da |--> bt2-3a2t ==> db |--> b2t-3a2b ==> dt |--> abt-3a3 ==> ==> kill Omega_R,da,db,dt,L_1,L_2,phi_1,phi_2; ```