src/Pure/Pure.thy
author wenzelm
Thu, 21 Apr 2005 22:06:00 +0200
changeset 15803 42c75e0c9140
child 15824 222eeb9655f3
permissions -rw-r--r--
The Pure theory.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15803
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
     1
(*  Title:      Pure/Pure.thy
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
     2
    ID:         $Id$
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
     3
    Author:     Larry Paulson and Makarius
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
     4
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
     5
The Pure theory.
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
     6
*)
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
     7
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
     8
theory Pure
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
     9
imports ProtoPure
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    10
begin
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    11
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    12
setup "Context.setup ()"
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    13
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    14
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    15
text{*These meta-level elimination rules facilitate the use of assumptions
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    16
that contain !! and ==>, especially in linear scripts. *}
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    17
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    18
lemma meta_mp:
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    19
  assumes major: "PROP P ==> PROP Q" and minor: "PROP P"
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    20
  shows "PROP Q"
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    21
proof -
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    22
  show "PROP Q" by (rule major [OF minor])
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    23
qed
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    24
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    25
lemma meta_spec:
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    26
  assumes major: "!!x. PROP P(x)"
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    27
  shows "PROP P(x)"
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    28
proof -
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    29
  show "PROP P(x)" by (rule major)
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    30
qed
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    31
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    32
lemmas meta_allE = meta_spec [elim_format]
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    33
42c75e0c9140 The Pure theory.
wenzelm
parents:
diff changeset
    34
end