src/HOL/IOA/ABP/Spec.thy
changeset 1151 c820b3cc3df0
parent 1139 993e475e70e2
child 1376 92f83b9d17e1
equal deleted inserted replaced
1150:66512c9e6bd6 1151:c820b3cc3df0
    14 spec_trans :: "('m action, 'm list)transition set"
    14 spec_trans :: "('m action, 'm list)transition set"
    15 spec_ioa   :: "('m action, 'm list)ioa"
    15 spec_ioa   :: "('m action, 'm list)ioa"
    16 
    16 
    17 defs
    17 defs
    18 
    18 
    19 sig_def "spec_sig == (UN m.{S_msg(m)}, \
    19 sig_def "spec_sig == (UN m.{S_msg(m)}, 
    20 \                     UN m.{R_msg(m)} Un {Next}, \
    20                      UN m.{R_msg(m)} Un {Next}, 
    21 \                     {})"
    21                      {})"
    22 
    22 
    23 trans_def "spec_trans ==                           \
    23 trans_def "spec_trans ==                           
    24 \ {tr. let s = fst(tr);                            \
    24  {tr. let s = fst(tr);                            
    25 \          t = snd(snd(tr))                        \
    25           t = snd(snd(tr))                        
    26 \      in                                          \
    26       in                                          
    27 \      case fst(snd(tr))                           \
    27       case fst(snd(tr))                           
    28 \      of   \
    28       of   
    29 \      Next =>  t=s |\ (* Note that there is condition as in Sender *) 
    29       Next =>  t=s |\ (* Note that there is condition as in Sender *) 
    30 \      S_msg(m) => t = s@[m]  |                    \
    30       S_msg(m) => t = s@[m]  |                    
    31 \      R_msg(m) => s = (m#t)  |                    \
    31       R_msg(m) => s = (m#t)  |                    
    32 \      S_pkt(pkt) => False |                    \
    32       S_pkt(pkt) => False |                    
    33 \      R_pkt(pkt) => False |                    \
    33       R_pkt(pkt) => False |                    
    34 \      S_ack(b) => False |                      \
    34       S_ack(b) => False |                      
    35 \      R_ack(b) => False}"
    35       R_ack(b) => False}"
    36 
    36 
    37 ioa_def "spec_ioa == (spec_sig, {[]}, spec_trans)"
    37 ioa_def "spec_ioa == (spec_sig, {[]}, spec_trans)"
    38 
    38 
    39 end
    39 end