equal
deleted
inserted
replaced
1 (* |
1 (* |
2 File: ProcedureInterface.ML |
2 File: ProcedureInterface.ML |
|
3 ID: $Id$ |
3 Author: Stephan Merz |
4 Author: Stephan Merz |
4 Copyright: 1997 University of Munich |
5 Copyright: 1997 University of Munich |
5 |
6 |
6 Procedure interface (theorems and proofs) |
7 Procedure interface (theorems and proofs) |
7 *) |
8 *) |
9 Addsimps [slice_def]; |
10 Addsimps [slice_def]; |
10 val mem_css = (claset(), simpset()); |
11 val mem_css = (claset(), simpset()); |
11 |
12 |
12 (* ---------------------------------------------------------------------------- *) |
13 (* ---------------------------------------------------------------------------- *) |
13 |
14 |
14 val Procedure_defs = [caller_def, rtrner_def, Calling_def, |
15 val Procedure_defs = [caller_def, rtrner_def, Calling_def, |
15 Call_def, Return_def, |
16 Call_def, Return_def, |
16 PLegalCaller_def, LegalCaller_def, |
17 PLegalCaller_def, LegalCaller_def, |
17 PLegalReturner_def, LegalReturner_def]; |
18 PLegalReturner_def, LegalReturner_def]; |
18 |
19 |
19 (* Calls and returns change their subchannel *) |
20 (* Calls and returns change their subchannel *) |
20 Goal "|- Call ch p v --> <Call ch p v>_((caller ch)!p)"; |
21 Goal "|- Call ch p v --> <Call ch p v>_((caller ch)!p)"; |
21 by (auto_tac (mem_css addsimps2 [angle_def,Call_def,caller_def,Calling_def])); |
22 by (auto_tac (mem_css addsimps2 [angle_def,Call_def,caller_def,Calling_def])); |
22 qed "Call_changed"; |
23 qed "Call_changed"; |