Towards Natural Style for Resolution Proofs in Theorema

Post on 19-Jan-2016

21 views 0 download

Tags:

description

Towards Natural Style for Resolution Proofs in Theorema. Diana Dubu West University of Timiş oara eAustria Research Institute Supervis o r Prof. Dr. Tudor Jebelean. Presentation Outline. Work context Motivation Tool support Approach Notions My work Example Future work. - PowerPoint PPT Presentation

transcript

Towards Natural Style for Towards Natural Style for ResolutionResolution Proofs Proofs

in Theoremain Theorema

Diana DubuDiana DubuWest University of TimişWest University of Timişoaraoara

eAustria Research InstituteeAustria Research InstituteSupervisSupervisoorr

Prof. Dr. Tudor JebeleanProf. Dr. Tudor Jebelean

Presentation OutlinePresentation Outline

Work contextWork context

MotivationMotivation

Tool Tool supportsupport

ApproachApproach

NotionsNotions

My workMy work

ExampleExample

Future work...Future work...

Presentation OutlinePresentation Outline

Work contextWork context

MotivationMotivation

Tool Tool supportsupport

ApproachApproach

NotionsNotions

My workMy work

ExampleExample

Future work...Future work...

Research EnvironmentResearch Environment

Scholarship at the Research Institute for Scholarship at the Research Institute for Symbolic Computation (RISC), Johannes Symbolic Computation (RISC), Johannes Kepler Universität, Linz, AustriaKepler Universität, Linz, Austria

Program Coordinator: Prof. Dr. Tudor Program Coordinator: Prof. Dr. Tudor JebeleanJebelean

Attendance at the Automated Theorem Attendance at the Automated Theorem Proving II lecture and Theorema SeminarsProving II lecture and Theorema Seminars

Further collaborations with Theorema Further collaborations with Theorema Group membersGroup members

Presentation OutlinePresentation Outline

Work contextWork context

MotivationMotivation

Tool Tool supportsupport

ApproachApproach

NotionsNotions

My workMy work

ExampleExample

Future work...Future work...

WhyWhy NaturalNatural Style? Style?ProblemsProblems with proofs 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

SolutionSolution: 1. construct a uniform machine-independent

representation

2. translate machine-found proofs into a human-comprehensible format

WhyWhy NaturalNatural Style? Style?ProblemsProblems with proofs 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

SolutionSolution: 1. construct a uniform machine-independent

representation

2. translate machine-found proofs into a human-comprehensible format

Presentation OutlinePresentation Outline

Work contextWork context

MotivationMotivation

Tool Tool supportsupport

ApproachApproach

NotionsNotions

My workMy work

ExampleExample

Future work...Future work...

ToolkitToolkitTheoremaTheorema

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 ATPsinteracts with the user in the language of predicate logic (the natural language for expressing mathematical properties and algorithms)

Proving in TheoremaProving in Theorema

methods for several mathematical domainsmethods for several mathematical domains :: propositional logicpropositional logic general predicate logicgeneral predicate logic induction over integers and over listsinduction over integers and over lists set theoryset theory boolean combinations of polynomial [in]equalities boolean combinations of polynomial [in]equalities

(using Groebner Bases)(using Groebner Bases) combinatorial summation (using Paule–Schorn–combinatorial summation (using Paule–Schorn–

Zeilberger)Zeilberger) PCS (proving–computing–solving) for proving in higher-PCS (proving–computing–solving) for proving in higher-

order logic with equality [Buchberger]order logic with equality [Buchberger]

Tma Proof ObjectTma Proof Object

generated as a result of the proofgenerated as a result of the proof

contains the proof tree - information about:contains the proof tree - information about:assumptions’ listassumptions’ listsubgoals at each proof stepsubgoals at each proof step formulae used at each stepformulae used at each step formulae generated at each stepformulae generated at each stepstatus (proved, failed, pending)status (proved, failed, pending)

Tma Proof ObjectTma Proof Object

generated as a result of the proofgenerated as a result of the proof

contains the proof tree - information about:contains the proof tree - information about:assumptions’ listassumptions’ listsubgoals at each proof stepsubgoals at each proof step formulae usedformulae used at each step at each step formulae generated at each stepformulae generated at each stepstatus (proved, failed, pending)status (proved, failed, pending)

Tma Proof ObjectTma Proof Object

generated as a result of the proofgenerated as a result of the proof

contains the proof tree - information about:contains the proof tree - information about:assumptions’ listassumptions’ listsubgoals at each proof stepsubgoals at each proof step formulae usedformulae used at each step at each step formulae generatedformulae generated at each step at each stepstatus (proved, failed, pending)status (proved, failed, pending)

Theorema`Provers`Common`ProofObject`Private`AndNode[ Theorema`Provers`Common`ProofObject`PrivaTheorema`Provers`Common`ProofObject`Private`AndNode[ Theorema`Provers`Common`ProofObject`Private`ProofInfo["DoneMatching", •usedFormulae[], te`ProofInfo["DoneMatching", •usedFormulae[],

• •generatedFormulae[]], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Private`AndNode[Theorema`Provers`Common`ProofObject`Private`ProofInfo[ "ConclusionIsAssumption", Private`AndNode[Theorema`Provers`Common`ProofObject`Private`ProofInfo[ "ConclusionIsAssumption", •usedFormulae[ "Proposition (3)", "Proposition (1)/1"], •generatedFormulae[]], •usedFormulae[ "Proposition (3)", "Proposition (1)/1"], •generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ •lf["Proposition (3)", Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ •lf["Proposition (3)", MORTAL[Confucius], •finfo[]], •asml[•lf[ "Proposition (1)/1", MORTAL[Confucius], •finfo[""]], •lf["Proposition MORTAL[Confucius], •finfo[]], •asml[•lf[ "Proposition (1)/1", MORTAL[Confucius], •finfo[""]], •lf["Proposition (1)", ™ForAll[•range[•simpleRange[•var[x]]], True, ™Implies[MAN[•var[x]], (1)", ™ForAll[•range[•simpleRange[•var[x]]], True, ™Implies[MAN[•var[x]],

MORTAL[•var[x]]]], •finfo[""]], •lf["Proposition (2)", MAN[Confucius], •finfo[""]]], MORTAL[•var[x]]]], •finfo[""]], •lf["Proposition (2)", MAN[Confucius], •finfo[""]]], •lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", •lkTab[{{"ModusPonensFacts", •lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", •lkTab[{{"ModusPonensFacts",

• •lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, {"GoalHistory", {"GoalHistory",

{MORTAL[Confucius]}}, {"MatchingFacts", •lkTab[{{{"Proposition (1)", "Proposition (2)"}, {MORTAL[Confucius]}}, {"MatchingFacts", •lkTab[{{{"Proposition (1)", "Proposition (2)"}, True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[•lf["Proposition (3)", 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", finfo[""]]], •lkTab[{{"ProversHistory", {}}, {"LastProver", PND}, {"PND", •lkTab[{{"ModusPonensFacts", •lkTab[{}]}, {"MatchingFacts", •lkTab[{}]}, {"NewFormulae", {{}, •lkTab[{}]}, {"MatchingFacts", •lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, {"GoalHistory", Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\{MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\

aints[], "proved"]]aints[], "proved"]]

Example - $TmaProofObjectExample - $TmaProofObject

Theorema`Provers`Common`ProofObject`Private`AndNode[ Theorema`Provers`Common`ProofObject`PrivaTheorema`Provers`Common`ProofObject`Private`AndNode[ Theorema`Provers`Common`ProofObject`Private`ProofInfo["DoneMatching", •usedFormulae[], te`ProofInfo["DoneMatching", •usedFormulae[],

• •generatedFormulae[]], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Private`AndNode[Theorema`Provers`Common`ProofObject`Private`ProofInfo[ "ConclusionIsAssumption",Private`AndNode[Theorema`Provers`Common`ProofObject`Private`ProofInfo[ "ConclusionIsAssumption", •usedFormulae•usedFormulae[ "Proposition (3)", "Proposition (1)/1"], •generatedFormulae[]], [ "Proposition (3)", "Proposition (1)/1"], •generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ •lf["Proposition (3)", Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ •lf["Proposition (3)", MORTAL[Confucius], •finfo[]], •asml[•lf[ "Proposition (1)/1", MORTAL[Confucius], •finfo[""]], •lf["Proposition MORTAL[Confucius], •finfo[]], •asml[•lf[ "Proposition (1)/1", MORTAL[Confucius], •finfo[""]], •lf["Proposition (1)", ™ForAll[•range[•simpleRange[•var[x]]], True, ™Implies[MAN[•var[x]], (1)", ™ForAll[•range[•simpleRange[•var[x]]], True, ™Implies[MAN[•var[x]],

MORTAL[•var[x]]]], •finfo[""]], •lf["Proposition (2)", MAN[Confucius], •finfo[""]]], MORTAL[•var[x]]]], •finfo[""]], •lf["Proposition (2)", MAN[Confucius], •finfo[""]]], •lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", •lkTab[{{"ModusPonensFacts", •lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", •lkTab[{{"ModusPonensFacts",

• •lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, {"GoalHistory", {"GoalHistory",

{MORTAL[Confucius]}}, {"MatchingFacts", •lkTab[{{{"Proposition (1)", "Proposition (2)"}, {MORTAL[Confucius]}}, {"MatchingFacts", •lkTab[{{{"Proposition (1)", "Proposition (2)"}, True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[•lf["Proposition (3)", 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", finfo[""]]], •lkTab[{{"ProversHistory", {}}, {"LastProver", PND}, {"PND", •lkTab[{{"ModusPonensFacts", •lkTab[{}]}, {"MatchingFacts", •lkTab[{}]}, {"NewFormulae", {{}, •lkTab[{}]}, {"MatchingFacts", •lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, {"GoalHistory", Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\{MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\

aints[], "proved"]]aints[], "proved"]]

Example - $TmaProofObjectExample - $TmaProofObject

Theorema`Provers`Common`ProofObject`Private`AndNode[ Theorema`Provers`Common`ProofObject`PrivaTheorema`Provers`Common`ProofObject`Private`AndNode[ Theorema`Provers`Common`ProofObject`Private`ProofInfo["DoneMatching", •usedFormulae[], te`ProofInfo["DoneMatching", •usedFormulae[],

• •generatedFormulae[]], generatedFormulae[]], Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Theorema`Provers`Common`ProofObject`Private`Subgoals[ Theorema`Provers`Common`ProofObject`Private`AndNode[Theorema`Provers`Common`ProofObject`Private`ProofInfo[ "ConclusionIsAssumption", Private`AndNode[Theorema`Provers`Common`ProofObject`Private`ProofInfo[ "ConclusionIsAssumption", •usedFormulae•usedFormulae[ "Proposition (3)", "Proposition (1)/1"], [ "Proposition (3)", "Proposition (1)/1"], •generatedFormulae[]•generatedFormulae[]], ], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`Subgoals[], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ •lf["Proposition (3)", Theorema`Provers`Common`ProofObject`Private`MainProofSituation[ •lf["Proposition (3)", MORTAL[Confucius], •finfo[]], •asml[•lf[ "Proposition (1)/1", MORTAL[Confucius], •finfo[""]], •lf["Proposition MORTAL[Confucius], •finfo[]], •asml[•lf[ "Proposition (1)/1", MORTAL[Confucius], •finfo[""]], •lf["Proposition (1)", ™ForAll[•range[•simpleRange[•var[x]]], True, ™Implies[MAN[•var[x]], (1)", ™ForAll[•range[•simpleRange[•var[x]]], True, ™Implies[MAN[•var[x]],

MORTAL[•var[x]]]], •finfo[""]], •lf["Proposition (2)", MAN[Confucius], •finfo[""]]], MORTAL[•var[x]]]], •finfo[""]], •lf["Proposition (2)", MAN[Confucius], •finfo[""]]], •lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", •lkTab[{{"ModusPonensFacts", •lkTab[{{"ProversHistory", {PND}}, {"LastProver", PND}, {"PND", •lkTab[{{"ModusPonensFacts",

• •lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, {"GoalHistory", {"GoalHistory",

{MORTAL[Confucius]}}, {"MatchingFacts", •lkTab[{{{"Proposition (1)", "Proposition (2)"}, {MORTAL[Confucius]}}, {"MatchingFacts", •lkTab[{{{"Proposition (1)", "Proposition (2)"}, True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], True}}]}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constraints[], "proved"]], Theorema`Provers`Common`ProofObject`Private`MainProofSituation[•lf["Proposition (3)", 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", finfo[""]]], •lkTab[{{"ProversHistory", {}}, {"LastProver", PND}, {"PND", •lkTab[{{"ModusPonensFacts", •lkTab[{}]}, {"MatchingFacts", •lkTab[{}]}, {"NewFormulae", {{}, •lkTab[{}]}, {"MatchingFacts", •lkTab[{}]}, {"NewFormulae", {{}, Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, {"GoalHistory", Theorema`Provers`PredicateLogic`Auxiliary`Private`•oldForms[]}}, {"GoalHistory", {MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\{MORTAL[Confucius]}}}]}}]], Theorema`Provers`Common`ProofObject`Private`Constr\

aints[], "proved"]]aints[], "proved"]]

Example - $TmaProofObjectExample - $TmaProofObject

Theorema Proof NotebookTheorema Proof NotebookA:\Link1\-home-info-www-people-knakagaw-ex-indexlnk2.htmA:\Link1\-home-info-www-people-knakagaw-ex-indexlnk2.htmPredicatePredicate LogicLogic ProverProver

Prove:Prove:(Proposition (6))¬((¬Q)\[Or](¬R)),(Proposition (6))¬((¬Q)\[Or](¬R)),under the assumptions:under the assumptions:(Proposition (1))P\[Or]Q,(Proposition (1))P\[Or]Q,(Proposition (2))Q\[Or]R,(Proposition (2))Q\[Or]R,(Proposition (3))R\[Or]W,(Proposition (3))R\[Or]W,(Proposition (4))(¬R)\[Or](¬P),(Proposition (4))(¬R)\[Or](¬P),(Proposition (5))(¬W)\[Or](¬Q).(Proposition (5))(¬W)\[Or](¬Q).We prove (Proposition (6)) by contradiction.We prove (Proposition (6)) by contradiction.We assume We assume (1)(¬Q)\[Or](¬R),(1)(¬Q)\[Or](¬R),and show a contradiction.and show a contradiction.We prove (a contradiction) by case distinction using (1).We prove (a contradiction) by case distinction using (1).Case (1.1) ¬Q:Case (1.1) ¬Q:We delete (Proposition (5)) because it is subsumed by We delete (Proposition (5)) because it is subsumed by

(1.1).(1.1).From (1.1) and (Proposition (1)) we obtain by resolutionFrom (1.1) and (Proposition (1)) we obtain by resolution(2)P.(2)P.From (2) and (Proposition (4)) we obtain by resolutionFrom (2) and (Proposition (4)) we obtain by resolution(3)¬R.(3)¬R.From (1.1) and (Proposition (2)) we obtain by resolutionFrom (1.1) and (Proposition (2)) we obtain by resolution(4)R.(4)R.Formula (a contradiction) is proved because (4) and (3) Formula (a contradiction) is proved because (4) and (3)

are contradictory.are contradictory.Case (1.2) ¬R:Case (1.2) ¬R:We delete (Proposition (4)) because it is subsumed by We delete (Proposition (4)) because it is subsumed by

(1.2).(1.2).From (1.2) and (Proposition (2)) we obtain by resolutionFrom (1.2) and (Proposition (2)) we obtain by resolution(5)Q.(5)Q.We delete (Proposition (1)) because it is subsumed by We delete (Proposition (1)) because it is subsumed by

(5).(5).

From (5) and (Proposition (5)) we obtain by resolutionFrom (5) and (Proposition (5)) we obtain by resolution(6)¬W.(6)¬W.From (1.2) and (Proposition (3)) we obtain by resolutionFrom (1.2) and (Proposition (3)) we obtain by resolution(7)W.(7)W.Formula (a contradiction) is proved because (7) and (6) Formula (a contradiction) is proved because (7) and (6)

are contradictory.are contradictory.

Additional Proof Generation InformationAdditional Proof Generation InformationThe Proof CallThe Proof CallProve[Proposition["6"],Prove[Proposition["6"], using\[Rule]using\[Rule]

{Proposition["1"],Proposition["2"],Proposition["3"],{Proposition["1"],Proposition["2"],Proposition["3"], Proposition["4"],Proposition["5"]},SearchDepth->35];Proposition["4"],Proposition["5"]},SearchDepth->35];

Formulae Occuring during the ProofFormulae Occuring during the Proof(1)(¬Q)\[Or](¬R)(1)(¬Q)\[Or](¬R)(1.1)¬Q(1.1)¬Q(1.2)¬R(1.2)¬R(2)P(2)P(3)¬R(3)¬R(4)R(4)R(5)Q(5)Q(6)¬W(6)¬W(7)W(7)W(a contradiction)False(a contradiction)False(Proposition (1))P\[Or]Q(Proposition (1))P\[Or]Q(Proposition (2))Q\[Or]R(Proposition (2))Q\[Or]R(Proposition (3))R\[Or]W(Proposition (3))R\[Or]W(Proposition (4))(¬R)\[Or](¬P)(Proposition (4))(¬R)\[Or](¬P)(Proposition (5))(¬W)\[Or](¬Q)(Proposition (5))(¬W)\[Or](¬Q)(Proposition (6))¬((¬Q)\[Or](¬R))(Proposition (6))¬((¬Q)\[Or](¬R))

and...and...

Otter Otter

a resolution-style theorem proving program for a resolution-style theorem proving program for first order with equalityfirst order with equality

includes the inference rules: binary resolution, includes the inference rules: binary resolution, hyperresolution, UR-resolution and binary hyperresolution, UR-resolution and binary paramodulationparamodulation

transforms formulae into normal formtransforms formulae into normal form there is a direct link with Theoremathere is a direct link with Theorema

T h e o r e m a

Proof in a notebooka

Theorema and OtterTheorema and Otterblack box linkblack box link

Theorema callProve[…]

TranslatorStep 2

Step 3

Step 5

Step 1

Linking component to external system

Translating component

ExternalSystem

Step 4

T h e o r e m a

Proof in a notebooka

Theorema and OtterTheorema and Otterwhite box linkwhite box link

Theorema callProve[…]

TranslatorStep 2

Step 3

Step 5

Step 1

Linking component to external system

Translating component

ExternalSystem

Step 4Step 7Back

TranslatorStep 6

Presentation OutlinePresentation Outline

Work contextWork context

MotivationMotivation

Tool Tool supportsupport

ApproachApproach

NotionsNotions

My workMy work

ExampleExample

Future work...Future work...

How?How?

Understand underlying mechanisms of Understand underlying mechanisms of proving in Theoremaproving in Theorema

Understand the interaction with external Understand the interaction with external provers (i.e. Otter) of Theoremaprovers (i.e. Otter) of Theorema

Study the current status of research w.r.t. Study the current status of research w.r.t. Natural Style (i.e. Natural Style (i.e. Transformation of Machine-Transformation of Machine-Found Proofs into Assertion Level Proofs, Found Proofs into Assertion Level Proofs, Andreas Meier)Andreas Meier)

Other ApproachesOther Approaches1.1.

Search for an optimal proof by applying the transformation rules on-the-fly:

Rewrite-rules (Buchberger, Jebelean)S-decomposition in [Jebelean]

Other ApproachesOther Approaches2.2.

Transform Resolution proofs into Natural Transform Resolution proofs into Natural Deduction proofs Deduction proofs

[Andrews, Miller, Schmitt & Kreitz, Lingenfelder][Andrews, Miller, Schmitt & Kreitz, Lingenfelder]

Problems:Problems: – many levels of indirect partsmany levels of indirect parts

CauseCause: use of ND-rules for eliminating : use of ND-rules for eliminating quantifiers and connectorsquantifiers and connectors

– representationrepresentation CauseCause: a large number of low-level : a large number of low-level syntactical manipulations of logical quantifiers syntactical manipulations of logical quantifiers and connectivesand connectives

This approachThis approach

Andreas Meier -> perform Andreas Meier -> perform transformations at the assertion leveltransformations at the assertion level

AssertionsAssertions::

theorems and definitionstheorems and definitions

Schemata of the ApproachSchemata of the Approach

Theorema

Otter

Proof callProve[…]

Proof result (string)

Refutation graphs

Transformation

algorithm

Extra

c

t

Relevant information

§TmaProofObject

ND proof

ND*rules

Transformationprocedures

NaturalStyleProof

Notebook

Which proofs?Which proofs?

Proofs obtained by Proofs obtained by resolution resolution through refutationthrough refutation

A set of clauses is unsatisfiable A set of clauses is unsatisfiable (inconsistent) iff there is a resolution (inconsistent) iff there is a resolution deduction of the empty clause deduction of the empty clause from S.from S.

RefutationRefutation

DefinitionA 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? How? Add negated goal to the set of axioms and prove Add negated goal to the set of axioms and prove the inconsistency of the new set by producing the inconsistency of the new set by producing the empty clause through a set of inferences.the empty clause through a set of inferences.

Resolution PrincipleResolution Principle

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

Problem:Problem:

Proofs’ format vary with the systeme Proofs’ format vary with the systeme (automated theorem prover)(automated theorem prover)

Solution:Solution:

Find a common representation of machine-Find a common representation of machine-found proofs.found proofs.

Refutation GraphsRefutation Graphs

((Transformation of Machine-Found Proofs into Transformation of Machine-Found Proofs into

Assertion Level Proofs, Assertion Level Proofs, Andreas MeierAndreas Meier))

Presentation OutlinePresentation Outline

Work contextWork context

MotivationMotivation

Tool Tool supportsupport

ApproachApproach

NotionsNotions

My workMy work

ExampleExample

Future work...Future work...

DefinitionsDefinitions

CClause graphlause graph - a quadruple G = (- a quadruple G = (LL,,CC,,MMLLitit,,), where), where LL is a finite set; elements are is a finite set; elements are literal nodesliteral nodes CC22LL is a partition of the set of literal nodes; is a partition of the set of literal nodes;

elements are elements are clause nodesclause nodes of G of G MMLLitit is a mapping from is a mapping from LL to the set of literals, labelling to the set of literals, labelling

literal nodes with literalsliteral nodes with literals , the set of links, is a partition of a subset of , the set of links, is a partition of a subset of LL, s.t. , s.t.

for all for all the following hold: the following hold:11 All the literal nodes in one link are labeled with literals whos All the literal nodes in one link are labeled with literals whos

atoms are unifibleatoms are unifible

22 There must be at least one positive shore and one negative There must be at least one positive shore and one negative literal literal in a linkliteral literal in a link

Literal nodes not belonging to any link are called Literal nodes not belonging to any link are called purepure

Each link Each link has two opposite shores: a has two opposite shores: a positive positive shoreshore S S++(() and a ) and a negativenegative shoreshore S S--(() (i.e. ) (i.e. literal nodes with positive and negative literals, literal nodes with positive and negative literals, respectively)respectively)

trailtrail - a walk in which all links are distrinct; joins - a walk in which all links are distrinct; joins start and end clause nodes; a trail to a link start and end clause nodes; a trail to a link - a - a trail whose last clause has a literal in trail whose last clause has a literal in

cyclecycle - a trail joining a clause node to itself; a - a trail joining a clause node to itself; a graph with such a cicle is calledgraph with such a cicle is called cyclic cyclic

Deduction graphDeduction graph - a non-empty, ground - a non-empty, ground (i.e. all literals are ground) and acyclic (i.e. all literals are ground) and acyclic clause graphclause graph

Refutation graphRefutation graph a deduction graph a deduction graph without pure literal nodeswithout pure literal nodes

Minimal deduction (refutation) graphMinimal deduction (refutation) graph - one - one containing no proper subgraph which is containing no proper subgraph which is itself a deduction (refutation) graph)itself a deduction (refutation) graph)

+A+B

-A +B-BExample

Presentation OutlinePresentation Outline

Work contextWork context

MotivationMotivation

Tool Tool supportsupport

ApproachApproach

NotionsNotions

My workMy work

ExampleExample

Future work...Future work...

How to obtain refutation How to obtain refutation graphs?graphs?

Call Otter for proving by resolution Call Otter for proving by resolution (automatic transformation in normal form)(automatic transformation in normal form)

Retrieve the result in $TmaProofObjectRetrieve the result in $TmaProofObject

Parse $TmaProofObject and extract Parse $TmaProofObject and extract relevant information (used formulae, relevant information (used formulae, generated formulae)generated formulae)

Build the data structureBuild the data structure

AlgorithmAlgorithm

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.

RemarksRemarks

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 OutlinePresentation Outline

Work contextWork contextMotivationMotivationTool Tool supportsupportApproachApproachNotionsNotionsMy workMy workExampleExampleFuture work...Future work...

Simple eSimple examplexampleConsideringConsidering prove

Q R, R (P Q), P (Q R) P Q

Refutation graphRefutation graph

q p

r -q

-r p

-p -q

q -r

-p q r

6

6.2

6.12

3

1

5

4

2.1

2.2

3.2

3.1

1.1

1.2

5.3

5.1

5.2

4.1

4.2

Theorem A deduction graph is minimal iff it has one more clauses as links. [Eisinger]

Data StructureData Structure

Presentation OutlinePresentation Outline

Work contextWork contextMotivationMotivationTool Tool supportsupportApproachApproachNotionsNotionsMy workMy workExampleExampleFuture work...Future work...

Future directionsFuture directions

Implementation of transformation Implementation of transformation procedure in Theoremaprocedure in Theorema

Extend the analysis to predicate logicExtend the analysis to predicate logic

Analize proofs obtained from other provers Analize proofs obtained from other provers or with other proving methodsor with other proving methods

What’s next?What’s next?

Analyse and transform the refutation Analyse and transform the refutation graphs s.t. proofs are simplifiedgraphs s.t. proofs are simplified

How?How?

The solution offered by Andreas MeierThe solution offered by Andreas Meier

with possible(?) improvementswith possible(?) improvements

DefinitionsDefinitionsUnit Clause StepUnit Clause Step (UCS) (UCS)

G - refutation graph. {AC, {UCG - refutation graph. {AC, {UC11,…, UC,…, UCnn}, R}, Rlitlit} is a UCS in G if:} is a UCS in G if:

AC, UCAC, UC11,…, UC,…, UCnn - clauses in G, R - clauses in G, Rlit lit - literal of AC- literal of AC

UCUC11,…, UC,…, UCnn - unit clauses, AC - not an unit clause - unit clauses, AC - not an unit clause

each literal of AC (except Reach literal of AC (except Rlitlit) - linked with the some unit ) - linked with the some unit

clauses’s literal of UCclauses’s literal of UC11,…, Ucn,…, Ucn

UCUC11,…, UC,…, UCnn} - } - unit clausesunit clauses , AC - , AC - assertion clauseassertion clause, R, Rlitlit - -

result literalresult literal of the UCS of the UCS

RLitAC

UC1 UC2 UC3

UCS - ReplacementUCS - Replacement

G - refutation graph. {AC, {UCG - refutation graph. {AC, {UC11,…, UC,…, UCnn}, R}, Rlitlit} a } a UCS in G, UCUCS in G, UCnewnew a new unit clause consisting of a new unit clause consisting of RRlitlit. UCS-replacement:. UCS-replacement:

Remove AC from GRemove AC from G Add UCAdd UCnewnew to G to G - link connecting R- link connecting R litlit of AC. If of AC. If was removed was removed

at first step, add at first step, add ’ connecting R’ connecting Rlitlit of UC of UCnewnew and and literals connected by literals connected by . Otherwise, add R. Otherwise, add Rlitlit of of UCUCnew new to to ..

Each of UCEach of UC11,…, UC,…, UCnn, whose literal became pure , whose literal became pure at 1st step is removedat 1st step is removed

UCS-Decomposition AlgorithmUCS-Decomposition Algorithm

G - refutation graphG - refutation graph

Initialization-stepInitialization-step: D(G): D(G)={} ={} şişi G Gcurrcurr=G=G

UCS - replacement step:UCS - replacement step: While While GGcurrcurr is not an end is not an end

step:step: Seek and UCS Seek and UCS in in GGcurrcurr

Replace Replace in in GGcurr curr and assign Gand assign Gcurr curr to the resulting to the resulting

refutation graphrefutation graph Assign D(G)=D(G) Assign D(G)=D(G) { {}}If there is no UCS in If there is no UCS in GGcurrcurr stop with error message stop with error message

Final step: If Final step: If GGcurr curr has the form of an end step S, has the form of an end step S,

assign D(G)=D(G) assign D(G)=D(G) S and finish S and finish

Obtain UCS-decomposable Obtain UCS-decomposable graphsgraphs

Liquidation-Strategy with the Direct-Decomposition MethodLiquidation-Strategy with the Direct-Decomposition Method

Not minimal => is liquidated

Transformation rules

Obtain UCS-decomposable Obtain UCS-decomposable graphs graphs

Separation Strategy with the Direct Decomposition MethodSeparation Strategy with the Direct Decomposition Method

Transformation rules

Obtain UCS-decomposable Obtain UCS-decomposable graphs graphs

Liquidation Strategy with the Symetrical Simplification MethodLiquidation Strategy with the Symetrical Simplification Method

Transformation rules

Obtain UCS-decomposable Obtain UCS-decomposable graphs graphs

Separation Strategy with the Symetrical Simplification MethodSeparation Strategy with the Symetrical Simplification Method

Transformation rules

Thank youThank you