Upload
giles
View
24
Download
0
Tags:
Embed Size (px)
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
Citation preview
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