internship plan – a smt( finset )-solver based on opensmt

23
Internship Plan – A SMT(FinSet)-Solver based on OpenSMT Nguyen Truc, 2 Aug 2010 – 28 Jan 2011 NII, 16 August 2010

Upload: hedda

Post on 23-Feb-2016

50 views

Category:

Documents


0 download

DESCRIPTION

Internship Plan – A SMT( FinSet )-Solver based on OpenSMT. Nguyen Truc , 2 Aug 2010 – 28 Jan 2011 NII, 16 August 2010. TexPoint fonts used in EMF. Read the TexPoint manual before you delete this box.: A A. Today’s Agenda I. Truc -san: short self-introduction and summary of activities - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Internship Plan – A SMT(FinSet)-Solver based on OpenSMT

Nguyen Truc, 2 Aug 2010 – 28 Jan 2011

NII, 16 August 2010

Page 2: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 2

Today’s Agenda I

Truc-san: short self-introduction and summary of activities

DAAD budget: 124 万円。 Research prototype: PHP-based adaptive web application(84 /95万円 )

goal: specification and verification of adaptive web-applicationsdomain: e-commerce, interleaving of requests from concurrent usersapproach: extension of existing implementation of automaton-based monitoring to self-adaptation: replacement of php-modules on detection of specific criticial events. Related Work: FP 7 research project on specification of adaptive web apps, Martin Wirsing: MAEWA II, SENSORIA, UWE, HUGO http://www.pst.ifi.lmu.de/Research/current-projects/current-projects?set_language=en Jeff Kramer: work on specification and model checking of adaptive and self-managing systemsmaybe also interesting: EU-project REWERSE http://rewerse.net/, especially deliveries A3 – Peronalized Information Systems http://rewerse.net/deliverables.html

Page 3: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 3

Today’s Agenda II

PC for Truc-san: Dell, will be configured today Datacard for note-PC: b-mobile (fully prepaid, PHS 3G, 10万円  per year) http://www.bmobile.ne.jp/personal/3g/index.html

Collaboration environment SVN-Server, file server: google project

Detailed internship plan

Page 4: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 4

SMT-based Model Checking with Relational Logic Added

Goal: Decidable support for sets and relations in software model checking

SMT (Satisfiability Modulo Theory): SMT(T): SAT extended with a decidable

background theory T (e.g. linear arithmetics)

Approach: Realize a SMT(DL) solver with a decidable DL as a background theory

for sets and relations.

Plug SMT(DL) solver into a SMT-based bounded model checking framework.

Context SMTreloaded

while (V ) for each (v V) { if (isSource(v)) { out(v); V := V {v}; E := E {(v,w)|w V}; } }

Page 5: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 5

Satisfiability Modulo Theories

SAT solving: finding models of propositional formulae (a b c) (a b c) …

SMT(T) solving: replacing atomic propositions by predicates over terms of a decidable background theory T T = linear inequalities:

(2x – y < 2) (x < 3) (x - 3y < 0) …

T = description logic SHIQ:

(ExclusiveResource Resource) (ExclusiveResource = ) (ExclusiveResource 1heldBy.Job)

C v DC v D

Page 6: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 6

Goals I: Extending OpenSMT with Theory for Finite Sets

Set and relation type variables over finite domains (scalar types)

Set definition and predicates extensional definition, empty set,

oneOf (nondeterministic choice)

element, oneOf, subset, equal, cardinality

Operators on Sets

union, intersection, difference, complement, selection

X,Y, Z: Set of [0..100]; A,B: Set of (ready, blocked, running, finished)

A := {ready, blocked}; X = [0..10]; Y := ; x:= oneOf(X)

x X; X Y; X = Y; | X | < 10

X:= Y Z; X := Y Z; X := Y Z; X := Y; X := x > 5(Y);

Page 7: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 7

Internship Goals – Part I

Implementation of SMT(FinSet)-solver based on OpenSMT

Design of an input language for finite sets and extension of the OpenSMT parser

Implementation of decision procedures for finite sets

Evaluation Test cases Benchmark cases (alternative approaches?)

Documentation Basic architecture of OpenSMT Implemented extensions and input language Illustrative examples, test cases, and experiments Workshop paper

Page 8: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 8

Goals Part II – Integration into SAL

Page 9: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 9

Internship Goals – Part II

Integration of SMT(FinSet)-solver into SAL Extension of the SAL input language for finite sets

Implementation of preprocessor: mapping of set type expressions onto uninterpreted functions

Implementation of SMT(FinSet) wrapper: mapping of SAL output for SMT-solver onto input language of OpenSMT(FinSet) and re-mapping of OpenSMT(FinSet) output

Implementation of postprocessor for nicer counterexamples (optional)

Evaluation: test cases, benchmark cases (alternative approaches)

Documentation Basic architecture of the approach Implemented extensions and extended input language for sets Illustrative examples, test cases, and experiments Paper

Page 10: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 10

Internship Plan – Overview

Part I: Extension of OpenSMT1. Month: setup and background reading2. Month: implementation of OpenSMT extensions3. Month: experiments and documentation

Part II: Integration into SAL4. Month: implementation5. Month: experiments and documentation6. Month: project report and paper

Page 11: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 11

Part I - 1. Month: Setup I

Activities Setting up environment for experiments and development

▫ Yices, SAL, CygWin, MS Virtual PC/VMware Server, Linux (Ubuntu), OpenSMT ▫ Decide on C++ IDE: Eclipse, Netbeans, KDevelop, Code::Blocks▫ Purchase hardware and software (finalize DAAD budget plan May – August)▫ Server for sharing code and documents: Google Project or own server with NAS?

Acquiring background knowledge on SMT and OpenSMT▫ Experiments with Yices and OpenSMT▫ Bradley, Manna: Chapter 1 and 3 (DPLL, First-Order Theories)▫ DPLL(T) : ROBERT NIEUWENHUIS and ALBERT OLIVERAS, 2006

Harald Ganzinger et al., 2004▫ MiniSAT: http://minisat.se/

" An Extensible SAT-solver ", Niklas Een, Niklas Sörensson, SAT 2003.

" MiniSat — A SAT Solver with Conflict-Clause Minimization „ Niklas Een, Niklas Sörensson, poster for SAT 2005.

▫ OpenSMT : Slides of TACAS 2010, Documentation of SMT-Lib 2.0

Page 12: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 12

Part I - 1. Month: Setup II

Milestones Presentation of Yices and OpenSMT: Collection of illustrative examples to

demonstrate use, functionality, and syntax of input language Presentation of SMT foundations: MiniSAT, DPLL and DPLL(T)

Page 13: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 13

Part I - 2. Month: Implementation of OpenSMT-Extensions

Activities Study of OpenSMT’s architecture and extension interfaces.

Initial experiments for extending OpenSMT’s parser and decision procedures. Decide on syntax for set expressions, based on Kröning et al., 2009 (see also

Slides of Rümmer, 2010), maybe also helpful: Syntax of Event B

Definition of test cases for all operators Extension of OpenSMT parser, postpone for later (if hard) Implementation, integration, and test of decision procedures for sets

Milestones Presentation of OpenSMT’s architecture and interfaces (UML class

diagram, collaboration diagram) as well as results of initial experiments Syntax and documented test cases Tested implementation

Page 14: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 14

Part I - 3. Month: Experiments and Documentation

Activities Documentation of extended input language, implemented methods, and use of

OpenSMT extensions. Collection and design of benchmarks cases

▫ http://www.cprover.org/SMT-LIB-LSM/

▫ http://combination.cs.uiowa.edu/smtlib/

Execution of benchmarks and evaluation of results (e.g., scalability) Optimization of code Investigation of alternative approaches (ProB model checker for Event B, SMT-

based model checking hot topic for Event B, Alloy) and comparison of results

Milestones User manual (syntax, example of usage) and technical documentation of

implemented code Base of documented benchmark cases Report on evaluation results Workshop paper, e.g. Workshop SMT 2011 (Deadline Beginning of 2011)

Page 15: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 15

Part II - 4. Month: Integration into SAL

Activities Study of SAL’s architecture and scripts. Initial experiments for extending SAL

by use of uninterpreted functions. Decide on syntax for set expressions in an extended input language for SAL Definition of test cases for all operators Implementation:

▫ SAL preprocessor for reducing SAL+ to standard SAL input language by use of uninterpreted functions.

▫ OpenSMT(FinSet) wrapper: SAL output to OpenSMT(FinSet) input, OpenSMT(FinSet) output to SAL input for counterexample generator

▫ SAL postprocessor for generating meaningful counterexamples

Milestones Presentation of the general approach and initial experiments for integrating

OpenSMT(FinSet) into SAL Syntax definition of SAL extended input language and documented test cases Tested implementation

Page 16: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 16

Part II - 5. Month: Experiments and Documentation

Activities Documentation of SAL+ extended input language, implemented SAL+

extensions, and use of SAL+. Design of benchmarks cases and implementation in SAL+ and standard SAL.

▫ http://www.cprover.org/SMT-LIB-LSM/

▫ Web documents

▫ Classical model checking problems like mutual exclusion

Evaluation of runtime results SAL+ vs. standard SAL. Optimization of code

Milestones User manual (syntax, example of usage) and technical documentation of

implemented code Base of documented benchmark cases Report on evaluation results

Page 17: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 17

Part II - 6. Month: Project Report and Paper

Activities Finalizing documentation and evaluation Preparing final presentation and internship report. Preparing conference paper: updating collection of references and related work

▫ SMT 2011 Workshop on SMT, deadline probably first quarter of 2011, http://www.cprover.org/SMT10/#background

▫ fm2011, deadline 10 Jan 2011, http://www.lero.ie/fm2011

▫ CAV 2011, deadline Jan 2011 / SAT 2011, deadline Feb 2011,

Milestones Completed user manual and technical documentation Final presentation Internship report Conference Paper

Page 18: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 18

To Do `till 23 August, 10 am, Room 1716

Purchase Hard-/Software

Setup OpenSMT Environment

Setup Server Google Project

Study MiniSAT and references Maybe also interesting: zChaff by Sharad Malik, Princeton University, http://www.princeton.edu/~chaff/http://www.princeton.edu/~chaff/software.html

Presentation: Summary of MiniSAT technology, DPLL(T) paper (if time)

Page 19: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Sample Scenarios

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 19

Page 20: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 20

SMT(DL) Properties - Documents

Semantic integrity of references: Each reference of a web document points to a target with related topics.

G(Page linksTo. hasTopic. relatedTo. topicOf. partOf.Page)

Questions: Performance of SMT(DL) model checking as compared to ALCCTL Applicability to dynamic web pages and web applications

State space: S R V R: set of resources (URLs) V: states of session variables

Background Knowledge

Page 21: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 21

SMT(DL) Properties – Classic MC Problems

Mutual exclusion for n exclusive resources accessed by m jobs

G(ExclusiveResource 1heldBy.Job)

Questions: Relational modeling applicable and beneficial? Performance of model checking? Quality of counterexamples?

Page 22: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 22

SMT(DL) Properties – Business Processes

Order handling workflow: Whenever there is an order then eventually each if its item is either shipped or cancelled.

G((Order ) F(Order hasItem.(CancelledItem itemOf.Shipment)))

Questions: Generation of models from BPEL specifications Benefits of relational modeling

Page 23: Internship Plan – A SMT( FinSet )-Solver based on  OpenSMT

Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 23

SMTreloaded – Outlook on further Research Questions

Expressiveness vs. decidability / computational complexity of sets and relations in model checking

Integration of relational theory with other background theories

Performance and scalability

Cost and benefit of background knowledge

Case studies Classic use cases

e.g., protocols for mutual exclusion Scheduling and graph algorithms Documents and adaptive

web applications