Processing math: 14%
+ - 0:00:00
Notes for current slide
Notes for next slide

Steenrod algebra cohomology with Yacop/Sage

eCHT seminar on machine computation in homotopy theory

Christian Nassau

Oct 28 2021

1 / 22

Sage

"Creating a viable free open source alternative to Magma, Maple, Mathematica, and Matlab"

  • General purpose computer algebra system based on Python.
  • Interfaces to many specialized computer algebra systems.
  • Covers a lot of mathematics.

Yacop

"Yet another cohomology program"

  • Specialized library for Steenrod algebra cohomology.
  • Intended to be used through Sage.
  • Meant to be powerful and easy to use.
2 / 22

Sage + Yacop glue code + Steenrod Tcl library

Overview

Capabilities

GFR only

Storage

The "Steenrod Tcl library" is the computational work horse of the project.

Mostly developed around 2004 and very stable.

  • Optimized code to compute minimal resolutions of subalgebras of the Steenrod algebra

  • Uses the algorithm of the author's PhD thesis

  • Supports the primes p=2,3,5,7,11

  • Written in C to maximize speed

  • Comes with an interface to the Tcl programming language

3 / 22

Sage + Yacop glue code + Steenrod Tcl library

Overview

Capabilities

GFR only

Storage

The library is designed to do just a few things efficiently:

  • compute the matrix of (parts of) a map ds:CsCs1 in a free resolution.

  • compute kernels, images and lifts of such matrices

These are the steps that are needed to compute a minimal resolution and also to work with it (e.g. solve lifting problems to compute chain maps).

Currently everything is computed on the CPU.

Planned: delegate the computation of the ds to the graphics processing unit using OpenCL.

4 / 22

Sage + Yacop glue code + Steenrod Tcl library

Overview

Capabilities

GFR only

Storage

Our philosophy is to compute everything from one fixed minimal resolution C of the ground field:

  • for other modules M one has a functorial free resolution CM

  • for small M and N this resolution can be used to compute ExtA(M,N) from the resolution CMN

We don't claim that this is the best approach for all M: for modules that are close to free it clearly isn't.

5 / 22

Sage + Yacop glue code + Steenrod Tcl library

Overview

Capabilities

GFR only

Storage

Resolutions and chain maps are stored in an SQLite database.

  • SQLite is a very robust and widely used database engine

  • A database is a single ordinary file

  • Can be accessed through the SQL "structured query language"

  • Support for SQLite exists in all popular programming languages.

6 / 22

Sage + Yacop glue code + Steenrod Tcl library

Steenrod algebra

Modules

Categories

Resolutions

The Sage project was started by William Stein in 2005.

John Palmieri implemented support for Steenrod operations.

sage: A=SteenrodAlgebra(2,basis='adem')
sage: A
mod 2 Steenrod algebra, serre-cartan basis
sage: A(Sq(3,2,1))
Sq^11 Sq^4 Sq^1 + Sq^11 Sq^5 + Sq^13 Sq^3
sage: B=SteenrodAlgebra(2,basis='milnor')
sage: A.monomial((4,2,6,4))
Sq^4 Sq^2 Sq^6 Sq^4
sage: B(A.monomial((4,2,6,4)))
Sq(3,2,1) + Sq(7,3)
7 / 22

Sage + Yacop glue code + Steenrod Tcl library

Steenrod algebra

Modules

Categories

Resolutions

Yacop adds support for differential graded modules over the Steenrod algebra.

Sage has a notion of "graded objects" but it's not quite suitable:

  • we need three gradings (s,t,e): homological, internal, Bockstein

  • we want to operate on the gradings via suspensions & truncations

  • we want introspection capabilities: for example, a module/chain complex should know its bounding box.

8 / 22

Sage + Yacop glue code + Steenrod Tcl library

Steenrod algebra

Modules

Categories

Resolutions

Yacop adds support for differential graded modules over the Steenrod algebra.

Sage has a notion of "module over an algebra" but we prefer something more tailor-made:

Yacop modules can define their action through both (a,m)am and/or (a,m)χ(a)m

An optimized computation of χ(a)m is desirable for the identification CMCLM

agmagχ(a

9 / 22

Sage + Yacop glue code + Steenrod Tcl library

Steenrod algebra

Modules

Categories

Resolutions

Yacop adds support for differential graded modules over the Steenrod algebra.

Sage has a notion of "module over an algebra" but we prefer something more tailor-made:

Yacop modules can define their action through both (a,m) \mapsto a \cdot m and/or (a,m) \mapsto \chi(a) \cdot m

Example: projective space {\mathbb R}P^\infty:

\operatorname{Sq}(R) x^m = \binom{m}{r_1\,\cdots\,r_n} x^{m+\vert R\vert}, \quad \chi\left(\operatorname{Sq}(R)\right) x^m = \binom{-1-m-\vert R\vert}{r_1\,\cdots\,r_n} x^{m+\vert R\vert}

10 / 22

Sage + Yacop glue code + Steenrod Tcl library

Steenrod algebra

Modules

Categories

Resolutions

Sage organizes its mathematics in "categories".

Yacop adds new categories and functors:

sage: from yacop.modules.projective_spaces import
ComplexProjectiveSpace
sage: ComplexProjectiveSpace().categories()
[Category of yacop left module algebras over # Yacop
mod 2 Steenrod algebra, milnor basis,
Category of algebras with basis over Finite # Sage
Field of size 2,
...
Category of magmas, # Sage
Category of yacop left modules over mod 2 Steenrod # Yacop
algebra, milnor basis,
Category of yacop differential modules over mod 2 # Yacop
Steenrod algebra, milnor basis,
Category of vector spaces with basis over Finite # Sage
Field of size 2,
...
Category of yacop graded objects,
Category of yacop objects,
Category of sets,
Category of sets with partial maps,
Category of objects]
11 / 22

Sage + Yacop glue code + Steenrod Tcl library

Steenrod algebra

Modules

Categories

Resolutions

Yacop provides classes for ground field resolutions C_\ast and smash product resolutions C_\ast\land M.

It communicates with the Tcl Steenrod library through Python's "tkinter" package.

sage: A=SteenrodAlgebra(5) ; A # Python
mod 5 Steenrod algebra, milnor basis # Python
sage: C=A.resolution() ; C # Python
minimal resolution of mod 5 Steenrod algebra, milnor basis # Python
sage: C.compute(smax=10,nmax=100) # Python
> Working on C1 up to ideg=101, edeg=1 # Tcl
> Last completed internal degree was 44 # Tcl
... # Tcl
> Reading generators for C10 # Tcl
> 1 generators read # Tcl
> Beginning with the computation # Tcl
> Reading d9 # Tcl
> Reading d10 # Tcl
> 10/88/8 found 1 new generator in 0.00 seconds # Tcl
> 10/89/9 found 1 new generator in 0.00 seconds # Tcl
sage: C.differential(C.g(5,66)) # Python -> Tcl -> SQLite ->
2*Q_0 P(1)*g(4,57) + Q_1*g(4,57) + P(3)*g(4,42) # -> Tcl -> Python
12 / 22

Sage + Yacop glue code + Steenrod Tcl library

Running Sage

Docker

You can run Sage in multiple ways:

  • download a binary package from the Sage download site

  • download source and build yourself

  • use your Linux package manager (e.g. on Ubuntu)

  • use docker to run Sage without local installation

Yacop can be combined with all these methods.

13 / 22

Sage + Yacop glue code + Steenrod Tcl library

Running Sage

Docker

Docker is the easiest way to get going:

~$ docker run -e SAGE_BANNER=NO --rm -it cnassau/yacop-sage
Unable to find image 'cnassau/yacop-sage:latest' locally
latest: Pulling from cnassau/yacop-sage
297061f60c36: Pull complete
...
496abbf4c991: Pull complete
Digest: sha256:34f791d....e72ca886c5caf77
Status: Downloaded newer image for cnassau/yacop-sage:latest
sage: C=SteenrodAlgebra(2).resolution()
sage: C.differential(C.g(5,36))
Sq(1)*g(4,35) + Sq(14,1)*g(4,19) + Sq(32)*g(4,4)
sage:

Docker is supported on all popular OS. For Windows you might need the "professional edition".

Podman is an interesting alternative on Linux. This is "rootless", hence less risky to allow for system administrators.

14 / 22

Intermission

15 / 22

Omissions, plans, hopes

Missing Features

\psi-map

  • Background
  • Problem
  • Ansatz
  • Applications

Missing features that should be easy to add

  • chain maps m_g:C_\ast \rightarrow C_{\ast+s} corresponding to a g\in\operatorname{Ext}_A^s(k,k)

  • comparison maps C_\ast \rightarrow D_\ast for algebra inclusions A\subset B

Possibly more involved

  • support for motivic Ext computations over {\mathbb C} and {\mathbb R}

  • use the secondary Steenrod algebra of H. J. Baues to compute d_2 differentials

Also highly desirable

  • improve robustness of the code

  • documentation & tutorials

16 / 22

Omissions, plans, hopes

Missing Features

\psi-map

  • Background
  • Problem
  • Ansatz
  • Applications

Q: Let A(n)\subset A be the usual subalgebra. Can you put a compatible A-module structure on A(n), i.e. is there A_n\in A-Mod \quad \text{such that}\quad A_n\cong_{A(n)} A(n) ?

A: Yes!

n
-1, 0 problem is trivial
1 4 easy solutions
2 1600 solutions (M. Roth)
\ge 3 at least one (highly symmetric) A_n (Mitchell/Smith)
17 / 22

Omissions, plans, hopes

Missing Features

\psi-map

  • Background
  • Problem
  • Ansatz
  • Applications

Q: Let D_\ast be the minimal free A(n)-resolution.

Can you put a compatible A-module structure on D_\ast, i.e. is there E_\ast\in \partial A-Mod \quad \text{such that}\quad E_\ast\cong_{A(n)} D_\ast ?

A: open problem!

n
-1, 0 problem is trivial
1 nice excercise
\ge 2 seems difficult
18 / 22

Omissions, plans, hopes

Missing Features

\psi-map

  • Background
  • Problem
  • Ansatz
  • Applications

The A_n can be written as A_n = A\cdot p\subset A_\ast with p\in A_\ast.

Example: A_2 = A\cdot p with p = \xi_{1}^{7}\xi_{2}^{3}\xi_{3} + \xi_{1}^{2}\xi_{2}^{7} + \xi_{1}^{4}\xi_{2}^{4}\xi_{3} + \xi_{1}^{5}\xi_{2}^{6} + \xi_{1}^{8}\xi_{2}^{5} + \xi_{1}^{10}\xi_{2}^{2}\xi_{3} + \xi_{1}^{11}\xi_{2}^{4} + \xi_{1}^{13}\xi_{2}\xi_{3} + \xi_{1}^{14}\xi_{2}^{3} + \xi_{1}^{17}\xi_{2}^{2} + \xi_{1}^{20}\xi_{2} + \xi_{1}^{23}

Imagine an algorithm that

  1. takes an approximate p = \xi_{1}^{7}\xi_{2}^{3}\xi_{3} + \cdots

  2. decomposes all Sq(8r,4s) p = \sum a_{k,l}^{r,s} \left(\xi_1^{8k}\xi_2^{4l}\cdot p\right) with a_{k,l}^{r,s}\in A(2).

  3. magically turns the error terms a_{k,l}^{r,s} for (k,l)\not=(0,0) into correction terms

  4. adds correction terms to p and goes back to 2. until errors are zero

19 / 22

Omissions, plans, hopes

Missing Features

\psi-map

  • Background
  • Problem
  • Ansatz
  • Applications

This algorithm could work for a resolution as well:

  • p gets replaced by a chain map \psi: A\otimes_{A(2)} D_\ast \rightarrow A_\ast\otimes_{A(2)} D_\ast with \psi(g) = \xi_{1}^{7}\xi_{2}^{3}\xi_{3}\otimes g + \cdots for A(2)-generators g of D_\ast

  • the image of the corrected \psi would be E_\ast

Remarks:

  • can replace A_\ast\otimes_{A(2)} D_\ast by A^\infty \otimes_{A(2)} D_\ast with A^\infty = {\mathbb F}_2[\xi_1,\xi_2]\otimes E(\xi_3)

  • for n=1 every \psi: A\otimes_{A(1)} D_\ast \rightarrow A^\infty\otimes_{A(1)} D_\ast seems to work.

20 / 22

Omissions, plans, hopes

Missing Features

\psi-map

  • Background
  • Problem
  • Ansatz
  • Applications

Application 1

Compute A_2-filtration of \operatorname{Ext}_A({\mathbb F}_2) using that E_\ast is small(ish).

This is a complement to the tmf-filtration.

Application 2

Hope that the A action on E_\ast is asymptotically compatible with v_2 periodicity. Let K_n be the kernel of d:E_n \rightarrow E_{n-1} and compute the limit

M = \operatorname{lim}\limits_{k \rightarrow\infty} \Sigma^{-48k} K_{8k}

This M would be A(1)-free and have the same P_3^0-localization as {\mathbb F}_2

Finally, use Palmieri's "Margolis Adams spectral sequence" to compute Ext of the localization M\langle P_{3}^0\rangle = \mathbb F_2\langle P_{3}^0\rangle

21 / 22

The End

( Slideshow created using remark. )

22 / 22

Sage

"Creating a viable free open source alternative to Magma, Maple, Mathematica, and Matlab"

  • General purpose computer algebra system based on Python.
  • Interfaces to many specialized computer algebra systems.
  • Covers a lot of mathematics.

Yacop

"Yet another cohomology program"

  • Specialized library for Steenrod algebra cohomology.
  • Intended to be used through Sage.
  • Meant to be powerful and easy to use.
2 / 22
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
Esc Back to slideshow