You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This is part of ongoing work to tidy up how we specify modules, with the first (experimental) commit being 805a316 . At this point I will just raise a few concerns I have, without making any concrete suggestions. I will start writing down actual specifications once opinions are collected.
One issue with the existing specification is that the list of basis elements is given by an object. By definition, the keys in a JSON object are unordered, but serde happens to preserve the order we wrote them in. The ordering of the generators is very important, because changing the order of the basis elements (within the same degree) changes the ordering of the basis in cohomology, which would invalidate previously saved calculations. This issue prevents us from directly parsing the gens object into a Hashmap<String, i32>, because this breaks ordering.
Another issue is that we will want to differentiate between "modules" and "a specification of what to compute". This will be relevant when we gain the ability to compute Ext(M, N), where we have to specify two modules. This should also allow for better ways to specify derived modules (e.g. the derived cofiber of a map between two different modules). On the other hand, we want to ensure our specifications wouldn't be too verbose in the "main" use case of Ext(M, k).
Finally, with future compatibility in mind, it would be nice if this would accommodate algebras and their modules that are very distinct from the Steenrod algebra. At the moment, a lot of what we do uses the fact that the Adem basis and Milnor basis ultimately specify the same algebra, so some of the specification can be shared.
The text was updated successfully, but these errors were encountered:
This is part of ongoing work to tidy up how we specify modules, with the first (experimental) commit being 805a316 . At this point I will just raise a few concerns I have, without making any concrete suggestions. I will start writing down actual specifications once opinions are collected.
One issue with the existing specification is that the list of basis elements is given by an object. By definition, the keys in a JSON object are unordered, but
serde
happens to preserve the order we wrote them in. The ordering of the generators is very important, because changing the order of the basis elements (within the same degree) changes the ordering of the basis in cohomology, which would invalidate previously saved calculations. This issue prevents us from directly parsing the gens object into aHashmap<String, i32>
, because this breaks ordering.Another issue is that we will want to differentiate between "modules" and "a specification of what to compute". This will be relevant when we gain the ability to compute Ext(M, N), where we have to specify two modules. This should also allow for better ways to specify derived modules (e.g. the derived cofiber of a map between two different modules). On the other hand, we want to ensure our specifications wouldn't be too verbose in the "main" use case of Ext(M, k).
Finally, with future compatibility in mind, it would be nice if this would accommodate algebras and their modules that are very distinct from the Steenrod algebra. At the moment, a lot of what we do uses the fact that the Adem basis and Milnor basis ultimately specify the same algebra, so some of the specification can be shared.
The text was updated successfully, but these errors were encountered: