src/HOLCF/IOA/meta_theory/CompoTraces.thy
author kleing
Mon, 21 Jun 2004 10:25:57 +0200
changeset 14981 e73f8140af78
parent 12218 6597093b77e7
child 17233 41eee2e7b465
permissions -rw-r--r--
Merged in license change from Isabelle2004
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/CompoTraces.thy
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
     2
    ID:         $Id$
12218
wenzelm
parents: 12028
diff changeset
     3
    Author:     Olaf Müller
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     4
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     5
Compositionality on Trace level.
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     6
*) 
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
CompoTraces = CompoScheds + ShortExecutions +
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     9
 
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
consts  
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    12
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    13
 mksch      ::"('a,'s)ioa => ('a,'t)ioa => 'a Seq -> 'a Seq -> 'a Seq -> 'a Seq" 
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    14
 par_traces ::"['a trace_module,'a trace_module] => 'a trace_module"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    15
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    16
defs
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    17
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    18
mksch_def
10835
nipkow
parents: 3842
diff changeset
    19
  "mksch A B == (fix$(LAM h tr schA schB. case tr of 
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    20
       nil => nil
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    21
    | x##xs => 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    22
      (case x of 
12028
52aa183c15bb replaced Undef by UU;
wenzelm
parents: 10835
diff changeset
    23
        UU => UU
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    24
      | Def y => 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    25
         (if y:act A then 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    26
             (if y:act B then 
10835
nipkow
parents: 3842
diff changeset
    27
                   ((Takewhile (%a. a:int A)$schA)
nipkow
parents: 3842
diff changeset
    28
                      @@ (Takewhile (%a. a:int B)$schB)
nipkow
parents: 3842
diff changeset
    29
                           @@ (y>>(h$xs
nipkow
parents: 3842
diff changeset
    30
                                    $(TL$(Dropwhile (%a. a:int A)$schA))
nipkow
parents: 3842
diff changeset
    31
                                    $(TL$(Dropwhile (%a. a:int B)$schB))
3071
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
              else
10835
nipkow
parents: 3842
diff changeset
    34
                 ((Takewhile (%a. a:int A)$schA)
nipkow
parents: 3842
diff changeset
    35
                  @@ (y>>(h$xs
nipkow
parents: 3842
diff changeset
    36
                           $(TL$(Dropwhile (%a. a:int A)$schA))
nipkow
parents: 3842
diff changeset
    37
                           $schB)))
3071
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
          else 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    40
             (if y:act B then 
10835
nipkow
parents: 3842
diff changeset
    41
                 ((Takewhile (%a. a:int B)$schB)
nipkow
parents: 3842
diff changeset
    42
                     @@ (y>>(h$xs
nipkow
parents: 3842
diff changeset
    43
                              $schA
nipkow
parents: 3842
diff changeset
    44
                              $(TL$(Dropwhile (%a. a:int B)$schB))
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
             else
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    47
               UU
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    48
             )
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
       )))"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    51
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    52
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    53
par_traces_def
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    54
  "par_traces TracesA TracesB == 
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    55
       let trA = fst TracesA; sigA = snd TracesA; 
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    56
           trB = fst TracesB; sigB = snd TracesB       
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    57
       in
10835
nipkow
parents: 3842
diff changeset
    58
       (    {tr. Filter (%a. a:actions sigA)$tr : trA}
nipkow
parents: 3842
diff changeset
    59
        Int {tr. Filter (%a. a:actions sigB)$tr : trB}
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    60
        Int {tr. Forall (%x. x:(externals sigA Un externals sigB)) tr},
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    61
        asig_comp sigA sigB)"
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    62
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    63
rules
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
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    66
finiteR_mksch
10835
nipkow
parents: 3842
diff changeset
    67
  "Finite (mksch A B$tr$x$y) --> Finite tr"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    68
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    69
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    70
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    71
end