210 likes | 412 Vues
Resolution-based theorem proving. Otter / Prover9. Dennis Leroy Wigand | Gereon Goetze | Sebastian Meyer zu Borgsen. Agenda. Aufgabenstellung Vorstellung von Prover9 Basis Aufgaben: Father and Son ToBI the Robot Enlighted Room
E N D
Resolution-based theorem proving Otter / Prover9 Dennis Leroy Wigand | Gereon Goetze | Sebastian Meyer zu Borgsen
Agenda • Aufgabenstellung • Vorstellung von Prover9 • Basis Aufgaben: • Fatherand Son • ToBIthe Robot • EnlightedRoom • Problematik der Modellierung von zeitlichen Abläufen • Neue Prover9 Version • „Production Mode“ • Highlighting und Aufbau einer Input-Datei • Zeitontology Aufgaben • Manuel Neuer • Ronaldo Gomez Variante 1 • Ronaldo Gomez Variante 2 • Resümee
Aufgabenstellung …ein kurzer Überblick • Einarbeiten ins Theorem Proving für First-order logics: • Verwendung von Otter/Prover9 • Implementierung kleiner Bsp. „John isthesonof Peter.“ • Entwicklung einer Ontologie für zeitliche Abläufe. • Erweiterung der Ontologie auf den Spezialfall „Fussball“.
Prover9 • Theorembeweiser für Prädikatenlogik erster Stufe (von William McCune). • Nachfolger vom OTTER (OrganizedTechniques Theorem provingandeffective Research) Theorem Prover. • Unterscheidet nicht mehr zwischen Klauseln und Formeln. • Versucht im Gegensatz zu Mace4 einen Beweis zu finden. • (Prover9 Beweis, Mace4 Gegenbeispiel)
Resolution – Aufgabe I Aufbau Fatherand Son „John isthesonof Peter.“ Resolution von „John is male.“
Resolution – Aufgabe I ProofFatherand Son
Resolution – Aufgabe II Aufbau ToBIthe Robot „All robotsenjoylife. ToBIis a robot.“ formulas(usable). % Relations % All robots enjoy life. all x(Robot(x) ->enjoysLife(x)). end_of_list. formulas(assumptions). % Knowledge % ToBI is a robot. Robot(ToBI). end_of_list. formulas(goals). % Goals % ToBIenjoyslife. enjoysLife(ToBI). % There is someone % who does not enjoy life. existsx(-enjoysLife(x)). end_of_list.
Resolution – Aufgabe III Aufbau EnlightedRoom „John enteredtheroom. The electricity was not off. Eithertheelectricity was off or he switched on thelight.“ % Either the electricity was off or he switched on the light. -(entered(y,x) & electricityOff(x)) <->switchOnLight(y,x). switchOnLight(y,x) ->-dark(x). % Relation for not dark question. entered(John,Room). % John entered the room. -electricityOff(Room). % The electricity was not off. switchOnLight(John,Room). % John switched on the light. % -dark(Room). % The room was not dark anymore.
Problematik der Modellierung…First-order Logic und ihre Tücken • Spielminuten • 90 Spielminuten • Ordnung über die Zeit • Punktestände • Vergleichbarkeit (2 Tore > 1) • Ergebnis von Toren • Semantische Interpretation des gegebenen Satzes • „early“ • „header … canceled out“
Versionswechsel…und der Weg zu neuen Möglichkeiten • Grafische Oberfläche von Prover9 nutzt • LADR-Dec-2007 • Aktuelle Version • LADR-Dec-2009-11A • keine graphische Oberfläche • nur als Source Code verfügbar • Production Mode
Highlighting…optimales Arbeiten auch ohne GUI Erstellung eines Highlightings für Prover9/Mace4 Dateien (*.in)
Production Mode…randvoll mit mächtigen Features • Ermöglicht die Nutzung von • Zahlen (1,2,3..) • Operatoren (+/-) • Ordnung auf Zahlen • Listen ([y:z]) • Rekursion • Variablen (u,v,w,x,y,z)
Manuel Neuer Aufbau Aufgabenstellung „Manuel Neuer isthegoalkeeperof Bayern München.“ Dazu bedarf es… …einer Zeitontology für die Modellierung der zeitlichen Einordnung von Events.
Manuel Neuer Aufbau Zeitontology % Enablestheuseofnumbersandarithmetics. set(production). formulas(usable). % Relations ----------------------------------------- % Interval u beforeinterval v. all uall v (before(u,v) <-Interval(u,x,y) & Interval(v,z,w) & (y<= z) & -equal(u,v)). % Inequalityofintervals. Interval(u,x,y) & Interval(v,z,w) & (-(x == z)|-(y == w)) ->-equal(u,v). % Instant v in Interval u. instDuringInt(v,u) <-Instant(v,x) & Interval(u,y,z) & (x>= y) & (x<= z). % Checks foroverlappingintervals. overlaps(v,u) <-Interval(v,x,y) & Interval(u,w,z) & ((x>= w) & (x<= z) | (y>= w) & (y<= z)).
Manuel Neuer Aufbau Inhalt % A goalkeeperis a player (now). goalkeeper(x,y) ->player(x,y). % Pasteventscanbeattachedto a specific time. wasGoalkeeper(x,y,z) ->playedFor(x,y,z). % Getthecorrespondingintervaltothe "now"-instant. player(x,y) & instDuringInt(now,z) ->playedFor(x,y,z). % Rule out that a playercannotplayfortwo different clubsatthe same time (overlappingintervals). all b (Interval(b,v,w) & playedFor(x,y,z) & -(y == u) & overlaps(z,b) ->-playedFor(x,u,b)). % Wrapper forplayedForwithcorrespondingintervaltothe "now"-instant. playedFor(x,y,z) & instDuringInt(now,z) ->playsFor(x,y). -playedFor(x,y,z) & instDuringInt(now,z) ->-playsFor(x,y).
Manuel Neuer Aufbau Goals % Manuel Neuer playsfor Schalke. playsFor(ManuelNeuer,Schalke). % Manuel Neuer playedfor Schalke. % (Find an interval, % whichisbeforethe "now"-interval.) existsxexistsy (before(x,y) & instDuringInt(now,y) & playedFor(ManuelNeuer,Schalke,x)).
Ronaldo Gomez Aufbau Aufgabenstellung „The 90th minute header by Gomez cancelled out the early opener by Ronaldo” Hier gibt es verschiedene Ansätze… …zwei davon werden im Folgenden vorgestellt - jeweils mit Pro/Contra.
Live Demos Demo
Resümee …die Quintessenz zum Schluss • Grenzen der FOL. • Problematik der Ambiguität von Sprache. • Selbstverständlichkeit von Numerik. • Überführen von Open- in Closed-World.