cryptol/tests/issues/issue212.cry

27 lines
1.2 KiB
Plaintext
Raw Normal View History

2015-05-07 19:31:10 +03:00
// TMD: I am using this issue for a range of regressions or short-comings with the new type checker.
// Let me know if you'd like separate github issue numbers.
// Want: exact width values is nice (width x == const ==> width x >= const)
// Issue: Cryptol wants 'width x >= const'
// width_eq_geq : {n} (32 == width n, n >= 1, 32 >= width n, fin n) => [n]Bit
width_eq_geq : {n} (32 == width n, n >= 1) => [n]Bit
width_eq_geq = [True | _ <- [1..n] : [_][32] ]
2016-02-19 21:08:20 +03:00
// Want: const >= width (x+1) ==> const > width x
2015-05-07 19:31:10 +03:00
// or any monotonic function, not just addition.
//
// Also Want: const >= width n ==> fin n
//
// Issue: Cryptol wants '64 >= width n' and 'fin n'
// can_not_width : {n} (64 >= width (8*(n+1)), 64 >= width n, fin n) => [64]
can_not_width : {n} (64 >= width (8*(n+1))) => [64]
can_not_width = zero # (`n : [width n])
// Want: Honestly, I don't know what's going on here. It seems to relate to some of our regressions though.
// Tell me if there should be another ticket - probably one that already exists. -TMD
2016-02-19 21:08:20 +03:00
// Issue: Cryptol 2.3 wants 'n == 4 + (?a3 - n % 4)'
take_knows_no_bounds : {n} (fin n, n >= 4) => [n][8] -> [4 - (n%4)][8]
take_knows_no_bounds ns = foo
where
foo = take `{4 - (n%4)} ns