Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/Archive-of-Formal-Proofs/thys/Refine_Monadic/   (Sammlung formaler Beweise Version 2026-5©)  Datei vom 29.4.2026 mit Größe 7 kB image not shown  

Quelle  CHANGELOG

  Sprache: Text
 

Changes of Refinement Framework since 2011-12-24:

2014-11 Peter Lammich
  * le-or-fail relation (leof)
  * while-invariants via (leof), and modular reasoning about invariants

2014-07 Peter Lammich
  * Now defining total correct recursion via flat domain. Renamed some rules, 
    changed RECT_eq_REC-rules. 
    INCOMPATIBILITIES: 
      - Renamed preconditions of REC[T]_rule[_arb] from \Phi to pre.
      - Introduced "trimono" predicate. Used in mono-rules instead of mono.
        Use thm trimonoD_mono to get back "mono"-predicate.
  * Changed the notion of refinement to conc_fun R (RES X) = RES (R^-1 `` X).
    INCOMPATIBILITIES: 
      - For single-valued R, this definition matches the old one.
      - For non single-valued case, the new definition allows for more convenient 
        rules. Removed many single-valued assumptions from refinement rules.


2014-06 Peter Lammich
  * Strengthened RECT_eq_REC - rule.
  * Added vc_solve method
  * Fine-tuned rcg/vcg setup for ASSERT/ASSUME
  * Added more convenience lemmas
  * VCG-rules for nfoldli
  * Improved Autoref-setup for FOREACH-loops

2013-09 Peter Lammich
  * Made this dependent on Automatic_Refinement

2012-11-30 Peter Lammich
  * Added eq_assume_tac to Refine.post_tac

2012-11-06 Peter Lammich
  * Added knowledge that invar holds for initial state to WHILE refinement rules

2012-10-05 Peter Lammich
  * New autoref framework. MAJOR INCOMPATIBILITY
    The new framework, although a prototype, is aimed at producing reasonable
    translations with as few required configuration as possible. See examples
    in ex/ directory for usage.
  * Definitions of relators are now in lemm collection refine_rel_defs.
    No longer in refine_hsimp. INCOMPATIBILITY

2012-08-31 Peter Lammich
  * Adaptions to new ICF v2
  * Stronger REC/RECT rules: 
  * Added abbreviations xx.R == br \alpha invar to ICF interfaces

2012-07-10 Peter Lammich
  * Maintenance changes
  * Added fo_rule - method that applies theorems using first-order matching.
    Works particular well with arg_cong, fun_cong.
  * Removed definitions of standard relation combinators 
    (rprod, map_set_rel, etc.) from standard simpset. They are now all in the
    theorems collection refine_rel_defs. INCOMPATIBILITY: Add refine_rel_defs
    to the simpset, but first try whether adding refine_hsimp does the job.
  * Introduced ropt relation combinator, and changed setup for autoref_ex. 
    Maybe INCOMPATIBILITY.

2012-07-02 Peter Lammich
  * Changed map_set_rel to pose additional invariant on concrete set: All 
    elements must actually be mapped.
  * Added nested-DFS algorithm with witness generation as example. The algorithm
    uses the RECT-combinator to implement a nested DFS search for an accepting
    cycle in a Buechi-automaton. It is a quite complex example that 
    demonstrates how to use the RECT-combinators and automatic refinement.

2012-06-25 Peter Lammich
  * WHILExx_refine_genR and FOREACHxxx_refine_genR rules that allow to exploit
    that the condition does not hold when the loop terminates.
  * Changes imported from Neumann's Refine_Addition theory:
      - Added REC(T)_rule_arbN for N=2,3
      - Added bind2letRETURN_refine rules as [refine2], to account for pattern
        RETURN (Let _ _) <= \<Down> R bind _ _

2012-06-21 Peter Lammich
  * Fine-tuned standard refinement setup: intro_spec_refine and bind_refine_RES
    MAYBE INCOMPATIBILITY, but in most cases it should just do the right thing.
  * Improved concrete_definition command. Now also exports a lemma 
    name.refine.
  * Added prepare_code_thms command, that processes a set of definition 
    theorems, and declares code lemmas, handling recursion combinators.

2012-06-18 Peter Lammich
  * Added first version of concrete_definition command, that saves the user
    from copy-pasting when making definitions out of refinement theorems.
    See userguide for an example. 
    INCOMPATIBILITY: In order to make the new command work under ProofGeneral,
    you need to copy the keyword file Libs/Refine_Monadic/isar-keywords.el to
    some appropriate directory, e.g. ~/.isabelle/etc

2012-06-12 Peter Lammich:
  * Bugfix: FOREACHc_rule was to weak (probably a typo).
  * Added alternative FOREACH??i_rule', that allow for less redundant proofs
    in some cases.
  * Added support for option_case.
  * More general proof rules for recursion combinator:
    RECT_rule_arb and REC_rule_arb now allow for generalizing over variables
    that occur in the specification, but not in the program.
  * Improved rprems_tac such that it can cope with schematic type variables.
    Now refine_autoref works with REC-combinators more cleanly.

2012-04-23 Thomas Tuerk: Ordered FOREACH.

2012-03-20 Thomas Tuerk: Adaption to changed iterator interface in Collection Framework

2012-02-21
  * Declared RETURN_SPEC_refine_sv as standard [refine]-rule.
    Potential INCOMPATIBILITY.

2012-02-20
  * Modified automatic refinement: Using Method.assm_tac to discharge
    by assumption. Potential INCOMPATIBILITY, but should be limited to very
    rare cases, where one tried to work around the non-discharged assumption.

2012-01-28
  * Added parameters to refine_transfer, refine_rcg, and refine_autoref.
    Usage:
      refine_transfer trans_thms
      refine_rcg refine_thms
      refine_autoref spec_thms
  * "refine_dref_type_only" is now "refine_dref_type (nopost)". INCOMPATIBILITY.
  * Added "refine_dref_type (trace)"
  * "refine_autoref_ss" is now "refine_autoref (trace) (ss)". INCOMPATIBILITY.
  * Changed determinization for iterators. An additional wrapper-function 
    occurs in generated function. INCOMPATIBILITY if generated function was copied.
  


2012-01-26
  * Added monotonicity prover (refine_mono - method), and integrated it
    with refine_rcg tactic. Maybe INCOMPATIBILITY, however, it only changes
    mono-goals that it can completely solve.
  * Automatic Refinement. Examples are in: 
      (ex/Automatic_Determinization, ex/Recursion, 
       ../Dijkstra/Dijkstra_Impl_Aref).
  * Example for use of REC and RECT combinators (ex/Recursion)

2012-01-16 [Release to Cava-Repo]
  * Changed definition of conc_fun (\Down), such that \Up and \Down always form
    a Galois-Connection. Equivalent in the single valued case, INCOMPATIBILITY
    in the non-single-valued case. Currently, refinement rules for WHILE assume 
    singe-valued relations, thus had to disable WHILEI_invisible_refine example.
    Generalizing to general case remains future work.
  * Total correct recursion is now expressed by greatest fixed points rather than
    least fixed points with asserted variant. Rules remain the same for 
    WHILE-loops, INCOMPATIBILITY for arbitrary recursion. 
    Introduced REC and RECT combinators, that should be used for recursion 
    (formerly lfp and lfpT). 
  * Changed code generation. INCOMPATIBILITY. Partial correct code now is inside 
    a monad with a flat complete lattice domain, rather than the option monad.
    The embedding function is nres_of (formerly: EMBED).
    The actual translation is done by the refine_transfer method 
    (formerly: (rule refine_cgt / refine_cgp)+), that handles both, goals of the
    form "RETURN ?f <= S" and "nres_of ?f <= S"
    Also the attribute names changed: [refine_cgp] and [refine_cgt] are both
    [refine_transfer] now. 

2011-12-31
  * Added WHILEI_invisible_refine rule, that supports refinement with invisible
    concrete steps for partial correct WHILE-loops. Also added example to ex/ 
    subdirectory.
  * Fixed bind2let_refine rule, the assumption was to strong.
  * Renamed le_ASSERTI_pres -> ref_ASSERTI_pres

2011-12-30:
  * Added FOREACH-refine rules with stronger coupling invariants.
  * Added conditions to step-refine assumptions of conditional foreach rules.

2011-12-29:
  * Added nofail/inres predicates and related lemmas.
  * Arbitrary recursion via lfp. Changed basis of while-combinator to
    use that. Also a well-founded variant lfpT. 
    INCOMPATIBILITIES:
      WINV is now WI_reach, and definition of while-loop has changed completely.
  



¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet am  2026-06-10) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.