Commit Graph

9 Commits

Author SHA1 Message Date
Thomas Sewell b0f2217af4 lib/wp: Remove old wp combinator rules.
These combinator rules do something like what wp_pre does now.

They were helpful in the ancient past, but now that wp_pre exists it is
much better to just use automation.
2018-03-16 14:51:31 +11:00
Gerwin Klein 47119bf43e wp_cleanup: update proofs for new wp behaviour
The things that usually go wrong:
  - wp fall through: add +, e.g.
      apply (wp select_wp) -> apply (wp select_wp)+

  - precondition: you can remove most hoare_pre, but wpc still needs it, and
    sometimes the wp instance relies on being able to fit a rule to the
    current non-schematic precondition. In that case, use "including no_pre"
    to switch off the automatic hoare_pre application.

  - very rarely there is a schematic postcondition that interferes with the
    new trivial cleanup rules, because the rest of the script assumes some
    specific state afterwards (shouldn't happen in a reasonable proof, but
    not all proofs are reasonable..). In that case, (wp_once ...)+ should
    emulate the old behaviour precisely.
2017-01-13 14:04:15 +01:00
Japheth Lim 5b0f2ebbcd autocorres: upgrade from Named_Thm to named_theorems
This gets rid of the attribute setup boilerplate (but see Utils.get_rules).
Closes issue VER-293.
2016-06-02 16:50:03 +10:00
Japheth Lim 4ec1820f0e autocorres: streamline translation of lvar_nondet_init
Now no longer relies on L1opt.
2016-06-02 16:50:03 +10:00
Thomas Sewell f50bb14f25 Making termination proof optional for AutoCorres.
By default, the only change users will see is a new parameter to
ac_corres which will default to 'True'.
2016-05-02 14:10:23 +10:00
Japheth Lim 8954c3ca11 autocorres: use SIMPL semantics for un-translated functions.
Previously, these functions were unsatisfyingly translated to “fail”.
By default, functions are wrapped in the constructs AC_call_simpl
and L1_call_simpl.
2016-01-22 14:49:13 +11:00
Japheth Lim 324d48b53f autocorres: handle guarded_spec_body construct. See 27a12b871 and VER-464. 2015-11-24 13:58:28 +11:00
David Greenaway 8dd95a344c autocorres: Translate missing functions into constant "FUNCTION_BODY_NOT_IN_INPUT_C_FILE".
Functions that are declared in the C file, called by other C functions,
but are never actually _defined_ are translated simply into a "fail"
monadic statement. This sometimes causes confusion to new users.

We update AutoCorres to instead emit a new constant:

  FUNCTION_BODY_NOT_IN_INPUT_C_FILE

defined simply as "fail" for such functions.
2014-12-03 14:49:12 +11:00
Gerwin Klein 2a03e81df4 Import release snapshot. 2014-07-14 21:32:44 +02:00