Difference between revisions of "Export to Isabelle"

From Event-B
Jump to: navigation, search
m
(Redirecting to Isabelle for Rodin)
 
Line 1: Line 1:
The "Export to Isabelle" plug-in allows users to export proof obligations and sequents to Isabelle/HOL.
+
#REDIRECT [[Isabelle for Rodin]]
Its main purpose is to help researchers analyse proof obligations in Isabelle;
 
in the long run, it will form the basis of automated proof tactics for Event-B based on Isabelle.
 
The embedding of Event-B's logic in Isabelle/HOL is sound with respect to the semantics described in [ftp://ftp.inf.ethz.ch/pub/publications/tech-reports/6xx/698.pdf].
 
 
 
=Installation=
 
 
 
The plug-in can be installed using '''Rodin's update facilities''' and is available on '''Rodin's main update site''' (http://rodin-b-sharp.sourceforge.net/updates at time of writing) in the category '''Prover Extensions'''.
 
 
 
'''Please make sure that'''
 
* the Scala update site http://download.scala-ide.org/releases/2.0.0-beta appears in the list of available software sites, and
 
* the box "contact all update sites during install to find required software" is checked.
 
 
 
The '''EventB Isabelle theory''' introduces Event-B's operators and binders and some proof tactics.
 
It is shipped with the plug-in and can be found in the location "${update installation path}/features/ch.ethz.infk.isabelle.feature*/HOL-EventB*.tgz".
 
 
 
===Prerequisites===
 
To process the generated theories, an installation of [http://isabelle.in.tum.de/download.html Isabelle2011] is required.
 
 
 
=Usage=
 
 
 
The plug-in can be used to export proof obligations or the intermediate sequent of a proof attempt.
 
 
 
===Exporting Proof Obligations===
 
 
 
* Right-click some proof obligation(s) in the project explorer.
 
* Choose "Export to Isabelle".
 
 
 
The plug-in will create "isabelle" subfolders in every involved project folder and put the translations of the proof obligations
 
into these folders.
 
For every component (context or machine) two theory files will be generated: one storing the selected proof obligations of that component and the other one containing proof attempts.
 
The files with the proof attempts need to be renamed to the form "*.thy" before Isabelle can process them.
 
Separating proof obligations from proofs makes it easy to update the proof obligations without destroying the proof files.
 
 
 
===Exporting the Intermediate Sequent of a Proof Attempt===
 
 
 
The proof control provides a button "Export to Isabelle".
 
After pressing the button, the user is prompted for a file name, where the sequent is stored.
 
 
 
=Limitations=
 
 
 
* Names of variables may clash with names of reserved keywords in Isabelle, which leads to parse errors. Similarly, names of components may clash with the name of some built-in theory of HOL.
 
 
 
=News=
 
 
 
====Version 0.5.0====
 
=====Plug-in:=====
 
* (incompatible) changes in translation, taking changes in HOL/Event-B into account
 
* infrastructure for doing the experiments of my PhD thesis
 
* a plug-in for generating statistics of Rodin proof tactics
 
 
 
=====HOL-EventB:=====
 
* faster version of ebsimp, called ebsimp'
 
* axe, a smart combination of simp, clarify, safe, smt, metis, auto, and force
 
* tuning
 
* refactoring of EventB
 
* cleanup of EventB: added missing theorems stating that EventB constitutes a model of Event-B's main theory.
 
* changed the notation "x..y" to "x. .y", as the notation "x..y" is in conflict with, e.g., {x..y}.
 
 
 
====Version 0.4.0====
 
=====Plug-in:=====
 
* infrastructure for creating proof statistics with "isabelle usedir"
 
* Export information about the origin of hypotheses and goals.
 
* Export information about the underlying refines / sees / extends graph.
 
 
 
=====HOL-EventB:=====
 
* an attribute unlifted for forward application of ebsimp
 
* Integrated Gudmund Grov's Formula_Origin theory, which stores the origin of a formula.
 
* Tuning.
 
* Fixed a parse problem with <+ and .<+..
 
* logging facilities
 
* a command "is_finished" that determines whether a proof is finished
 
* a command "timed_apply" -- a time bounded version of apply
 
 
 
====Version 0.3.0====
 
=====Plug-in:=====
 
* translation avoids name clashes with predefined constants
 
* introduce auxiliary definitions to speed up parsing in Isabelle
 
* improved proof skeletons
 
* infrastructure for predicate variables
 
 
 
=====HOL-EventB=====
 
* fixed pretty print problems with .>. and .\<ge>.
 
* The method ebpost no longer uses assumptions in simplification to avoid simplifier loops.
 
 
 
====Version 0.2.0====
 
=====Plug-in:=====
 
* Avoid duplication of selected hypotheses: hypotheses are now partitioned into the categories selected, deselected, and hidden. Formerly, selected hypotheses appeared both in the categories selected and visible. 
 
* documentation
 
* implemented a proof command that allows one to export the current sequent of a proof attempt
 
* success message after export
 
* Export of proof obligation can now be interrupted (granularity: proof obligation).
 
* display progress information during export
 
* implemented the infrastructure to export the sources of predicates and proof obligations
 
 
 
=====HOL-EventB:=====
 
* Reorganized IsaMakefile.
 
 
 
====Version 0.1.0====
 
=====Plug-in:=====
 
* initial version
 
 
 
=====HOL-EventB:=====
 
* Avoid exponential blow-up by iterated bfunimage.
 
* Fixed a bug in ebpre split that allowed for split on variables with assm x = \<bullet>.
 
* Bottom up translation (can still be improved) in ebpre.
 
* Translate set comprehensions to collect when possible.
 
* Tuning:
 
** iff rules for tfun, pfun, etc.
 
** don't unfold functional, injective, funimg
 
* Beautify structure of WD-conditions of partial operators (e.g., choice).
 
** F phi = not(WD phi --> phi)
 
* Refactoring translation rules for If
 
* Refactoring translation rules for brestrict, add T/F rules
 
* Systematically check for expanding rules in ebtranssimp1, use let
 
* Beautify precondition solving lemmas for partial operators
 
* Make D an abbreviation.
 
 
 
 
 
[[Category:Plugin]]
 
[[Category:User documentation]]
 

Latest revision as of 18:01, 25 February 2012

Redirect to: