programs/steenrod


Steenrod Tcl library

Status: pre-release
This program is a library that can be loaded into a Tcl program. That Tcl program then becomes able to deal efficiently with Steenrod operations. Here's a sample (and simple) Tcl-session using the library:
# load the library
package require Steenrod
namespace import steenrod::*

# compute Sq(4) * (Sq(6) + Sq(0,2)) at p=2 and print the result
set res [poly steenmult {{1 0 4 0}} {{1 0 6 0} {1 0 {0 2} 0}} 2]
puts "product = $res"

# compute the degree of Q(0,1) P(1,0,3) at prime 5
puts "degree  = [mono degree 5 {0 2 {1 0 3} 0}]"

# show basis of reduced Steenrod algebra for p=7, dim=192
enumerator e -prime 7 -genlist {{0 0 0 0}} -ideg 192
puts "basis   = [e basis]"
The output would be
product = {1 0 {0 1 1} 0} {1 0 {7 1} 0}
degree  = 761
basis   = {1 0 {0 2} 0} {1 0 {8 1} 0} {1 0 16 0}
The library has been succesfully tested on Linux, Solaris and Windows. The current version 0.7631 still counts as a pre-release: while most planned features are already there (and everything that is there has been properly tested), the package is still incomplete; in particular, the documentation still needs to be improved. The first officially released version will eventually be called 1.0.

The package also contains a little resolver program as a proof-of-concept demo application. If you start it from the demo subdirectory with the command line
tclkit ./resolver.tcl -prime 3 -algebra '0 -1 {9 9 9 9 9 9} 0' -maxdim 80 -maxs 25
you should see something like this:
demo resolver
Screenshot of the included demo resolver
Essentially the same resolver will also be used in the yacop project.