src/ZF/IMP/Com.ML
author wenzelm
Thu, 14 Oct 1999 15:04:36 +0200
changeset 7866 3ccaa11b6df9
parent 6141 a6922171b396
child 11320 56aa53caf333
permissions -rw-r--r--
pdf: generate thumbnails if ISABELLE_THUMBPDF set;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1461
6bcb44e4d6e5 expanded tabs
clasohm
parents: 1420
diff changeset
     1
(*  Title:      ZF/IMP/Com.ML
482
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
     2
    ID:         $Id$
1461
6bcb44e4d6e5 expanded tabs
clasohm
parents: 1420
diff changeset
     3
    Author:     Heiko Loetzbeyer & Robert Sandner, TUM
482
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
4091
771b1f6422a8 isatool fixclasimp;
wenzelm
parents: 2469
diff changeset
     7
val type_cs = claset() addSDs [evala.dom_subset RS subsetD,
2469
b50b8c0eec01 Implicit simpsets and clasets for FOL and ZF
paulson
parents: 1461
diff changeset
     8
			      evalb.dom_subset RS subsetD,
b50b8c0eec01 Implicit simpsets and clasets for FOL and ZF
paulson
parents: 1461
diff changeset
     9
			      evalc.dom_subset RS subsetD];
511
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    10
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    11
(**********     type_intrs for evala     **********)
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    12
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    13
val evala_type_intrs = 
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    14
 map (fn s => prove_goal Com.thy s (fn _ => [(fast_tac type_cs 1)]))
1420
04eabfa73d83 Added line breaks and other cosmetic changes
paulson
parents: 511
diff changeset
    15
 ["!!a.<a,sigma> -a-> n ==> a:aexp",
04eabfa73d83 Added line breaks and other cosmetic changes
paulson
parents: 511
diff changeset
    16
  "!!a.<a,sigma> -a-> n ==> sigma:loc->nat",
511
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    17
  "!!a.<a,sigma> -a-> n ==> n:nat"];
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    18
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    19
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    20
(**********     type_intrs for evalb     **********)
482
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    21
511
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    22
val evalb_type_intrs = 
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    23
 map (fn s => prove_goal Com.thy s (fn _ => [(fast_tac type_cs 1)]))
1420
04eabfa73d83 Added line breaks and other cosmetic changes
paulson
parents: 511
diff changeset
    24
 ["!!b.<b,sigma> -b-> w ==> b:bexp",
04eabfa73d83 Added line breaks and other cosmetic changes
paulson
parents: 511
diff changeset
    25
  "!!b.<b,sigma> -b-> w ==> sigma:loc->nat",
511
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    26
  "!!b.<b,sigma> -b-> w ==> w:bool"];
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    27
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    28
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    29
(**********     type_intrs for evalb     **********)
482
3a4e092ba69c Initial revision
nipkow
parents:
diff changeset
    30
511
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    31
val evalc_type_intrs = 
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    32
 map (fn s => prove_goal Com.thy s (fn _ => [(fast_tac type_cs 1)]))
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    33
 ["!!c.<c,sigma> -c-> sigma' ==> c:com",
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    34
  "!!c.<c,sigma> -c-> sigma' ==> sigma:loc->nat",
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    35
  "!!c.<c,sigma> -c-> sigma' ==> sigma':loc->nat"];
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    36
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    37
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    38
val op_type_intrs = evala_type_intrs@evalb_type_intrs@evalc_type_intrs;
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    39
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    40
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    41
val aexp_elim_cases = 
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    42
   [
6141
a6922171b396 removal of the (thm list) argument of mk_cases
paulson
parents: 6047
diff changeset
    43
    evala.mk_cases "<N(n),sigma> -a-> i",
a6922171b396 removal of the (thm list) argument of mk_cases
paulson
parents: 6047
diff changeset
    44
    evala.mk_cases "<X(x),sigma> -a-> i",
a6922171b396 removal of the (thm list) argument of mk_cases
paulson
parents: 6047
diff changeset
    45
    evala.mk_cases "<Op1(f,e),sigma> -a-> i",
a6922171b396 removal of the (thm list) argument of mk_cases
paulson
parents: 6047
diff changeset
    46
    evala.mk_cases "<Op2(f,a1,a2),sigma>  -a-> i"
511
b2be4790da7a re-organized using new theory sections
lcp
parents: 482
diff changeset
    47
   ];