Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

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

schematic_goal "?p : ~~~P <-> ~P"
  by (tactic IntPr.fast_tac context 1)

schematic_goal "?p : ~~((P --> Q | R) --> (P-->Q) | (P-->R))"
  by (tactic IntPr.fast_tac context 1)

schematic_goal "?p : (P<->Q) <-> (Q<->P)"
  by (tactic IntPr.fast_tac context 1)


subsection Lemmas for the propositional double-negation translation

schematic_goal "?p : P --> ~~P"
  by (tactic IntPr.fast_tac context 1)

schematic_goal "?p : ~~(~~P --> P)"
  by (tactic IntPr.fast_tac context 1)

schematic_goal "?p : ~~P & ~~(P --> Q) --> ~~Q"
  by (tactic IntPr.fast_tac context 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 context 1)?
  oops

schematic_goal "?p : (P&Q-->R) --> (P-->R) | (Q-->R)"
  apply (tactic IntPr.fast_tac context 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 context 1)

text "Problem ~~2"
schematic_goal "?p : ~~(~~P <-> P)"
  by (tactic IntPr.fast_tac context 1)

text "Problem 3"
schematic_goal "?p : ~(P-->Q) --> (Q-->P)"
  by (tactic IntPr.fast_tac context 1)

text "Problem ~~4"
schematic_goal "?p : ~~((~P-->Q) <-> (~Q --> P))"
  by (tactic IntPr.fast_tac context 1)

text "Problem ~~5"
schematic_goal "?p : ~~((P|Q-->P|R) --> P|(Q-->R))"
  by (tactic IntPr.fast_tac context 1)

text "Problem ~~6"
schematic_goal "?p : ~~(P | ~P)"
  by (tactic IntPr.fast_tac context 1)

text "Problem ~~7"
schematic_goal "?p : ~~(P | ~~~P)"
  by (tactic IntPr.fast_tac context 1)

text "Problem ~~8. Peirce's law"
schematic_goal "?p : ~~(((P-->Q) --> P) --> P)"
  by (tactic IntPr.fast_tac context 1)

text "Problem 9"
schematic_goal "?p : ((P|Q) & (~P|Q) & (P| ~Q)) --> ~ (~P | ~Q)"
  by (tactic IntPr.fast_tac context 1)

text "Problem 10"
schematic_goal "?p : (Q-->R) --> (R-->P&Q) --> (P-->(Q|R)) --> (P<->Q)"
  by (tactic IntPr.fast_tac context 1)

text "11. Proved in each direction (incorrectly, says Pelletier!!) "
schematic_goal "?p : P<->P"
  by (tactic IntPr.fast_tac context 1)

text "Problem ~~12. Dijkstra's law "
schematic_goal "?p : ~~(((P <-> Q) <-> R) <-> (P <-> (Q <-> R)))"
  by (tactic IntPr.fast_tac context 1)

schematic_goal "?p : ((P <-> Q) <-> R) --> ~~(P <-> (Q <-> R))"
  by (tactic IntPr.fast_tac context 1)

text "Problem 13. Distributive law"
schematic_goal "?p : P | (Q & R) <-> (P | Q) & (P | R)"
  by (tactic IntPr.fast_tac context 1)

text "Problem ~~14"
schematic_goal "?p : ~~((P <-> Q) <-> ((Q | ~P) & (~Q|P)))"
  by (tactic IntPr.fast_tac context 1)

text "Problem ~~15"
schematic_goal "?p : ~~((P --> Q) <-> (~P | Q))"
  by (tactic IntPr.fast_tac context 1)

text "Problem ~~16"
schematic_goal "?p : ~~((P-->Q) | (Q-->P))"
  by (tactic IntPr.fast_tac context 1)

text "Problem ~~17"
schematic_goal "?p : ~~(((P & (Q-->R))-->S) <-> ((~P | Q | S) & (~P | ~R | S)))"
  by (tactic IntPr.fast_tac context 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 context 1)

schematic_goal "?p : ((ALL x. P(x))-->Q) --> ~ (ALL x. P(x) & ~Q)"
  by (tactic IntPr.fast_tac context 1)

schematic_goal "?p : ((ALL x. ~P(x))-->Q) --> ~ (ALL x. ~ (P(x)|Q))"
  by (tactic IntPr.fast_tac context 1)

schematic_goal "?p : (ALL x. P(x)) | Q --> (ALL x. P(x) | Q)"
  by (tactic IntPr.fast_tac context 1)

schematic_goal "?p : (EX x. P --> Q(x)) --> (P --> (EX x. Q(x)))"
  by (tactic IntPr.fast_tac context 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 context 1)?
  oops

schematic_goal "?p : (P --> (EX x. Q(x))) --> (EX x. P-->Q(x))"
  apply (tactic IntPr.fast_tac context 1)?
  oops

schematic_goal "?p : (ALL x. P(x) | Q) --> ((ALL x. P(x)) | Q)"
  apply (tactic IntPr.fast_tac context 1)?
  oops

schematic_goal "?p : (ALL x. ~~P(x)) --> ~~(ALL x. P(x))"
  apply (tactic IntPr.fast_tac context 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 context 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 context 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 context 1)

text "Problem ~~23"
schematic_goal "?p : ~~ ((ALL x. P | Q(x)) <-> (P | (ALL x. Q(x))))"
  by (tactic IntPr.fast_tac context 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 context")
  apply (erule impE)
   apply (tactic "IntPr.fast_tac context 1")
  apply (tactic "IntPr.fast_tac context 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 context 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 context 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 context 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 context 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 context 1" slow

text "Problem 39"
schematic_goal "?p : ~ (EX x. ALL y. F(y,x) <-> ~F(y,y))"
  by (tactic "IntPr.best_tac context 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 context 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 context 1")

text "Problem 48"
schematic_goal "?p : (a=b | c=d) & (a=c | b=d) --> a=d | b=c"
  by (tactic "IntPr.best_tac context 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 context 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 context 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 context 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))"an>
  by (tactic "IntPr.best_tac context 1")

end

Messung V0.5 in Prozent
C=81 H=100 G=90

¤ Dauer der Verarbeitung: 0.13 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik