src/HOLCF/IOA/meta_theory/CompoTraces.thy
author obua
Thu, 16 Feb 2006 03:23:57 +0100
changeset 19066 df24f2564aaa
parent 17233 41eee2e7b465
child 19741 f65265d71426
permissions -rw-r--r--
adapted to kernel changes
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
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
     6
header {* Compositionality on Trace level *}
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
     7
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
     8
theory CompoTraces
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
     9
imports CompoScheds ShortExecutions
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    10
begin
3071
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
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    15
 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
    16
 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
    17
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    18
defs
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    19
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    20
mksch_def:
10835
nipkow
parents: 3842
diff changeset
    21
  "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
    22
       nil => nil
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    23
    | x##xs => 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    24
      (case x of 
12028
52aa183c15bb replaced Undef by UU;
wenzelm
parents: 10835
diff changeset
    25
        UU => UU
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    26
      | Def y => 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    27
         (if y:act A then 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    28
             (if y:act B then 
10835
nipkow
parents: 3842
diff changeset
    29
                   ((Takewhile (%a. a:int A)$schA)
nipkow
parents: 3842
diff changeset
    30
                      @@ (Takewhile (%a. a:int B)$schB)
nipkow
parents: 3842
diff changeset
    31
                           @@ (y>>(h$xs
nipkow
parents: 3842
diff changeset
    32
                                    $(TL$(Dropwhile (%a. a:int A)$schA))
nipkow
parents: 3842
diff changeset
    33
                                    $(TL$(Dropwhile (%a. a:int B)$schB))
3071
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
              else
10835
nipkow
parents: 3842
diff changeset
    36
                 ((Takewhile (%a. a:int A)$schA)
nipkow
parents: 3842
diff changeset
    37
                  @@ (y>>(h$xs
nipkow
parents: 3842
diff changeset
    38
                           $(TL$(Dropwhile (%a. a:int A)$schA))
nipkow
parents: 3842
diff changeset
    39
                           $schB)))
3071
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
          else 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    42
             (if y:act B then 
10835
nipkow
parents: 3842
diff changeset
    43
                 ((Takewhile (%a. a:int B)$schB)
nipkow
parents: 3842
diff changeset
    44
                     @@ (y>>(h$xs
nipkow
parents: 3842
diff changeset
    45
                              $schA
nipkow
parents: 3842
diff changeset
    46
                              $(TL$(Dropwhile (%a. a:int B)$schB))
3071
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
             else
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    49
               UU
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
       )))"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    53
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    54
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    55
par_traces_def:
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    56
  "par_traces TracesA TracesB == 
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    57
       let trA = fst TracesA; sigA = snd TracesA; 
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    58
           trB = fst TracesB; sigB = snd TracesB       
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    59
       in
10835
nipkow
parents: 3842
diff changeset
    60
       (    {tr. Filter (%a. a:actions sigA)$tr : trA}
nipkow
parents: 3842
diff changeset
    61
        Int {tr. Filter (%a. a:actions sigB)$tr : trB}
3521
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    62
        Int {tr. Forall (%x. x:(externals sigA Un externals sigB)) tr},
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    63
        asig_comp sigA sigB)"
bdc51b4c6050 changes needed for adding fairness
mueller
parents: 3275
diff changeset
    64
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    65
axioms
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    66
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    67
finiteR_mksch:
10835
nipkow
parents: 3842
diff changeset
    68
  "Finite (mksch A B$tr$x$y) --> Finite tr"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    69
17233
41eee2e7b465 converted specifications to Isar theories;
wenzelm
parents: 14981
diff changeset
    70
ML {* use_legacy_bindings (the_context ()) *}
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    71
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    72
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    73
end