Towards Natural Style for Resolution Proofs in Theorema Diana Dubu West University of Timişoara eAustria Research Institute Supervisor Prof. Dr. Tudor.

Slides:



Advertisements
Similar presentations
Quantified Invariant Generation using an Interpolating Saturation Prover Ken McMillan Cadence Research Labs TexPoint fonts used in EMF: A A A A A.
Advertisements

Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Resolution Proof System for First Order Logic
Biointelligence Lab School of Computer Sci. & Eng.
10 October 2006 Foundations of Logic and Constraint Programming 1 Unification ­An overview Need for Unification Ranked alfabeths and terms. Substitutions.
Knowledge & Reasoning Logical Reasoning: to have a computer automatically perform deduction or prove theorems Knowledge Representations: modern ways of.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License:
Propositional and First Order Reasoning. Terminology Propositional variable: boolean variable (p) Literal: propositional variable or its negation p 
Automated Reasoning Systems For first order Predicate Logic.
Knowledge Representation and Reasoning University "Politehnica" of Bucharest Department of Computer Science Fall 2010 Adina Magda Florea
First Order Logic Resolution
Inference and Reasoning. Basic Idea Given a set of statements, does a new statement logically follow from this. For example If an animal has wings and.
Logic Use mathematical deduction to derive new knowledge.
Logic Concepts Lecture Module 11.
The Theory of NP-Completeness
Induction and recursion
1 Applied Computer Science II Resolution in FOL Luc De Raedt.
Formal Logic Proof Methods Direct Proof / Natural Deduction Conditional Proof (Implication Introduction) Reductio ad Absurdum Resolution Refutation.
CSE (c) S. Tanimoto, 2008 Propositional Logic
Inference and Resolution for Problem Solving
Logic in Computer Science Transparency No Chapter 3 Propositional Logic 3.6. Propositional Resolution 3.7. Natural Deduction.
Existential Graphs and Davis-Putnam April 3, 2002 Bram van Heuveln Department of Cognitive Science.
Validating Streaming XML Documents Luc Segoufin & Victor Vianu Presented by Harel Paz.
Winter 2004/5Pls – inductive – Catriel Beeri1 Inductive Definitions (our meta-language for specifications)  Examples  Syntax  Semantics  Proof Trees.
Search in the semantic domain. Some definitions atomic formula: smallest formula possible (no sub- formulas) literal: atomic formula or negation of an.
Technion 1 (Yet another) decision procedure for Equality Logic Ofer Strichman and Orly Meir Technion.
Last time Proof-system search ( ` ) Interpretation search ( ² ) Quantifiers Equality Decision procedures Induction Cross-cutting aspectsMain search strategy.
Artificial Intelligence
Induction and recursion
Notes for Chapter 12 Logic Programming The AI War Basic Concepts of Logic Programming Prolog Review questions.
Daniel Kroening and Ofer Strichman 1 Decision Procedures in First Order Logic Decision Procedures for Equality Logic Range Allocation.
SAT and SMT solvers Ayrat Khalimov (based on Georg Hofferek‘s slides) AKDV 2014.
Conjunctive normal form: any formula of the predicate calculus can be transformed into a conjunctive normal form. Def. A formula is said to be in conjunctive.
1 Chapter 8 Inference and Resolution for Problem Solving.
Advanced Topics in Propositional Logic Chapter 17 Language, Proof and Logic.
1 Knowledge Representation. 2 Definitions Knowledge Base Knowledge Base A set of representations of facts about the world. A set of representations of.
ARTIFICIAL INTELLIGENCE [INTELLIGENT AGENTS PARADIGM] Professor Janis Grundspenkis Riga Technical University Faculty of Computer Science and Information.
CS344: Introduction to Artificial Intelligence Lecture: Herbrand’s Theorem Proving satisfiability of logic formulae using semantic trees (from Symbolic.
CS621: Artificial Intelligence Pushpak Bhattacharyya CSE Dept., IIT Bombay Lecture 28– Interpretation; Herbrand Interpertation 30 th Sept, 2010.
The AI War LISP and Prolog Basic Concepts of Logic Programming
Propositional calculus
Automated Reasoning Early AI explored how to automated several reasoning tasks – these were solved by what we might call weak problem solving methods as.
Mathematical Preliminaries
© Copyright 2008 STI INNSBRUCK Intelligent Systems Propositional Logic.
Finding Models for Blocked 3-SAT Problems in Linear Time by Systematical Refinement of a Sub- Model Gábor Kusper Eszterházy Károly.
DEDUCTION PRINCIPLES AND STRATEGIES FOR SEMANTIC WEB Chain resolution and its fuzzyfication Dr. Hashim Habiballa University of Ostrava.
1 Reasoning with Infinite stable models Piero A. Bonatti presented by Axel Polleres (IJCAI 2001,
Classifications LanguageGrammarAutomaton Regular, right- linear Right-linear, left-linear DFA, NFA Context-free PDA Context- sensitive LBA Recursively.
Daniel Kroening and Ofer Strichman Decision Procedures An Algorithmic Point of View Deciding Combined Theories.
© Copyright 2008 STI INNSBRUCK Intelligent Systems Lecture II – xx 2009 Propositional Logic Dieter Fensel and.
Chapter 5. Section 5.1 Climbing an Infinite Ladder Suppose we have an infinite ladder: 1.We can reach the first rung of the ladder. 2.If we can reach.
Knowledge Repn. & Reasoning Lecture #9: Propositional Logic UIUC CS 498: Section EA Professor: Eyal Amir Fall Semester 2005.
Dana Nau: Lecture slides for Automated Planning Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License:
Copyright 1999Paul F. Reynolds, Jr. Foundations of Logic Programming.
Logical Agents. Outline Knowledge-based agents Logic in general - models and entailment Propositional (Boolean) logic Equivalence, validity, satisfiability.
From Classical Proof Theory to P vs. NP
Introduction to Logic for Artificial Intelligence Lecture 2
Knowledge Representation and Reasoning
Resolution in the Propositional Calculus
Computer Science Department
Logics for Data and Knowledge Representation
Induction and recursion
Logic Use mathematical deduction to derive new knowledge.
Horn Clauses and Unification
The Relative Power of Semantics and Unification
Horn Clauses and Unification
Horn Clauses and Unification
Gábor Kusper  Research Institute for Symbolic Computation (RISC-Linz)
Logic Logic is a discipline that studies the principles and methods used to construct valid arguments. An argument is a related sequence of statements.
Agenda Proofs (Konsep Pembuktian) Direct Proofs & Counterexamples
Presentation transcript:

Towards Natural Style for Resolution Proofs in Theorema Diana Dubu West University of Timişoara eAustria Research Institute Supervisor Prof. Dr. Tudor Jebelean

Presentation Outline Work context Motivation Tool support ApproachNotions My work Example Future work...

Presentation Outline Work context Motivation Tool support ApproachNotions My work Example Future work...

Research Environment Scholarship at the Research Institute for Symbolic Computation (RISC), Johannes Kepler Universität, Linz, Austria Program Coordinator: Prof. Dr. Tudor Jebelean Attendance at the Automated Theorem Proving II lecture and Theorema Seminars Further collaborations with Theorema Group members

Presentation Outline Work context Motivation Tool support ApproachNotions My work Example Future work...

Why Natural Style? Problems with proofs Problems with proofs generated by clausa reasoners – –too long (intermediary steps) – –machine-oriented formalism hard to follow by the user (even if experienced) – –different system representations Solution Solution: construct a uniform machine-independent representation translate machine-found proofs into a human- comprehensible format

Why Natural Style? Problems with proofs Problems with proofs generated by clausa reasoners – –too long (intermediary steps) – –machine-oriented formalism hard to follow by the user (even if experienced) – –different system representations Solution Solution: construct a uniform machine-independent representation translate machine-found proofs into a human- comprehensible format

Presentation Outline Work context Motivation Tool support ApproachNotions My work Example Future work...

Toolkit Theorema è è built on top of Mathematica at RISC by the Theorema Research Group initiated by Prof. Dr. Bruno Buchberger è è integrates the computing capabilities of a CAS with the deduction capabilities of ATPs interacts with the user in the language of predicate logic (the natural language for expressing mathematical properties and algorithms)

Proving in Theorema methods for several mathematical domains : u propositional logic u general predicate logic u induction over integers and over lists u set theory u boolean combinations of polynomial [in]equalities (using Groebner Bases) u combinatorial summation (using Paule–Schorn– Zeilberger) u PCS (proving–computing–solving) for proving in higher- order logic with equality [Buchberger]

Tma Proof Object generated as a result of the proof contains the proof tree - information about: è assumptions’ list è subgoals at each proof step è formulae used at each step è formulae generated at each step è status (proved, failed, pending)

Tma Proof Object generated as a result of the proof contains the proof tree - information about: è assumptions’ list è subgoals at each proof step è formulae used at each step è formulae generated at each step è status (proved, failed, pending)

Tma Proof Object generated as a result of the proof contains the proof tree - information about: è assumptions’ list è subgoals at each proof step è formulae used at each step è formulae generated at each step è status (proved, failed, pending)

Theorema`Provers`Common`ProofObject`Private`AndNode[ Theorema`Provers`Common`ProofObject`Private`ProofInfo["DoneMatching", usedFormulae[], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Private`AndNode[Theorema`Provers`Common`ProofObject`P rivate`ProofInfo[ "ConclusionIsAssumption", usedFormulae[ "Proposition (3)", "Proposition (1)/1"], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ lf["Proposition (3)", MORTAL[Confucius], finfo[]], asml[lf[ "Proposition (1)/1", MORTAL[Confucius], finfo[""]], lf["Proposition (1)", ™ForAll[range[simpleRange[var[x]]], True, ™Implies[MAN[var[x]], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Private`AndNode[Theorema`Provers`Common`ProofObject`P rivate`ProofInfo[ "ConclusionIsAssumption", usedFormulae[ "Proposition (3)", "Proposition (1)/1"], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ lf["Proposition (3)", MORTAL[Confucius], finfo[]], asml[lf[ "Proposition (1)/1", MORTAL[Confucius], finfo[""]], lf["Proposition (1)", ™ForAll[range[simpleRange[var[x]]], True, ™Implies[MAN[var[x]], MORTAL[var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], finfo[""]]], lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", MORTAL[var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], finfo[""]]], lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}, {"MatchingFacts", lkTab[{{{"Proposition (1)", "Proposition (2)"}, True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[lf["Proposition (3)", {MORTAL[Confucius]}}, {"MatchingFacts", lkTab[{{{"Proposition (1)", "Proposition (2)"}, True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[lf["Proposition (3)", MORTAL[Confucius], finfo[]], asml[lf["Proposition (1)", ™ForAll[ range[simpleRange[var[x]]], True, MORTAL[Confucius], finfo[]], asml[lf["Proposition (1)", ™ForAll[ range[simpleRange[var[x]]], True, ™Implies[MAN[var[x]], MORTAL[ var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], ™Implies[MAN[var[x]], MORTAL[ var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], finfo[""]]], lkTab[{{"ProversHistory", {}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", lkTab[{}]}, {"MatchingFacts", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\ finfo[""]]], lkTab[{{"ProversHistory", {}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", lkTab[{}]}, {"MatchingFacts", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\ aints[], "proved"]] Example - $TmaProofObject

Theorema`Provers`Common`ProofObject`Private`AndNode[ Theorema`Provers`Common`ProofObject`Private`ProofInfo["DoneMatching", usedFormulae[], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Private`AndNode[Theorema`Provers`Common`ProofObject`P rivate`ProofInfo[ "ConclusionIsAssumption", usedFormulae[ "Proposition (3)", "Proposition (1)/1"], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ lf["Proposition (3)", MORTAL[Confucius], finfo[]], asml[lf[ "Proposition (1)/1", MORTAL[Confucius], finfo[""]], lf["Proposition (1)", ™ForAll[range[simpleRange[var[x]]], True, ™Implies[MAN[var[x]], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Private`AndNode[Theorema`Provers`Common`ProofObject`P rivate`ProofInfo[ "ConclusionIsAssumption", usedFormulae[ "Proposition (3)", "Proposition (1)/1"], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ lf["Proposition (3)", MORTAL[Confucius], finfo[]], asml[lf[ "Proposition (1)/1", MORTAL[Confucius], finfo[""]], lf["Proposition (1)", ™ForAll[range[simpleRange[var[x]]], True, ™Implies[MAN[var[x]], MORTAL[var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], finfo[""]]], lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", MORTAL[var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], finfo[""]]], lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}, {"MatchingFacts", lkTab[{{{"Proposition (1)", "Proposition (2)"}, True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[lf["Proposition (3)", {MORTAL[Confucius]}}, {"MatchingFacts", lkTab[{{{"Proposition (1)", "Proposition (2)"}, True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[lf["Proposition (3)", MORTAL[Confucius], finfo[]], asml[lf["Proposition (1)", ™ForAll[ range[simpleRange[var[x]]], True, MORTAL[Confucius], finfo[]], asml[lf["Proposition (1)", ™ForAll[ range[simpleRange[var[x]]], True, ™Implies[MAN[var[x]], MORTAL[ var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], ™Implies[MAN[var[x]], MORTAL[ var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], finfo[""]]], lkTab[{{"ProversHistory", {}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", lkTab[{}]}, {"MatchingFacts", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\ finfo[""]]], lkTab[{{"ProversHistory", {}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", lkTab[{}]}, {"MatchingFacts", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\ aints[], "proved"]] Example - $TmaProofObject

Theorema`Provers`Common`ProofObject`Private`AndNode[ Theorema`Provers`Common`ProofObject`Private`ProofInfo["DoneMatching", usedFormulae[], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Private`AndNode[Theorema`Provers`Common`ProofObject`P rivate`ProofInfo[ "ConclusionIsAssumption", usedFormulae[ "Proposition (3)", "Proposition (1)/1"], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ lf["Proposition (3)", MORTAL[Confucius], finfo[]], asml[lf[ "Proposition (1)/1", MORTAL[Confucius], finfo[""]], lf["Proposition (1)", ™ForAll[range[simpleRange[var[x]]], True, ™Implies[MAN[var[x]], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Private`AndNode[Theorema`Provers`Common`ProofObject`P rivate`ProofInfo[ "ConclusionIsAssumption", usedFormulae[ "Proposition (3)", "Proposition (1)/1"], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ lf["Proposition (3)", MORTAL[Confucius], finfo[]], asml[lf[ "Proposition (1)/1", MORTAL[Confucius], finfo[""]], lf["Proposition (1)", ™ForAll[range[simpleRange[var[x]]], True, ™Implies[MAN[var[x]], MORTAL[var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], finfo[""]]], lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", MORTAL[var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], finfo[""]]], lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}, {"MatchingFacts", lkTab[{{{"Proposition (1)", "Proposition (2)"}, True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[lf["Proposition (3)", {MORTAL[Confucius]}}, {"MatchingFacts", lkTab[{{{"Proposition (1)", "Proposition (2)"}, True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[lf["Proposition (3)", MORTAL[Confucius], finfo[]], asml[lf["Proposition (1)", ™ForAll[ range[simpleRange[var[x]]], True, MORTAL[Confucius], finfo[]], asml[lf["Proposition (1)", ™ForAll[ range[simpleRange[var[x]]], True, ™Implies[MAN[var[x]], MORTAL[ var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], ™Implies[MAN[var[x]], MORTAL[ var[x]]]], finfo[""]], lf["Proposition (2)", MAN[Confucius], finfo[""]]], lkTab[{{"ProversHistory", {}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", lkTab[{}]}, {"MatchingFacts", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\ finfo[""]]], lkTab[{{"ProversHistory", {}}, {"LastProver", PND}, {"PND", lkTab[{{"ModusPonensFacts", lkTab[{}]}, {"MatchingFacts", lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\ aints[], "proved"]] Example - $TmaProofObject

Theorema Proof Notebook A:\Link1\-home-info-www-people-knakagaw-ex-indexlnk2.htm Predicate Logic Prover Predicate Logic ProverProve: (Proposition (6))¬((¬Q)\[Or](¬R)), under the assumptions: (Proposition (1))P\[Or]Q, (Proposition (2))Q\[Or]R, (Proposition (3))R\[Or]W, (Proposition (4))(¬R)\[Or](¬P), (Proposition (5))(¬W)\[Or](¬Q). We prove (Proposition (6)) by contradiction. We assume (1)(¬Q)\[Or](¬R), and show a contradiction. We prove (a contradiction) by case distinction using (1). Case (1.1) ¬Q: We delete (Proposition (5)) because it is subsumed by (1.1). From (1.1) and (Proposition (1)) we obtain by resolution (2)P. From (2) and (Proposition (4)) we obtain by resolution (3)¬R. From (1.1) and (Proposition (2)) we obtain by resolution (4)R. Formula (a contradiction) is proved because (4) and (3) are contradictory. Case (1.2) ¬R: We delete (Proposition (4)) because it is subsumed by (1.2). From (1.2) and (Proposition (2)) we obtain by resolution (5)Q. We delete (Proposition (1)) because it is subsumed by (5). From (5) and (Proposition (5)) we obtain by resolution (6)¬W. From (1.2) and (Proposition (3)) we obtain by resolution (7)W. Formula (a contradiction) is proved because (7) and (6) are contradictory. Additional Proof Generation Information The Proof Call Prove[Proposition["6"], using\[Rule]{Proposition["1"],Proposition["2"],Propos ition["3"], using\[Rule]{Proposition["1"],Proposition["2"],Propos ition["3"], Proposition["4"],Proposition["5"]},SearchDepth->35]; Proposition["4"],Proposition["5"]},SearchDepth->35]; Formulae Occuring during the Proof (1)(¬Q)\[Or](¬R)(1.1)¬Q(1.2)¬R(2)P(3)¬R(4)R(5)Q(6)¬W(7)W (a contradiction)False (Proposition (1))P\[Or]Q (Proposition (2))Q\[Or]R (Proposition (3))R\[Or]W (Proposition (4))(¬R)\[Or](¬P) (Proposition (5))(¬W)\[Or](¬Q) (Proposition (6))¬((¬Q)\[Or](¬R))

and... and... Otter è a resolution-style theorem proving program for first order with equality è includes the inference rules: binary resolution, hyperresolution, UR-resolution and binary paramodulation è transforms formulae into normal form è there is a direct link with Theorema

T h e o r e m a Proof in a notebook a Theorema and Otter black box link Theorema call Prove[…] Translator Step 2 Step 3 Step 5 Step 1 Linking component to external system Translating component External System Step 4

T h e o r e m a Proof in a notebook a Theorema and Otter white box link Theorema call Prove[…] Translator Step 2 Step 3 Step 5 Step 1 Linking component to external system Translating component External System Step 4 Step 7 Back Translator Step 6

Presentation Outline Work context Motivation Tool support ApproachNotions My work Example Future work...

How? Understand underlying mechanisms of proving in Theorema Understand the interaction with external provers (i.e. Otter) of Theorema Study the current status of research w.r.t. Natural Style (i.e. Transformation of Machine- Found Proofs into Assertion Level Proofs, Andreas Meier)

Other Approaches 1. Search for an optimal proof by applying the transformation rules on-the-fly: Rewrite-rules (Buchberger, Jebelean) S-decomposition in [Jebelean]

Other Approaches 2. Transform Resolution proofs into Natural Deduction proofs [Andrews, Miller, Schmitt & Kreitz, Lingenfelder] Problems: –many levels of indirect parts Cause: use of ND-rules for eliminating quantifiers and connectors Cause: use of ND-rules for eliminating quantifiers and connectors –representation Cause: a large number of low-level syntactical manipulations of logical quantifiers and connectives Cause: a large number of low-level syntactical manipulations of logical quantifiers and connectives

This approach Andreas Meier -> perform transformations at the assertion level Assertions: theorems and definitions

Schemata of the Approach Theorema Otter Proof call Prove[…] Proof result (string) Refutation graphs Transformation algorithm Extract Relevant information §TmaProofObject ND proof ND* rules Transformation procedures Natural Style Proof Notebook

Which proofs? Proofs obtained by resolution through refutation A set of clauses is unsatisfiable (inconsistent) iff there is a resolution deduction of the empty clause from S. A set of clauses is unsatisfiable (inconsistent) iff there is a resolution deduction of the empty clause  from S.

Refutation Definition A refutation of Δ is a derivation in which some finite subset of ground formulas is unsatisable. (Δ = a finite set of closed formulae in normal form)How? Add negated goal to the set of axioms and prove the inconsistency of the new set by producing the empty clause through a set of inferences.

Resolution Principle (Robinson, 1965) For any two clauses C and D, if there is a literal L1 in C that is complementary to a literal L2 in D, then delete L1 and L2 from C and D, respectively, and construct the disjunction of the remaining clauses. The constructed clause is a resolvent of C and D (Robinson, 1965) For any two clauses C and D, if there is a literal L1 in C that is complementary to a literal L2 in D, then delete L1 and L2 from C and D, respectively, and construct the disjunction of the remaining clauses. The constructed clause is a resolvent of C and D (Chang and Lee, Symbolic Logic and Mechanical Theorem Proving)

Problem: Proofs’ format vary with the systeme (automated theorem prover) Proofs’ format vary with the systeme (automated theorem prover)Solution: Find a common representation of machine- found proofs. Find a common representation of machine- found proofs. Refutation Graphs ( Transformation of Machine-Found Proofs into Assertion Level Proofs, Andreas Meier )

Presentation Outline Work context Motivation Tool support ApproachNotions My work Example Future work...

Definitions Clause graph - a quadruple G = (L,C,M Lit,  ), where  L is a finite set; elements are literal nodes  C  2 L is a partition of the set of literal nodes; elements are clause nodes of G  M Lit is a mapping from L to the set of literals, labelling literal nodes with literals  , the set of links, is a partition of a subset of L, s.t. for all  the following hold:  1 All the literal nodes in one link are labeled with literals whos atoms are unifible  2 There must be at least one positive shore and one negative literal literal in a link

Literal nodes not belonging to any link are called pure Each link  has two opposite shores: a positive shore S + (  ) and a negative shore S - (  ) (i.e. literal nodes with positive and negative literals, respectively) trail - a walk in which all links are distrinct; joins start and end clause nodes; a trail to a link  - a trail whose last clause has a literal in  cycle - a trail joining a clause node to itself; a graph with such a cicle is called cyclic

Deduction graph - a non-empty, ground (i.e. all literals are ground) and acyclic clause graph Refutation graph a deduction graph without pure literal nodes Minimal deduction (refutation) graph - one containing no proper subgraph which is itself a deduction (refutation) graph) +A+B -A+B -B Example

Presentation Outline Work context Motivation Tool support ApproachNotions My work Example Future work...

How to obtain refutation graphs? Call Otter for proving by resolution (automatic transformation in normal form) Retrieve the result in $TmaProofObject Parse $TmaProofObject and extract relevant information (used formulae, generated formulae) Build the data structure

Algorithm C1;C2; :::;Cn - initial set of clauses - represent the nodes in the refutation graph Identify the resolvents R1;R2; :::;Rm generated by the inference rules Determine the links in the refutation graph: 1. Identify in each resolvent Ri from the set R1;R2; :::;Rm which original clause has been used. For the inferences using resolvents to generate new ones, identify from which original clauses have the former been generated 2. Extract from the initial clauses the literals remaining after the resolution step and connect them s. t. each link has a positive shore and a negative one.

Remarks It is possible that a literal in Ri originates from more than one initial clause  all labels are stored s.t. all possible links between the nodes of the refutation graph are established Parsing has been performed on strings (black box link)

Presentation Outline Work context Motivation Tool support ApproachNotions My work Example Future work...

Simple example Considering prove Q  R, R  (P  Q), P  (Q  R)P  Q

Refutation graph qpr-q-rp-p-qq-r-pq r Theorem A deduction graph is minimal iff it has one more clauses as links. [Eisinger]

Data Structure

Presentation Outline Work context Motivation Tool support ApproachNotions My work Example Future work...

Future directions Implementation of transformation procedure in Theorema Extend the analysis to predicate logic Analize proofs obtained from other provers or with other proving methods

What’s next? Analyse and transform the refutation graphs s.t. proofs are simplified How? The solution offered by Andreas Meier with possible(?) improvements

Definitions Unit Clause Step (UCS) G - refutation graph. {AC, {UC 1,…, UC n }, R lit } is a UCS in G if:  AC, UC 1,…, UC n - clauses in G, R lit - literal of AC  UC 1,…, UC n - unit clauses, AC - not an unit clause  each literal of AC (except R lit ) - linked with the some unit clauses’s literal of UC 1,…, Ucn UC 1,…, UC n } - unit clauses, AC - assertion clause, R lit - result literal of the UCS R Lit AC UC 1 UC 2 UC 3

UCS - Replacement G - refutation graph. {AC, {UC 1,…, UC n }, R lit } a UCS in G, UC new a new unit clause consisting of R lit. UCS-replacement:  Remove AC from G  Add UC new to G   - link connecting R lit of AC. If  was removed at first step, add  ’ connecting R lit of UC new and literals connected by . Otherwise, add R lit of UC new to .  Each of UC 1,…, UC n, whose literal became pure at 1st step is removed

UCS-Decomposition Algorithm G - refutation graph Initialization-step: D(G)={} şi G curr =G UCS - replacement step:While G curr is not an end step:  Seek and UCS  in G curr  Replace  in G curr and assign G curr to the resulting refutation graph  Assign D(G)=D(G)  {  } If there is no UCS in G curr stop with error message Final step: If G curr has the form of an end step S, assign D(G)=D(G)  S and finish

Obtain UCS-decomposable graphs Liquidation-Strategy with the Direct-Decomposition Method Not minimal =>  is liquidated Transformation rules  

Obtain UCS-decomposable graphs Separation Strategy with the Direct Decomposition Method Transformation rules

Obtain UCS-decomposable graphs Liquidation Strategy with the Symetrical Simplification Method Transformation rules

Obtain UCS-decomposable graphs Separation Strategy with the Symetrical Simplification Method Transformation rules

Thank you