 ========================================================================= 
                              Isabelle Light                               
   Isabelle/Procedural style additions and other user-friendly shortcuts.  
                                                                           
                   Petros Papapanagiotou, Jacques Fleuriot                 
              Center of Intelligent Systems and their Applications         
                          University of Edinburgh                          
                                 2009-2012                                 
 ========================================================================= 

This README contains some brief information on the usage of this system.
Please refer to the paper [1] for a general description as well as the comments 
in the code for details on each available function. 


HOW TO LOAD:
------------

loads "IsabelleLight/make.ml";;



LIST OF FILES:
--------------

make.ml        : HOL Light style makefile with some examples.
isalight.ml    : Main loader.
support.ml     : Support functions and various shortcuts.
new_tactics.ml : Various tactics to facilitate procedural-style users.
meta_rules.ml  : Main emulation of Isabelle's natural deduction rules and tactics.



BRIEF DESCRIPTION OF AVAILABLE FUNCTIONS AND TACTICS:
(refer to the comments in the files for more information)
---------------------------------------------------------------------------

e_all tac             : Same as "e" but applies tactic tac to all subgoals.
ROTATE_TAC            : Rotates the assumptions once.
ROTATE_N_TAC n        : Rotates the assumptions n times.


DRULE_N_TAC n rule    : Applies rule to nth assumption and deletes it.
FRULE_N_TAC n rule    : Applies rule to nth assumption and adds result as a new
                        assumption.
FRULE_MN_TAC m n rule : Applies rule (such as MP) on mth and nth assumptions.


REWRITE_ASM_TAC thl   : Rewrites assumptions. PURE_, ONCE_ and PURE_ONCE_
                        versions also available.
FULL_REWRITE_TAC thl  : Rewrites assumptions then goal.
FULL_SIMP_TAC thl     : SIMP_TAC then FULL_REWRITE_TAC.


X_MATCH_CHOOSE_TAC tm : X_CHOOSE_TAC with type matching.

gen_case_tac          : Applies case_tac to leading universally quantified 
                        variable in the goal.



LIST OF ISABELLE STYLE TACTICS AND RULES:
(refer to the comments in the files and the paper [1] for more information)
---------------------------------------------------------------------------

TACTICS:
--------
simp
assumption
case_tac
subgoal_tac
cut_tac

rule
erule
drule
frule

rule_tac
erule_tac
drule_tac
frule_tac


RULES:
------
conjI
conjunct1
conjunct2
conjE
disjI1
disjI2
disjE
impI
impE
mp
iffI
iffE
allE
exI
notI
notE


EXTRAS:
-------
meta_assumption mvs  : Use this for assumption matching with meta-variables.
exE                  : Use this tactic for existential elimination.
allI                 : Use this tactic for forall introduction.
meson                : Shortcut to automated procedure MESON.

erulen               : Use these to match numbered assumptions.
drulen
frulen

erulen_tac
drulen_tac
frulen_tac



[1] Papapanagiotou, P. and Fleuriot, J.:  
An Isabelle-Like Procedural Mode for HOL Light. 
Logic for Programming, Artificial Intelligence, and Reasoning, #
pp 565-580, Springer (2010)
