IOA/example/Spec.thy
changeset 156 fd1be45b64bf
child 168 44ff2275d44f
equal deleted inserted replaced
155:722bf1319be5 156:fd1be45b64bf
       
     1 Spec = List + IOA + Action +
       
     2 
       
     3 consts
       
     4 
       
     5 spec_sig   :: "'m action signature"
       
     6 spec_trans :: "('m action, 'm list)transition set"
       
     7 spec_ioa   :: "('m action, 'm list)ioa"
       
     8 
       
     9 rules
       
    10 
       
    11 sig_def "spec_sig == <UN m.{S_msg(m)}, \
       
    12 \                     UN m.{R_msg(m)}, \
       
    13 \                     {}>"
       
    14 
       
    15 trans_def "spec_trans =                            \
       
    16 \ {tr. let s = fst(tr);                            \
       
    17 \          t = snd(snd(tr))                        \
       
    18 \      in                                          \
       
    19 \      case fst(snd(tr))                           \
       
    20 \      of                                          \
       
    21 \      S_msg(m) => t = s@[m]  |                    \
       
    22 \      R_msg(m) => s = (m#t)  |                    \
       
    23 \      S_pkt(pkt) => False |                    \
       
    24 \      R_pkt(pkt) => False |                    \
       
    25 \      S_ack(b) => False |                      \
       
    26 \      R_ack(b) => False |                      \
       
    27 \      C_m_s => False |                            \
       
    28 \      C_m_r => False |                            \
       
    29 \      C_r_s => False |                            \
       
    30 \      C_r_r(m) => False}"
       
    31 
       
    32 ioa_def "spec_ioa == <spec_sig, {[]}, spec_trans>"
       
    33 
       
    34 end