src/HOLCF/IOA/meta_theory/CompoExecs.thy
author mueller
Thu, 17 Jul 1997 12:43:32 +0200
changeset 3521 bdc51b4c6050
parent 3275 3f53f2c876f4
child 3842 b55686a7b22c
permissions -rw-r--r--
changes needed for adding fairness
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"
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    18
 Filter_ex  ::"'a signature => ('a,'s)execution => ('a,'s)execution"
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    19
 Filter_ex2 ::"'a signature => ('a,'s)pairs     -> ('a,'s)pairs" 
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    20
 stutter    ::"'a signature => ('a,'s)execution => bool" 
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    21
 stutter2   ::"'a signature => ('a,'s)pairs     -> ('s => tr)"
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    22
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    23
 par_execs  ::"[('a,'s)execution_module,('a,'t)execution_module] => ('a,'s*'t)execution_module"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    24
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
defs 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    27
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    28
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    29
ProjA_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    30
 "ProjA ex == (fst (fst ex), ProjA2`(snd ex))" 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    31
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    32
ProjB_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    33
 "ProjB ex == (snd (fst ex), ProjB2`(snd ex))" 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    34
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    35
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    36
ProjA2_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    37
  "ProjA2 == Map (%x.(fst x,fst(snd x)))"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    38
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    39
ProjB2_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    40
  "ProjB2 == Map (%x.(fst x,snd(snd x)))"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    41
 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    42
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    43
Filter_ex_def
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    44
  "Filter_ex sig ex == (fst ex,Filter_ex2 sig`(snd ex))"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    45
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    46
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    47
Filter_ex2_def
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    48
  "Filter_ex2 sig ==  Filter (%x.fst x:actions sig)"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    49
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    50
stutter_def
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    51
  "stutter sig ex == ((stutter2 sig`(snd ex)) (fst ex) ~= FF)"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    52
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    53
stutter2_def
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    54
  "stutter2 sig ==(fix`(LAM h ex. (%s. case ex of 
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    55
      nil => TT
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    56
    | x##xs => (flift1 
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    57
            (%p.(If Def ((fst p)~:actions sig)
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    58
                 then Def (s=(snd p)) 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    59
                 else TT fi)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    60
                andalso (h`xs) (snd p)) 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    61
             `x)
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
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    64
par_execs_def
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    65
  "par_execs ExecsA ExecsB == 
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    66
       let exA = fst ExecsA; sigA = snd ExecsA; 
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    67
           exB = fst ExecsB; sigB = snd ExecsB       
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    68
       in
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    69
       (    {ex. Filter_ex sigA (ProjA ex) : exA}
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    70
        Int {ex. Filter_ex sigB (ProjB ex) : exB}
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    71
        Int {ex. stutter sigA (ProjA ex)}
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    72
        Int {ex. stutter sigB (ProjB ex)}
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    73
        Int {ex. Forall (%x.fst x:(actions sigA Un actions sigB)) (snd ex)},
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    74
        asig_comp sigA sigB)"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    75
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    76
end