Yacop/Sage is a Sage package that lets you work with large-scale resolutions over the Steenrod algebra and its sub Hopf algebras. It knows about modules over these algebras and recognizes their categories as abelian (meaning: you can take kernels, cokernels, images of \(A\)-linear maps between them). It lets you generate charts, take tensor products, and peek into the SQLite databases that store the resolutions.

It is also by now

  1. badly hurt by bitrot
  2. largely collapsed under the weight of its initial ambition
  3. essentially unmaintained

And, of course, there is no documentation to speak of.

If you’re still not discouraged, you can get its source code from its GitHub page.

A sample session

┌────────────────────────────────────────────────────────────────────┐
│ SageMath version 9.4, Release Date: 2021-08-22                     │
│ Using Python 3.8.10. Type "help()" for help.                       │
└────────────────────────────────────────────────────────────────────┘
sage: import yacop
sage: A=SteenrodAlgebra(3)
sage: C=A.resolution()
sage: list(C.free_basis(s=5,n=67))
[g(5,72)]
sage: C.differential(C.g(5,72))
P(2)*g(4,64) + P(0,1)*g(4,56) + 2*P(4)*g(4,56) + P(6)*g(4,48) + 2*P(0,2)*g(4,40)
sage: from yacop.modules.dickson import DicksonAlgebra
sage: M=DicksonAlgebra(3,2)
sage: M
Dickson-Mui algebra D(2) for prime 3
sage: M.inject_variables()
Defining tau0, d12, tau1, d16
sage: [(n,A.P(n)*d12) for n in range(40) if A.P(n)*d12 != 0]
[(0, d12), (1, 2*d16), (3, d12**2), (4, d12*d16), (5, d16**2), (6, d12**3)]