eCHT seminar on machine computation in homotopy theory
Christian Nassau
Oct 28 2021
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
The library is designed to do just a few things efficiently:
compute the matrix of (parts of) a map ds:Cs→Cs−1 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.
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 C∗∧M
for small M and N this resolution can be used to compute ExtA(M,N) from the resolution C∗∧M∧N∗
We don't claim that this is the best approach for all M: for modules that are close to free it clearly isn't.
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.
The Sage project was started by William Stein in 2005.
John Palmieri implemented support for Steenrod operations.
sage: A=SteenrodAlgebra(2,basis='adem')sage: Amod 2 Steenrod algebra, serre-cartan basissage: A(Sq(3,2,1))Sq^11 Sq^4 Sq^1 + Sq^11 Sq^5 + Sq^13 Sq^3sage: B=SteenrodAlgebra(2,basis='milnor')sage: A.monomial((4,2,6,4))Sq^4 Sq^2 Sq^6 Sq^4sage: B(A.monomial((4,2,6,4)))Sq(3,2,1) + Sq(7,3)
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.
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)↦a⋅m and/or (a,m)↦χ(a)⋅m
An optimized computation of χ(a)⋅m is desirable for the identification C∗∧M≅C∗⊗LM
ag∧m↦∑a′g⊗χ(a″
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}
Sage organizes its mathematics in "categories".
Yacop adds new categories and functors:
sage: from yacop.modules.projective_spaces import ComplexProjectiveSpacesage: 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]
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 # Pythonmod 5 Steenrod algebra, milnor basis # Pythonsage: C=A.resolution() ; C # Pythonminimal resolution of mod 5 Steenrod algebra, milnor basis # Pythonsage: 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 # Tclsage: 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
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.
Docker is the easiest way to get going:
~$ docker run -e SAGE_BANNER=NO --rm -it cnassau/yacop-sageUnable to find image 'cnassau/yacop-sage:latest' locallylatest: Pulling from cnassau/yacop-sage297061f60c36: Pull complete...496abbf4c991: Pull completeDigest: sha256:34f791d....e72ca886c5caf77Status: Downloaded newer image for cnassau/yacop-sage:latestsage: 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.
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
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) |
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 |
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
takes an approximate p = \xi_{1}^{7}\xi_{2}^{3}\xi_{3} + \cdots
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).
magically turns the error terms a_{k,l}^{r,s} for (k,l)\not=(0,0) into correction terms
adds correction terms to p and goes back to 2. until errors are zero
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.
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.
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
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 |