src/ZF/IMP/Bexp.ML
author clasohm
Thu, 19 Oct 1995 13:25:03 +0100
changeset 1287 84f44b84d584
parent 482 3a4e092ba69c
permissions -rw-r--r--
corrected spelling of title (to test new CVS loginfo)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
482
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
     1
(*  Title: 	ZF/IMP/Bexp.ML
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
     2
    ID:         $Id$
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
     3
    Author: 	Heiko Loetzbeyer & Robert Sandner, TUM
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
     4
    Copyright   1994 TUM
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
     5
*)
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
     6
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
     7
structure Bexp = Datatype_Fun
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
     8
 (
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
     9
  val thy = Aexp.thy;
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    10
  val thy_name = "Bexp"
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    11
  val rec_specs = 
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    12
      [
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    13
       (
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    14
        "bexp", "univ(aexp Un ((nat*nat)->bool) )",
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    15
	  [
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    16
           ( ["true","false"],	"i", NoSyn),
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    17
	   ( ["noti"],		"i => i", NoSyn),
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    18
	   ( ["andi"], 	"[i,i]=>i", Infixl 60),
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    19
	   ( ["ori"], 	"[i,i]=>i", Infixl 60),
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    20
           ( ["ROp"], "[i,i,i] => i", NoSyn)
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    21
          ]
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    22
       )
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    23
      ];
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    24
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    25
  val rec_styp = "i";
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    26
  val sintrs = 
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    27
       [
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    28
        "true : bexp",
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    29
	"false : bexp",
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    30
	"[| a0 : aexp; a1 : aexp; f: (nat*nat)->bool |] ==> ROp(f,a0,a1) : bexp",
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    31
	"b : bexp ==> noti(b) : bexp",
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    32
	"[| b0 : bexp; b1 : bexp |] ==> b0 andi b1 : bexp",
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    33
	"[| b0 : bexp; b1 : bexp |] ==> b0 ori b1 : bexp"
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    34
       ];
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    35
  val monos = [];
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    36
  val type_intrs = datatype_intrs;
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    37
  val type_elims = datatype_elims;
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    38
 );