Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/FOL/ex/   (Beweissystem Isabelle 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.

ProofLet $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)$ is and 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)$ is also provable
intuitionistically.  The latter is intuitionistically equivalent to $\neg\neg
Q\rightarrow\neg\neg P$, hence to $\neg\neg P$, since $\neg\neg Q$ is
intuitionistically provable.  Finallyif $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 ¬ ¬ ((P  Q  R)  (P  Q)  (P  R))
  by (tactic IntPr.fast_tac 🍋 1)

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

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


subsection Lemmas for the propositional double-negation translation

lemma  ¬ ¬ 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

lemma (P  Q  R)  (P  R)  (Q  R)
apply (tactic IntPr.fast_tac 🍋 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 🍋 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.


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 🍋 1)  🍋 SLOW

textProblem 3.1
lemma ¬ (x. y. mem(y,x)  ¬ mem(x,x))
  by (tactic IntPr.fast_tac 🍋 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 🍋 1)

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

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

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

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

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

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

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

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

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


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

lemma  P
  by (tactic IntPr.fast_tac 🍋 1)

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

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

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

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

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

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

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

text Dijkstra's ``Golden Rule''\
lemma (P  Q)  P  Q  (P  Q)
  by (tactic IntPr.fast_tac 🍋 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 🍋 1)

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

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

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

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

lemma (x. ¬ ¬ P(x))  ¬ ¬ (x. P(x))
  apply (tactic IntPr.fast_tac 🍋 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 🍋 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 🍋 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 🍋 1)

text¬¬23
lemma ¬ ¬ ((x. P  Q(x))  (P  (x. Q(x))))
  by (tactic IntPr.fast_tac 🍋 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_tacbest_tacASTAR and
  ITER_DEEPEN all take forever.

  apply (tactic IntPr.safe_tac 🍋)
  apply (erule impE)
  apply (tactic IntPr.fast_tac 🍋 1)
  apply (tactic IntPr.fast_tac 🍋 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 🍋 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 🍋 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 🍋 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 🍋 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 🍋 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 🍋 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 🍋 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 🍋 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 🍋 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 🍋 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 🍋 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 🍋 1)

text48
lemma (a = b  c = d)  (a = c  b = d)  a = d  b = c
  by (tactic IntPr.fast_tac 🍋 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 🍋 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 🍋 1)

text56
lemma (x. (y. P(y)  x = f(y))  P(x))  (x. P(x)  P(f(x)))
  by (tactic IntPr.fast_tac 🍋 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 🍋 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 🍋 1)

end

Messung V0.5
C=100 H=100 G=100

¤ Dauer der Verarbeitung: 0.20 Sekunden  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

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.