(* Title: HOL/TLA/Memory/MemClerk.thy Author: Stephan Merz, University of Munich *)
section‹RPC-Memory example: specification of the memory clerk›
theory MemClerk imports Memory RPC MemClerkParameters begin
(* The clerk takes the same arguments as the memory and sends requests to the RPC *) type_synonym mClkSndChType = "memChType" type_synonym mClkRcvChType = "rpcSndChType" type_synonym mClkStType = "(PrIds ==> mClkState) stfun"
definition (* state predicates *)
MClkInit :: "mClkRcvChType ==> mClkStType ==> PrIds ==> stpred" where"MClkInit rcv cst p = PRED (cst!p = #clkA ∧¬Calling rcv p)"
(* The Clerk engages in an action for process p only if there is an outstanding, unanswered call for that process. *) lemma MClkidle: "⊨¬$Calling send p ∧ $(cst!p) = #clkA ⟶¬MClkNext send rcv cst p" by (auto simp: AReturn_def MC_action_defs)
lemma MClkbusy: "⊨ $Calling rcv p ⟶¬MClkNext send rcv cst p" by (auto simp: ACall_def MC_action_defs)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.