src/CCL/mono.ML
author wenzelm
Sat, 17 Sep 2005 17:35:26 +0200
changeset 17456 bcf7544875b2
parent 1459 d12da312eff4
permissions -rw-r--r--
converted to Isar theory format;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1459
diff changeset
     1
(*  Title:      CCL/mono.ML
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     2
    ID:         $Id$
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     3
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1459
diff changeset
     4
Monotonicity of various operations.
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     5
*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     6
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1459
diff changeset
     7
val prems = goal (the_context ()) "A<=B ==> Union(A) <= Union(B)";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     8
by (cfast_tac prems 1);
757
2ca12511676d added qed and qed_goal[w]
clasohm
parents: 0
diff changeset
     9
qed "Union_mono";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    10
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1459
diff changeset
    11
val prems = goal (the_context ()) "[| B<=A |] ==> Inter(A) <= Inter(B)";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    12
by (cfast_tac prems 1);
757
2ca12511676d added qed and qed_goal[w]
clasohm
parents: 0
diff changeset
    13
qed "Inter_anti_mono";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    14
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1459
diff changeset
    15
val prems = goal (the_context ())
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    16
    "[| A<=B;  !!x. x:A ==> f(x)<=g(x) |] ==> \
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    17
\    (UN x:A. f(x)) <= (UN x:B. g(x))";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    18
by (REPEAT (eresolve_tac [UN_E,ssubst] 1
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    19
     ORELSE ares_tac ((prems RL [subsetD]) @ [subsetI,UN_I]) 1));
757
2ca12511676d added qed and qed_goal[w]
clasohm
parents: 0
diff changeset
    20
qed "UN_mono";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    21
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1459
diff changeset
    22
val prems = goal (the_context ())
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    23
    "[| B<=A;  !!x. x:A ==> f(x)<=g(x) |] ==> \
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    24
\    (INT x:A. f(x)) <= (INT x:A. g(x))";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    25
by (REPEAT (ares_tac ((prems RL [subsetD]) @ [subsetI,INT_I]) 1
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    26
     ORELSE etac INT_D 1));
757
2ca12511676d added qed and qed_goal[w]
clasohm
parents: 0
diff changeset
    27
qed "INT_anti_mono";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    28
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1459
diff changeset
    29
val prems = goal (the_context ()) "[| A<=C;  B<=D |] ==> A Un B <= C Un D";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    30
by (cfast_tac prems 1);
757
2ca12511676d added qed and qed_goal[w]
clasohm
parents: 0
diff changeset
    31
qed "Un_mono";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    32
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1459
diff changeset
    33
val prems = goal (the_context ()) "[| A<=C;  B<=D |] ==> A Int B <= C Int D";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    34
by (cfast_tac prems 1);
757
2ca12511676d added qed and qed_goal[w]
clasohm
parents: 0
diff changeset
    35
qed "Int_mono";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    36
17456
bcf7544875b2 converted to Isar theory format;
wenzelm
parents: 1459
diff changeset
    37
val prems = goal (the_context ()) "[| A<=B |] ==> Compl(B) <= Compl(A)";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    38
by (cfast_tac prems 1);
757
2ca12511676d added qed and qed_goal[w]
clasohm
parents: 0
diff changeset
    39
qed "Compl_anti_mono";