src/HOL/HOLCF/IOA/ABP/Impl.thy
author wenzelm
Sun, 20 May 2012 11:34:33 +0200
changeset 47884 21c42b095c84
parent 42151 4da4fc77664b
child 58880 0baae4311a9f
permissions -rw-r--r--
try to avoid races again (cf. 8c37cb84065f and fd3a36e48b09);

(*  Title:      HOL/HOLCF/IOA/ABP/Impl.thy
    Author:     Olaf Müller
*)

header {* The implementation *}

theory Impl
imports Sender Receiver Abschannel
begin

type_synonym
  'm impl_state = "'m sender_state * 'm receiver_state * 'm packet list * bool list"
  (*  sender_state   *  receiver_state   *    srch_state  * rsch_state *)

definition
 impl_ioa :: "('m action, 'm impl_state)ioa" where
 "impl_ioa = (sender_ioa || receiver_ioa || srch_ioa || rsch_ioa)"

definition
 sen :: "'m impl_state => 'm sender_state" where
 "sen = fst"

definition
 rec :: "'m impl_state => 'm receiver_state" where
 "rec = fst o snd"

definition
 srch :: "'m impl_state => 'm packet list" where
 "srch = fst o snd o snd"

definition
 rsch :: "'m impl_state => bool list" where
 "rsch = snd o snd o snd"

end