gap
gap copied to clipboard
Construction of polynomial ring requires `IsUFDFamily` to be computable
Example:
┌───────┐ GAP 4.14.0 of 2024-12-05
│ GAP │ https://www.gap-system.org
└───────┘ Architecture: x86_64-pc-linux-gnu-default64-kv9
Configuration: gmp 6.3.0, GASMAN, readline
Loading the library and packages ...
Packages: AClib 1.3.2, Alnuth 3.2.1, AtlasRep 2.1.9, AutPGrp 1.11,
Browse 1.8.21, CaratInterface 2.3.7, CRISP 1.4.6, Cryst 4.1.27,
CrystCat 1.1.10, CTblLib 1.3.9, FactInt 1.6.3, FGA 1.5.0,
Forms 1.2.12, GAPDoc 1.6.7, genss 1.6.9, IO 4.9.1,
IRREDSOL 1.4.4, LAGUNA 3.9.7, orb 4.9.1, Polenta 1.3.10,
Polycyclic 2.16, PrimGrp 3.4.4, RadiRoot 2.9, recog 1.4.3,
ResClasses 4.7.3, SmallGrp 1.5.4, Sophus 1.27, SpinSym 1.5.2,
StandardFF 1.0, TomLib 1.2.11, TransGrp 3.6.5, utils 0.85
Try '??help' for help. See also '?copyright', '?cite' and '?authors'
gap> F := FreeMagma(2);;
gap> ZF := FreeMagmaRing(Integers, F);;
gap> PolynomialRing(ZF, 2);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `IsUFDFamily' on 1 arguments at [...]/gap-4.14.0/lib/methsel2.g:250 called from
IsUFDFamily( efam ) at [...]/gap-4.14.0/lib/ratfun.gi:742 called from
RationalFunctionsFamily( efam ) at [...]/gap-4.14.0/lib/ringpoly.gi:122 called from
PolynomialRing( r, [ 1 .. n ] ) at [...]/gap-4.14.0/lib/ringpoly.gi:249 called from
<function "PolynomialRing rank">( <arguments> )
called from read-eval loop at *stdin*:3
type 'quit;' to quit to outer loop
According to the documentation, polynomial rings should be defined over all coefficient rings. Some filters are set depending on whether the coefficients lie in a UFD, but if this property is not known and there is no method to compute it, then an error occurs.
This seems like a bug to me: IsUFDFamily shouldn't be a property, it should be a filter (or category, or whatever). I'll submit a PR.