The Proof Tree Visualiser By David Alexander Supervisor: Rajeev Goré Summer Scholar, RSISE.

Slides:



Advertisements
Similar presentations
PHP I.
Advertisements

Java Packages CSci 1130 Intro to Computer Programming with Java Instructor Tatyana Volk.
Chapter 5 Operating Systems. 5 The Operating System When working with multimedia, the operating system is perhaps the most important, the most complex,
CSE 425: Logic Programming I Logic and Programs Most programs use Boolean expressions over data Logic statements can express program semantics –I.e., axiomatic.
1 CS 106, Winter 2009 Class 4, Section 4 Slides by: Dr. Cynthia A. Brown, Instructor section 4: Dr. Herbert G. Mayer,
CIS101 Introduction to Computing Week 05. Agenda Your questions Exam next week - Excel Introduction to the Internet & HTML Online HTML Resources Using.
A Guide to Oracle9i1 Introduction To Forms Builder Chapter 5.
Proof System HY-566. Proof layer Next layer of SW is logic and proof layers. – allow the user to state any logical principles, – computer can to infer.
CIS101 Introduction to Computing Week 05. Agenda Your questions CIS101 Survey Introduction to the Internet & HTML Online HTML Resources Using the HTML.
Introduction to HTML 2006 CIS101. What is the Internet? Global network of computers that are connected and communicate via a series of Protocols Protocols.
Introduction to HTML 2006 INT197B. What is the Internet? Global network of computers that are connected and communicate via a series of Protocols Protocols.
Introduction to HTML 2004 CIS101. What is the Internet? Global network of computers that are connected and communicate via a series of Protocols Protocols.
Guide To UNIX Using Linux Third Edition
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
CIS101 Introduction to Computing Week 06. Agenda Your questions Excel Exam during second hour Our status after the snow day Introduction to the Internet.
1 Project 7: Huffman Code. 2 Extend the most recent version of the Huffman Code program to include decode information in the binary output file and use.
Fundamentals of Networking Discovery 1, Chapter 2 Operating Systems.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Copyright ©: SAMSUNG & Samsung Hope for Youth. All rights reserved Tutorials Software: Building apps Suitable for: Advanced.
Descriptive Mark System for Primary Schools by Leszek Syroka Supervisor: Richard Gatward Coventry 2007/2008.
Guide to Linux Installation and Administration, 2e1 Chapter 3 Installing Linux.
4 1 Operating System Activities  An operating system is a type of system software that acts as the master controller for all activities that take place.
DNS (Domain Name System) Protocol On the Internet, the DNS associates various sorts of information with domain names. A domain name is a meaningful and.
Course Content - Chapter 2 Introduction to HTML Introduction to a Text Editor as a web authoring tool Instructional Activity: Creating a webpage using.
Introduction to the Adapter Server Rob Mace June, 2008.
An application architecture specifies the technologies to be used to implement one or more (and possibly all) information systems in terms of DATA, PROCESS,
Slide 1 Propositional Definite Clause Logic: Syntax, Semantics and Bottom-up Proofs Jim Little UBC CS 322 – CSP October 20, 2014.
WRITING REPORTS Introduction Section 0 Lecture 1 Slide 1 Lecture 6 Slide 1 INTRODUCTION TO Modern Physics PHYX 2710 Fall 2004 Intermediate 3870 Fall 2015.
A Java implementation of Peirce’s Existential Graphs
GAM666 – Introduction To Game Programming ● DirectX is implemented as a collection of COM objects ● To use a DirectX program, the user must have the correct.
CSE Winter 2008 Introduction to Program Verification January 15 tautology checking.
Of 38 lecture 13: propositional logic – part II. of 38 propositional logic Gentzen system PROP_G design to be simple syntax and vocabulary the same as.
Configuring and Deploying Web Applications Lesson 7.
COMP2322 Lab 1 Introduction to Wireshark Weichao Li Jan. 22, 2016.
Introduction  Program: Set of sequence instruction that tell the computer what to do.  Software: A collection of programs, data, and information. 
2: Operating Systems Networking for Home & Small Business.
Chapter 4: server services. The Complete Guide to Linux System Administration2 Objectives Configure network interfaces using command- line and graphical.
Chapter 5 With Question/Answer Animations 1. Chapter Summary Mathematical Induction - Sec 5.1 Strong Induction and Well-Ordering - Sec 5.2 Lecture 18.
56 Resources u Icons represent resources u Dynamic resources must be assigned a path network u Resources position at nodes, not locations u “Specs” field.
Take Your Data Analysis and Reporting to the Next Level by Combining SAS Office Analytics, SAS Visual Analytics, and SAS Studio David Bailey Tim Beese.
Course : PGClass : MCA Subject: Operating SystemSub.Code : 3CT11 Staff Name : S.SomasundaramYear & Sem : II nd & III rd.
Product Training Program
Chapter 5 Operating Systems.
Fundamental of Databases
Development Environment
Project 1 Introduction to HTML.
Ashima Wadhwa Assistant Professor(giBS)
Component and Deployment Diagrams
Working in the Forms Developer Environment
WWW and HTTP King Fahd University of Petroleum & Minerals
CSCI-235 Micro-Computer Applications
Introduction to Visual Basic 2008 Programming
Getting Started with R.
Using MIS 2e Chapter 6 Appendix
Course: Introduction to Computers
How to Convert VOB to MP4 with VOB to MP4 Converter
R Programming.
PHP / MySQL Introduction
Unit I: Collecting Data with Forms
Introduction to Computer Programming
Introduction to Systems Analysis and Design
Chapter 1 Introduction(1.1)
Database Connectivity and Web Development
Chapter 15: File System Internals
ICT Gaming Lesson 2.
Computer Science cpsc322, Lecture 20
Types of Software Mrs. S. Palmer Office Administration.
Network Addressing.
Presentation transcript:

The Proof Tree Visualiser By David Alexander Supervisor: Rajeev Goré Summer Scholar, RSISE

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.

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.

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.

5/10 Sample Prover Output $./k.twb --trace --verbose ~ 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 ) 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: Result:Close Total Rules applications:78 Cache results: Total queries:0 Hits:0 Miss:0 Elements in the cache:0

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.

7/10 Demonstration

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.

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.

10/10 More Information ● PTV is free software. – Licensed under the GNU GPL. ● Source code, Linux binaries and user guide available at: ● This presentation will also be posted on the above website.