##[1:N] silently loops around N=255
The following occurred while toying with a formula sent by Roei Nahum
% for i in `seq 250 260`; do
ltl2tgba --low -x simul=0 --stats="i=$i %s states, %e edges, %r seconds" \
"F{a1 ##[1:$i] a2 ##[1:$i] a3}\!"
done
i=250 502 states, 1001 edges, 0.0256272 seconds
i=251 504 states, 1005 edges, 0.0339118 seconds
i=252 506 states, 1009 edges, 0.029723 seconds
i=253 508 states, 1013 edges, 0.0260615 seconds
i=254 510 states, 1017 edges, 0.031158 seconds
i=255 4 states, 7 edges, 0.000389646 seconds
i=256 4 states, 7 edges, 0.000371556 seconds
i=257 4 states, 5 edges, 0.000318408 seconds
i=258 6 states, 9 edges, 0.000589044 seconds
i=259 8 states, 13 edges, 0.00070945 seconds
i=260 10 states, 17 edges, 0.000942022 seconds
I have checked the code, and it looks like the bounds of those ranges are stored using uint8_t
, with 255 used to indicate infinity. I hope that we can enlarge this type, but even if we don't, such a truncation should trigger an error: misinterpreting the input is not an option.