Theory Impl
section ‹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"
  
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 ∘ snd"
definition
 srch :: "'m impl_state => 'm packet list" where
 "srch = fst ∘ snd ∘ snd"
definition
 rsch :: "'m impl_state => bool list" where
 "rsch = snd ∘ snd ∘ snd"
end