Commit Graph

1438 Commits

Author SHA1 Message Date
Brian Huffman
e3ea9335c8 Put correct VWord width tag on result of symbolic index operation.
Fixes #474.

Previously, applying (@) at type `[a][b] -> [i] -> [b]` would tag the
result value as having width `a` instead of width `b`. This is now fixed.
2017-10-20 11:09:32 -07:00
Iavor Diatchki
942173b7f9 Add comments and fixes #473 2017-10-16 14:09:52 -07:00
Iavor Diatchki
a85ff3a54b Add comments 2017-10-16 14:05:46 -07:00
Iavor Diatchki
6ba8849216 Just reformat 2017-10-16 14:05:31 -07:00
Iavor Diatchki
043334f8f9 Name is cryptol nowadays 2017-10-16 14:05:17 -07:00
Iavor Diatchki
ec456b9447 Fix typo 2017-10-16 14:05:01 -07:00
Iavor Diatchki
51808bbf23 More comments 2017-10-06 16:24:10 -07:00
Iavor Diatchki
f71b951108 Some documentation. 2017-10-06 15:57:45 -07:00
Aaron Tomb
ef09fde6e5 Fix Travis for real now 2017-10-06 14:44:11 -07:00
Aaron Tomb
3134acbb7d Better section names for Travis 2017-10-06 14:35:58 -07:00
Aaron Tomb
1cb7d4dcaa Use cabal new-build on AppVeyor 2017-10-06 14:19:01 -07:00
Aaron Tomb
39766c1b2e Use cabal new-build on Travis 2017-10-06 14:17:35 -07:00
Iavor Diatchki
b5ef48dcd7 Fix-up the benchmarking code. 2017-10-06 11:55:48 -07:00
Brian Huffman
109255e28f Update generated pdfs. 2017-10-05 15:14:49 -07:00
Brian Huffman
fd0fc99418 Update some Integer-related stuff in the reference interpreter. 2017-10-05 15:13:37 -07:00
Brian Huffman
e84dcc5126 Document logical connectives (==>, /\, \/) in Programming Cryptol book. 2017-10-05 14:17:51 -07:00
Brian Huffman
fd9e003cd3 More documentation for REPL commands :browse and :help. 2017-10-05 13:51:50 -07:00
Brian Huffman
59a34a4624 Update table of Cryptol primitives with new type constraints. 2017-10-05 11:29:21 -07:00
Brian Huffman
11067f8220 Document new type classes Zero, Logic, and SignedCmp. Fixes #451. 2017-10-05 11:15:49 -07:00
Brian Huffman
361be3827e Fix incorrect spacing after abbreviation "vs." 2017-10-05 11:08:34 -07:00
Brian Huffman
6d484c854d Fix inaccurate statements about Cmp class. 2017-10-05 10:38:37 -07:00
Brian Huffman
1909e9ca51 In Programming Cryptol table of contents, make entire lines clickable links. 2017-10-05 10:24:23 -07:00
Brian Huffman
ffe113669e Document the REPL let-definition feature. Fixes #359. 2017-10-05 10:23:34 -07:00
Brian Huffman
7b0b8836c0 Fix outdated reference to inf a constraint in docs. 2017-10-05 10:20:57 -07:00
Brian Huffman
0478ec434c Uniformly place footnotes after punctuation. 2017-10-05 09:25:44 -07:00
Brian Huffman
4b386477ec Avoid creating a new option when :set is used with a prefix of a name.
Fixes #450.
2017-10-04 21:22:59 -07:00
Brian Huffman
a9de74ed5d Implement module-name completion and validation for :browse.
Fixes #396.
2017-10-04 19:17:42 -07:00
Iavor Diatchki
1f2cacbae5 Merge branch 'master' of github.com:GaloisInc/cryptol 2017-10-04 15:50:41 -07:00
Iavor Diatchki
5208739653 Don't print directly to stdout. Fixes #166 2017-10-04 15:50:31 -07:00
Brian Huffman
d025108bd2 Make :browse filter declarations by module name instead of value name.
See #396.
2017-10-04 15:45:25 -07:00
Brian Huffman
2b568897da Remove implicit Bit type signature on rhs of property declarations.
Fixes #224.

It might be desirable to add some other check for `property` declarations
to make sure that their types are predicates of some arity.
2017-10-04 15:26:17 -07:00
Brian Huffman
3a154f948a Add regression test for issue #463. 2017-10-04 13:47:24 -07:00
Brian Huffman
c7380d35d4 Fix symbolic indexing function indexFront to avoid indexing past the end.
Previously it would create a lookup table with 2^w entries, where w is
the bit-width of the index. Now the lookup table has min(2^w, n) entries,
where n is the length of the indexed vector.

Fixes #463.
2017-10-04 13:46:58 -07:00
Brian Huffman
a5a7a393be Add definitions of SHAKE128 and SHAKE256 to keccak.cry 2017-10-04 10:39:10 -07:00
Iavor Diatchki
f74ad3c29d Fix haddock comment, should restore build process. 2017-10-04 10:09:01 -07:00
brianhuffman
73de3f787f Merge pull request #453 from GaloisInc/blocks-padding
Implement `blocks` and `padding` operators for numeric types.
2017-10-04 07:11:19 -07:00
Brian Huffman
9773782ba4 Tweak correctness property to match keccak documentation. 2017-10-04 07:02:55 -07:00
Brian Huffman
16e949b0d7 Fix bugs/warnings in keccak.cry, and add test vectors and other properties.
The switch to Cryptol 2 introduced some endianness bugs.
Also, the original version omitted the 0b01 "suffix" that is
specified by SHA3.
2017-10-03 18:06:52 -07:00
Rob Dockins
2df09a428a Change how test coverage statistics are computed.
This formulation accounts for the fact that test vectors
are chosen randomly with replacement.

Fixes #461
2017-10-03 17:37:48 -07:00
robdockins
fc4fe4dc1e Merge pull request #309 from clinty/cast5
CAST5 example
2017-10-03 15:27:30 -07:00
Iavor Diatchki
dac4c2e5a3 Merge branch 'master' of github.com:GaloisInc/cryptol 2017-10-03 14:04:36 -07:00
Iavor Diatchki
866a1142da Try out a new logo. Stuff that matters :-) 2017-10-03 14:04:29 -07:00
Brian Huffman
7802747a1e Simplify keccak.cry using new type operators for padding. 2017-10-03 13:57:16 -07:00
Brian Huffman
3b03545552 Merge branch 'master' into blocks-padding 2017-10-03 13:44:32 -07:00
Brian Huffman
96bff5c4a8 Update keccak.cry example to work with Cryptol 2.x
Fixes #458.
2017-10-03 13:41:07 -07:00
Iavor S. Diatchki
cad6e1fe77 Merge pull request #459 from GaloisInc/rwd/linear-unifier
Add a rule to the numeric solver for "linear unifiers"
2017-10-03 13:17:15 -07:00
Rob Dockins
9785ed1e32 Add a rule to the numeric solver for "linear unifiers"
Check for situations where a unification variable is involved in
a sum of terms not containing additional unification variables,
and replace it with a solution and an inequality.
`s1 = ?a + s2 ~~> (?a = s1 - s2, s1 >= s2)`

Fixes #212
2017-10-03 12:49:17 -07:00
Brian Huffman
b107e606a2 Update example cryptol code to use infix syntax. 2017-10-03 12:31:37 -07:00
Rob Dockins
b1c6ae22c7 Add MD5 example 2017-10-03 11:27:15 -07:00
Rob Dockins
f1161dd282 Add a Karatsuba multiplier to the examples 2017-10-03 11:27:15 -07:00