src/HOL/UNITY/Comp/Alloc.thy
changeset 42793 88bee9f6eec7
parent 42767 e6d920bea7a6
child 42795 66fcc9882784
equal deleted inserted replaced
42792:85fb70b0c5e8 42793:88bee9f6eec7
   329 *} ""
   329 *} ""
   330 
   330 
   331 (*** bijectivity of sysOfAlloc [MUST BE AUTOMATED] ***)
   331 (*** bijectivity of sysOfAlloc [MUST BE AUTOMATED] ***)
   332 ML {*
   332 ML {*
   333 fun record_auto_tac ctxt =
   333 fun record_auto_tac ctxt =
   334   auto_tac (claset_of ctxt addIs [ext] addSWrapper Record.split_wrapper,
   334   let val ctxt' =
   335     simpset_of ctxt addsimps [@{thm sysOfAlloc_def}, @{thm sysOfClient_def},
   335     (ctxt addIs [ext])
   336       @{thm client_map_def}, @{thm non_dummy_def}, @{thm funPair_def},
   336     |> map_claset (fn cs => cs addSWrapper Record.split_wrapper)
   337       @{thm o_apply}, @{thm Let_def}])
   337     |> map_simpset_local (fn ss => ss 
       
   338         addsimps [@{thm sysOfAlloc_def}, @{thm sysOfClient_def},
       
   339           @{thm client_map_def}, @{thm non_dummy_def}, @{thm funPair_def},
       
   340           @{thm o_apply}, @{thm Let_def}])
       
   341   in auto_tac ctxt' end;
       
   342 
   338 *}
   343 *}
   339 
   344 
   340 method_setup record_auto = {*
   345 method_setup record_auto = {*
   341   Scan.succeed (SIMPLE_METHOD o record_auto_tac)
   346   Scan.succeed (SIMPLE_METHOD o record_auto_tac)
   342 *} ""
   347 *} ""