src/HOL/TLA/Memory/ProcedureInterface.ML
changeset 17309 c43ed29bd197
parent 9517 f58863b1406a
equal deleted inserted replaced
17308:5d9bbc0d9bd3 17309:c43ed29bd197
     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";