Releases: uuverifiers/tricera
Releases · uuverifiers/tricera
TriCera version 0.3.1
What's Changed
- Theory of heaps translation contributed by @OskarSoderberg and @woosh in #13
- Fixed
-logSimplified
and-logSimplifiedSMT
options, which weren't working at all. - New
-dumpSimplified
option. Dumps clauses in SMT-LIB format after running Eldarica's preprocessors (similar to-dumpClauses
which dumps them before any preprocessing). - Reduced the amount of emitted warning messages for functions without bodies.
Full Changelog: v0.3...v0.3.1
TriCera version 0.3
- TriCera now supports symbolic execution using the option
-sym
. See CLI help for more related options. - ACSL parser and translator improvements - details at #7.
- Better handling of properties - details at #10.
- Improved presentation of counterexamples and assertions that fail with exact line numbers and failed properties - counterexamples can also be visualized using the option
-eogCEX
. - New
-cpp
option for calling the C preprocessor prior to TriCera (not to be confused with TriCera's own preprocessortriPP
). - Add support for interpreted predicates, with examples under regression-tests.
Full Changelog: v0.2...v0.3
TriCera 0.2
TriCera now uses the theory of heaps to encode heap operations. This version adds support for a larger subset of the C language, including partial support for C arrays and pointer arithmetic over pointers to arrays.
The accompanying pre-processor (tri-pp
) greatly increases the range of supported programs, but currently only works on Linux. The script triNoPP
can be used instead of tri
to run the tool without the pre-processor on other systems.
Additional features:
- Preliminary support for parsing ACSL function contracts (credit to Pontus Ernstedt), see
regression-tests/acsl-*
for example programs. - Automatic inference of some ACSL annotations when the program is safe. Function contracts are generated for functions annotated with
/*@contract@*/
, and loop invariants are generated for all program loops when the option-inv
is passed. The generated annotations can be printed using the-acsl
option. - Support for specification of uninterpreted predicates, see examples under
regression-tests/uninterpreted-predicates
. - Many new options are added (see program help), and some broken options should now work (notably
-sol
and-ssol
for printing solutions).
TriCera 0.1
First release after separating the C front-end of ELDARICA as TriCera. This release features new support for stack pointers, basic heap support and C structs. C arrays and pointer arithmetic is not supported.