src/HOL/TLA/Memory/ProcedureInterface.ML
author wenzelm
Wed, 07 Sep 2005 20:22:39 +0200
changeset 17309 c43ed29bd197
parent 9517 f58863b1406a
permissions -rw-r--r--
converted to Isar theory format;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17309
c43ed29bd197 converted to Isar theory format;
wenzelm
parents: 9517
diff changeset
     1
(*
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     2
    File:        ProcedureInterface.ML
17309
c43ed29bd197 converted to Isar theory format;
wenzelm
parents: 9517
diff changeset
     3
    ID:          $Id$
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     4
    Author:      Stephan Merz
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     5
    Copyright:   1997 University of Munich
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     6
6255
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 4089
diff changeset
     7
    Procedure interface (theorems and proofs)
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     8
*)
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     9
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    10
Addsimps [slice_def];
6255
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 4089
diff changeset
    11
val mem_css = (claset(), simpset());
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    12
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    13
(* ---------------------------------------------------------------------------- *)
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    14
17309
c43ed29bd197 converted to Isar theory format;
wenzelm
parents: 9517
diff changeset
    15
val Procedure_defs = [caller_def, rtrner_def, Calling_def,
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    16
                      Call_def, Return_def,
17309
c43ed29bd197 converted to Isar theory format;
wenzelm
parents: 9517
diff changeset
    17
                      PLegalCaller_def, LegalCaller_def,
c43ed29bd197 converted to Isar theory format;
wenzelm
parents: 9517
diff changeset
    18
                      PLegalReturner_def, LegalReturner_def];
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    19
9517
f58863b1406a tuned version by Stephan Merz (unbatchified etc.);
wenzelm
parents: 6255
diff changeset
    20
(* Calls and returns change their subchannel *)
f58863b1406a tuned version by Stephan Merz (unbatchified etc.);
wenzelm
parents: 6255
diff changeset
    21
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
    22
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
    23
qed "Call_changed";
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    24
9517
f58863b1406a tuned version by Stephan Merz (unbatchified etc.);
wenzelm
parents: 6255
diff changeset
    25
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
    26
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
    27
qed "Return_changed";
6255
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 4089
diff changeset
    28