#include <unstable.H>
Inheritance diagram for UnstableAlgebra:
This is a graded algebra with Steenrod operations. It can compute the steenrod square of any polynomial using Sq(), and can do many other basic things. Among the less trivial features, see saturate_and_reduce().
Definition at line 20 of file unstable.H.
Public Member Functions | |
virtual void | swap_variables_order (long i, long j, list< Polynomial< F_2 > > &polys) |
changes the order of two variables | |
virtual void | swap_variables_order (long i, long j) |
virtual void | kill_top_variable (const Polynomial< F_2 > &replacement, list< Polynomial< F_2 > > &polys) |
replaces the top variable by a polynomial in the others | |
virtual void | kill_top_variable (const Polynomial< F_2 > &replacement) |
virtual void | fix_alphabets () |
fixes the alphabets of the relations, if needed | |
void | write_trivial_steenrod_operations () |
Polynomial< F_2 > | Sq (long i, const Polynomial< F_2 > &x) const |
compute a steenrod square | |
Polynomial< F_2 > | Q (long i, const Polynomial< F_2 > &x) const |
compute a Milnor operation | |
void | display () const |
display the comments | |
AbstractHomomorphism< F_2 > | saturate_and_reduce () |
find redundancies, and add steenrod images | |
bool | is_saturated () const |
checks if the ideal of relations is saturated for Sq() | |
bool | has_closure_of (const AffineHomomorphism< F_2 > &f) const |
checks if given homomorphism has an image which is Steenrod stable | |
Public Attributes | |
list< string > | comments |
comments on the relations | |
map< long, Tuple< Polynomial< F_2 > > > | steenrod |
the steenrod operations | |
Private Member Functions | |
void | insert (const Polynomial< F_2 > &P, const string &com, list< Polynomial< F_2 > > &thelist) |
Friends | |
ostream & | operator<< (ostream &os, const UnstableAlgebra &A) |
friend printing | |
ofstream & | operator<< (ofstream &file, UnstableAlgebra &A) |
void | operator>> (ifstream &file, UnstableAlgebra &A) |
|
display the comments similar to cout << *this, but also displays the comments next to the equations. Typically this is called right after saturate_and_reduce(), which is the only method that actually fills the comments.
Definition at line 261 of file unstable.cpp. References comments, Ideal< K >::generators, SimpleAlphabet::nameof(), and steenrod. |
|
fixes the alphabets of the relations, if needed This makes sure that the polynomials in the relations have this as their alphabet. It is necessary, in particular, to call fix_alphabet after an assignment of the form A= B;
Reimplemented from AffineAlgebra< F_2 >. Definition at line 52 of file unstable.cpp. References AffineAlgebra< K >::fix_alphabets(), and steenrod. Referenced by HomFinder::test_steenrod(). |
|
checks if given homomorphism has an image which is Steenrod stable This assumes that f has called populate_associated_algebra(). Definition at line 315 of file unstable.cpp. References GradedAlgebra< F_2 >::hom_degree_of(), AffineHomomorphism< K >::maps_onto(), AbstractHomomorphism< K >::of_generator(), AffineHomomorphism< K >::source, Sq(), and SimpleAlphabet::variables_in_use(). Referenced by MilnorAnalyzer::done(). |
|
checks if the ideal of relations is saturated for Sq()
Definition at line 299 of file unstable.cpp. References Ideal< K >::generators, GradedAlgebra< F_2 >::hom_degree_of(), Polynomial< K >::is_zero(), AffineAlgebra< F_2 >::reduced_form(), and Sq(). Referenced by HomFinder::test_steenrod(). |
|
replaces the top variable by a polynomial in the others This modifies the list polys so its members take the changes into account. Reimplemented from GradedAlgebra< F_2 >. Definition at line 28 of file unstable.cpp. References GradedAlgebra< K >::kill_top_variable(), and steenrod. |
|
compute a Milnor operation
Definition at line 118 of file unstable.cpp. References Sq(). Referenced by MilnorAnalyzer::re_setup(). |
|
find redundancies, and add steenrod images This is similar to find_redundancies(). The differences are:
Definition at line 156 of file unstable.cpp. References GradedAlgebra< F_2 >::add_relation(), AbstractHomomorphism< K >::clear(), comments, AffineAlgebra< F_2 >::find_grobner_basis(), Ideal< K >::generators, GradedAlgebra< F_2 >::hom_degree_of(), Polynomial< K >::is_zero(), AffineAlgebra< F_2 >::kill_variable(), AbstractHomomorphism< K >::make_identity(), SimpleAlphabet::nameof(), AffineAlgebra< F_2 >::reduced_form(), AbstractHomomorphism< K >::set_image(), Sq(), and Polynomial< K >::swap_variables(). |
|
compute a steenrod square
Definition at line 78 of file unstable.cpp. References Polynomial< K >::alphabet, GradedAlgebra< F_2 >::hom_degree_of(), Polynomial< K >::is_zero(), Polynomial< K >::lp(), Polynomial< K >::lt(), PowProd::nvars(), Polynomial< K >::sets_to_zero(), and steenrod. Referenced by has_closure_of(), is_saturated(), Q(), saturate_and_reduce(), and MilnorAnalyzer::setup_for_Sq1(). |
|
changes the order of two variables This corrects all the relations generators so they take the change of order into account. Likewise all polynomials created with this before should be modified.
Reimplemented from GradedAlgebra< F_2 >. Definition at line 5 of file unstable.cpp. References Tuple< T >::steal(), steenrod, and GradedAlgebra< K >::swap_variables_order(). |
|
This resizes the tuples in steenrod, if they are not of the right size, and fills Sq 0 and Sq (top degree) with the identity and the square, respectively. p> Other steenrod operations are expected to be set manually (steenrod is public). Definition at line 65 of file unstable.cpp. References AffineAlgebra< F_2 >::get_variables(), Tuple< T >::resize(), and steenrod. Referenced by SW_Maker::create_regular_variables(). |
|
friend printing
Definition at line 339 of file unstable.cpp. |
|
comments on the relations This is filled by saturate_and_reduce(). It is a list of comments for the relations; either a number eg (2) or an expression with Steenrod operations eg Sq 3Sq 2(2). Of course if you change the relations after calling saturate_and_reduce(), this becomes bogus! You can display the whole thing with display(). Definition at line 39 of file unstable.H. Referenced by display(), and saturate_and_reduce(). |
|
the steenrod operations
Definition at line 41 of file unstable.H. Referenced by SW_Maker::create_regular_variables(), display(), fix_alphabets(), kill_top_variable(), Sq(), swap_variables_order(), and write_trivial_steenrod_operations(). |