src/HOL/UNITY/UNITY_Main.thy
author Rene Thiemann <rene.thiemann@uibk.ac.at>
Fri, 17 Apr 2015 11:52:36 +0200
changeset 60112 3eab4acaa035
parent 58889 5b7a9633cfa8
child 63120 629a4c5e953e
permissions -rw-r--r--
finprod takes 1 in case of infinite sets => remove several "finite A" assumptions

(*  Title:      HOL/UNITY/UNITY_Main.thy
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
    Copyright   2003  University of Cambridge
*)

section{*Comprehensive UNITY Theory*}

theory UNITY_Main
imports Detects PPROD Follows ProgressSets
begin

ML_file "UNITY_tactics.ML"

method_setup safety = {*
    Scan.succeed (SIMPLE_METHOD' o constrains_tac) *}
    "for proving safety properties"

method_setup ensures_tac = {*
  Args.goal_spec -- Scan.lift Args.name_inner_syntax >>
  (fn (quant, s) => fn ctxt => SIMPLE_METHOD'' quant (ensures_tac ctxt s))
*} "for proving progress properties"

setup {*
  map_theory_simpset (fn ctxt => ctxt
    addsimps (make_o_equivs ctxt @{thm fst_o_funPair} @ make_o_equivs ctxt @{thm snd_o_funPair})
    addsimps (make_o_equivs ctxt @{thm fst_o_lift_map} @ make_o_equivs ctxt @{thm snd_o_lift_map}))
*}

end