src/HOL/TLA/Memory/MemoryParameters.thy
changeset 60587 0318b43ee95c
parent 58889 5b7a9633cfa8
child 60588 750c533459b1
equal deleted inserted replaced
60586:1d31e3a50373 60587:0318b43ee95c
    25   (* the initial value stored in each memory cell *)
    25   (* the initial value stored in each memory cell *)
    26   InitVal        :: "Vals"
    26   InitVal        :: "Vals"
    27 
    27 
    28 axiomatization where
    28 axiomatization where
    29   (* basic assumptions about the above constants and predicates *)
    29   (* basic assumptions about the above constants and predicates *)
    30   BadArgNoMemVal:    "BadArg ~: MemVal" and
    30   BadArgNoMemVal:    "BadArg \<notin> MemVal" and
    31   MemFailNoMemVal:   "MemFailure ~: MemVal" and
    31   MemFailNoMemVal:   "MemFailure \<notin> MemVal" and
    32   InitValMemVal:     "InitVal : MemVal" and
    32   InitValMemVal:     "InitVal : MemVal" and
    33   NotAResultNotVal:  "NotAResult ~: MemVal" and
    33   NotAResultNotVal:  "NotAResult \<notin> MemVal" and
    34   NotAResultNotOK:   "NotAResult ~= OK" and
    34   NotAResultNotOK:   "NotAResult \<noteq> OK" and
    35   NotAResultNotBA:   "NotAResult ~= BadArg" and
    35   NotAResultNotBA:   "NotAResult \<noteq> BadArg" and
    36   NotAResultNotMF:   "NotAResult ~= MemFailure"
    36   NotAResultNotMF:   "NotAResult \<noteq> MemFailure"
    37 
    37 
    38 lemmas [simp] =
    38 lemmas [simp] =
    39   BadArgNoMemVal MemFailNoMemVal InitValMemVal NotAResultNotVal
    39   BadArgNoMemVal MemFailNoMemVal InitValMemVal NotAResultNotVal
    40   NotAResultNotOK NotAResultNotBA NotAResultNotMF
    40   NotAResultNotOK NotAResultNotBA NotAResultNotMF
    41   NotAResultNotOK [symmetric] NotAResultNotBA [symmetric] NotAResultNotMF [symmetric]
    41   NotAResultNotOK [symmetric] NotAResultNotBA [symmetric] NotAResultNotMF [symmetric]
    42 
    42 
    43 lemma MemValNotAResultE: "[| x : MemVal; (x ~= NotAResult ==> P) |] ==> P"
    43 lemma MemValNotAResultE: "[| x : MemVal; (x \<noteq> NotAResult ==> P) |] ==> P"
    44   using NotAResultNotVal by blast
    44   using NotAResultNotVal by blast
    45 
    45 
    46 end
    46 end