cryptol/tests/issues/issue226.icry.stdout

113 lines
5.2 KiB
Plaintext
Raw Normal View History

2014-04-18 02:34:25 +04:00
Loading module Cryptol
Loading module Cryptol
Loading module issue226r2
Loading module issue226
Type Synonyms
=============
type Bool = Bit
type Char = [8]
type String n = [n][8]
type Word n = [n]
2017-02-09 04:24:15 +03:00
type lg2 n = width (max 1 n - 1)
2014-04-18 02:34:25 +04:00
Symbols
=======
2015-06-10 00:32:17 +03:00
(!) : {a, b, c} (fin a, fin c) => [a]b -> [c] -> b
(!!) : {a, b, c, d} (fin a, fin d) => [a]b -> [c][d] -> [c]b
2015-08-13 01:52:18 +03:00
(!=) : {a} (Cmp a) => a -> a -> Bit
(!==) : {a, b} (Cmp b) => (a -> b) -> (a -> b) -> a -> Bit
2015-06-10 00:32:17 +03:00
(#) : {front, back,
a} (fin front) => [front]a -> [back]a -> [front + back]a
(%) : {a} (Arith a) => a -> a -> a
(%$) : {a} (Arith a) => a -> a -> a
2017-09-16 00:05:27 +03:00
(&&) : {a} (Logic a) => a -> a -> a
2015-06-10 00:32:17 +03:00
(*) : {a} (Arith a) => a -> a -> a
(+) : {a} (Arith a) => a -> a -> a
(-) : {a} (Arith a) => a -> a -> a
(/) : {a} (Arith a) => a -> a -> a
(/$) : {a} (Arith a) => a -> a -> a
(/\) : Bit -> Bit -> Bit
2015-08-13 01:52:18 +03:00
(<) : {a} (Cmp a) => a -> a -> Bit
(<$) : {a} (SignedCmp a) => a -> a -> Bit
2017-09-16 00:05:27 +03:00
(<<) : {a, b, c} (fin b, Logic c) => [a]c -> [b] -> [a]c
2015-06-10 00:32:17 +03:00
(<<<) : {a, b, c} (fin a, fin b) => [a]c -> [b] -> [a]c
2015-08-13 01:52:18 +03:00
(<=) : {a} (Cmp a) => a -> a -> Bit
(<=$) : {a} (SignedCmp a) => a -> a -> Bit
2015-08-13 01:52:18 +03:00
(==) : {a} (Cmp a) => a -> a -> Bit
(===) : {a, b} (Cmp b) => (a -> b) -> (a -> b) -> a -> Bit
(==>) : Bit -> Bit -> Bit
2015-08-13 01:52:18 +03:00
(>) : {a} (Cmp a) => a -> a -> Bit
(>$) : {a} (SignedCmp a) => a -> a -> Bit
2015-08-13 01:52:18 +03:00
(>=) : {a} (Cmp a) => a -> a -> Bit
(>=$) : {a} (SignedCmp a) => a -> a -> Bit
2017-09-16 00:05:27 +03:00
(>>) : {a, b, c} (fin b, Logic c) => [a]c -> [b] -> [a]c
(>>$) : {n, k} (fin n, n >= 1, fin k) => [n] -> [k] -> [n]
2015-06-10 00:32:17 +03:00
(>>>) : {a, b, c} (fin a, fin b) => [a]c -> [b] -> [a]c
(@) : {a, b, c} (fin c) => [a]b -> [c] -> b
(@@) : {a, b, c, d} (fin d) => [a]b -> [c][d] -> [c]b
False : Bit
True : Bit
(\/) : Bit -> Bit -> Bit
2017-09-16 00:05:27 +03:00
(^) : {a} (Logic a) => a -> a -> a
2015-06-10 00:32:17 +03:00
(^^) : {a} (Arith a) => a -> a -> a
carry : {n} (fin n) => [n] -> [n] -> Bit
2017-09-16 00:05:27 +03:00
complement : {a} (Logic a) => a -> a
2015-06-10 00:32:17 +03:00
demote : {val, bits} (fin val, fin bits,
bits >= width val) => [bits]
2014-04-18 02:34:25 +04:00
drop : {front, back, elem} (fin front) => [front +
back]elem -> [back]elem
2015-06-10 00:32:17 +03:00
error : {at, len} (fin len) => [len][8] -> at
2014-04-18 02:34:25 +04:00
foo : {a} a -> a
2015-06-10 00:32:17 +03:00
fromThen : {first, next, bits, len} (fin first, fin next, fin bits,
bits >= width first, bits >= width next,
lengthFromThen first next bits == len) => [len][bits]
fromThenTo : {first, next, last, bits, len} (fin first, fin next,
fin last, fin bits, bits >= width first,
bits >= width next, bits >= width last,
lengthFromThenTo first next
last == len) => [len][bits]
fromTo : {first, last, bits} (fin last, fin bits, last >= first,
bits >= width last) => [1 + (last - first)][bits]
2017-02-09 04:24:15 +03:00
groupBy : {each, parts, elem} (fin each) => [each *
parts]elem -> [parts][each]elem
2015-06-10 00:32:17 +03:00
infFrom : {bits} (fin bits) => [bits] -> [inf][bits]
infFromThen : {bits} (fin bits) => [bits] -> [bits] -> [inf][bits]
join : {parts, each, a} (fin each) => [parts][each]a -> [parts *
each]a
lg2 : {a} (Arith a) => a -> a
max : {a} (Cmp a) => a -> a -> a
min : {a} (Cmp a) => a -> a -> a
negate : {a} (Arith a) => a -> a
pdiv : {a, b} (fin a, fin b) => [a] -> [b] -> [a]
pmod : {a, b} (fin a, fin b) => [a] -> [1 + b] -> [b]
pmult : {a, b} (fin a, fin b) => [1 + a] -> [1 + b] -> [1 +
(a + b)]
random : {a} [256] -> a
2015-06-10 00:32:17 +03:00
reverse : {a, b} (fin a) => [a]b -> [a]b
sborrow : {n} (fin n, n >= 1) => [n] -> [n] -> Bit
scarry : {n} (fin n, n >= 1) => [n] -> [n] -> Bit
sext : {n, m} (fin m, m >= n, n >= 1) => [n] -> [m]
2015-06-10 00:32:17 +03:00
split : {parts, each, a} (fin each) => [parts *
each]a -> [parts][each]a
splitAt : {front, back, a} (fin front) => [front +
back]a -> ([front]a, [back]a)
2014-04-18 02:34:25 +04:00
tail : {a, b} [1 + a]b -> [a]b
take : {front, back, elem} (fin front) => [front +
back]elem -> [front]elem
trace : {n, a, b} (fin n) => [n][8] -> a -> b -> b
traceVal : {n, a} (fin n) => [n][8] -> a -> a
2015-06-10 00:32:17 +03:00
transpose : {a, b, c} [a][b]c -> [b][a]c
2014-04-18 02:34:25 +04:00
undefined : {a} a
update : {a, b, c} (fin c) => [a]b -> [c] -> b -> [a]b
updateEnd : {a, b, c} (fin a, fin c) => [a]b -> [c] -> b -> [a]b
updates : {a, b, c, d} (fin c,
fin d) => [a]b -> [d][c] -> [d]b -> [a]b
updatesEnd : {a, b, c, d} (fin a, fin c,
fin d) => [a]b -> [d][c] -> [d]b -> [a]b
2014-04-18 02:34:25 +04:00
width : {bits, len, elem} (fin len, fin bits,
bits >= width len) => [len]elem -> [bits]
2017-09-16 00:05:27 +03:00
zero : {a} (Logic a) => a
zext : {n, m} (fin m, m >= n) => [n] -> [m]
2017-09-16 00:05:27 +03:00
(||) : {a} (Logic a) => a -> a -> a
2014-04-18 02:34:25 +04:00