src/HOLCF/IOA/meta_theory/CompoExecs.thy
author mueller
Wed, 21 May 1997 15:08:52 +0200
changeset 3275 3f53f2c876f4
parent 3071 981258186b71
child 3521 bdc51b4c6050
permissions -rw-r--r--
changes for release 94-8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     1
(*  Title:      HOLCF/IOA/meta_theory/CompoExecs.thy
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
     2
    ID:         $Id$
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     3
    Author:     Olaf M"uller
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     4
    Copyright   1996  TU Muenchen
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     5
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     6
Compositionality on Execution level.
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     7
*)  
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     8
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     9
CompoExecs = Traces + 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    10
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    11
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    12
consts 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    13
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    14
 ProjA      ::"('a,'s * 't)execution => ('a,'s)execution"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    15
 ProjA2     ::"('a,'s * 't)pairs     -> ('a,'s)pairs"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    16
 ProjB      ::"('a,'s * 't)execution => ('a,'t)execution"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    17
 ProjB2     ::"('a,'s * 't)pairs     -> ('a,'t)pairs"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    18
 Filter_ex  ::"('a,'s)ioa => ('a,'s)execution => ('a,'s)execution"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    19
 Filter_ex2 ::"('a,'s)ioa => ('a,'s)pairs     -> ('a,'s)pairs" 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    20
 stutter    ::"('a,'s)ioa => ('a,'s)execution => bool" 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    21
 stutter2   ::"('a,'s)ioa => ('a,'s)pairs     -> ('s => tr)"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    22
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    23
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    24
defs 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    25
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    26
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    27
ProjA_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    28
 "ProjA ex == (fst (fst ex), ProjA2`(snd ex))" 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    29
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    30
ProjB_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    31
 "ProjB ex == (snd (fst ex), ProjB2`(snd ex))" 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    32
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    33
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    34
ProjA2_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    35
  "ProjA2 == Map (%x.(fst x,fst(snd x)))"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    36
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    37
ProjB2_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    38
  "ProjB2 == Map (%x.(fst x,snd(snd x)))"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    39
 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    40
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    41
Filter_ex_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    42
  "Filter_ex A ex == (fst ex,Filter_ex2 A`(snd ex))"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    43
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    44
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    45
Filter_ex2_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    46
  "Filter_ex2 A ==  Filter (%x.fst x:act A)"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    47
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    48
stutter_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    49
  "stutter A ex == ((stutter2 A`(snd ex)) (fst ex) ~= FF)"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    50
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    51
stutter2_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    52
  "stutter2 A ==(fix`(LAM h ex. (%s. case ex of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    53
      nil => TT
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    54
    | x##xs => (flift1 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    55
            (%p.(If Def ((fst p)~:act A)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    56
                 then Def (s=(snd p)) 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    57
                 else TT fi)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    58
                andalso (h`xs) (snd p)) 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    59
             `x)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    60
   )))" 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    61
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    62
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    63
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    64
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    65
end