(* Title: FOL/ex/Intuitionistic.thy Author: Lawrence C Paulson, Cambridge University Computer Laboratory Copyright 1991 University of Cambridge
*)
section‹Intuitionistic First-Order Logic›
theory Intuitionistic imports IFOL begin
(* Single-step ML commands: by (IntPr.step_tac 1) by (biresolve_tac safe_brls 1); by (biresolve_tac haz_brls 1); by (assume_tac 1); by (IntPr.safe_tac 1); by (IntPr.mp_tac 1); by (IntPr.fast_tac @{context} 1);
*)
text‹Metatheorem (for\emph{propositional} formulae):
$P$ is classically provable iff $\neg\neg P$ is intuitionistically provable.
Therefore $\neg P$ is classically provable iff it is intuitionistically
provable.
Proof: Let $Q$ be the conjunction of the propositions $A\vee\neg A$, one for
each atom $A$ in $P$. Now $\neg\neg Q$ is intuitionistically provable because
$\neg\neg(A\vee\neg A)$ isand because double-negation distributes over
conjunction. If $P$ is provable classically, then clearly $Q\rightarrow P$ is
provable intuitionistically, so $\neg\neg(Q\rightarrow P)$ isalso provable
intuitionistically. The latter is intuitionistically equivalent to $\neg\neg
Q\rightarrow\neg\neg P$, henceto $\neg\neg P$, since $\neg\neg Q$ is
intuitionistically provable. Finally, if $P$ is a negation then $\neg\neg P$ is intuitionstically equivalent to $P$. [Andy Pitts]›
lemma‹¬¬ (P ∧ Q) ⟷¬¬ P ∧¬¬ Q› by (tactic ‹IntPr.fast_tac 🍋 1›)
lemma‹¬¬ ((¬ P ⟶ Q) ⟶ (¬ P ⟶¬ Q) ⟶ P)› by (tactic ‹IntPr.fast_tac 🍋 1›)
text‹Double-negation does NOT distribute over disjunction.›
lemma‹¬¬ (P ⟶ Q) ⟷ (¬¬ P ⟶¬¬ Q)› by (tactic ‹IntPr.fast_tac 🍋 1›)
lemma‹¬¬¬ P ⟷¬ P› by (tactic ‹IntPr.fast_tac 🍋 1›)
lemma ‹(((G ⟶ A) ⟶ J) ⟶ D ⟶ E) ⟶ (((H ⟶ B) ⟶ I) ⟶ C ⟶ J) ⟶ (A ⟶ H) ⟶ F ⟶ G ⟶ (((C ⟶ B) ⟶ I) ⟶ D) ⟶ (A ⟶ C) ⟶ (((F ⟶ A) ⟶ B) ⟶ I) ⟶ E› by (tactic ‹IntPr.fast_tac 🍋 1›)
text‹Admissibility of the excluded middle for negated formulae› lemma‹(P ∨¬P ⟶¬Q) ⟶¬Q› by (tactic ‹IntPr.fast_tac 🍋 1›)
text‹The same in a more general form, no ex falso quodlibet› lemma‹(P ∨ (P⟶R) ⟶ Q ⟶ R) ⟶ Q ⟶ R› by (tactic ‹IntPr.fast_tac 🍋 1›)
subsection‹Lemmasfor the propositional double-negation translation›
lemma‹P ⟶¬¬ P› by (tactic ‹IntPr.fast_tac 🍋 1›)
lemma‹¬¬ (¬¬ P ⟶ P)› by (tactic ‹IntPr.fast_tac 🍋 1›)
lemma‹¬¬ P ∧¬¬ (P ⟶ Q) ⟶¬¬ Q› by (tactic ‹IntPr.fast_tac 🍋 1›)
text‹The following are classically but not constructively valid.
The attempt to prove them terminates quickly!› lemma‹((P ⟶ Q) ⟶ P) ⟶ P› apply (tactic ‹IntPr.fast_tac 🍋 1›)? apply (rule asm_rl) 🍋‹Checks that subgoals remain: proof failed.› oops
text‹de Bruijn formula with three predicates› lemma ‹((P ⟷ Q) ⟶ P ∧ Q ∧ R) ∧
((Q ⟷ R) ⟶ P ∧ Q ∧ R) ∧
((R ⟷ P) ⟶ P ∧ Q ∧ R) ⟶ P ∧ Q ∧ R› by (tactic ‹IntPr.fast_tac 🍋 1›)
text‹de Bruijn formula with five predicates› lemma ‹((P ⟷ Q) ⟶ P ∧ Q ∧ R ∧ S ∧ T) ∧
((Q ⟷ R) ⟶ P ∧ Q ∧ R ∧ S ∧ T) ∧
((R ⟷ S) ⟶ P ∧ Q ∧ R ∧ S ∧ T) ∧
((S ⟷ T) ⟶ P ∧ Q ∧ R ∧ S ∧ T) ∧
((T ⟷ P) ⟶ P ∧ Q ∧ R ∧ S ∧ T) ⟶ P ∧ Q ∧ R ∧ S ∧ T› by (tactic ‹IntPr.fast_tac 🍋 1›)
text‹
Problems from of Sahlin, Franzen and Haridi,
An Intuitionistic Predicate Logic Theorem Prover.
J. Logic and Comp. 2 (5), October 1992, 619-656. ›
text‹48› lemma‹(a = b ∨ c = d) ∧ (a = c ∨ b = d) ⟶ a = d ∨ b = c› by (tactic ‹IntPr.fast_tac 🍋 1›)
text‹51› lemma ‹(∃z w. ∀x y. P(x,y) ⟷ (x = z ∧ y = w)) ⟶
(∃z. ∀x. ∃w. (∀y. P(x,y) ⟷ y = w) ⟷ x = z)› by (tactic ‹IntPr.fast_tac 🍋 1›)
text‹52› text‹Almost the same as 51.› lemma ‹(∃z w. ∀x y. P(x,y) ⟷ (x = z ∧ y = w)) ⟶
(∃w. ∀y. ∃z. (∀x. P(x,y) ⟷ x = z) ⟷ y = w)› by (tactic ‹IntPr.fast_tac 🍋 1›)
text‹56› lemma‹(∀x. (∃y. P(y) ∧ x = f(y)) ⟶ P(x)) ⟷ (∀x. P(x) ⟶ P(f(x)))› by (tactic ‹IntPr.fast_tac 🍋 1›)
text‹57› lemma ‹P(f(a,b), f(b,c)) ∧ P(f(b,c), f(a,c)) ∧
(∀x y z. P(x,y) ∧ P(y,z) ⟶ P(x,z)) ⟶ P(f(a,b), f(a,c))› by (tactic ‹IntPr.fast_tac 🍋 1›)
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.