src/CCL/Set.ML
author berghofe
Fri, 11 Jul 2003 14:55:17 +0200
changeset 14102 8af7334af4b3
parent 5143 b94cd208f073
child 17456 bcf7544875b2
permissions -rw-r--r--
- Installed specific code generator for equality enforcing that arguments do not have function types, which would result in an error message during compilation. - Added test case generators for basic types.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1459
d12da312eff4 expanded tabs
clasohm
parents: 757
diff changeset
     1
(*  Title:      set/set
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     2
    ID:         $Id$
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     3
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     4
For set.thy.
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     5
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     6
Modified version of
1459
d12da312eff4 expanded tabs
clasohm
parents: 757
diff changeset
     7
    Title:      HOL/set
d12da312eff4 expanded tabs
clasohm
parents: 757
diff changeset
     8
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     9
    Copyright   1991  University of Cambridge
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    10
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    11
For set.thy.  Set theory for higher-order logic.  A set is simply a predicate.
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    12
*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    13
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    14
open Set;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    15
3837
d7f033c74b38 fixed dots;
wenzelm
parents: 1459
diff changeset
    16
val [prem] = goal Set.thy "[| P(a) |] ==> a : {x. P(x)}";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    17
by (rtac (mem_Collect_iff RS iffD2) 1);
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    18
by (rtac prem 1);
757
2ca12511676d added qed and qed_goal[w]
clasohm
parents: 642
diff changeset
    19
qed "CollectI";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    20
3837
d7f033c74b38 fixed dots;
wenzelm
parents: 1459
diff changeset
    21
val prems = goal Set.thy "[| a : {x. P(x)} |] ==> P(a)";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    22
by (resolve_tac (prems RL [mem_Collect_iff  RS iffD1]) 1);
757
2ca12511676d added qed and qed_goal[w]
clasohm
parents: 642
diff changeset
    23
qed "CollectD";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    24
8
c3d2c6dcf3f0 Installation of new simplfier. Previously appeared to set up the old
lcp
parents: 0
diff changeset
    25
val CollectE = make_elim CollectD;
c3d2c6dcf3f0 Installation of new simplfier. Previously appeared to set up the old
lcp
parents: 0
diff changeset
    26
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    27
val [prem] = goal Set.thy "[| !!x. x:A <-> x:B |] ==> A = B";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    28
by (rtac (set_extension RS iffD2) 1);
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    29
by (rtac (prem RS allI) 1);
757
2ca12511676d added qed and qed_goal[w]
clasohm
parents: 642
diff changeset
    30
qed "set_ext";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    31
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    32
(*** Bounded quantifiers ***)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    33
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    34
val prems = goalw Set.thy [Ball_def]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    35
    "[| !!x. x:A ==> P(x) |] ==> ALL x:A. P(x)";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    36
by (REPEAT (ares_tac (prems @ [allI,impI]) 1));
757
2ca12511676d added qed and qed_goal[w]
clasohm
parents: 642
diff changeset
    37
qed "ballI";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    38
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    39
val [major,minor] = goalw Set.thy [Ball_def]
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    40
    "[| ALL x:A. P(x);  x:A |] ==> P(x)";