src/HOL/Import/MakeEqual.thy
author skalberg
Fri, 02 Apr 2004 17:37:45 +0200
changeset 14516 a183dec876ab
child 14620 1be590fd2422
permissions -rw-r--r--
Added HOL proof importer.
     1 theory MakeEqual = Main
     2   files "shuffler.ML":
     3 
     4 setup Shuffler.setup
     5 
     6 lemma conj_norm [shuffle_rule]: "(A & B ==> PROP C) == ([| A ; B |] ==> PROP C)"
     7 proof
     8   assume "A & B ==> PROP C" A B
     9   thus "PROP C"
    10     by auto
    11 next
    12   assume "[| A; B |] ==> PROP C" "A & B"
    13   thus "PROP C"
    14     by auto
    15 qed
    16 
    17 lemma imp_norm [shuffle_rule]: "(Trueprop (A --> B)) == (A ==> B)"
    18 proof
    19   assume "A --> B" A
    20   thus B ..
    21 next
    22   assume "A ==> B"
    23   thus "A --> B"
    24     by auto
    25 qed
    26 
    27 lemma all_norm [shuffle_rule]: "(Trueprop (ALL x. P x)) == (!!x. P x)"
    28 proof
    29   fix x
    30   assume "ALL x. P x"
    31   thus "P x" ..
    32 next
    33   assume "!!x. P x"
    34   thus "ALL x. P x"
    35     ..
    36 qed
    37 
    38 lemma ex_norm [shuffle_rule]: "(EX x. P x ==> PROP Q) == (!!x. P x ==> PROP Q)"
    39 proof
    40   fix x
    41   assume ex: "EX x. P x ==> PROP Q"
    42   assume "P x"
    43   hence "EX x. P x" ..
    44   with ex show "PROP Q" .
    45 next
    46   assume allx: "!!x. P x ==> PROP Q"
    47   assume "EX x. P x"
    48   hence p: "P (SOME x. P x)"
    49     ..
    50   from allx
    51   have "P (SOME x. P x) ==> PROP Q"
    52     .
    53   with p
    54   show "PROP Q"
    55     by auto
    56 qed
    57 
    58 lemma eq_norm [shuffle_rule]: "Trueprop (t = u) == (t == u)"
    59 proof
    60   assume "t = u"
    61   thus "t == u" by simp
    62 next
    63   assume "t == u"
    64   thus "t = u"
    65     by simp
    66 qed
    67 
    68 end