Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/Isabelle/FOLP/ex/   (Beweissystem Isabelle Version 2025-1©)  Datei vom 16.11.2025 mit GrรถรŸe 10 kB image not shown  

Quelle  Intuitionistic.thy

  Sprache: Isabelle
 

(*  Title:      FOLP/ex/Intuitionistic.thy
  Author: Lawrence C Paulson, Cambridge University Computer Laboratory
  Copyright 1991 University of Cambridge
 
 Intuitionistic First-Order Logic.
 
 Single-step 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 1);
*)

(*Note: for PROPOSITIONAL formulae...
  ~A is classically provable iff it is intuitionistically provable.
  Therefore A is classically provable iff ~~A is intuitionistically provable.
 
 Let Q be the conjuction of the propositions A|~A, one for each atom A in
 P. If P is provable classically, then clearly P&Q is provable
 intuitionistically, so ~~(P&Q) is also provable intuitionistically.
 The latter is intuitionistically equivalent to ~~P&~~Q, hence to ~~P,
 since ~~Q is intuitionistically provable. Finally, if P is a negation then
 ~~P is intuitionstically equivalent to P. [Andy Pitts]
*)

theory Intuitionistic
imports IFOLP
begin

schematic_goal "?p : ~~(P&Q) <-> ~~P & ~~Q"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

schematic_goal "?p : ~~~P <-> ~P"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

schematic_goal "?p : ~~((P --> Q | R) --> (P-->Q) | (P-->R))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

schematic_goal "?p : (P<->Q) <-> (Q<->P)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)


subsection โ€นLemmas for the propositional double-negation translationโ€บ

schematic_goal "?p : P --> ~~P"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

schematic_goal "?p : ~~(~~P --> P)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

schematic_goal "?p : ~~P & ~~(P --> Q) --> ~~Q"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)


subsection โ€นThe following are classically but not constructively validโ€บ

(*The attempt to prove them terminates quickly!*)
schematic_goal "?p : ((P-->Q) --> P) --> P"
  apply (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)?
  oops

schematic_goal "?p : (P&Q-->R) --> (P-->R) | (Q-->R)"
  apply (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)?
  oops


subsection โ€นIntuitionistic FOL: propositional problems based on Pelletierโ€บ

text "Problem ~~1"
schematic_goal "?p : ~~((P-->Q) <-> (~Q --> ~P))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~2"
schematic_goal "?p : ~~(~~P <-> P)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem 3"
schematic_goal "?p : ~(P-->Q) --> (Q-->P)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~4"
schematic_goal "?p : ~~((~P-->Q) <-> (~Q --> P))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~5"
schematic_goal "?p : ~~((P|Q-->P|R) --> P|(Q-->R))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~6"
schematic_goal "?p : ~~(P | ~P)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~7"
schematic_goal "?p : ~~(P | ~~~P)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~8. Peirce's law"
schematic_goal "?p : ~~(((P-->Q) --> P) --> P)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem 9"
schematic_goal "?p : ((P|Q) & (~P|Q) & (P| ~Q)) --> ~ (~P | ~Q)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem 10"
schematic_goal "?p : (Q-->R) --> (R-->P&Q) --> (P-->(Q|R)) --> (P<->Q)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "11. Proved in each direction (incorrectly, says Pelletier!!) "
schematic_goal "?p : P<->P"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~12. Dijkstra's law "
schematic_goal "?p : ~~(((P <-> Q) <-> R) <-> (P <-> (Q <-> R)))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

schematic_goal "?p : ((P <-> Q) <-> R) --> ~~(P <-> (Q <-> R))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem 13. Distributive law"
schematic_goal "?p : P | (Q & R) <-> (P | Q) & (P | R)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~14"
schematic_goal "?p : ~~((P <-> Q) <-> ((Q | ~P) & (~Q|P)))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~15"
schematic_goal "?p : ~~((P --> Q) <-> (~P | Q))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~16"
schematic_goal "?p : ~~((P-->Q) | (Q-->P))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~17"
schematic_goal "?p : ~~(((P & (Q-->R))-->S) <-> ((~P | Q | S) & (~P | ~R | S)))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)  ๐Ÿ‹ โ€นslowโ€บ


subsection โ€นExamples with quantifiersโ€บ

text "The converse is classical in the following implications..."

schematic_goal "?p : (EX x. P(x)-->Q) --> (ALL x. P(x)) --> Q"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

schematic_goal "?p : ((ALL x. P(x))-->Q) --> ~ (ALL x. P(x) & ~Q)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

schematic_goal "?p : ((ALL x. ~P(x))-->Q) --> ~ (ALL x. ~ (P(x)|Q))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

schematic_goal "?p : (ALL x. P(x)) | Q --> (ALL x. P(x) | Q)"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

schematic_goal "?p : (EX x. P --> Q(x)) --> (P --> (EX x. Q(x)))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)


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

schematic_goal "?p : ((ALL x. P(x))-->Q) --> (EX x. P(x)-->Q)"
  apply (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)?
  oops

schematic_goal "?p : (P --> (EX x. Q(x))) --> (EX x. P-->Q(x))"
  apply (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)?
  oops

schematic_goal "?p : (ALL x. P(x) | Q) --> ((ALL x. P(x)) | Q)"
  apply (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)?
  oops

schematic_goal "?p : (ALL x. ~~P(x)) --> ~~(ALL x. P(x))"
  apply (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)?
  oops

(*Classically but not intuitionistically valid.  Proved by a bug in 1986!*)
schematic_goal "?p : EX x. Q(x) --> (ALL x. Q(x))"
  apply (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)?
  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 "Problem ~~18"
schematic_goal "?p : ~~(EX y. ALL x. P(y)-->P(x))" oops
(*NOT PROVED*)

text "Problem ~~19"
schematic_goal "?p : ~~(EX x. ALL y z. (P(y)-->Q(z)) --> (P(x)-->Q(x)))" oops
(*NOT PROVED*)

text "Problem 20"
schematic_goal "?p : (ALL x y. EX z. ALL w. (P(x)&Q(y)-->R(z)&S(w)))
    --> (EX x y. P(x) & Q(y)) --> (EX z. R(z))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem 21"
schematic_goal "?p : (EX x. P-->Q(x)) & (EX x. Q(x)-->P) --> ~~(EX x. P<->Q(x))" oops
(*NOT PROVED*)

text "Problem 22"
schematic_goal "?p : (ALL x. P <-> Q(x)) --> (P <-> (ALL x. Q(x)))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem ~~23"
schematic_goal "?p : ~~ ((ALL x. P | Q(x)) <-> (P | (ALL x. Q(x))))"
  by (tactic โ€นIntPr.fast_tac ๐Ÿ‹ 1โ€บ)

text "Problem 24"
schematic_goal "?p : ~(EX x. S(x)&Q(x)) & (ALL x. P(x) --> Q(x)|R(x)) &
     (~(EX x. P(x)) --> (EX x. Q(x))) & (ALL x. Q(x)|R(x) --> S(x))
    --> ~~(EX x. P(x)&R(x))"
(*Not clear why fast_tac, best_tac, ASTAR 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

text "Problem 25"
schematic_goal "?p : (EX x. P(x)) &
        (ALL x. L(x) --> ~ (M(x) & R(x))) &
        (ALL x. P(x) --> (M(x) & L(x))) &
        ((ALL x. P(x)-->Q(x)) | (EX x. P(x)&R(x)))
    --> (EX x. Q(x)&P(x))"
  by (tactic "IntPr.best_tac ๐Ÿ‹ 1")

text "Problem 29. Essentially the same as Principia Mathematica *11.71"
schematic_goal "?p : (EX x. P(x)) & (EX y. Q(y))
    --> ((ALL x. P(x)-->R(x)) & (ALL y. Q(y)-->S(y)) <->
         (ALL x y. P(x) & Q(y) --> R(x) & S(y)))"
  by (tactic "IntPr.fast_tac ๐Ÿ‹ 1")

text "Problem ~~30"
schematic_goal "?p : (ALL x. (P(x) | Q(x)) --> ~ R(x)) &
        (ALL x. (Q(x) --> ~ S(x)) --> P(x) & R(x))
    --> (ALL x. ~~S(x))"
  by (tactic "IntPr.fast_tac ๐Ÿ‹ 1")

text "Problem 31"
schematic_goal "?p : ~(EX x. P(x) & (Q(x) | R(x))) &
        (EX x. L(x) & P(x)) &
        (ALL x. ~ R(x) --> M(x))
    --> (EX x. L(x) & M(x))"
  by (tactic "IntPr.fast_tac ๐Ÿ‹ 1")

text "Problem 32"
schematic_goal "?p : (ALL x. P(x) & (Q(x)|R(x))-->S(x)) &
        (ALL x. S(x) & R(x) --> L(x)) &
        (ALL x. M(x) --> R(x))
    --> (ALL x. P(x) & M(x) --> L(x))"
  by (tactic "IntPr.best_tac ๐Ÿ‹ 1"๐Ÿ‹ โ€นslowโ€บ

text "Problem 39"
schematic_goal "?p : ~ (EX x. ALL y. F(y,x) <-> ~F(y,y))"
  by (tactic "IntPr.best_tac ๐Ÿ‹ 1")

text "Problem 40. AMENDED"
schematic_goal "?p : (EX y. ALL x. F(x,y) <-> F(x,x)) -->
              ~(ALL x. EX y. ALL z. F(z,y) <-> ~ F(z,x))"
  by (tactic "IntPr.best_tac ๐Ÿ‹ 1"๐Ÿ‹ โ€นslowโ€บ

text "Problem 44"
schematic_goal "?p : (ALL x. f(x) -->
              (EX y. g(y) & h(x,y) & (EX y. g(y) & ~ h(x,y)))) &
              (EX x. j(x) & (ALL y. g(y) --> h(x,y)))
              --> (EX x. j(x) & ~f(x))"
  by (tactic "IntPr.best_tac ๐Ÿ‹ 1")

text "Problem 48"
schematic_goal "?p : (a=b | c=d) & (a=c | b=d) --> a=d | b=c"
  by (tactic "IntPr.best_tac ๐Ÿ‹ 1")

text "Problem 51"
schematic_goal
    "?p : (EX z w. ALL x y. P(x,y) <-> (x=z & y=w)) -->
     (EX z. ALL x. EX w. (ALL y. P(x,y) <-> y=w) <-> x=z)"
  by (tactic "IntPr.best_tac ๐Ÿ‹ 1"๐Ÿ‹ โ€น60 secondsโ€บ

text "Problem 56"
schematic_goal "?p : (ALL x. (EX y. P(y) & x=f(y)) --> P(x)) <-> (ALL x. P(x) --> P(f(x)))"
  by (tactic "IntPr.best_tac ๐Ÿ‹ 1")

text "Problem 57"
schematic_goal
    "?p : P(f(a,b), f(b,c)) & P(f(b,c), f(a,c)) &
     (ALL x y z. P(x,y) & P(y,z) --> P(x,z)) --> P(f(a,b), f(a,c))"
  by (tactic "IntPr.best_tac ๐Ÿ‹ 1")

text "Problem 60"
schematic_goal "?p : ALL x. P(x,f(x)) <-> (EX y. (ALL z. P(z,y) --> P(z,f(x))) & P(x,y))">
  by (tactic "IntPr.best_tac ๐Ÿ‹ 1")

end

Messung V0.5 in Prozent
C=74 H=-1 G=51

ยค Dauer der Verarbeitung: 0.17 Sekunden  (vorverarbeitet am  2026-04-30) ยค

*© 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.