src/HOLCF/IOA/meta_theory/Sequence.thy
author wenzelm
Mon, 20 Oct 1997 12:47:02 +0200
changeset 3952 dca1bce88ec8
parent 3275 3f53f2c876f4
child 4283 92707e24b62b
permissions -rw-r--r--
replaced ops by consts;
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
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    32
 "@Cons"     ::"'a => 'a Seq => 'a Seq"       ("(_>>_)"  [66,65] 65)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    33
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    34
syntax (symbols)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    35
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    36
 "@Cons"     ::"'a => 'a Seq => 'a Seq"       ("(_\\<leadsto>_)"  [66,65] 65)
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
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    39
translations
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
  "a>>s" == "Cons a`s"
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
defs
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
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    46
Cons_def      "Cons a == LAM s. Def a ## s"
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
Filter_def    "Filter P == sfilter`(flift2 P)"
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
Map_def       "Map f  == smap`(flift2 f)"
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
Forall_def    "Forall P == sforall (flift2 P)"
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
Last_def      "Last == slast"
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
Dropwhile_def "Dropwhile P == sdropwhile`(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
Takewhile_def "Takewhile P == stakewhile`(flift2 P)"
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
Flat_def      "Flat == sflat"
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
Zip_def
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    63
  "Zip == (fix`(LAM h t1 t2. case t1 of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    64
               nil   => nil
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    65
             | x##xs => (case t2 of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    66
                          nil => UU 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    67
                        | y##ys => (case x of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    68
                                      Undef  => UU
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    69
                                    | Def a => (case y of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    70
                                                  Undef => UU
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    71
                                                | Def b => Def (a,b)##(h`xs`ys))))))"
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
Filter2_def    "Filter2 P == (fix`(LAM h t. case t of 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    74
            nil => nil
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    75
	  | 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
    76
                     then x##(h`xs)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    77
                     else     h`xs))))" 
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    78
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    79
rules
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
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    82
(* for test purposes should be deleted FIX !! *)
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    83
adm_all    "adm f"
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    84
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    85
981258186b71 New meta theory for IOA based on HOLCF.
mueller
parents:
diff changeset
    86
end