Commit Graph

1896 Commits

Author SHA1 Message Date
Iavor Diatchki
895f69f1c3 Fix parser error 2019-02-12 14:56:03 -08:00
Iavor Diatchki
40642ff43e Merge branch 'master' into rec-upd 2019-02-12 14:48:14 -08:00
Iavor Diatchki
fd67463b2b Add a hacky way to get local executable path 2019-02-12 14:38:17 -08:00
Brian Huffman
244848326c Special case for svFromInteger at bit width 0. Fixes #563.
This change ensures that `fromInteger x : [0]` is concrete,
even if `x` is symbolic.
2019-02-11 10:57:29 -08:00
Brian Huffman
b1edb9e36e No more rebindable syntax. Fixes #568.
When syntactic sugar for constants "negate", "complement" or "splitAt"
is used, the names of those primitives are now resolved during the
type checking phase. This makes them consistent with the handling of
other desugared primitives like "fromThen", etc.
2019-02-08 09:56:37 -08:00
Aaron Tomb
10e87616a2 Update frozen versions of crackNum 2019-02-01 08:51:16 -08:00
Aaron Tomb
016395f403 Update frozen versions of crackNum 2019-02-01 08:24:32 -08:00
Aaron Tomb
8ed77c130d Update SBV version in Cabal freeze files 2019-02-01 08:16:44 -08:00
Aaron Tomb
a336d76f7f
Merge pull request #561 from LeventErkok/master
Make Cryptol compile with SBV 8.0
2019-01-31 13:46:20 -08:00
Aaron Tomb
72e96f9e60
Merge branch 'master' into master 2019-01-31 13:46:11 -08:00
David Thrane Christiansen
1dfc09e533 Export evalSel from Cryptol.Eval
This is needed to do eta-expansion of values when using Cryptol as a
library.
2019-01-29 18:05:02 -08:00
Iavor Diatchki
7d75eb2a64 Checkpoint (incomplete) 2019-01-27 23:54:45 -08:00
Iavor Diatchki
d38eab4b2c Fix test. 2019-01-25 10:20:40 -08:00
Iavor Diatchki
4312787724 Fixes #565 2019-01-24 17:00:16 -08:00
Iavor Diatchki
72a57bfff9 Fix script to use generic runner 2019-01-24 16:44:15 -08:00
Aaron Tomb
2294d81db0 Temporarily use SBV < 8 until we fix the code 2019-01-22 08:52:58 -08:00
Levent Erkok
8d09c79198 Make Cryptol compile with SBV 8.0
SBV 8.0 is now on hackage, with several backwards compatibility breaking changes. You'll need this patch to compile cryptol against it.
2019-01-14 16:49:19 -08:00
Iavor Diatchki
5bad18d3d7 Fix broken library: constants must start with an identifier! :) 2019-01-09 11:31:25 -08:00
Iavor Diatchki
f0e9dcf471 Just a different example.
This used to work with Z3 4.7.1 but does not with 4.8.4
2019-01-09 11:26:53 -08:00
Iavor Diatchki
454dd58fbd Name some of the big numbers. 2019-01-09 11:26:14 -08:00
Iavor Diatchki
4dae9dadcd Add some comments explaining the hackery 2019-01-08 17:18:45 -08:00
Iavor Diatchki
47d118ecf5 A TEMPORARY hack to force rebuilding GitRev.hs so we get the correct hashes. 2019-01-08 17:14:53 -08:00
Iavor Diatchki
58eb799ec9 Indicate in the logo, if the repo has been modified. 2019-01-08 17:14:05 -08:00
Iavor Diatchki
60c1baebfd Indent goals to be shown a bit further, to line up with assumptions. 2019-01-08 16:42:34 -08:00
Iavor Diatchki
d8b1a7a601 Improve some of the error messages. 2019-01-03 11:28:59 -08:00
Iavor Diatchki
d331d16128 Add a command to run the locally built Cryptol 2019-01-03 11:10:29 -08:00
Iavor Diatchki
efe0b7ce7a Add some bullets and rephrase error a bit. 2019-01-02 17:16:48 -08:00
Iavor Diatchki
8caf3f7438 Remove unused error message 2019-01-02 17:16:09 -08:00
Aaron Tomb
f5318d3379 Bump Travis GHC and cabal-install versions 2018-12-13 08:54:28 -08:00
Aaron Tomb
bf3aa4dc01 Adapt Travis to new scripts 2018-12-13 08:39:04 -08:00
Iavor Diatchki
2bd9d3aecf A Bash script to automate common cabal (v2) tasks 2018-12-12 16:59:00 -08:00
Iavor Diatchki
d377f38c9d Use the factored-out test-runner. 2018-12-11 16:30:02 -08:00
Iavor Diatchki
349bb6b355 Ignore all .ghc.envi* stuff 2018-12-11 16:16:39 -08:00
Brian Huffman
9b7597c4fd Update changed test output. 2018-12-11 15:52:19 -08:00
Brian Huffman
f96e1e49fb Add special case to speed up type checking of decimal literals.
This yields a huge (almost 100x) speedup to the
typechecker/BigSequence benchmark.
2018-11-16 11:02:30 -08:00
Brian Huffman
3584a97e8b Factor out new function listParamSubst. 2018-11-15 16:47:35 -08:00
Iavor Diatchki
2e4adccccb Just a note 2018-11-05 15:11:27 -08:00
Brian Huffman
2994ef9143 Symbolic + and - on Z n reduce mod n when arguments are concrete.
Fixes #554.
2018-11-05 11:24:08 -08:00
Brian Huffman
ac13b5e4bd Symbolic * on type Z n reduces mod n when arguments are concrete.
This helps with #554.
2018-11-05 10:26:36 -08:00
Aaron Tomb
231fe95a40 Add note in manual about satNum and Integer 2018-11-01 08:25:23 -07:00
Aaron Tomb
dede87609e
Merge pull request #552 from LeventErkok/master
Fix satNum
2018-10-31 14:00:03 -07:00
Levent Erkok
b801e6677e Fix satNum
Since SBV 7.0; allSat is no longer lazy. So, Cryptol's current
implementation is buggy:

   Cryptol> :set satNum=2
   Cryptol> :sat \x -> x >(3:Integer)
   .. Runs forever ..

This pull request fixes the issue:

   Cryptol> :set satNum=2
   Cryptol> :sat \x -> x>(3:Integer)
   (\x -> x > (3 : Integer)) 4 = True
   (\x -> x > (3 : Integer)) 5 = True
   (Total Elapsed Time: 0.000s, using Z3)

Note that if you set `satNum` to be `all` and if there are indeed an
infinite number of satisfying models, SBV (and thus Cryptol) will still
loop forever. There's really no good way to solve that problem,
unfortunately.
2018-10-28 14:16:52 -07:00
Brian Huffman
20b9b1c193 Rename prelude function width to length, and generalize its type.
Fixes #550.
2018-10-10 16:21:38 -07:00
Iavor Diatchki
a8eab11b31 Changes to avoid irrefutable patterns.
This is to make things build with GHC 8.6, which requires a MonadFail
instance.

Pretty much all of these should end up being `panic`, so perhaps we should
rewrite more of them to call `panic` (instead of using lazy patterns)
2018-10-08 13:50:25 -07:00
Brian Huffman
515642328a Make :browse handle shadowing of names from dynamic environment.
Fixes #538.
2018-09-17 11:04:45 -07:00
Brian Huffman
634c5a03e7 Suppress REPL instantiation messages when warnDefaulting = off.
Fixes #543.
2018-09-17 09:46:00 -07:00
Iavor Diatchki
ad766b3aa7 Reformulate the property, so that Z3 can still find models.
With the other formulation, Z3  became really bad at finding any kind
of model.  Basically, it would always answer `unsat` or `unknown`.

This is undesirable, because we use models when instantiating things
at the command line.  In those cases, however, we probably don't
need the rule at all...  Perhaps, we should provide a way to disable
the axioms when we are looking for models?
2018-09-15 11:04:37 +03:00
Iavor Diatchki
a8d5963bfa Add another property of width.
Fixes #548
2018-09-14 22:50:30 +03:00
Iavor Diatchki
4e843a3435 More consistent statement of axioms for cryWidthUnknown 2018-09-14 10:21:08 +03:00
Aaron Tomb
3caa3a8e82 Use 32-bit GMP size limit on unknown architectures
There doesn't seem to be a general-purpose way to determine architecture
word sizes from CPP as invoked by GHC, so we now fall back on the 32-bit
GMP size limit for unknown architectures. This is always safe, and can
be amended to allow larger words on other architectures as needed.

Closes #542.
2018-09-12 11:28:24 -07:00