author | wenzelm |
Thu, 27 Sep 2001 15:41:48 +0200 | |
changeset 11584 | c8e98b9498b4 |
child 11590 | 14ae6a86813d |
permissions | -rw-r--r-- |
11584
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
1 |
(* Title: HOL/ex/Hilbert_Classical.thy |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
2 |
ID: $Id$ |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
3 |
Author: Stefan Berghofer and Markus Wenzel, TU Muenchen |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
4 |
License: GPL (GNU GENERAL PUBLIC LICENSE) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
5 |
*) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
6 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
7 |
header {* Hilbert's choice and classical logic *} |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
8 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
9 |
theory Hilbert_Classical = Main: |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
10 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
11 |
text {* |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
12 |
Derivation of the classical law of tertium-non-datur by means of |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
13 |
Hilbert's choice operator (due to M. J. Beeson and J. Harrison). |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
14 |
*} |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
15 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
16 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
17 |
subsection {* Proof text *} |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
18 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
19 |
theorem tnd: "P \<or> \<not> P" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
20 |
proof - |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
21 |
let ?A = "\<lambda>x. x = False \<or> x = True \<and> P" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
22 |
let ?B = "\<lambda>x. x = False \<and> P \<or> x = True" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
23 |
let ?f = "\<lambda>R. SOME y. R y" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
24 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
25 |
have a: "?A (?f ?A)" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
26 |
proof (rule someI) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
27 |
have "False = False" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
28 |
thus "?A False" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
29 |
qed |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
30 |
have b: "?B (?f ?B)" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
31 |
proof (rule someI) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
32 |
have "True = True" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
33 |
thus "?B True" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
34 |
qed |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
35 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
36 |
from a show ?thesis |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
37 |
proof |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
38 |
assume fa: "?f ?A = False" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
39 |
from b show ?thesis |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
40 |
proof |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
41 |
assume "?f ?B = False \<and> P" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
42 |
hence P .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
43 |
thus ?thesis .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
44 |
next |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
45 |
assume fb: "?f ?B = True" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
46 |
have neq: "?A \<noteq> ?B" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
47 |
proof |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
48 |
assume "?A = ?B" hence eq: "?f ?A = ?f ?B" by (rule arg_cong) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
49 |
from fa have "False = ?f ?A" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
50 |
also note eq |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
51 |
also note fb |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
52 |
finally have "False = True" . |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
53 |
thus False by (rule False_neq_True) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
54 |
qed |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
55 |
have "\<not> P" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
56 |
proof |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
57 |
assume p: P |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
58 |
have "?A = ?B" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
59 |
proof |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
60 |
fix x |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
61 |
show "?A x = ?B x" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
62 |
proof |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
63 |
assume "?A x" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
64 |
thus "?B x" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
65 |
proof |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
66 |
assume "x = False" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
67 |
from this and p |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
68 |
have "x = False \<and> P" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
69 |
thus "?B x" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
70 |
next |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
71 |
assume "x = True \<and> P" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
72 |
hence "x = True" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
73 |
thus "?B x" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
74 |
qed |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
75 |
next |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
76 |
assume "?B x" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
77 |
thus "?A x" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
78 |
proof |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
79 |
assume "x = False \<and> P" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
80 |
hence "x = False" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
81 |
thus "?A x" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
82 |
next |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
83 |
assume "x = True" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
84 |
from this and p |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
85 |
have "x = True \<and> P" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
86 |
thus "?A x" .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
87 |
qed |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
88 |
qed |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
89 |
qed |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
90 |
with neq show False by contradiction |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
91 |
qed |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
92 |
thus ?thesis .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
93 |
qed |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
94 |
next |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
95 |
assume "?f ?A = True \<and> P" hence P .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
96 |
thus ?thesis .. |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
97 |
qed |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
98 |
qed |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
99 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
100 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
101 |
subsection {* Proof script *} |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
102 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
103 |
theorem tnd': "P \<or> \<not> P" |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
104 |
apply (subgoal_tac |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
105 |
"(((SOME x. x = False \<or> x = True \<and> P) = False) \<or> |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
106 |
((SOME x. x = False \<or> x = True \<and> P) = True) \<and> P) \<and> |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
107 |
(((SOME x. x = False \<and> P \<or> x = True) = False) \<and> P \<or> |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
108 |
((SOME x. x = False \<and> P \<or> x = True) = True))") |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
109 |
prefer 2 |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
110 |
apply (rule conjI) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
111 |
apply (rule someI) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
112 |
apply (rule disjI1) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
113 |
apply (rule refl) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
114 |
apply (rule someI) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
115 |
apply (rule disjI2) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
116 |
apply (rule refl) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
117 |
apply (erule conjE) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
118 |
apply (erule disjE) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
119 |
apply (erule disjE) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
120 |
apply (erule conjE) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
121 |
apply (erule disjI1) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
122 |
prefer 2 |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
123 |
apply (erule conjE) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
124 |
apply (erule disjI1) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
125 |
apply (subgoal_tac |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
126 |
"(\<lambda>x. (x = False) \<or> (x = True) \<and> P) \<noteq> |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
127 |
(\<lambda>x. (x = False) \<and> P \<or> (x = True))") |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
128 |
prefer 2 |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
129 |
apply (rule notI) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
130 |
apply (drule_tac f="\<lambda>y. SOME x. y x" in arg_cong) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
131 |
apply (drule trans, assumption) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
132 |
apply (drule sym) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
133 |
apply (drule trans, assumption) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
134 |
apply (erule False_neq_True) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
135 |
apply (rule disjI2) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
136 |
apply (rule notI) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
137 |
apply (erule notE) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
138 |
apply (rule ext) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
139 |
apply (rule iffI) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
140 |
apply (erule disjE) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
141 |
apply (rule disjI1) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
142 |
apply (erule conjI) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
143 |
apply assumption |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
144 |
apply (erule conjE) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
145 |
apply (erule disjI2) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
146 |
apply (erule disjE) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
147 |
apply (erule conjE) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
148 |
apply (erule disjI1) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
149 |
apply (rule disjI2) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
150 |
apply (erule conjI) |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
151 |
apply assumption |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
152 |
done |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
153 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
154 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
155 |
subsection {* Proof term of text *} |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
156 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
157 |
text {* |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
158 |
@{prf [display] tnd} |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
159 |
*} |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
160 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
161 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
162 |
subsection {* Proof term of script *} |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
163 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
164 |
text {* |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
165 |
@{prf [display] tnd'} |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
166 |
*} |
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
167 |
|
c8e98b9498b4
derive tertium-non-datur by means of Hilbert's choice operator;
wenzelm
parents:
diff
changeset
|
168 |
end |