src/HOLCF/IOA/meta_theory/ShortExecutions.thy
author wenzelm
Thu, 15 Nov 2001 23:25:46 +0100
changeset 12218 6597093b77e7
parent 12028 52aa183c15bb
child 14981 e73f8140af78
permissions -rw-r--r--
GPLed;
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/ShortExecutions.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
wenzelm
parents: 12028
diff changeset
     4
    License:    GPL (GNU GENERAL PUBLIC LICENSE)
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     5
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
     6
Some properties about (Cut ex), defined as follows:
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     7
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
     8
For every execution ex there is another shorter execution (Cut ex) 
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
     9
that has the same trace as ex, but its schedule ends with an external action.
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
ShortExecutions = Traces + 
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
consts 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    16
4283
92707e24b62b managed merge details;
mueller
parents: 3847
diff changeset
    17
(*  LastActExtex      ::"('a,'s)ioa => ('a,'s) pairs  => bool"*)
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    18
  LastActExtsch     ::"('a,'s)ioa => 'a Seq         => bool"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    19
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    20
  Cut               ::"('a => bool) => 'a Seq    => 'a Seq"
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    21
 
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    22
  oraclebuild       ::"('a => bool) => 'a Seq -> 'a Seq -> 'a Seq"
3071
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
LastActExtsch_def
3847
d5905b98291f fixed dots;
wenzelm
parents: 3361
diff changeset
    27
  "LastActExtsch A sch == (Cut (%x. x: ext A) sch = sch)"
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    28
4283
92707e24b62b managed merge details;
mueller
parents: 3847
diff changeset
    29
(* LastActExtex_def
10835
nipkow
parents: 4283
diff changeset
    30
  "LastActExtex A ex == LastActExtsch A (filter_act$ex)" *)
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    31
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    32
Cut_def
10835
nipkow
parents: 4283
diff changeset
    33
  "Cut P s == oraclebuild P$s$(Filter P$s)"
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    34
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    35
oraclebuild_def
10835
nipkow
parents: 4283
diff changeset
    36
  "oraclebuild P == (fix$(LAM h s t. case t of 
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    37
       nil => nil
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    38
    | x##xs => 
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    39
      (case x of 
12028
52aa183c15bb replaced Undef by UU;
wenzelm
parents: 10835
diff changeset
    40
        UU => UU
10835
nipkow
parents: 4283
diff changeset
    41
      | Def y => (Takewhile (%x.~P x)$s)
nipkow
parents: 4283
diff changeset
    42
                  @@ (y>>(h$(TL$(Dropwhile (%x.~ P x)$s))$xs))
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    43
      )
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    44
    ))"
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    45
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    46
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
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    49
rules
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    50
3361
1877e333f66c Last changes for new release 94-8
mueller
parents: 3275
diff changeset
    51
Cut_prefixcl_Finite
1877e333f66c Last changes for new release 94-8
mueller
parents: 3275
diff changeset
    52
  "Finite s ==> (? y. s = Cut P s @@ y)"
3071
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
LastActExtsmall1
10835
nipkow
parents: 4283
diff changeset
    55
  "LastActExtsch A sch ==> LastActExtsch A (TL$(Dropwhile P$sch))"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    56
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    57
LastActExtsmall2
3275
3f53f2c876f4 changes for release 94-8
mueller
parents: 3071
diff changeset
    58
  "[| Finite sch1; LastActExtsch A (sch1 @@ sch2) |] ==> LastActExtsch A sch2"
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    59
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    60
end
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    61