src/HOLCF/IOA/NTP/Lemmas.ML
author berghofe
Fri, 24 Jul 1998 13:44:27 +0200
changeset 5192 704dd3a6d47d
parent 4833 2e53109d4bc8
child 5656 f8389824189b
permissions -rw-r--r--
Adapted to new datatype package.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3073
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
     1
(*  Title:      HOL/IOA/NTP/Lemmas.ML
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
     2
    ID:         $Id$
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
     3
    Author:     Tobias Nipkow & Konrad Slind
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
     4
    Copyright   1994  TU Muenchen
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
     5
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
     6
*)
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
     7
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
     8
(* Logic *)
4532
006e5572aca8 *** empty log message ***
oheimb
parents: 4423
diff changeset
     9
3073
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    10
val prems = goal HOL.thy "(P ==> Q-->R) ==> P&Q --> R";
4423
a129b817b58a expandshort;
wenzelm
parents: 4377
diff changeset
    11
  by (fast_tac (claset() addDs prems) 1);
3073
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    12
qed "imp_conj_lemma";
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    13
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    14
goal HOL.thy "(A --> B & C) = ((A --> B) & (A --> C))";
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    15
  by (Fast_tac 1);
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    16
qed "fork_lemma";
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    17
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    18
goal HOL.thy "((A --> B) & (C --> B)) = ((A | C) --> B)";
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    19
  by (Fast_tac 1);
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    20
qed "imp_or_lem";
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    21
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    22
goal HOL.thy "(X = (~ Y)) = ((~X) = Y)";
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    23
  by (Fast_tac 1);
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    24
qed "neg_flip";
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    25
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    26
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    27
(* Sets *)
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    28
val set_lemmas =
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    29
   map (fn s => prove_goal Set.thy s (fn _ => [Fast_tac 1]))
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    30
        ["f(x) : (UN x. {f(x)})",
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    31
         "f x y : (UN x y. {f x y})",
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    32
         "!!a. (!x. a ~= f(x)) ==> a ~: (UN x. {f(x)})",
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    33
         "!!a. (!x y. a ~= f x y) ==> a ~: (UN x y. {f x y})"];
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    34
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    35
4377
2cba48b0f1c4 Cleaned up arithmetic mess.
nipkow
parents: 4372
diff changeset
    36
(* Arithmetic *)
3073
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    37
4377
2cba48b0f1c4 Cleaned up arithmetic mess.
nipkow
parents: 4372
diff changeset
    38
goal Arith.thy "!!x. 0<x ==> (x-1 = y) = (x = Suc(y))";
5192
704dd3a6d47d Adapted to new datatype package.
berghofe
parents: 4833
diff changeset
    39
by (asm_simp_tac (simpset() addsimps [diff_Suc] addsplits [nat.split]) 1);
4423
a129b817b58a expandshort;
wenzelm
parents: 4377
diff changeset
    40
by (Blast_tac 1);
3073
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    41
qed "pred_suc";
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    42
88366253a09a Old NTP files now running under the IOA meta theory based on HOLCF;
mueller
parents:
diff changeset
    43
4377
2cba48b0f1c4 Cleaned up arithmetic mess.
nipkow
parents: 4372
diff changeset
    44
Addsimps (hd_append :: set_lemmas);