- Usage:
`u = higherCIOperators(A,L)`

- Inputs:
`A`, a chain complex, lifted resolution from complete intersection*S→R*`L`, a chain complex, Koszul complex resolving R over S

- Outputs:
`u`, a hash table,*u{n,p,q}*is a map*A*_{p}⊗L_{q}→A_{p-n}⊗L_{q+n-1}

*A* is the sequence of maps (generally not really a complex) obtained by lifting the differentials of a free resolution over *R* back to *S*.

Definition: *u{n,p,q}* is determined by induction on *n* and the rules

*u{0,p,q}= (-1) ^{q}(A_{p} ⊗d_{L}) : A_{p}⊗L_{q} →A_{p}⊗L_{q-1}*

*u{1,p,q}= d _{A} ⊗L_{q}: A_{p}⊗L_{q} →A_{p-1}⊗L_{q}*

*∑ _{i+j=n} u{j,p-i,q+i-1}* u{i,p,q}= 0*

and

*u{n,p,q}: A _{p}⊗L_{q} →A_{p-n}⊗L_{q+n-1} = μ* u{n,p,0}⊗L_{q}*,

where

*μ:L _{n-1}⊗L_{q} →L_{n+q-1}*

is the multiplcation in the Koszul algebra.

The output *u{n,p,q}* will be defined for all keys *{n,p,q}* such that: *length(A) ≥p ≥n ≥0* and if *n=0* then *length(L)≥q ≥1*, else *length(L)-n+1 ≥q ≥0*.

The maps *u{2,p,q}* are thus the classical CI operators from Eisenbud [1981], while the *u{3,p,q}* define maps of the modules *Ext _{R}^{odd, ≥3}(M,k) →E_{R}^{even}(M,k)* and are obstructions to commutativity of the classic ci operators on the R-free resolution of M.

These maps are used to construct the differentials in the lifted CI resolution

- makeALDifferential -- "makes the differential used in ciOperatorResolution"
- ciOperatorResolution -- "lift resolution from complete intersection using higher ci-operators"

- higherCIOperators(ChainComplex,ChainComplex)