1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701
|
version 2.30, Oct 24, 2011
==========================
o [Jessie and Krakatoa] manuals have been extensively updated to
adopt the Why3 back-ends
o [Jessie/Frama-C plugin] the default back-end is now to call Why3
VC generator, and then the Why3 IDE. The former behavior can be
obtained using option -jessie-atp=gui
o [Krakatoa] new option -gen-only whichs stops after generation of
jessie file. The default is now to start jessie and then Why3 IDE.
the old usage "gwhy file.java" continues to use the Why2 backend.
o [Krakatoa/Jessie/Frama-C plugin] fixed traceability issues
o [Krakatoa/Jessie/Frama-C plugin] new backend using Why3 VC generator
o [Jessie] add extensionality axiom to integer range type. allows to
prove valid properties that were unprovable before.
o [Caduceus] support discontinued, not distributed anymore
o [Why3 output] support for syntax changes of Why3 0.70
o [Why3 output] better explanations
o [Why] fix encoding to multi-sorted logic with finite type
o [Why] option -default-locs
o [Why] added support for Vampire (based on simplify output)
o [Why] option --delete-old-vcs erases previous files when using
--multi-why or --multi-altergo
o [Why] option --multi-altergo outputs VCs in separate files, like
--multi-why but in Alt-Ergo's syntax instead of the general Why's
syntax (e.g. algebraic types are encoded for Alt-Ergo)
o [Jessie] fixed bug with region analysis, case of pointer
comparison in annotations. fixes Frama-C BTS 0814
o [Krakatoa] fixed a problem with scope of labels
o [Krakatoa] fixed support for string constants
o [Jessie] order of lemmas now kept the same as in the input. Fixes
Frama-C BTS 0024
o [Why lib] completed axiomatization of floats
version 2.29, Mar 1, 2011
=========================
o [Krakatoa] Documentation: many errors fixed
o [Jessie] plugin synchronized with Frama-C Carbon stable
o [Why] fixed typing for division in programs
o [Why] accepts "lemma" has keyword in input. outputs them accordingly
for provers
o [Why] Why3 output: avoids Why3 keywords
o [Why] improved Gappa output
version 2.28, Dec 17, 2010
==========================
o [Why] support for Coq 8.3
o [Why] support for Alt-Ergo 0.92.2
o [Coq output] removed dependencies on Float and Gappa libraries,
added dependency on Flocq library
o [Jessie] emit a warning when generating a dummy variant for
recursive functions and loops (Frama-C bug 512)
o [Jessie] preliminary support for \at in region computation
o [Why] added --smtlib-v1 option (default smtlib format is v2.0)
o [Why] added support for verit prover
o [Why] improved support for integer division (better triggers)
version 2.27, Oct 14, 2010
==========================
o [Why] fixed compilation with Ocaml 3.12
o [Why] support for Alt-Ergo 0.92.1
o [Why] fixed compilation with Ocaml 3.12
o [Why] emacs mode distributed and installed
o [Why] fixed bug 10851: wrong Coq output for if then else
o [Why] distinction between computer division and math division
Fixes Frama-C BTS 0539
o [Why] added support for Why3 output syntax
o [Jessie] improved translation of successive assignments on
the same memory block. As a side effect, translation of
array initializers from C is much better for provers.
Fixes Frama-C BTS0377 feature request
o [Jessie] disabled the experimental support for unions and pointer casts,
since it is too buggy for public release
o [Jessie] fixed bug with division by zero in expressions evaluated at
compile-time (fixes Frama-C BTS0473)
o [Krakatoa] error message when a comment starts with /*(extra space)@
o [WhyConfig] bug fix when detecting a prover which was removed
version 2.26, May 10, 2010
==========================
o [Why] fixed detection of Alt-Ergo
o [GWhy] fixed some assert failure raised when .gwhyrc is absent
o [Why] fixed mistakes with files extensions, which were introduced
by the former fix for GWhy temporary files
version 2.24, April 19, 2010
============================
o [Frama-C plugin] synchronized with Frama-C Boron 20100412
o [Gwhy] better handling of temporary files
o [Jessie] fixed bug 0443 (assigns \nothing and separation analysis)
o [Jessie] fixed bug with assertions attached to behaviors
o [Why] support for truncate_real_to_int in Gappa output
o [Frama-C plugin] logic functions do not accept struct or union as
parameters
o [Jessie, Frama-C plugin] make the right difference between
"reads \nothing" and no reads clause at all
o [Jessie, Frama-C plugin] the "defensive" model for floating-point
computations is now the default
o [Jessie] fixed bug 0370: missing coercion on decreasing measures
o [Jessie] support for "let x = t in a" when a is an assertion
o [Frama-C plugin] support for statement contracts, fixes bug 0399
o [Jessie] fixed bugs 0391 and 0401 (avoid name clash with axiom
names and inductive case names)
o [Jessie/Krakatoa/Frama-C plugin] fixed bug with labels inside \old
and \at. Moreover, label Pre is now allowed in function
contracts, as specified in ACSL.
o [Why] improved detection of external provers
o [Frama-C plugin] option "-jessie-adhoc-normalization" triggers a code
normalization suited for jessie without launching the analysis
(fixes bts 332)
o [Why] option "-output -" outputs the generated files (.why,
.smt, .mlw) on stdout
o [Why-dp] with the option "-simple" output only one line by goal
o [Why-dp] option "-timeout 0" disables the time limit.
o [Why-dp] option "-prover" allows to select the prover to use
independently from the extension
o [Why-dp] reads the file to send to the prover from stdin if no
files are provided. In that case the option "-prover" is mandatory.
o [Jessie] interpretation of floating-point parameters does not forget
anymore the format of origin, which then provides proper bounds for them.
o [Frama-C plugin] bts 0361 fixed: free allows NULL as argument
o [PVS output] fixed problems with idents starting with underscore
o [Krakatoa & Frama-C plugin] new pragma TerminationPolicy to allow
the user to prevent generation of VCs for termination
version 2.23, December 4, 2009
==============================
o [Why] fixed bug with let construct in logic
o [Simplify output] fixed bug with function definitions
o [GWhy] VC explanation when using --fast-wp option
version 2.22, November 30, 2009
===============================
o [Jessie] fixed bug when return type is a logic type
o [Krakatoa] fixed bug with final fields
o [Frama-C plugin] fixed bug 0341
o [Frama-C plugin] fixed bug 0034
o [GWhy] Fixed pb default prover selection (BTS Frama-C 0037)
o [Jessie] fixed problem with axiomatization of address operator
o [Jessie/Krakatoa/Frama-C plugin] support for the 'for' modifier in
decreases clauses and loop variants
o [Alt-Ergo output] avoid empty list of arguments
o [GWhy] added alternative "boomy" icon set
o [Alt-Ergo+Simplify output] well_founded() translated by false
instead of true, for soundness
o [Jessie/Krakatoa/Frama-C plugin] support for decreases clauses,
even for mutually recursive functions
o [Frama-C plugin] bug fix 0284
o [Frama-C plugin] support for "complete behaviors" and "disjoint
behaviors" clauses. fixes bug 0026.
o [Jessie][Frama-C] bug fix: 0103. Loops without variant are given a
default unprovable variant.
o [Frama-C plugin] bug fix: 0112 (partially fixes bts0039 and bts0080)
o [Frama-C plugin] bug fix: 0306
o [Frama-C plugin] bugs closed: 0041, 0063, 0073, 0094, 0102, 0199, 0273
o [Jessie] Polymorphic logic types added (use < >)
version 2.21, October 15, 2009
==============================
o [GWhy] Fixed 'Not_found' exception if .whyrc absent
o [Frama-C plugin] Fixed installation problems.
o [Frama-C plugin] predicates for finiteness of floats (\is_finite,
\is_infinite, etc.) do not fail in mode JessieFloatModel(real) but
give the expected truth value.
o [Jessie] do not fail anymore on pointer casts over floats or reals.
Fixes bug 273 of Frama-C BTS
version 2.20, October 2nd, 2009
===============================
o [Jessie][Frama-C] Integration of the Jessie plugin for Frama-C
Compatible with Frama-C release Beryllium 2 (20090902)
o [Why][Jessie] add a new assertion check which is used like assert.
It try to prove the assertion but do not use it as hypothesis.
o [Why] fixed some bugs with Coq output
o [GWhy] new column gappa+hypotheses selection
version 2.19, June 23rd, 2009
=============================
o This version is synchronized with Frama-C Beryllium beta 1 200906xx
(http://frama-c.cea.fr/)
o [Jessie] support for label 'Post' in assigns clauses
o [Jessie] support for loop_assigns clauses
o [Why] added a let/in construct in logic (let x = term in term /
let x = term in predicate)
o [Krakatoa/Jessie] "reads" clauses on logic functions and
predicates, which disappeared in version 2.16, have been
resurected. Beware that the semantics is slightly different from
Caduceus one: it has to precisely give the memory footprint of the
function, and not only an under-approximation. It is use to
automatically generate footprint axioms.
o [GWhy] improved prover column configuration, improved config saving
incompatibility warning: old .gwhyrc files will be ignored and overwritten
o [Why] deprecated options -no-prelude, -no-arrays, -fp
o [Why] new declaration [include "file"] in Why input language
o [Why] prelude is split into smaller files: bool.why integer.why
real.why
o [Jessie] added several builtin functions on reals:
\exp, \log, \cos, \sin, etc.
o [Why] added several functions on reals in prelude:
exp, log, cos, sin, etc. (see prelude.why)
o [Jessie] syntax change for loops: can have behaviors with assigns clauses
o [Why] fixed typing bug with polymorphic function symbols and comparisons
o [GWhy] new column for Gappa prover (http://lipforge.ens-lyon.fr/www/gappa/)
o [Coq output] improved output of -e when e is an integer constant
o [Jessie] fix incompleteness bug with "assigns \nothing" clauses
o [GWhy] columns can be added/removed interactively
version 2.18, January 22th, 2009
================================
o Jessie: bug fix related to assignment to the null pointer
o Krakatoa: several bug fixes related to constructors (class invariant
not anymore assumed true at entrance, object fields initialized to
their default values)
o Krakatoa/Jessie: support for "for" sections (associated to various
behaviors) in code annotations (assert and loop invariants).
See e.g tests/java/BinarySearch.java
o Caduceus: fixed 'pvs' target in generated makefile
o Why: min and max functions in the prelude, with appropriate
axiomatization
version 2.17, December 17th, 2008
================================
o This version is synchronized with Frama-C Lithium 20081201
(http://frama-c.cea.fr/)
o why-cpulimit: specific implementation for Cygwin (contributed by
Dillon Pariente)
o jessie: bug fix: inductive predicates and multiple labels
o jessie: new support for floating-point computations
o krakatoa/jessie: bug fix: axiomatic and multiple labels
o New prover column in GWhy for Alt-Ergo with selection of hypotheses
(see option -select of Alt-Ergo)
version 2.16, October 29th, 2008
================================
o This version is synchronized with Frama-C Lithium beta 1
(http://frama-c.cea.fr/)
o GWhy: improved display of VCs
o Krakatoa/Jessie: changed syntax for axiomatic definitions. 'reads'
clauses are now obsolete.
o Krakatoa/Jessie: support for inductive definitions
o Why: Improved support for inductive definitions. For automatic provers,
an inversion axiom is generated.
o New option -alt-ergo to output VCs in Alt-Ergo syntax. Beware that
because of inductive definition, -alt-ergo is now different from
-why output: inductive definitions are expansed.
o License changed to GNU LGPL 2, with a special exception on
linking (see enclosed file LICENSE)
version 2.15, September 9th, 2008
=================================
o Why: preliminary support for inductive definitions
o Krakatoa/Jessie: new syntax for axiomatic definitions
o Coq support for floats requires Coq version 8.1 at least
o Jessie bug fix: 'simplify' entry of the generated makefile was ignoring
prelude axioms
version 2.14, July 28th, 2008
=============================
o tools `dp' and `cpulimit' renamed into `why-dp' and `why-cpulimit'
o krakatoa/jessie: preliminary support for statement contracts
o krakatoa/jessie/why: new builtin logic symbols \int_max, \int_min,
\real_max, \real_min
o Zenon: fixed syntax for Zenon 0.5.0 (missing $hyp)
o WP: no more duplication of VCs when operators &&, || and not are
applied to pure boolean expressions; command line option
-split-bool-op to revert to the old behavior
o krakatoa: loop annotations: 'decreases' keyword replaced by 'loop_variant'
o WP: universal quantification forall b:bool. P(b) no more turned
into P(true) and P(false) when there is a possible size increasing
o SMT-lib output: fixed bug with variants (when -split-user-conj
not set); predicate zwf_zero added to prelude.why
o SMT-lib output: fixed bug with if_then_else
o krakatoa/jessie: support for ( ? : ) operator in terms and propositions
o configuration: detection of Alt-ergo executable name (ergo/alt-ergo)
o jessie/why: reorganization of PVS output
o krakatoa/jessie: version number, and CHANGES files are now those of why
o krakatoa/jessie: added support for bitwise operator on booleans
o krakatoa/jessie/why/provers: better support of real numbers
o CVC3: no more options +arith-new +quant-polarity -quant-new
o fixed HOL4 output; contribution by Vladimir Timashov
(vladimir.timashov@gmail.com)
o gwhy: fixed efficiency issue with large comments
o jessie: fixed coq entry in jessie-generated makefile
o why typing safely fails when duplicate parameter names in
logic definitions
version 2.13, May 27th, 2008
============================
o krakatoa: bug fix: method lookup in class Object
o krakatoa: if possible, avoid failure in constant expression evaluation
o gwhy: better support of non-ascii input characters in GWhy
o fixed parsing of float constants with exponents
version 2.12, May 23rd, 2008
============================
o krakatoa: assigns clause now correctly typed in the post-state
o krakatoa: array ranges in assigns clause: now correctly parse [..], [..n] and [n..]
o krakatoa: support for model fields (in interfaces)
o krakatoa: support for user-defined logic types
o krakatoa: partial support for Strings
o fixed typing bug with polymorphic logic constants/functions used
in programs (resulted in bugs in -encoding sstrat)
version 2.11, March 17th, 2008
==============================
o krakatoa: documentation is now is reasonable shape, although still incomplete
o krakatoa: loop annotations: having an invariant but no decreases clause is allowed
o krakatoa: bug fix: value axiom for logic constants
o krakatoa: many improvements in generation of memory safety VCs
o fixed bug with --prune-hyp
version 2.10b, January 31st, 2008
=================================
o krakatoa: first release officially replacing version 0.67
o CVC3: now called with options +arith-new +quant-polarity -quant-new
(requires version 1.2.1)
o SMT-lib output: fixed bug with reals
o gwhy: benchmark (Ctrl-B) does not verify all functions in parallel anymore
version 2.10a, January 14th, 2008
=================================
o configuration: fixed detection of ocamldep when ocamldep.opt is
not installed / fixed detection of local ocamlgraph
version 2.10, December 20th, 2007
=================================
o the Krakatoa front-end for Java programs is now distributed with Why
o dp: new option -smt-solver to set the SMT solver (Yices, Z3, CVC3)
o new option --fast-wp to use quadratic WP algorithm
o localization of VC wrt source code (options --locs and --explain) and
visualization in gwhy
o gwhy: added prover Z3 (http://research.microsoft.com/projects/z3/)
o SMT-lib output: integer division (/) is now translated into an
uninterpreted function symbol div_int
o simplify2why: fixed bugs
version 2.04, August 2nd, 2007
==============================
o gwhy: Ctrl-B successively tries all provers on all proof obligations
o new option -load-file to read an input file without generating
output for the prover
o new prover interface Graph which iteratively allows to select more
and more hypotheses and to discharge POs in Simplify
o new option -prune-hyp to select relevant hypotheses in the goal
o fixed Isabelle output (contribution by Yasuhiko Minamide)
version 2.03, April 20th, 2007
==============================
o fixed PVS output
o gwhy: added prover CVC3 (http://www.cs.nyu.edu/acsys/cvc3/)
o fixed bug with polymorphic exceptions (not accepted anymore)
o fixed bug in generalization test
o Coq output: renaming of Coq's reserved keywords
version 2.02, February 23rd, 2007
=================================
o new tool why-stat to display statistics regarding symbols used in goals
o new options -why and -multi-why to get verification conditions in
Why syntax (useful when computing VCs takes much time)
o gwhy: font size can be changed dynamically using Ctrl-+ and Ctrl--
o WP: the invariant at loop entry does not appear anymore in the
verification condition related to the invariant preservation
o option -no-simplify-triggers changed to -simplify-triggers,
defaulting to false, because Caduceus bench shows it is good in
general, and moreover generated triggers with Krakatoa and jessie
make Simplify fail
o Simplify output: fixed bug with leading underscores in identifiers
o compatibility with Coq development version (ring syntax has changed)
o option --encoding sstrat automatically added when --smtlib or
--cvcl is selected and no encoding specified
o new option --exp to expand the predicate definitions
o Coq output: the command "Implicit Arguments id" is automatically
inserted for polymorphic symbols
version 2.01, November 29th, 2006
=================================
o new predicate distinct(t1,t2,...,tn) with n terms of the same type
mapped to the primitive DISTINCT in Simplify and SMTlib outputs,
expanded for other provers
o fixed bug in CVC Lite output (BOOLEAN now reserved for predicates;
new type BOOL introduced for term booleans)
o dp now displays times for searching proofs
o no using anymore the external command 'timeout', but use our own
command 'cpulimit' for the same purpose. Time limit is now user
CPU time instead of wall clock time.
o fixed bugs in smtlib output: all variables are "?" prefixed,
brackets around constants are removed,
validity question is turned into a sat question,
Boolean sort with Boolean_false and Boolean_true constants
are introduced,
Unit sort is introduced
o fixed bugs into the harvey (rv-fol) output (principally the
command lines)
o triggers added to axioms of the caduceus model
version 2.00, June 12th, 2006
=============================
o quantifiers triggers can be given with the following syntax
forall x,y:int [f(x),g(y) | h(x,y)]. p(x,y)
currently, the triggers are only meaningful for the Simplify prover
o new encodings of Why logic into first-order monosorted logic for
untyped provers (like Simplify or Zenon) : there are three
possible encodings that can be selected through the command
line --encoding option
o better naming of type variables in Coq output (A1, A2,
etc. instead of A718, etc.)
o fixed bugs with polymorphic logic constants used in programs
o a missing function postcondition is now given the default value
"true" (and a warning is emitted for local functions)
o Zenon output (--zenon option); see focal.inria.fr/zenon
o new option --split-user-conj to split user conjunctions in goals
(resulting in more numerous proof obligations)
o Mizar output updated for Mizar 7.6.01
o new behavior w.r.t. termination proofs: variants can be omitted in
loops and recursive functions; new command line options --partial
and --total to specify respectively partial correctness
(i.e. variants are not considered even when present) or total
correctness (i.e. variants are mandatory)
o fixed bug with polymorphic parameters that should not be generalized
o new construct "e {{ Q }}" (opaque sub-expression)
o new construct "assert {P}; e"
o any logic term can be used in programs
o types must be declared (new declaration "type foo")
o fixed bug with missing exceptional postconditions (false in now
inserted and a warning is emitted)
o array types now accepted in logic/predicate arguments
o --coq now selects the Coq version determined at compiled time
version 1.82, September 1st, 2005
=================================
o fixed variable capture issue in haRVey output
o fixed bugs in Isabelle output (Yasuhiko Minamide)
o support for declaration "function" with Isabelle/CVC/harvey/PVS
o new declaration "goal" to declare a proof obligation
e.g. goal foo : forall x:int. x = x+0
version 1.81, June 20th, 2005
=============================
o support for CVC Lite syntax 2.0.0, old syntax not supported anymore
o support for haRVey 0.5.6
o a predicate label can be a string (e.g. :"bla bla":pred)
o a missing exceptional postcondition is now given the default value "false"
instead of "true" (i.e. the corresponding exception cannot be raised)
o new declaration "function" to define a logic function
e.g. function f(x:int, y:int) : int = x+y
version 1.80, June 3rd, 2005
============================
o Isabelle/HOL output (--isabelle option) contribution by Yasuhiko Minamide
o HOL 4 output (--hol4 option) contribution by Seungkeol Choe
o SMT-LIB format output (--smtlib option)
version 1.75, March 15th, 2005
==============================
o fixed installation issue with Coq 8.0pl2
o new option -where to print Why's library path
version 1.71, February 3rd, 2005
================================
o Simplify output: axioms are also printed with universal
quantifiers moved inside as much as possible (forall x y, P x =>
Q x y becomes forall x, P x => forall y, Q x y)
version 1.69, January 4th, 2005
===============================
o labeled predicates with syntax ":id: predicate" and lowest precedence
version 1.64, October 13th, 2004
================================
o Coq output now in V8 syntax when Coq V8 is detected at configuration
version 1.63, August 26th, 2004
===============================
o WP completely redesigned: side-effects free expressions are now
given an adequate specification, so that the WP calculus does not
enter them. It results in significantly simpler proof obligations.
o new tool `dp' to call decision procedures Simplify and CVC Lite
(calls the DP once for each goal with a timeout and displays stats)
o CVC Lite output (option --cvcl; see http://chicory.stanford.edu/CVCL/)
o Coq: parameters no more generated when -valid is not set
o PVS: support for Why polymorphic symbols and/or axioms
version 1.62, June 24th, 2004
=============================
o new option --all-vc to get all verification conditions (no more
automatic discharging of the most trivial conditions)
version 1.61, May 27th, 2004
============================
o Simplify output: do not fail on floats anymore (now uninterpreted symbols)
o added primitive int_of_real: real -> int (in both logic and programs)
version 1.60, May 18th, 2004
============================
o fixed WP for while loops (may break Coq proofs)
o new connective <->
version 1.55, May 3rd, 2004
===========================
o type `float' is renamed into `real'
o absurd and raise now polymorphic
version 1.51, April 6th, 2004
=============================
o Simplify typing constraints only with --simplify-typing option
o fixed bug in automatic annotation of x := e when e has a postcondition
version 1.50, March 26th, 2004
==============================
o first release of Caduceus
o added ``typing'' contraints in Simplify output (using predicates ISxxx)
o new declaration "predicate" to define a predicate
o new option --dir to output files into a given directory
version 1.42, March 16th, 2004
==============================
o new option --pvs-preamble
o change in syntax: "external" is now a modifier for "parameter" and
"logic" (see the manual for explainations); to be conservative,
the following substitutions have to be made:
"external" -> "external parameter"
"logic" -> "external logic"
o new command "axiom <ident> : <predicate>" to declare an axiom
version 1.40, December 19th, 2003
================================
o disabled C support: C is now supported by an external tool, Caduceus
(to be released soon with Why)
o support for polymorphism (contribution by C. March)
o syntax of haRVey output now uses integer constants, predefined
arithmetic operators, and does not change capitalization of
variables, to be conform with the syntax of the next version of
haRVey (presumably 0.4)
Also added option --no-harvey-prelude
version 1.32
============
o output for Coq version 8 with --coq-v8
(--coq is now equivalent to --coq-v7, and is still the default output)
examples in V7 syntax now in examples-v7/ and in V8 syntax in examples/
o Mizar output (with option --mizar)
Mizar article in lib/mizar/why.miz (installed by "make install")
version 1.3, September 17th, 2003
=================================
o new tool why2html to convert Why input files to HTML
o Simplify output (with option --simplify)
o fixed bug with WP of constants false/true (simplification added)
o better automatic annotation of tests (in particular || and && are given
postconditions whenever possible)
version 1.22, June 21th, 2003
=============================
o fixed lost of annotation in C function calls
o C: /*W external/parameter ...*/ correctly added to C environment
o Coq: added Hints Unfold Zwf
o (almost) conservative change in renaming strategy; a reference x1 is now
renamed into x1 x1_0 x1_1 etc. instead of x1 x2 x3 etc.
version 1.2, May 12th, 2003
===========================
o true used as default postcondition for exceptions instead of false
(necessary for a correct translation of C programs)
o C: fixed bug in translation from ints to booleans
o better names given to local references in proof obligations
o improved automatic proof (both completeness and performance)
version 1.10, April 4th, 2003
==============================
o C: added label statement and alternate syntax /*@ label id */
o fixed bug in ocaml code generation
version 1.08, March 28th, 2003
==============================
o C: local variables can be uninitialized
o examples: C programs for exact string matching (in string-matching)
o fixed bug in WP (not collecting some intermediate assertions)
o C: added statement /*@ assert p */
o new construct "absurd" to denote unreachable code
version 1.07, March 25th, 2003
==============================
o arbitrary side-effects now allowed in tests (if / while)
o label "init" suppressed; new syntax label:expression to insert labels
o syntax: logic may introduce several identifiers in a single declaration
o linear proof search restricted to WP obligations
o PVS: change in array type (warray) to get better TCCs
o fixed ocaml output (array_length)
version 1.04, March 5th, 2003
=============================
o C: logic declarations with syntax /*W ... */
o improved automatic proof (thus less obligations)
o validation in a separate file f_valid.v
version 1.02, February 7th, 2003
================================
o PVS: fixed integer division and modulo, fixed output
o haRVey: no more restriction to first-order obligations
o Coq: the validation is now given a type
o distinction between preconditions and obligations
version 1.0, January 31st, 2003
================================
o syntax: pre- and postconditions brackets now come by pairs (but,
inside, the predicates may be omitted)
o fixed WP bug in a sequence of calls with before-after annotations
o no more "pvs" declaration (the user can now edit the _why.pvs file)
o fixed bug in type-checking of recursive functions with exceptions
o fixed bug in loop tests automatic annotation;
now a warning when a loop test cannot be given a postcondition
o fixed bug in interpretation of @init
o doc: C programs, Coq and PVS libraries documented
o logic: if-then-else construct on terms
o PVS: arrays defined in Why prelude and fixed pretty-print; installation
version 0.92, January 13th, 2003
================================
o C: fixed bug in array/reference passing
o fixed check for exceptions in external declarations
o HOL Light output (with option --hol-light)
o fixed compatibility with Coq 7.3
o C: recursive functions, arrays, pointers
version 0.8, December 6th, 2002
===============================
o haRVey output (option --harvey; see http://www.loria.fr/~ranise/haRVey/)
o C input (incomplete: no arrays, no pointers, no recursive functions)
o Coq: helper tactics (AccessSame, AccessOther, ...)
o fixed bug in application typing
o major change:
arrays do not have a dependent type anymore; array_length introduced
o Emacs mode for editing Why ML source (in lib/emacs)
o automatic discharge of ...|-(well_founded (Zwf 0))
and of ...,v=t,...,I and (Zwf 0 t' t),...|-(Zwf 0 t' v)
o fixed bug in local recursive functions
version 0.72, November 12th, 2002
=================================
o caml code generation with option --ocaml (beta test)
(customized with --ocaml-annot, --ocaml-ext, --output)
o quantifier "exists" added to the logic syntax
o manual: added lexical conventions
o examples: added maximum sort (by Sylvain Boulm)
o new feature: exceptions (beta test)
version 0.71, October 15th, 2002 (bug fix release)
================================
o better WP for the if-then-else (when the test is annotated)
o reference masking now forbidden
o fixed bug in automatic annotations => some postconditions names may change
o fixed Coq 7.3 compatibility module
version 0.7, October 2nd, 2002
==============================
o Why library compatible with Coq 7.3 (released version) and with Coq
development version (determined at configuration)
o code ported to ocaml 3.06
o examples: quicksort (2 versions)
o more obligations automatically discharged
(True / A and B |- A / A,B |- A and B)
o Coq: fixed associativity in pretty-print for /\ and \/ (right)
right associativity adopted in Why
o fixed typing and Coq output for primitive float_of_int
version 0.6, July 19th, 2002
============================
o examples: find
o doc: predefined functions and predicates
o floats: predefined functions and predicates, Coq pretty-print
o fixed bug: x@ reference in a loop post-condition incorrectly translated
o the variant relation is now necessarily an identifier
o terms and predicates are now typed; new declaration "logic"
(terms and predicates syntax are mixed; fixes a parsing bug)
version 0.5, July 2nd, 2002
============================
o first (beta) release
Local Variables:
mode: text
End:
|