src/HOLCF/IOA/meta_theory/CompoScheds.thy
author nipkow
Tue, 09 Jan 2001 15:36:30 +0100
changeset 10835 f4745d77e620
parent 3842 b55686a7b22c
child 12028 52aa183c15bb
permissions -rw-r--r--
` -> $
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/CompoScheds.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 Schedule 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
CompoScheds = CompoExecs + 
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
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    13
consts
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    14
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    15
 mkex     ::"('a,'s)ioa => ('a,'t)ioa => 'a Seq =>
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    16
              ('a,'s)execution => ('a,'t)execution =>('a,'s*'t)execution" 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    17
 mkex2    ::"('a,'s)ioa => ('a,'t)ioa => 'a Seq -> 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    18
              ('a,'s)pairs -> ('a,'t)pairs -> 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    19
              ('s => 't => ('a,'s*'t)pairs)"
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    20
 par_scheds ::"['a schedule_module,'a schedule_module] => 'a schedule_module"
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    21
3071
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
mkex_def  
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    27
  "mkex A B sch exA exB == 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    28
       ((fst exA,fst exB),
10835
nipkow
parents: 3842
diff changeset
    29
        (mkex2 A B$sch$(snd exA)$(snd exB)) (fst exA) (fst exB))"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    30
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    31
mkex2_def
10835
nipkow
parents: 3842
diff changeset
    32
  "mkex2 A B == (fix$(LAM h sch exA exB. (%s t. case sch of 
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    33
       nil => nil
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    34
    | x##xs => 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    35
      (case x of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    36
        Undef => UU
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    37
      | Def y => 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    38
         (if y:act A then 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    39
             (if y:act B then 
10835
nipkow
parents: 3842
diff changeset
    40
                (case HD$exA of
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    41
                   Undef => UU
10835
nipkow
parents: 3842
diff changeset
    42
                 | Def a => (case HD$exB of
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    43
                              Undef => UU
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    44
                            | Def b => 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    45
                   (y,(snd a,snd b))>>
10835
nipkow
parents: 3842
diff changeset
    46
                     (h$xs$(TL$exA)$(TL$exB)) (snd a) (snd b)))
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    47
              else
10835
nipkow
parents: 3842
diff changeset
    48
                (case HD$exA of
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    49
                   Undef => UU
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    50
                 | Def a => 
10835
nipkow
parents: 3842
diff changeset
    51
                   (y,(snd a,t))>>(h$xs$(TL$exA)$exB) (snd a) t)
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
          else 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    54
             (if y:act B then 
10835
nipkow
parents: 3842
diff changeset
    55
                (case HD$exB of
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    56
                   Undef => UU
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    57
                 | Def b => 
10835
nipkow
parents: 3842
diff changeset
    58
                   (y,(s,snd b))>>(h$xs$exA$(TL$exB)) s (snd b))
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    59
             else
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    60
               UU
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
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    65
par_scheds_def
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    66
  "par_scheds SchedsA SchedsB == 
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    67
       let schA = fst SchedsA; sigA = snd SchedsA; 
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    68
           schB = fst SchedsB; sigB = snd SchedsB       
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    69
       in
10835
nipkow
parents: 3842
diff changeset
    70
       (    {sch. Filter (%a. a:actions sigA)$sch : schA}
nipkow
parents: 3842
diff changeset
    71
        Int {sch. Filter (%a. a:actions sigB)$sch : schB}
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    72
        Int {sch. Forall (%x. x:(actions sigA Un actions sigB)) sch},
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    73
        asig_comp sigA sigB)"
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    74
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    75
end