src/HOL/UNITY/LessThan.ML
author paulson
Wed, 24 May 2000 18:40:01 +0200
changeset 8948 b797cfa3548d
parent 8128 3a5864b465e2
permissions -rw-r--r--
restructuring: LessThan.ML mostly moved to HOL/SetInterval.ML
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
4776
1f9362e769c1 New UNITY theory
paulson
parents:
diff changeset
     1
(*  Title:      HOL/LessThan/LessThan
1f9362e769c1 New UNITY theory
paulson
parents:
diff changeset
     2
    ID:         $Id$
1f9362e769c1 New UNITY theory
paulson
parents:
diff changeset
     3
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
1f9362e769c1 New UNITY theory
paulson
parents:
diff changeset
     4
    Copyright   1998  University of Cambridge
1f9362e769c1 New UNITY theory
paulson
parents:
diff changeset
     5
1f9362e769c1 New UNITY theory
paulson
parents:
diff changeset
     6
*)
1f9362e769c1 New UNITY theory
paulson
parents:
diff changeset
     7
1f9362e769c1 New UNITY theory
paulson
parents:
diff changeset
     8
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
     9
(*** Finally, a few set-theoretic laws...
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    10
     CAN BOOLEAN SIMPLIFICATION BE AUTOMATED? ***)
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    11
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    12
(** Rewrite rules to eliminate A.  Conditions can be satisfied by letting B
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    13
    be any set including A Int C and contained in A Un C, such as B=A or B=C.
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    14
**)
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    15
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    16
Goal "[| A Int C <= B; B <= A Un C |] \
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    17
\     ==> (A Int B) Un (-A Int C) = B Un C";
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    18
by (Blast_tac 1);
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    19
qed "set_cancel1";
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    20
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    21
Goal "[| A Int C <= B; B <= A Un C |] \
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    22
\     ==> (A Un B) Int (-A Un C) = B Int C";
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    23
by (Blast_tac 1);
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    24
qed "set_cancel2";
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    25
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    26
(*The base B=A*)
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    27
Goal "A Un (-A Int C) = A Un C";
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    28
by (Blast_tac 1);
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    29
qed "set_cancel3";
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    30
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    31
Goal "A Int (-A Un C) = A Int C";
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    32
by (Blast_tac 1);
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    33
qed "set_cancel4";
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    34
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    35
(*The base B=C*)
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    36
Goal "(A Int C) Un (-A Int C) = C";
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    37
by (Blast_tac 1);
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    38
qed "set_cancel5";
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    39
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    40
Goal "(A Un C) Int (-A Un C) = C";
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    41
by (Blast_tac 1);
5490
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    42
qed "set_cancel6";
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    43
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    44
Addsimps [set_cancel1, set_cancel2, set_cancel3,
85855f65d0c6 From Compl(A) to -A
paulson
parents: 5355
diff changeset
    45
	  set_cancel4, set_cancel5, set_cancel6];
5232
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    46
e5a7cdd07ea5 Tidied; uses records
paulson
parents: 5069
diff changeset
    47