src/HOL/ex/Hilbert_Classical.thy
author wenzelm
Thu, 27 Sep 2001 15:41:48 +0200
changeset 11584 c8e98b9498b4
child 11590 14ae6a86813d
permissions -rw-r--r--
derive tertium-non-datur by means of Hilbert's choice operator;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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