uconf.algebraic.simplicial

Simplicial chain/cochain structures as operad-(co)algebra objects.

This module provides:

Reference: C. Berger, B. Fresse, “Combinatorial operad actions on cochains”, Math. Proc. Cambridge Philos. Soc. 137 (2004), 135–174. All sign conventions in this module follow that paper (hereafter [BF04]).

Functions

surjection_chain_action(surj, chain)

Action of a surjection element on normalized simplicial chains.

surjection_cochain_action(surj, cochains)

Dual surjection action on simplicial cochains.

Classes

SurjectionSimplicialChainCoalgebra(base_ring)

SurjectionDual-coalgebra on simplicial chains.

SurjectionSimplicialCochainAlgebra(N, base_ring)

Surjection-algebra on simplicial cochains.

uconf.algebraic.simplicial.surjection_chain_action(surj, chain)[source]

Action of a surjection element on normalized simplicial chains.

Implements the Berger–Fresse formula [BF04, §1.2] for the Surjection-module structure on normalized simplicial chains.

Algorithm (one basis term at a time):

Let u = (u_0, ldots, u_{r+d-1}) in S(r) be a surjection of arity r and degree d, and let x in C_n(Delta^infty) be a chain.

  1. Iterated Alexander–Whitney diagonal. Apply the AW diagonal r + d - 1 times to x, producing an element of C^{otimes(r+d)}. Each basis term is an (r+d)-tuple of simplices (x_0, ldots, x_{r+d-1}) with sum dim(x_i) = n.

  2. Group factors by the surjection. For each output slot k in {1, ldots, r} collect all simplex factors x_i whose index satisfies u_i = k: y_k = x_{i_1} * cdots * x_{i_m} (concatenation in the simplex sense, i.e. taking the appropriate face). Discard the term if any y_k is degenerate (has a repeated vertex).

  3. Berger–Fresse sign. Multiply by the sign varepsilon(u; x_0, ldots, x_{r+d-1}) computed by _compute_bf_sign(). This sign has two contributions:

    • Ordering sign: Koszul sign of the permutation that rearranges (x_0, ldots, x_{r+d-1}) into value-sorted order, computed using the graded-commutativity rule (transposing two factors of degrees a and b costs (-1)^{ab}).

    • Action sign: additional sign arising from adjacent positions of equal u-value in sorted order; see _compute_bf_sign().

  4. Accumulate. Sum all contributions varepsilon cdot (y_1 otimes cdots otimes y_r).

Parameters

surjSurjection.Element

Homogeneous element of the surjection operad of arity r.

chainSimplicialChains.Element

Element of SimplicialChains.

Returns

Element of tensor([SimplicialChains(R)]*r) (native Sage tensor) if r >= 2; element of SimplicialChains if r == 1.

Raises

TypeError

If surj and chain have different base rings.

Parameters:
uconf.algebraic.simplicial.surjection_cochain_action(surj, cochains)[source]

Dual surjection action on simplicial cochains.

For u in S(r) of degree d and cochains f_1, dots, f_r in C^*(Delta^N), the result mu_u(f_1 otimes dots otimes f_r) in C^*(Delta^N) is defined by the duality

\[\langle \mu_u(f_1 \otimes \dots \otimes f_r),\, x \rangle = \langle f_1 \otimes \dots \otimes f_r,\, \theta_u(x) \rangle\]

for all chains x, where theta_u is the chain action of surjection_chain_action().

Degree bookkeeping. Cochains are graded homologically (degree_on_basis returns -dim(sigma) for a simplex sigma). If f_i has homological degree -n_i (i.e. is an n_i-cochain) and u has degree d, then mu_u(f_1 otimes dots otimes f_r) is an n-cochain where n = n_1 + dots + n_r - d. Equivalently, the chain x that can pair non-trivially with mu_u(f_1 otimes dots otimes f_r) has dimension

\[\dim(x) = n_1 + \dots + n_r - d = \bigl(-\deg(f_1)\bigr) + \dots + \bigl(-\deg(f_r)\bigr) - d.\]

Implementation. Iterate over all non-degenerate simplices sigma of the correct dimension in Delta^N, evaluate the chain action theta_u(sigma), then contract with f_1 otimes dots otimes f_r via the Kronecker pairing to read off the coefficient.

Parameters

surjSurjection.Element

Homogeneous element of the surjection operad of arity r.

cochainstuple of SimplicialCochains.Element

Exactly r cochains, all on the same Δ^N.

Raises

TypeError

If surj and the cochains have different base rings.

Parameters:
Return type:

Element

class uconf.algebraic.simplicial.SurjectionSimplicialCochainAlgebra(N, base_ring)[source]

Bases: OperadAlgebra

Surjection-algebra on simplicial cochains.

Equips SimplicialCochains with the Surjection-algebra structure given by surjection_cochain_action().

This is a direct implementation of the Berger–Fresse cochain algebra [BF04]: for u in S(r) and cochains f_1, ldots, f_r in C^*(Delta^N),

\[\mu_u(f_1 \otimes \cdots \otimes f_r)(\sigma) = (f_1 \otimes \cdots \otimes f_r)(\theta_u(\sigma))\]

where theta_u is the chain action of surjection_chain_action().

Parameters:

N (int)

class uconf.algebraic.simplicial.SurjectionSimplicialChainCoalgebra(base_ring)[source]

Bases: CooperadCoalgebra

SurjectionDual-coalgebra on simplicial chains.

The dual of the surjection chain action equips SimplicialChains with a SurjectionDual-coalgebra structure.

The coaction delta_n : C to mathrm{SD}(n) otimes C^{otimes n} is defined by delta_n(x) = sum_u u^* otimes theta_u(x), where the sum runs over all surjections u in S(n) of appropriate degree and theta_u is the chain action of surjection_chain_action().