(* Title: HOL/Proofs/ex/Hilbert_Classical.thy Author: Stefan Berghofer Author: Makarius Wenzel *)
section‹Hilbert's choice and classical logic›
theory Hilbert_Classical imports Main begin
text‹ Derivation of the classical law of tertium-non-datur by means of Hilbert's choice operator (due to M. J. Beeson and J. Harrison). ›
subsection‹Proof text›
theorem tertium_non_datur: "A ∨¬ A" proof - let ?P = "λx. (A ∧ x) ∨¬ x" let ?Q = "λx. (A ∧¬ x) ∨ x"
have a: "?P (Eps ?P)" proof (rule someI) have"¬ False" .. thenshow"?P False" .. qed have b: "?Q (Eps ?Q)" proof (rule someI) have True .. thenshow"?Q True" .. qed
from a show ?thesis proof assume"A ∧ Eps ?P" thenhave A .. thenshow ?thesis .. next assume"¬ Eps ?P" from b show ?thesis proof assume"A ∧¬ Eps ?Q" thenhave A .. thenshow ?thesis .. next assume"Eps ?Q" have neq: "?P ≠ ?Q" proof assume"?P = ?Q" thenhave"Eps ?P ⟷ Eps ?Q"by (rule arg_cong) alsonote‹Eps ?Q› finallyhave"Eps ?P" . with‹¬ Eps ?P›show False by contradiction qed have"¬ A" proof assume A have"?P = ?Q" proof (rule ext) show"?P x ⟷ ?Q x"for x proof assume"?P x" thenshow"?Q x" proof assume"¬ x" with‹A›have"A ∧¬ x" .. thenshow ?thesis .. next assume"A ∧ x" thenhave x .. thenshow ?thesis .. qed next assume"?Q x" thenshow"?P x" proof assume"A ∧¬ x" thenhave"¬ x" .. thenshow ?thesis .. next assume x with‹A›have"A ∧ x" .. thenshow ?thesis .. qed qed qed with neq show False by contradiction qed thenshow ?thesis .. qed qed qed
subsection‹Old proof text›
theorem tertium_non_datur1: "A ∨¬ A" proof - let ?P = "λx. (x ⟷ False) ∨ (x ⟷ True) ∧ A" let ?Q = "λx. (x ⟷ False) ∧ A ∨ (x ⟷ True)"
have a: "?P (Eps ?P)" proof (rule someI) show"?P False"using refl .. qed have b: "?Q (Eps ?Q)" proof (rule someI) show"?Q True"using refl .. qed
from a show ?thesis proof assume"(Eps ?P ⟷ True) ∧ A" thenhave A .. thenshow ?thesis .. next assume P: "Eps ?P ⟷ False" from b show ?thesis proof assume"(Eps ?Q ⟷ False) ∧ A" thenhave A .. thenshow ?thesis .. next assume Q: "Eps ?Q ⟷ True" have neq: "?P ≠ ?Q" proof assume"?P = ?Q" thenhave"Eps ?P ⟷ Eps ?Q"by (rule arg_cong) alsonote P alsonote Q finallyshow False by (rule False_neq_True) qed have"¬ A" proof assume A have"?P = ?Q" proof (rule ext) show"?P x ⟷ ?Q x"for x proof assume"?P x" thenshow"?Q x" proof assume"x ⟷ False" from this and‹A›have"(x ⟷ False) ∧ A" .. thenshow ?thesis .. next assume"(x ⟷ True) ∧ A" thenhave"x ⟷ True" .. thenshow ?thesis .. qed next assume"?Q x" thenshow"?P x" proof assume"(x ⟷ False) ∧ A" thenhave"x ⟷ False" .. thenshow ?thesis .. next assume"x ⟷ True" from this and‹A›have"(x ⟷ True) ∧ A" .. thenshow ?thesis .. qed qed qed with neq show False by contradiction qed thenshow ?thesis .. qed qed qed
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.12Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-04-26)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.