%%
%% Description: The May spectral sequence for $Ext(\HF_{2*}\tmf)$
%%
%% I got this from Mike Hill's note:
https://pdfs.semanticscholar.org/ddbb/8d584e4e81a71400088117b16cd241238c6c.pdf
%%
\documentclass[tooltips]{spectralsequence-example}
\begin{document}
\sseqset{htwostructstyle/.sseq style = {gray,very thin, run off=-}}
\NewSseqCommand\twods{ O{} U( r() m m }{
\def\temp{#1,#2,#3,#4,#5}
\getdtarget\target#2{#3} % Store the target position in \target
\nameclass{source}(#3) % naming the classes gives us a speed boost
\nameclass{target1}(\target,#4) % by preventing sseqpages from reparsing the coordinate
\nameclass{target2}(\target,#5) % it also makes the code easier to read
%
\circleclasses[ differential style, #1,
name path = circ, page = #2--#2 ]
(target1)(target2) % Circle the classes, use differential style
%
\d[invisible]#2(source)(target1) % don't draw anything, but record source and targets as hit.
\d[invisible]#2(source)(target2)
%
\path(target1)--(target2)
coordinate[midway](midpt);% put a coordinate in the center of the two classes
\path[name path = lin] (source) -- (midpt);% save path from start to midpoint
%
% draw line in "differential style" from start to intersection point of circ and lin
\draw[ differential style, #1, page constraint= { \page == #2 },
name intersections = { of = circ and lin } ]
(source) -- (intersection-1);
}
\NewSseqCommand \tower { O{} d() } {
\IfNoValueF{#2}{
\pushstack(#2)
}
\savestack
\begin{scope}[#1]
\DoUntilOutOfBounds{
\class(\lastx,\lasty+1)
\structline(\lastclass1)(\lastclass)
}
\end{scope}
\restorestack
}
\NewSseqCommand\honetower {O{}} {
\savestack
\begin{scope}[#1]
\DoUntilOutOfBounds{
\class(\lastx+1,\lasty+1)
\structline(\lastclass1)(\lastclass)
}
\end{scope}
\restorestack
}
\NewSseqCommand\htwo { O{} d() } {
\IfNoValueF{#2}{
\pushstack(#2)
}
\class[#1](\lastx+3,\lasty+1)
\structline[htwostructstyle](\lastclass1)(\lastclass)
}
\NewSseqCommand \htwotower { O{} d() } {
\IfNoValueF{#2}{
\pushstack(#2)
}
\begin{scope}[#1]
\gettag\thetag(\lastclass)
\class(\lastx+3,\lasty+1)
\structline[htwostructstyle](\lastclass)(\lastclass1)
\savestack
\DoUntilOutOfBounds{
\class(\lastx,\lasty+1)
\structline(\lastclass1)(\lastclass)
\structline[htwostructstyle](\lastx-3,\lasty-1,\thetag)(\lastclass)
}
\restorestack
\end{scope}
}
\NewSseqCommand\dtower {u(u)} {
\foreach\i in {0,...,10}{
\d[yshift=\i]#1(#2)
}
}
\begin{sseqdata}[name=tmfmayss,y range={0}{8}, x range={0}{25}, degree={-1}{1},
classes=fill,
class labels={below=3pt},differentials=blue,
class pattern=linear, classes={ tooltip = {(\xcoord,\ycoord)} },
xscale=1.48,
yscale=2.2,
title = {Page \page},
run off differentials = ->
]
\class[tag= h0^i](0,0) \tower[tag=h0^i]
\honetower \classoptions["h_1"](1,1)
\htwotower[tag=h0^i h2]
\classoptions["h_2"](3,1)
\htwotower[tag=h0^i h2^2]
\htwotower[tag=h0^i h2^3]
\htwotower[tag=h0^i h2^4]
\htwotower[tag=h0^i h2^5]
\htwotower[tag=h0^i h2^6]
\htwotower[tag=h0^i h2^7]
\htwotower[tag=h0^i h2^8]
\htwo%\htwotower[tag=h0^i h2^9]
\class["b_{20}",name=b20,tag=h1^i b20](4,2)
\tagclass{h0^i b20}(4,2)
\honetower[tag=h1^i b20]
\tower[tag=h0^i b20]
\class["x_7",tag=h0^i x7,name=x7](7,2) \honetower
\htwotower[tag=h0^i x7](b20)
\structline(\lastclass)(x7) % h0 x7 = h2 b20
\class["b_{21}", tag=h0^i b21,name=b21](10,2)
\honetower[tag=h1^i b21]
%\structline(\lastclass)(h2^2 b20) % h2 (h0 x7) = h2 (h2 b20)
\htwotower[tag=h0^i b21](x7)
\structline(b21)(\lastclass)
\htwotower[tag=h0^i h2 b21](b21)
\htwotower[tag=h0^i h2^2 b21]
\htwotower[tag=h0^i h2^3 b21]
\htwotower[tag=h0^i h2^4 b21]
\htwotower[tag=h0^i h2^5 b21]
\htwotower[tag=h0^i h2^6 b21]
\class["b_{30}",tag=h1^i b30](12,2)
\tagclass{h0^i b30}(12,2)
\tower[tag=h0^i b30]\honetower[tag=h1^i b30]
\htwotower[tag=h0^i h2 b30]
\htwotower[tag=h0^i h2^2 b30]
\htwotower[tag=h0^i h2^3 b30]
\htwotower[tag=h0^i h2^4 b30]
\htwotower[tag=h0^i h2^5 b30]
%
\class[tag=h0^i x7^2](14,4)
\classoptions["x_7^2",page=0--3](\lastclass)
\classoptions["d",page=4--100](\lastclass)
\tower[tag=h0^i x7^2] \honetower
\htwotower[tag=h0^i h2 x7^2]
\htwotower[tag=h0^i h2^2 x7^2]
\htwotower[tag=h0^i h2^3 x7^2]
\htwotower[tag=h0^i h2^4 x7^2]
\htwo%\htwotower[tag=h0^i h2^5 x7^2]
\class["b_{20}^2",tag=h0^i b_{20}^2](8,4)
\tower[tag=h0^i b_{20}^2]
\honetower
\htwotower[tag=h0^i h2 b_{20}^2]
\htwotower[tag=h0^i h2^2 b_{20}^2]
\htwotower[tag=h0^i h2^3 b_{20}^2]
\htwotower[tag=h0^i h2^4 b_{20}^2]
\htwo%\htwotower[tag=h0^i h2^5, b_{20}^2]
\class[tag=h0^i b21^2](20,4)
\classoptions["b_{21}^2",page=0--3](\lastclass)
\classoptions["g",page=4--100](\lastclass)
\honetower
\tower[tag=h0^i b21^2]
\htwotower[tag=h0^i h2 b21^2]
\htwotower[tag=h0^i h2^2 b21^2]
\class["b_{30}^2",tag=h0^i b30^2](24,4)
\tower[tag=h0^i b30^2]
\honetower
\htwotower
%\htwotower[tag=h0^i h2^3 b21^2]
\twods3(4,2,-1){1}{2} % d3(b20) = h1^3 + h0^2 h2
\replaceclass[offset={(0,0)}](3,3)
\structline(3,2)(3,3)
\structline(2,2)(3,3)
\structline[htwostructstyle](0,2)(3,3)
\foreach\y in {3,...,8} {\d3(4,\y,-1,-1)} % d3( h0^i b20 ) = h0^{2+i} h2
\foreach\n in {3,...,8} {\d3(2+\n,\n,h1^i b20,1)} % d3(h1^i b20) = h1^{3+i}
\foreach \y in {2,...,8} {\d3(7,\y,h0^i x7,h0^i h2^2)}
\foreach \y in {2,...,8} {\d3(10,\y,h0^i b21,h0^i h2^3)}
\foreach \y in {3,...,8} {\d3(13,\y, h0^i h2 b21 ,h0^i h2^4)}
\foreach \y in {3,...,7} {\d3(16,\y+1,h0^i h2^2 b21,h0^i h2^5)}
\foreach \y in {3,...,6} {\d3(19,\y+2,h0^i h2^3 b21,h0^i h2^6)}
\foreach \y in {3,...,5} {\d3(22,\y+3,h0^i h2^4 b21,h0^i h2^7)}
\foreach \y in {3,...,4} {\d3(25,\y+4,h0^i h2^5 b21,h0^i h2^8)}
\foreach \n in {0,...,6} {\d3(12+\n,2+\n,h1^i b30,h1^i b21)}
\foreach \n in {0,...,4} {\d5(24,4+\n,-1,-1)}
\classoptions[page=4--100,"c_0"](8,3)
\classoptions[page=4--100,"a"](12,3)
\classoptions[page=4--100,"b"](15,3)
\end{sseqdata}
\printpage[name=tmfmayss,page=2]
\newpage
\printpage[name=tmfmayss,page=3]
\newpage
\printpage[name=tmfmayss,page=5]
\newpage
\printpage[name=tmfmayss,page=8,title={Page $\infty$}]
\end{document}