src/HOL/TLA/Memory/MemoryParameters.ML
author wenzelm
Tue, 25 Jul 2000 00:06:46 +0200
changeset 9436 62bb04ab4b01
parent 6255 db63752140c7
child 9517 f58863b1406a
permissions -rw-r--r--
rearranged setup of arithmetic procedures, avoiding global reference values;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     1
(* 
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     2
    File:        MemoryParameters.ML
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     3
    Author:      Stephan Merz
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     4
    Copyright:   1997 University of Munich
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     5
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     6
    RPC-Memory example: memory parameters (ML file)
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     7
*)
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
     8
6255
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 3807
diff changeset
     9
(*
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    10
val MP_simps = [BadArgNoMemVal,MemFailNoMemVal,InitValMemVal,NotAResultNotVal,
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    11
                  NotAResultNotOK, NotAResultNotBA, NotAResultNotMF]
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    12
               @ (map (fn x => x RS not_sym) 
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    13
                      [NotAResultNotOK, NotAResultNotBA, NotAResultNotMF]);
6255
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 3807
diff changeset
    14
*)
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    15
6255
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 3807
diff changeset
    16
Addsimps ([BadArgNoMemVal,MemFailNoMemVal,InitValMemVal,NotAResultNotVal,
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 3807
diff changeset
    17
                  NotAResultNotOK, NotAResultNotBA, NotAResultNotMF]
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 3807
diff changeset
    18
               @ (map (fn x => x RS not_sym) 
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 3807
diff changeset
    19
                      [NotAResultNotOK, NotAResultNotBA, NotAResultNotMF]));
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    20
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    21
(* Auxiliary rules *)
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    22
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    23
qed_goal "MemValNotAResultE" MemoryParameters.thy
6255
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 3807
diff changeset
    24
   "[| x : MemVal; (x ~= NotAResult ==> P) |] ==> P"
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 3807
diff changeset
    25
   (fn prems => [resolve_tac prems 1,
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 3807
diff changeset
    26
                 cut_facts_tac (NotAResultNotVal::prems) 1,
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 3807
diff changeset
    27
                 Force_tac 1
db63752140c7 updated (Stephan Merz);
wenzelm
parents: 3807
diff changeset
    28
                ]);
3807
82a99b090d9d A formalization of TLA in HOL -- by Stephan Merz;
wenzelm
parents:
diff changeset
    29