author | wenzelm |
Wed, 05 Dec 2001 03:13:57 +0100 | |
changeset 12378 | 86c58273f8c0 |
parent 9517 | f58863b1406a |
child 17309 | c43ed29bd197 |
permissions | -rw-r--r-- |
3807 | 1 |
(* |
2 |
File: ProcedureInterface.ML |
|
3 |
Author: Stephan Merz |
|
4 |
Copyright: 1997 University of Munich |
|
5 |
||
6255 | 6 |
Procedure interface (theorems and proofs) |
3807 | 7 |
*) |
8 |
||
9 |
Addsimps [slice_def]; |
|
6255 | 10 |
val mem_css = (claset(), simpset()); |
3807 | 11 |
|
12 |
(* ---------------------------------------------------------------------------- *) |
|
13 |
||
6255 | 14 |
val Procedure_defs = [caller_def, rtrner_def, Calling_def, |
3807 | 15 |
Call_def, Return_def, |
16 |
PLegalCaller_def, LegalCaller_def, |
|
17 |
PLegalReturner_def, LegalReturner_def]; |
|
18 |
||
9517
f58863b1406a
tuned version by Stephan Merz (unbatchified etc.);
wenzelm
parents:
6255
diff
changeset
|
19 |
(* Calls and returns change their subchannel *) |
f58863b1406a
tuned version by Stephan Merz (unbatchified etc.);
wenzelm
parents:
6255
diff
changeset
|
20 |
Goal "|- Call ch p v --> <Call ch p v>_((caller ch)!p)"; |
f58863b1406a
tuned version by Stephan Merz (unbatchified etc.);
wenzelm
parents:
6255
diff
changeset
|
21 |
by (auto_tac (mem_css addsimps2 [angle_def,Call_def,caller_def,Calling_def])); |
f58863b1406a
tuned version by Stephan Merz (unbatchified etc.);
wenzelm
parents:
6255
diff
changeset
|
22 |
qed "Call_changed"; |
3807 | 23 |
|
9517
f58863b1406a
tuned version by Stephan Merz (unbatchified etc.);
wenzelm
parents:
6255
diff
changeset
|
24 |
Goal "|- Return ch p v --> <Return ch p v>_((rtrner ch)!p)"; |
f58863b1406a
tuned version by Stephan Merz (unbatchified etc.);
wenzelm
parents:
6255
diff
changeset
|
25 |
by (auto_tac (mem_css addsimps2 [angle_def,Return_def,rtrner_def,Calling_def])); |
f58863b1406a
tuned version by Stephan Merz (unbatchified etc.);
wenzelm
parents:
6255
diff
changeset
|
26 |
qed "Return_changed"; |
6255 | 27 |