|
Macaulay2 Engine
|
GBDeclared — a user-asserted Groebner basis the engine accepts without computing. More...
Go to the source code of this file.
Classes | |
| class | GBDeclared |
| declared Groebner bases. More... | |
GBDeclared — a user-asserted Groebner basis the engine accepts without computing.
GBDeclared is the GBComputation subclass produced by M2's forceGB. Two constructors (and matching static create factories) cover the two declaration flavours: (m0, gb, change, syz0) takes the original generators m0, a claimed reduced GB gb, the change-of-basis matrix expressing gb in terms of m0, and a claimed syzygy module syz0; the (leadterms, m0, gb, change, syz0) variant additionally lets the caller declare the leading-term matrix explicitly rather than letting the engine derive it from gb. The engine stores the inputs and treats gb as the GB without verification — a wrong declaration produces wrong downstream answers; the point of forceGB is exactly to skip the check. Every subsequent %, //, or quotient runs against the declared basis at the speed of an already-computed GB.
Typical uses are GBs imported from external solvers (msolve, OSCAR, Singular) when the user does not want to recompute, theoretically known bases where the proof is on paper, and caching long GB runs to disk for later reload. The internal ReducedGB* G keeps the trusted basis in the engine's standard reduced-GB form and most accessors (get_gb, get_change, get_initial, matrix_remainder, matrix_lift, ...) forward straight to G; get_mingens returns the declared trimmed_gens and get_syzygies returns the declared syz. start_computation is a no-op since there is nothing to compute.
Definition in file comp-gb-declared.hpp.