There seems to be an upper limit on the integers that can form the end
of a Range - 10^8 works but 10^9 doesn't. Furthermore I think the
error message this causes is rather misleading:gap> Length([1..10^9]); Error, Range: <high> must be an integer gap> Length([10^9..10^9+1]); Error, Range: <low> must be an integer gap> IsInt(10^9); true
I can't find any documentation on this - am I missing something?
I don't think it's documented but: GAP stores integers less than
2^28 (in absolute magnitude) in a special format for speed. Larger
integers are stored in an extended format. Range limits (and a few
other things) have to be in the 'small' format.