src/HOLCF/IOA/meta_theory/Sequence.thy
author wenzelm
Sun, 25 Oct 1998 12:33:27 +0100
changeset 5769 6a422b22ba02
parent 4559 8e604d885b54
child 7229 6773ba0c36d5
permissions -rw-r--r--
tuned checklist;
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/Sequence.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
Sequences over flat domains with lifted elements
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
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    10
Sequence = Seq + 
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
default term
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
types 'a Seq = ('a::term lift)seq
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    15
3952
dca1bce88ec8 replaced ops by consts;
wenzelm
parents: 3275
diff changeset
    16
consts
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
  Cons             ::"'a            => 'a Seq -> 'a Seq"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    19
  Filter           ::"('a => bool)  => 'a Seq -> 'a Seq"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    20
  Map              ::"('a => 'b)    => 'a Seq -> 'b Seq"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    21
  Forall           ::"('a => bool)  => 'a Seq => bool"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    22
  Last             ::"'a Seq        -> 'a lift"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    23
  Dropwhile,
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    24
  Takewhile        ::"('a => bool)  => 'a Seq -> 'a Seq" 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    25
  Zip              ::"'a Seq        -> 'b Seq -> ('a * 'b) Seq"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    26
  Flat             ::"('a Seq) seq   -> 'a Seq"
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
  Filter2          ::"('a => bool)  => 'a Seq -> 'a Seq"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    29
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    30
syntax
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    31
4559
8e604d885b54 added files containing temproal logic and abstraction;
mueller
parents: 4283
diff changeset
    32
 "@Cons"     ::"'a => 'a Seq => 'a Seq"       ("(_/>>_)"  [66,65] 65)
4283
92707e24b62b managed merge details;
mueller
parents: 3952
diff changeset
    33
 (* list Enumeration *)
92707e24b62b managed merge details;
mueller
parents: 3952
diff changeset
    34
  "_totlist"      :: args => 'a Seq                          ("[(_)!]")
92707e24b62b managed merge details;
mueller
parents: 3952
diff changeset
    35
  "_partlist"     :: args => 'a Seq                          ("[(_)?]")
92707e24b62b managed merge details;
mueller
parents: 3952
diff changeset
    36
3071
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    37
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    38
syntax (symbols)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    39
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    40
 "@Cons"     ::"'a => 'a Seq => 'a Seq"       ("(_\\<leadsto>_)"  [66,65] 65)
4283
92707e24b62b managed merge details;
mueller
parents: 3952
diff changeset
    41
 
3071
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
translations
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    44
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    45
  "a>>s" == "Cons a`s"
4283
92707e24b62b managed merge details;
mueller
parents: 3952
diff changeset
    46
  "[x, xs!]"     == "x>>[xs!]"
92707e24b62b managed merge details;
mueller
parents: 3952
diff changeset
    47
  "[x!]"         == "x>>nil"
92707e24b62b managed merge details;
mueller
parents: 3952
diff changeset
    48
  "[x, xs?]"     == "x>>[xs?]"
92707e24b62b managed merge details;
mueller
parents: 3952
diff changeset
    49
  "[x?]"         == "x>>UU" 
3071
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
defs
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
Cons_def      "Cons a == LAM s. Def a ## s"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    55
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    56
Filter_def    "Filter P == sfilter`(flift2 P)"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    57
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    58
Map_def       "Map f  == smap`(flift2 f)"
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
Forall_def    "Forall P == sforall (flift2 P)"
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
Last_def      "Last == slast"
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
Dropwhile_def "Dropwhile P == sdropwhile`(flift2 P)"
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
Takewhile_def "Takewhile P == stakewhile`(flift2 P)"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    67
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    68
Flat_def      "Flat == sflat"
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
Zip_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    71
  "Zip == (fix`(LAM h t1 t2. case t1 of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    72
               nil   => nil
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    73
             | x##xs => (case t2 of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    74
                          nil => UU 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    75
                        | y##ys => (case x of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    76
                                      Undef  => UU
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    77
                                    | Def a => (case y of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    78
                                                  Undef => UU
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    79
                                                | Def b => Def (a,b)##(h`xs`ys))))))"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    80
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    81
Filter2_def    "Filter2 P == (fix`(LAM h t. case t of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    82
            nil => nil
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    83
	  | x##xs => (case x of Undef => UU | Def y => (if P y                                 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    84
                     then x##(h`xs)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    85
                     else     h`xs))))" 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    86
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    87
rules
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    88
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    89
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    90
(* for test purposes should be deleted FIX !! *)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    91
adm_all    "adm f"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    92
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    93
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    94
end