author | paulson |
Wed Aug 21 15:57:24 2002 +0200 (2002-08-21) | |
changeset 13513 | b9e14471629c |
parent 13505 | 52a16cb7fefb |
child 13634 | 99a593b49b04 |
permissions | -rw-r--r-- |
paulson@13505 | 1 |
(* Title: ZF/Constructible/MetaExists.thy |
paulson@13505 | 2 |
ID: $Id$ |
paulson@13505 | 3 |
Author: Lawrence C Paulson, Cambridge University Computer Laboratory |
paulson@13505 | 4 |
Copyright 2002 University of Cambridge |
paulson@13505 | 5 |
*) |
paulson@13505 | 6 |
|
paulson@13314 | 7 |
header{*The meta-existential quantifier*} |
paulson@13314 | 8 |
|
paulson@13314 | 9 |
theory MetaExists = Main: |
paulson@13314 | 10 |
|
paulson@13314 | 11 |
text{*Allows quantification over any term having sort @{text logic}. Used to |
paulson@13314 | 12 |
quantify over classes. Yields a proposition rather than a FOL formula.*} |
paulson@13314 | 13 |
|
paulson@13314 | 14 |
constdefs |
paulson@13314 | 15 |
ex :: "(('a::logic) => prop) => prop" (binder "?? " 0) |
paulson@13314 | 16 |
"ex(P) == (!!Q. (!!x. PROP P(x) ==> PROP Q) ==> PROP Q)" |
paulson@13314 | 17 |
|
paulson@13314 | 18 |
syntax (xsymbols) |
paulson@13314 | 19 |
"?? " :: "[idts, o] => o" ("(3\<Or>_./ _)" [0, 0] 0) |
paulson@13314 | 20 |
|
paulson@13314 | 21 |
lemma meta_exI: "PROP P(x) ==> (?? x. PROP P(x))" |
wenzelm@13315 | 22 |
proof (unfold ex_def) |
paulson@13314 | 23 |
assume P: "PROP P(x)" |
wenzelm@13315 | 24 |
fix Q |
wenzelm@13315 | 25 |
assume PQ: "\<And>x. PROP P(x) \<Longrightarrow> PROP Q" |
wenzelm@13315 | 26 |
from P show "PROP Q" by (rule PQ) |
paulson@13314 | 27 |
qed |
paulson@13314 | 28 |
|
paulson@13314 | 29 |
lemma meta_exE: "[| ?? x. PROP P(x); !!x. PROP P(x) ==> PROP R |] ==> PROP R" |
wenzelm@13315 | 30 |
proof (unfold ex_def) |
paulson@13314 | 31 |
assume QPQ: "\<And>Q. (\<And>x. PROP P(x) \<Longrightarrow> PROP Q) \<Longrightarrow> PROP Q" |
paulson@13314 | 32 |
assume PR: "\<And>x. PROP P(x) \<Longrightarrow> PROP R" |
paulson@13314 | 33 |
from PR show "PROP R" by (rule QPQ) |
paulson@13314 | 34 |
qed |
paulson@13314 | 35 |
|
paulson@13314 | 36 |
end |