I am working on a project to implement simplicial rings. Their basic data is that of a sequence of rings with maps between them. The constructor builds them as polynomial rings over a base ring with common variable table (e.g., the first ring will be R[T_(0,0),...], the next R[T_(1,0), ...], etc).
When building maps, I have found it necessary to include "value" before any reference to the variables of the rings, otherwise the map function complains that it doesn't know how to promote an indexed variable to the ring in question. I think that the issue is "contained" in the sense that when the user is interacting with the resulting simplicial ring and types T_(0,0), it is interpreted as being in the ring in the normal manner that one would expect. Still, I'm curious about what's causing this behavior and if there's a way to remove the need to call "value". I'm concerned that if I don't correct this problem at the source, it may cause other issues that are difficult to predict and troubleshoot (it took quite a while to find this "value" solution in the first place).
I think that it might have something to do with needing to run globalAssignment on the data type or getSymbol on the variable table symbol, but neither of these fix the problem on their own.
I've created a minimal working example (attached). In the example code, extendBoxedRing yields an error and adding "value" as in extendBoxedRing2 fixes the problem. I've attached a screenshot demonstrating the behavior . I commented out the aforementioned attempts to use globalAssignment and getSymbol as they didn't seem to do anything.
Thanks,
Michael