The Proof Tree Visualiser By David Alexander Supervisor: Rajeev Gor - - PowerPoint PPT Presentation

the proof tree visualiser
SMART_READER_LITE
LIVE PREVIEW

The Proof Tree Visualiser By David Alexander Supervisor: Rajeev Gor - - PowerPoint PPT Presentation

The Proof Tree Visualiser By David Alexander Supervisor: Rajeev Gor Summer Scholar, RSISE What is it? A graphical interface for... ...constructing proof trees , and... ...visualising proof trees generated by automated provers .


slide-1
SLIDE 1

The Proof Tree Visualiser

By David Alexander

Supervisor: Rajeev Goré

Summer Scholar, RSISE

slide-2
SLIDE 2

2/10

What is it?

  • A graphical interface for...

– ...constructing proof trees, and... – ...visualising proof trees generated by automated

provers.

  • What kind of proof trees?

– Proof trees in the tableau and sequent proof

systems.

slide-3
SLIDE 3

3/10

Background

  • Propositional Logic

– Connectives: , , ¬,

, ∧ ∨ → ↔

– Theorems can be proven using resolution.

  • Modal Logic

– ◊p means “possibly p”;

p ◻ means “necessarily p”

  • (other interpretations also exist)

– Example: ◻(a b)

¬ ∧ → ◊¬b

– A different approach is required for theorem-

proving.

slide-4
SLIDE 4

4/10

Background

  • The Tableau Method

– To prove/disprove a statement:

  • Create a tree with the statement at the root.
  • Choose an applicable tableau rule and use it to generate

the child nodes.

  • Repeat until a contradiction is found, or no more rules

can be applied.

  • Sequents are similar, but usually drawn with the

root at the bottom.

  • Very large proof trees can result – automated

provers often used.

slide-5
SLIDE 5

5/10

Sample Prover Output

$ ./k.twb --trace --verbose <(echo "[] (<> ~ p0 v p0) v <> [] Falsum v <> ([] p0 & <> <> ~ p0) v <> ([] <> p0 & <> <> [] ~ p0) v <> (p0 & <> [] ~ p0) v <> (~ p0 & <> [] p0)") Proving: [] (<> ~ p0 v p0) v <> [] Falsum v <> ([] p0 & <> <> ~ p0) v <> ([] <> p0 & <> <> [] ~ p0) v <> (p0 & <> [] ~ p0) v <> (~ p0 & <> [] p0) Start Node: ((((((<> (([ ] p0) & (~ p0))) & ([ ] (<> Verum))) & ([ ] ((<> (~ p0)) v ([ ] ([ ] p0))))) & ([ ] ((<> ([ ] (~ p0))) v ([ ] ([ ] (<> p0)))))) & ([ ] ((~ p0) v ([ ] (<> p0))))) & ([ ] (p0 v ([ ] (<> (~ p0)))))) And ( 0 -> 1 ) ([ ] (p0 v ([ ] (<> (~ p0))))) ; (((((<> (([ ] p0) & (~ p0))) & ([ ] (<> Verum))) & ([ ] ((<> (~ p0)) v ([ ] ([ ] p0))))) & ([ ] ((<> ([ ] (~ p0))) v ([ ] ([ ] (<> p0)))))) & ([ ] ((~ p0) v ([ ] (<> p0))))) And ( 1 -> 2 ) ((((<> (([ ] p0) & (~ p0))) & ([ ] (<> Verum))) & ([ ] ((<> (~ p0)) v ([ ] ([ ] p0))))) & ([ ] ((<> ([ ] (~ p0))) v ([ ] ([ ] (<> p0)))))) ; ([ ] ((~ p0) v ([ ] (<> p0)))) ; ([ ] (p0 v ([ ] (<> (~ p0))))) And ( 2 -> 3 ) ([ ] ((~ p0) v ([ ] (<> p0)))) ; ([ ] ((<> ([ ] (~ p0))) v ([ ] ([ ] (<> p0))))) ; ([ ] (p0 v ([ ] (<> (~ p0))))) ; (((<> (([ ] p0) & (~ p0))) & ([ ] (<> Verum))) & ([ ] ((<> (~ p0)) v ([ ] ([ ] p0))))) And ( 3 -> 4 ) ((<> (([ ] p0) & (~ p0))) & ([ ] (<> Verum))) ; ([ ] ((~ p0) v ([ ] (<> p0)))) ; ([ ] ((<> (~ p0)) v ([ ] ([ ] p0)))) ; ([ ] ((<> ([ ] (~ p0))) v ([ ] ([ ] (<> p0))))) ; ([ ] (p0 v ([ ] (<> (~ p0))))) And ( 4 -> 5 ) (<> (([ ] p0) & (~ p0))) ; ([ ] (<> Verum)) ; ([ ] ((~ p0) v ([ ] (<> p0)))) ; ([ ] ((<> (~ p0)) v ([ ] ([ ] p0)))) ; ([ ] ((<> ([ ] (~ p0))) v ([ ] ([ ] (<> p0))))) ; ([ ] (p0 v ([ ] (<> (~ p0))))) K ( 5 -> 6 ) (<> Verum) ; ((~ p0) v ([ ] (<> p0))) ; ((<> (~ p0)) v ([ ] ([ ] p0))) ; ((<> ([ ] (~ p0))) v ([ ] ([ ] (<> p0)))) ; (p0 v ([ ] (<> (~ p0)))) ; (([ ] p0) & (~ p0)) ; And ( 6 -> 7 ) (~ p0) ; ((~ p0) v ([ ] (<> p0))) ; ((<> (~ p0)) v ([ ] ([ ] p0))) ; ((<> ([ ] (~ p0))) v ([ ] ([ ] (<> p0)))) ; (p0 v ([ ] (<> (~ p0)))) ; (<> Verum) ; ([ ] p0) ; Or ( 7 -> 8 ) ((<> (~ p0)) v ([ ] ([ ] p0))) ; ((<> ([ ] (~ p0))) v ([ ] ([ ] (<> p0)))) ; (p0 v ([ ] (<> (~ p0)))) ; ; (<> Verum) ; ([ ] p0) ; (~ p0) Or ( 8 -> 9 ) ((<> ([ ] (~ p0))) v ([ ] ([ ] (<> p0)))) ; (p0 v ([ ] (<> (~ p0)))) ; (<> Verum) ; (<> (~ p0)) ; ; ([ ] p0) ; (~ p0) Or ( 9 -> 10 ) (p0 v ([ ] (<> (~ p0)))) ; ; (<> Verum) ; (<> (~ p0)) ; (<> ([ ] (~ p0))) ; ([ ] p0) ; (~ p0) Or ( 10 -> 11 ) (<> Verum) ; (<> (~ p0)) ; (<> ([ ] (~ p0))) ; ; p0 ; ([ ] p0) ; (~ p0) Id ( 11 -> 12 )

... 104 lines omitted ...

Id ( 70 -> 71 ) Or ( 64 -> 72 ) (p0 v ([ ] (<> (~ p0)))) ; (<> Verum) ; ; ([ ] (<> p0)) ; ([ ] ([ ] (<> p0))) ; ([ ] ([ ] p0)) ; ([ ] p0) ; (~ p0) Or ( 72 -> 73 ) (<> Verum) ; p0 ; ([ ] (<> p0)) ; ([ ] ([ ] (<> p0))) ; ([ ] ([ ] p0)) ; ([ ] p0) ; (~ p0) Id ( 73 -> 74 ) Or ( 72 -> 75 ) (<> Verum) ; ; ([ ] (<> (~ p0))) ; ([ ] (<> p0)) ; ([ ] ([ ] (<> p0))) ; ([ ] ([ ] p0)) ; ([ ] p0) ; (~ p0) K ( 75 -> 76 ) ([ ] (<> p0)) ; ([ ] p0) ; p0 ; Verum ; ; ; ; (<> (~ p0)) ; (<> p0) K ( 76 -> 77 ) p0 ; ; ; (~ p0) ; ; (<> p0) Id ( 77 -> 78 ) Time:0.0080 Result:Close Total Rules applications:78 Cache results: Total queries:0 Hits:0 Miss:0 Elements in the cache:0

slide-6
SLIDE 6

6/10

PTV Features

  • Layout according to size of subtrees.

– Compact structure – formulae only shown on

request.

  • Subtrees can be collapsed and expanded.
  • Tableau/sequent rules displayed in full.

– Assignments of formulae to variables shown using

colours.

  • Formulae can be “traced” up the tree.
slide-7
SLIDE 7

7/10

Demonstration

slide-8
SLIDE 8

8/10

Implementation Details

  • Written in Haskell.
  • Prover runs on server.

– Nodes loaded over network as user views them.

  • Provers use a special format to specify the

proof tree.

– Each rule application is specified as a set of

assignments of formulae to variables.

– Exact details of format still in development.

slide-9
SLIDE 9

9/10

Further Work

  • Web browser-embeddable version.
  • More powerful tree editing

– Allow users to adjust the layout manually if desired.

  • Adapt more provers to work with the PTV.

– Allow use of provers stored on the user's computer,

rather than on the server.

  • Set up build systems to provide Mac and

Windows binaries.

  • Code refactoring and optimisation.
slide-10
SLIDE 10

10/10

More Information

  • PTV is free software.

– Licensed under the GNU GPL.

  • Source code, Linux binaries and user guide

available at:

http://users.rsise.anu.edu.au/~dalexander/ptv

  • This presentation will also be posted on the above

website.