Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/FOL/ex/   (Isabelle Prover Version 2025-1©)  Datei vom 16.11.2025 mit Größe 22 kB image not shown  

Quelle  Intuitionistic.thy

  Sprache: Isabelle
 

(*  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);
*)



textMetatheorem (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.

 : Let $Q$ be the conjunction of the propositions $A\vee\neg A$, one for
  atom $A$ in $P$. Now $\neg\neg Q$ is intuitionistically provable because
 \neg\neg(A\vee\neg A)$ is and because double-negation distributes over
 . If $P$ is provable classically, then clearly $Q\rightarrow P$ is
  intuitionistically, so $\neg\neg(Q\rightarrow P)$ is also provable
 . The latter is intuitionistically equivalent to $\neg\neg
 \rightarrow\neg\neg P$, hence to $\neg\neg P$, since $\neg\neg Q$ is
  provable. Finally, if $P$ is a negation then $\neg\neg P$
  intuitionstically equivalent to $P$. [Andy Pitts]


lemma ¬ ¬ (P Q) ¬ ¬ P ¬ ¬ Q
  by (tactic IntPr.fast_tac context 1)

lemma ¬ ¬ ((¬ P Q) (¬ P ¬ Q) P)
  by (tactic IntPr.fast_tac context 1)

text Double-negation does NOT distribute over disjunction.

lemma ¬ ¬ (P Q) (¬ ¬ P ¬ ¬ Q)
  by (tactic IntPr.fast_tac context 1)

lemma ¬ ¬ ¬ P ¬ P
  by (tactic IntPr.fast_tac context 1)

lemma ¬ ¬ ((P Q R) (P Q) (P R))
  by (tactic IntPr.fast_tac context 1)

lemma (P Q) (Q P)
  by (tactic IntPr.fast_tac context 1)

lemma ((P (Q (Q R))) R) R
  by (tactic IntPr.fast_tac context 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 context 1)

text Admissibility of the excluded middle for negated formulae
lemma (P ¬P ¬Q) ¬Q
  by (tactic IntPr.fast_tac context 1)

text The same in a more general form, no ex falso quodlibet
lemma (P (PR) Q R) Q R
  by (tactic IntPr.fast_tac context 1)


subsection Lemmas for the propositional double-negation translation

lemma P ¬ ¬ P
  by (tactic IntPr.fast_tac context 1)

lemma ¬ ¬ (¬ ¬ P P)
  by (tactic IntPr.fast_tac context 1)

lemma ¬ ¬ P ¬ ¬ (P Q) ¬ ¬ Q
  by (tactic IntPr.fast_tac context 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 context 1)?
apply (rule asm_rl)  Checks that subgoals remain: proof failed.
oops

lemma (P Q R) (P R) (Q R)
apply (tactic IntPr.fast_tac context 1)?
apply (rule asm_rl)  Checks that subgoals remain: proof failed.
oops


subsection de Bruijn formulae

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 context 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 context 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.
 


textProblem 1.1
lemma
  (x. y. z. p(x) q(y) r(z))
 (z. y. x. p(x) q(y) r(z))

  by (tactic IntPr.best_dup_tac context 1)   SLOW

textProblem 3.1
lemma ¬ (x. y. mem(y,x) ¬ mem(x,x))
  by (tactic IntPr.fast_tac context 1)

textProblem 4.1: hopeless!
lemma
  (x. p(x) p(h(x)) p(g(x))) (x. p(x)) (x. ¬ p(h(x)))
  (x. p(g(g(g(g(g(x)))))))

  oops


subsection Intuitionistic FOL: propositional problems based on Pelletier.

text¬¬1
lemma ¬ ¬ ((P Q) (¬ Q ¬ P))
  by (tactic IntPr.fast_tac context 1)

text¬¬2
lemma ¬ ¬ (¬ ¬ P P)
  by (tactic IntPr.fast_tac context 1)

text3
lemma ¬ (P Q) (Q P)
  by (tactic IntPr.fast_tac context 1)

text¬¬4
lemma ¬ ¬ ((¬ P Q) (¬ Q P))
  by (tactic IntPr.fast_tac context 1)

text¬¬5
lemma ¬ ¬ ((P Q P R) P (Q R))
  by (tactic IntPr.fast_tac context 1)

text¬¬6
lemma ¬ ¬ (P ¬ P)
  by (tactic IntPr.fast_tac context 1)

text¬¬7
lemma ¬ ¬ (P ¬ ¬ ¬ P)
  by (tactic IntPr.fast_tac context 1)

text¬¬8. Peirce's law
lemma ¬ ¬ (((P Q) P) P)
  by (tactic IntPr.fast_tac context 1)

text9
lemma ((P Q) (¬ P Q) (P ¬ Q)) ¬ (¬ P ¬ Q)
  by (tactic IntPr.fast_tac context 1)

text10
lemma (Q R) (R P Q) (P (Q R)) (P Q)
  by (tactic IntPr.fast_tac context 1)


subsection11. Proved in each direction (incorrectly, says Pelletier!!)

lemma P P
  by (tactic IntPr.fast_tac context 1)

text¬¬12. Dijkstra's law
lemma ¬ ¬ (((P Q) R) (P (Q R)))
  by (tactic IntPr.fast_tac context 1)

lemma ((P Q) R) ¬ ¬ (P (Q R))
  by (tactic IntPr.fast_tac context 1)

text13. Distributive law
lemma P (Q R) (P Q) (P R)
  by (tactic IntPr.fast_tac context 1)

text¬¬14
lemma ¬ ¬ ((P Q) ((Q ¬ P) (¬ Q P)))
  by (tactic IntPr.fast_tac context 1)

text¬¬15
lemma ¬ ¬ ((P Q) (¬ P Q))
  by (tactic IntPr.fast_tac context 1)

text¬¬16
lemma ¬ ¬ ((P Q) (Q P))
  by (tactic IntPr.fast_tac context 1)

text¬¬17
lemma ¬ ¬ (((P (Q R)) S) ((¬ P Q S) (¬ P ¬ R S)))
  by (tactic IntPr.fast_tac context 1)

text Dijkstra's ``Golden Rule''
lemma (P Q) P Q (P Q)
  by (tactic IntPr.fast_tac context 1)


section Examples with quantifiers

subsection The converse is classical in the following implications \dots

lemma (x. P(x) Q) (x. P(x)) Q
  by (tactic IntPr.fast_tac context 1)

lemma ((x. P(x)) Q) ¬ (x. P(x) ¬ Q)
  by (tactic IntPr.fast_tac context 1)

lemma ((x. ¬ P(x)) Q) ¬ (x. ¬ (P(x) Q))
  by (tactic IntPr.fast_tac context 1)

lemma (x. P(x)) Q (x. P(x) Q)
  by (tactic IntPr.fast_tac context 1)

lemma (x. P Q(x)) (P (x. Q(x)))
  by (tactic IntPr.fast_tac context 1)


subsection The following are not constructively valid!
text The attempt to prove them terminates quickly!

lemma ((x. P(x)) Q) (x. P(x) Q)
  apply (tactic IntPr.fast_tac context 1)?
  apply (rule asm_rl)  Checks that subgoals remain: proof failed.
  oops

lemma (P (x. Q(x))) (x. P Q(x))
  apply (tactic IntPr.fast_tac context 1)?
  apply (rule asm_rl)  Checks that subgoals remain: proof failed.
  oops

lemma (x. P(x) Q) ((x. P(x)) Q)
  apply (tactic IntPr.fast_tac context 1)?
  apply (rule asm_rl)  Checks that subgoals remain: proof failed.
  oops

lemma (x. ¬ ¬ P(x)) ¬ ¬ (x. P(x))
  apply (tactic IntPr.fast_tac context 1)?
  apply (rule asm_rl)  Checks that subgoals remain: proof failed.
  oops

text Classically but not intuitionistically valid. Proved by a bug in 1986!
lemma x. Q(x) (x. Q(x))
  apply (tactic IntPr.fast_tac context 1)?
  apply (rule asm_rl)  Checks that subgoals remain: proof failed.
  oops


subsection Hard examples with quantifiers

text 
 The ones that have not been proved are not known to be valid! Some will
 require quantifier duplication -- not currently available.
 


text¬¬18
lemma ¬ ¬ (y. x. P(y) P(x))
  oops   NOT PROVED

text¬¬19
lemma ¬ ¬ (x. y z. (P(y) Q(z)) (P(x) Q(x)))
  oops   NOT PROVED

text20
lemma
  (x y. z. w. (P(x) Q(y) R(z) S(w)))
  (x y. P(x) Q(y)) (z. R(z))

  by (tactic IntPr.fast_tac context 1)

text21
lemma (x. P Q(x)) (x. Q(x) P) ¬ ¬ (x. P Q(x))
  oops  NOT PROVED; needs quantifier duplication

text22
lemma (x. P Q(x)) (P (x. Q(x)))
  by (tactic IntPr.fast_tac context 1)

text¬¬23
lemma ¬ ¬ ((x. P Q(x)) (P (x. Q(x))))
  by (tactic IntPr.fast_tac context 1)

text24
lemma
  ¬ (x. S(x) Q(x)) (x. P(x) Q(x) R(x))
 (¬ (x. P(x)) (x. Q(x))) (x. Q(x) R(x) S(x))
  ¬ ¬ (x. P(x) R(x))

text 
 Not clear why fast_tac, best_tac, ASTAR and
 ITER_DEEPEN all take forever.
 

  apply (tactic IntPr.safe_tac context)
  apply (erule impE)
  apply (tactic IntPr.fast_tac context 1)
  apply (tactic IntPr.fast_tac context 1)
  done

text25
lemma
  (x. P(x))
 (x. L(x) ¬ (M(x) R(x)))
 (x. P(x) (M(x) L(x)))
 ((x. P(x) Q(x)) (x. P(x) R(x)))
  (x. Q(x) P(x))

  by (tactic IntPr.fast_tac context 1)

text¬¬26
lemma
  (¬ ¬ (x. p(x)) ¬ ¬ (x. q(x)))
 (x. y. p(x) q(y) (r(x) s(y)))
  ((x. p(x) r(x)) (x. q(x) s(x)))

  oops   NOT PROVED

text27
lemma
  (x. P(x) ¬ Q(x))
 (x. P(x) R(x))
 (x. M(x) L(x) P(x))
 ((x. R(x) ¬ Q(x)) (x. L(x) ¬ R(x)))
  (x. M(x) ¬ L(x))

  by (tactic IntPr.fast_tac context 1)

text¬¬28. AMENDED
lemma
  (x. P(x) (x. Q(x)))
 (¬ ¬ (x. Q(x) R(x)) (x. Q(x) S(x)))
 (¬ ¬ (x. S(x)) (x. L(x) M(x)))
  (x. P(x) L(x) M(x))

  by (tactic IntPr.fast_tac context 1)

text29. Essentially the same as Principia Mathematica *11.71
lemma
  (x. P(x)) (y. Q(y))
  ((x. P(x) R(x)) (y. Q(y) S(y))
 (x y. P(x) Q(y) R(x) S(y)))

  by (tactic IntPr.fast_tac context 1)

text¬¬30
lemma
  (x. (P(x) Q(x)) ¬ R(x))
 (x. (Q(x) ¬ S(x)) P(x) R(x))
  (x. ¬ ¬ S(x))

  by (tactic IntPr.fast_tac context 1)

text31
lemma
  ¬ (x. P(x) (Q(x) R(x)))
 (x. L(x) P(x))
 (x. ¬ R(x) M(x))
  (x. L(x) M(x))

  by (tactic IntPr.fast_tac context 1)

text32
lemma
  (x. P(x) (Q(x) R(x)) S(x))
 (x. S(x) R(x) L(x))
 (x. M(x) R(x))
  (x. P(x) M(x) L(x))

  by (tactic IntPr.fast_tac context 1)

text¬¬33
lemma
  (x. ¬ ¬ (P(a) (P(x) P(b)) P(c)))
 (x. ¬ ¬ ((¬ P(a) P(x) P(c)) (¬ P(a) ¬ P(b) P(c))))

  apply (tactic IntPr.best_tac context 1)
  done


text36
lemma
  (x. y. J(x,y))
 (x. y. G(x,y))
 (x y. J(x,y) G(x,y) (z. J(y,z) G(y,z) H(x,z)))
  (x. y. H(x,y))

  by (tactic IntPr.fast_tac context 1)

text37
lemma
  (z. w. x. y.
 ¬ ¬ (P(x,z) P(y,w)) P(y,z) (P(y,w) (u. Q(u,w))))
 (x z. ¬ P(x,z) (y. Q(y,z)))
 (¬ ¬ (x y. Q(x,y)) (x. R(x,x)))
  ¬ ¬ (x. y. R(x,y))

  oops   NOT PROVED

text39
lemma ¬ (x. y. F(y,x) ¬ F(y,y))
  by (tactic IntPr.fast_tac context 1)

text40. AMENDED
lemma
  (y. x. F(x,y) F(x,x))
 ¬ (x. y. z. F(z,y) ¬ F(z,x))

  by (tactic IntPr.fast_tac context 1)

text44
lemma
  (x. f(x)
 (y. g(y) h(x,y) (y. g(y) ¬ h(x,y))))
 (x. j(x) (y. g(y) h(x,y)))
  (x. j(x) ¬ f(x))

  by (tactic IntPr.fast_tac context 1)

text48
lemma (a = b c = d) (a = c b = d) a = d b = c
  by (tactic IntPr.fast_tac context 1)

text51
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 context 1)

text52
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 context 1)

text56
lemma (x. (y. P(y) x = f(y)) P(x)) (x. P(x) P(f(x)))
  by (tactic IntPr.fast_tac context 1)

text57
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 context 1)

text60
lemma x. P(x,f(x)) (y. (z. P(z,y) P(z,f(x))) P(x,y))
  by (tactic IntPr.fast_tac context 1)

end

Messung V0.5 in Prozent
C=29 H=100 G=73

¤ Dauer der Verarbeitung: 0.15 Sekunden  (vorverarbeitet am  2026-06-30) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

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.