equal
deleted
inserted
replaced
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 *} "" |