Cryptol: The Language of Cryptography
BSD-3-CLAUSE License
Bot releases are visible (Hide)
Published by acfoltzer over 9 years ago
cryptol.cabal
:
relocatable
: ignores the library path baked in at compile time with the expectation that that path will not necessarily be valid in the installed environment (good for building tarball-style binary distributions)self-contained
: compiles the contents of the Cryptol prelude into the executable so that it can be reconstituted if the prelude is not found in the usual library path (good for applications using Cryptol as a Cabal library rather than using the Cryptol Makefile
)Makefile
and the way distributions are configured and built (#127, #161, #169)abc
as a prover option in the interpreterit
interpreter variable (#19):sat
by setting the satNum
interpreter variable (#19, #72).cryptolrc
files, batch scripts in either the current directory or the user's home directory that are automatically read and executed when the interpreter starts (#97)CRYPTOLPATH
environment variable so that custom locations can be searched when loading modules (#127)warnShadowing
interpreter option, on by default, to control whether warnings about shadowed variables appearwhere
clauses) monomorphic by default, though this behavior can be overridden using the mono-binds
interpreter variable; in many cases this improves the quality of inferred types and makes more programs typecheckmono-binds
when introducing where
clausesHACKING.md
README.md
to account for recent changes and the spinoff of ICryptol:sat
examples to use satNum
rather than manually adding clauses for additional counterexamples^
) to bring it in line with Haskell and other languages!!
) and (@@
) (#148)Fin
constraints when calling the solver during typechecking (#58, #140)#
) in symbolic simulation (#131)[x...]
and [x,y...]
)Q.E.D.
(#132):check
progress bars for batch mode and when interrupted by an exception or Ctrl-C
(#114)check
, :sat
and :prove
, particularly when no arguments are given (#117)Published by acfoltzer about 10 years ago
Cryptol> (True, False).0
True
Cryptol> (True, False).1
False
:exhaust
command for exhaustive testing (previously possible only by setting the tests
variable high enough for full coverage) (#94)any
solver which runs all available solvers in parallel and returns the first result (#7):check
cases (#86)Cryptol> let f x = x + 2
Cryptol> let g x = f x + 1
Cryptol> g 5 : [32]
8
Cryptol> let f x = 0
Cryptol> g 5 : [32]
8
:
commands (listed in :help
output); the old behavior of entering a prefix of a command still works but is overridden when the prefix is also another command (#90, #99)it
to the REPL, which is always bound to the value of the previously-evaluated expression or to the counterexample/satisfying assignment of a :sat
or :prove
Cryptol> 1+1 : [1]
0x0
Cryptol> it
0x0
Cryptol> :t it
it : [1]
:check
and :prove
are run without an argument, all property
declarations in the current module are now checked or proved (#93)Cryptol.cry
prelude file (#113):check
(#103)@
, !
, and !!
operators now require finite-sized indexes (#111)Published by acfoltzer about 10 years ago
Version 2.1.0-alpha1.
Published by acfoltzer over 10 years ago
Release of version 2.0.0