internship plan – a smt( finset )-solver based on opensmt
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 PresentationTRANSCRIPT
Internship Plan – A SMT(FinSet)-Solver based on OpenSMT
Nguyen Truc, 2 Aug 2010 – 28 Jan 2011
NII, 16 August 2010
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
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
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}; } }
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
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);
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
Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 8
Goals Part II – Integration into SAL
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
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
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
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)
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
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)
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
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
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
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)
Sample Scenarios
Franz Weitl, Nguyen Truc A SMT(FinSet)-Solver based on OpenSMT 19
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
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?
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
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