Theory Impl_finite
section ‹The implementation›
theory Impl_finite
imports Sender Receiver Abschannel_finite
begin
type_synonym
  'm impl_fin_state
    = "'m sender_state * 'm receiver_state * 'm packet list * bool list"
definition
  impl_fin_ioa :: "('m action, 'm impl_fin_state)ioa" where
  "impl_fin_ioa = (sender_ioa ∥ receiver_ioa ∥ srch_fin_ioa ∥
                  rsch_fin_ioa)"
definition
  sen_fin :: "'m impl_fin_state => 'm sender_state" where
  "sen_fin = fst"
definition
  rec_fin :: "'m impl_fin_state => 'm receiver_state" where
  "rec_fin = fst ∘ snd"
definition
  srch_fin :: "'m impl_fin_state => 'm packet list" where
  "srch_fin = fst ∘ snd ∘ snd"
definition
  rsch_fin :: "'m impl_fin_state => bool list" where
  "rsch_fin = snd ∘ snd ∘ snd"
end