src/HOL/IOA/ABP/Abschannel.thy
changeset 1138 82fd99d5a6ff
parent 1050 0c36c6a52a1d
child 1151 c820b3cc3df0
equal deleted inserted replaced
1137:1a768988f8e3 1138:82fd99d5a6ff
     1 (*  Title:      HOL/IOA/ABP/Abschannels.thy
     1 (*  Title:      HOL/IOA/example/Abschannels.thy
     2     ID:         $Id$
     2     ID:         $Id$
     3     Author:     Olaf Mueller
     3     Author:     Olaf Mueller
     4     Copyright   1995  TU Muenchen
     4     Copyright   1994  TU Muenchen
     5 
     5 
     6 The transmission channel 
     6 The transmission channel 
     7 *)
     7 *)
     8 
     8 
     9 Abschannel = IOA + Action + Lemmas + List +
     9 Abschannel = IOA + Action + Lemmas + List +
    10  
    10 
       
    11 
    11 datatype ('a)act =   S('a) | R('a)
    12 datatype ('a)act =   S('a) | R('a)
       
    13 
    12 
    14 
    13 consts
    15 consts
    14  
    16  
    15 ch_asig  :: "'a act signature"
    17 ch_asig  :: "'a act signature"
    16 
       
    17 ch_trans :: "('a act, 'a list)transition set"
    18 ch_trans :: "('a act, 'a list)transition set"
    18 
       
    19 ch_ioa   :: "('a act, 'a list)ioa"
    19 ch_ioa   :: "('a act, 'a list)ioa"
    20 
    20 
    21 rsch_actions  :: "'m action => bool act option"
    21 rsch_actions  :: "'m action => bool act option"
    22 srch_actions  :: "'m action =>(bool * 'm) act option"
    22 srch_actions  :: "'m action =>(bool * 'm) act option"
    23 
    23 
    40 rsch_trans_def "rsch_trans == trans_of(rsch_ioa)"
    40 rsch_trans_def "rsch_trans == trans_of(rsch_ioa)"
    41 
    41 
    42 srch_ioa_def "srch_ioa == rename ch_ioa srch_actions"
    42 srch_ioa_def "srch_ioa == rename ch_ioa srch_actions"
    43 rsch_ioa_def "rsch_ioa == rename ch_ioa rsch_actions"
    43 rsch_ioa_def "rsch_ioa == rename ch_ioa rsch_actions"
    44 
    44 
    45 
    45   
       
    46 (**********************************************************
       
    47        G e n e r i c   C h a n n e l
       
    48  *********************************************************)
       
    49   
    46 ch_asig_def "ch_asig == (UN b. {S(b)}, UN b. {R(b)}, {})"
    50 ch_asig_def "ch_asig == (UN b. {S(b)}, UN b. {R(b)}, {})"
    47 
    51 
    48 ch_trans_def "ch_trans ==                                       \
    52 ch_trans_def "ch_trans ==                                       \
    49 \ {tr. let s = fst(tr);                                         \
    53 \ {tr. let s = fst(tr);                                         \
    50 \          t = snd(snd(tr))                                     \
    54 \          t = snd(snd(tr))                                     \
    55 \	            b = hd(s) &                                 \
    59 \	            b = hd(s) &                                 \
    56 \	            ((t = s) | (t = tl(s)))    }"
    60 \	            ((t = s) | (t = tl(s)))    }"
    57   
    61   
    58 ch_ioa_def "ch_ioa == (ch_asig, {[]}, ch_trans)"
    62 ch_ioa_def "ch_ioa == (ch_asig, {[]}, ch_trans)"
    59 
    63 
       
    64 (**********************************************************
       
    65   C o n c r e t e  C h a n n e l s  b y   R e n a m i n g 
       
    66  *********************************************************)
       
    67   
    60 rsch_actions_def "rsch_actions (akt) ==                      \
    68 rsch_actions_def "rsch_actions (akt) ==                      \
    61 \	    case akt of   \
    69 \	    case akt of   \
    62 \           Next    =>  None |          \
    70 \           Next    =>  None |          \
    63 \           S_msg(m) => None |         \
    71 \           S_msg(m) => None |         \
    64 \	    R_msg(m) => None |         \
    72 \	    R_msg(m) => None |         \