src/HOLCF/IOA/ex/TrivEx2.thy
author wenzelm
Thu Nov 15 23:25:46 2001 +0100 (2001-11-15)
changeset 12218 6597093b77e7
parent 6470 f3015fd68d66
child 14981 e73f8140af78
permissions -rw-r--r--
GPLed;
     1 (*  Title:      HOLCF/IOA/TrivEx.thy
     2     ID:         $Id$
     3     Author:     Olaf Müller
     4     License:    GPL (GNU GENERAL PUBLIC LICENSE)
     5 
     6 Trivial Abstraction Example with fairness.
     7 *)
     8 
     9 TrivEx2 = Abstraction + IOA +
    10 
    11 datatype action = INC
    12 
    13 consts
    14 
    15 C_asig   ::  "action signature"
    16 C_trans  :: (action, nat)transition set
    17 C_ioa    :: (action, nat)ioa
    18 C_live_ioa :: (action, nat)live_ioa
    19 
    20 A_asig   :: "action signature"
    21 A_trans  :: (action, bool)transition set
    22 A_ioa    :: (action, bool)ioa
    23 A_live_ioa :: (action, bool)live_ioa
    24 
    25 h_abs    :: "nat => bool"
    26 
    27 defs
    28 
    29 C_asig_def
    30   "C_asig == ({},{INC},{})"
    31 
    32 C_trans_def "C_trans ==                                           
    33  {tr. let s = fst(tr);                                               
    34           t = snd(snd(tr))                                           
    35       in case fst(snd(tr))                                           
    36       of                                                             
    37       INC       => t = Suc(s)}"
    38 
    39 C_ioa_def "C_ioa == 
    40  (C_asig, {0}, C_trans,{},{})"
    41 
    42 C_live_ioa_def 
    43   "C_live_ioa == (C_ioa, WF C_ioa {INC})"
    44 
    45 A_asig_def
    46   "A_asig == ({},{INC},{})"
    47 
    48 A_trans_def "A_trans ==                                           
    49  {tr. let s = fst(tr);                                               
    50           t = snd(snd(tr))                                           
    51       in case fst(snd(tr))                                           
    52       of                                                             
    53       INC       => t = True}"
    54 
    55 A_ioa_def "A_ioa == 
    56  (A_asig, {False}, A_trans,{},{})"
    57 
    58 A_live_ioa_def 
    59   "A_live_ioa == (A_ioa, WF A_ioa {INC})"
    60 
    61 
    62 
    63 h_abs_def
    64   "h_abs n == n~=0"
    65 
    66 rules
    67 
    68 MC_result
    69   "validLIOA (A_ioa,WF A_ioa {INC}) (<>[] <%(b,a,c). b>)"
    70 
    71 end