src/HOLCF/IOA/ex/TrivEx2.thy
changeset 6470 f3015fd68d66
child 12218 6597093b77e7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/HOLCF/IOA/ex/TrivEx2.thy	Thu Apr 22 11:06:35 1999 +0200
@@ -0,0 +1,71 @@
+(*  Title:      HOLCF/IOA/TrivEx.thy
+    ID:         $Id$
+    Author:     Olaf Mueller
+    Copyright   1995  TU Muenchen
+
+Trivial Abstraction Example with fairness
+*)
+
+TrivEx2 = Abstraction + IOA +
+
+datatype action = INC
+
+consts
+
+C_asig   ::  "action signature"
+C_trans  :: (action, nat)transition set
+C_ioa    :: (action, nat)ioa
+C_live_ioa :: (action, nat)live_ioa
+
+A_asig   :: "action signature"
+A_trans  :: (action, bool)transition set
+A_ioa    :: (action, bool)ioa
+A_live_ioa :: (action, bool)live_ioa
+
+h_abs    :: "nat => bool"
+
+defs
+
+C_asig_def
+  "C_asig == ({},{INC},{})"
+
+C_trans_def "C_trans ==                                           
+ {tr. let s = fst(tr);                                               
+          t = snd(snd(tr))                                           
+      in case fst(snd(tr))                                           
+      of                                                             
+      INC       => t = Suc(s)}"
+
+C_ioa_def "C_ioa == 
+ (C_asig, {0}, C_trans,{},{})"
+
+C_live_ioa_def 
+  "C_live_ioa == (C_ioa, WF C_ioa {INC})"
+
+A_asig_def
+  "A_asig == ({},{INC},{})"
+
+A_trans_def "A_trans ==                                           
+ {tr. let s = fst(tr);                                               
+          t = snd(snd(tr))                                           
+      in case fst(snd(tr))                                           
+      of                                                             
+      INC       => t = True}"
+
+A_ioa_def "A_ioa == 
+ (A_asig, {False}, A_trans,{},{})"
+
+A_live_ioa_def 
+  "A_live_ioa == (A_ioa, WF A_ioa {INC})"
+
+
+
+h_abs_def
+  "h_abs n == n~=0"
+
+rules
+
+MC_result
+  "validLIOA (A_ioa,WF A_ioa {INC}) (<>[] <%(b,a,c). b>)"
+
+end
\ No newline at end of file