src/HOL/Eisbach/Eisbach.thy
author wenzelm
Sat, 16 May 2015 12:05:52 +0200
changeset 60285 b4f1a0a701ae
parent 60248 f7e4294216d2
child 60623 be39fe6c5620
permissions -rw-r--r--
updated Eisbach, using version 4863020a8fe9 of its Bitbucket repository;

(*  Title:      HOL/Eisbach/Eisbach.thy
    Author:     Daniel Matichuk, NICTA/UNSW

Main entry point for Eisbach proof method language.
*)

theory Eisbach
imports Main
keywords
  "method" :: thy_decl and
  "conclusion"
  "premises"
  "declares"
  "methods"
  "\<bar>" "\<Rightarrow>"
  "uses"
begin

ML_file "parse_tools.ML"
ML_file "method_closure.ML"
ML_file "eisbach_rule_insts.ML"
ML_file "match_method.ML"
ML_file "eisbach_antiquotations.ML"

(* FIXME reform Isabelle/Pure attributes to make this work by default *)
setup \<open>
  fold (Method_Closure.wrap_attribute {handle_all_errs = true, declaration = true})
    [@{binding intro}, @{binding elim}, @{binding dest}, @{binding simp}] #>
  fold (Method_Closure.wrap_attribute {handle_all_errs = false, declaration = false})
    [@{binding THEN}, @{binding OF}, @{binding rotated}, @{binding simplified}]
\<close>

method solves methods m = (m; fail)

end