Open mahrud opened 3 years ago
The new ideal is actually distinct from the old ideal, right? So the Groebner basis would be different, and what you'd really need is some way to update a Groebner basis when a new generator is added. You can perform Buchberger with only the new pairs from a new generator, but I don't think this is implemented in the engine.
Do you mean mathematically or the pointer to the mutable object? Mathematically the ideal may be the same, if the new generator was already in the ideal, and I don't think the gb would need to be immediately recomputed after a new generator is added (i.e. addition should be O(1)), but yes, computing the new gb should definitely be incremental.
I've seen a lot of cases where in each step of an iterative algorithm, an ideal is updated and the new ideal is used for some membership test. I think this is somewhat slow because:
Would be good to add MutableIdeals that satisfy the two points above.