src/HOL/IMP/Com.ML
author lcp
Tue, 25 Apr 1995 11:14:03 +0200
changeset 1072 0140ff702b23
parent 924 806721cfbf46
child 1465 5d7a7e439cec
permissions -rw-r--r--
updated version
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
924
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
     1
(*  Title: 	HOL/IMP/Com.ML
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
     2
    ID:         $Id$
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
     3
    Author: 	Heiko Loetzbeyer & Robert Sandner, TUM
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
     4
    Copyright   1994 TUM
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
     5
*)
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
     6
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
     7
open Com;
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
     8
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
     9
val evala_elim_cases = map (evala.mk_cases aexp.simps)
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    10
   ["<N(n),sigma> -a-> i", "<X(x),sigma> -a-> i",
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    11
    "<Op1 f e,sigma> -a-> i", "<Op2 f a1 a2,sigma>  -a-> i"
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    12
   ];
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    13
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    14
val evalb_elim_cases = map (evalb.mk_cases bexp.simps)
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    15
   ["<true,sigma> -b-> x", "<false,sigma> -b-> x",
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    16
    "<ROp f a0 a1,sigma> -b-> x", "<noti(b),sigma> -b-> x",
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    17
    "<b0 andi b1,sigma> -b-> x", "<b0 ori b1,sigma> -b-> x"
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    18
   ];
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    19
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    20
val evalb_simps = map (fn s => prove_goal Com.thy s
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    21
    (fn _ => [fast_tac (HOL_cs addSIs evalb.intrs addSEs evalb_elim_cases) 1]))
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    22
  ["(<true,sigma> -b-> w) = (w=True)",
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    23
   "(<false,sigma> -b-> w) = (w=False)",
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    24
   "(<ROp f a0 a1,sigma> -b-> w) = \
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    25
\   (? m. <a0,sigma> -a-> m & (? n. <a1,sigma> -a-> n & w = f m n))",
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    26
   "(<noti(b),sigma> -b-> w) = (? x. <b,sigma> -b-> x & w = (~x))",
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    27
   "(<b0 andi b1,sigma> -b-> w) = \
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    28
\   (? x. <b0,sigma> -b-> x & (? y. <b1,sigma> -b-> y & w = (x&y)))",
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    29
   "(<b0 ori b1,sigma> -b-> w) = \
806721cfbf46 new version of HOL/IMP with curried function application
clasohm
parents:
diff changeset
    30
\   (? x. <b0,sigma> -b-> x & (? y. <b1,sigma> -b-> y & w = (x|y)))"];