Software Synthesis Participants: Omri Ajchenbaum and Daniel Hasson Supervised by Dr. Hillel Kugler Mid-Project presentations: February 2016.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Brief Introduction to Logic. Outline Historical View Propositional Logic : Syntax Propositional Logic : Semantics Satisfiability Natural Deduction : Proofs.
Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
CS101: Introduction to Computer programming
Metodi formali dello sviluppo software a.a.2013/2014 Prof.Anna Labella.
M ODEL CHECKING -Vasvi Kakkad University of Sydney.
Algorithmic Software Verification VII. Computation tree logic and bisimulations.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
Automatic Verification Book: Chapter 6. What is verification? Traditionally, verification means proof of correctness automatic: model checking deductive:
An Introduction to the Model Verifier verds Wenhui Zhang September 15 th, 2010.
ECE Synthesis & Verification - L271 ECE 697B (667) Spring 2006 Synthesis and Verification of Digital Systems Model Checking basics.
Temporal Logic and the NuSMV Model Checker CS 680 Formal Methods Jeremy Johnson.
CS6133 Software Specification and Verification
Tic-Tac-Toe Using the Graphing Calculator for Derivatives.
Chapter 2: Problem Solving
A Fixpoint Calculus for Local and Global Program Flows Swarat Chaudhuri, U.Penn (with Rajeev Alur and P. Madhusudan)
Model Checking Inputs: A design (in some HDL) and a property (in some temporal logic) Outputs: Decision about whether or not the property always holds.
Tic Tac Toe Game Design Using OOP
Tic Tac Toe Game playing strategies
Unit 251 Summary  Requirements may be represented in itemized format or in visual modeling (UML). Once the complete set of requirements are in our hand,
PLANNING THE TIC TAC TOE GAME BY NEEL DAVE. TIC TAC TOE INSTRUCTIONS Tic Tac Toe Instructions The basic concept of Tic Tac Toe 1.This is a game for two.
Tic Tac Toe Architecture CSE 5290 – Artificial Intelligence 06/13/2011 Christopher Hepler.
Presented by : Ashin Ara Bithi Roll : 09 Iffat Ara Roll : 22 12th Batch Department of Computer Science & Engineering University of Dhaka.
1 Temporal Logic u Classical logic:  Good for describing static conditions u Temporal logic:  Adds temporal operators  Describe how static conditions.
Formal Methods in Software Engineering Credit Hours: 3+0 By: Qaisar Javaid Assistant Professor Formal Methods in Software Engineering1.
Lecture 4&5: Model Checking: A quick introduction Professor Aditya Ghose Director, Decision Systems Lab School of IT and Computer Science University of.
ECE Synthesis & Verification1 ECE 667 Spring 2011 Synthesis and Verification of Digital Systems Verification Introduction.
Embedded Systems Laboratory Department of Computer and Information Science Linköping University Sweden Formal Verification and Model Checking Traian Pop.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
System Design Research Laboratory Specification-based Testing with Linear Temporal Logic Li Tan Oleg Sokolsky Insup Lee University of Pennsylvania.
1 Temporal Logic-Overview FM Temporal Logic u Classical logic: Good for describing static conditions u Temporal logic: Adds temporal operators Describe.
The chapter will address the following questions:
CISC 235: Topic 6 Game Trees.
Institute for Applied Information Processing and Communications 1 Karin Greimel Semmering, Open Implication.
Artificial Intelligence Introduction (2). What is Artificial Intelligence ?  making computers that think?  the automation of activities we associate.
EGGG: Automated programming for game generation J. ORWANT PRESENTED BY HANFENG CHEN MARCH 25, 2015.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
CSC 213 – Large Scale Programming Lecture 3: Object-Oriented Analysis.
Institute e-Austria in Timisoara 1 Author: prep. eng. Calin Jebelean Verification of Communication Protocols using SDL ( )
Copyright 2001, Matt Dwyer, John Hatcliff, and Radu Iosif. The syllabus and all lectures for this course are copyrighted materials and may not be used.
Patterns and Reuse. Patterns Reuse of Analysis and Design.
Automatic Verification of Finite-State Concurrent Systems Using Temporal Logic Specifications 1.
On Reducing the Global State Graph for Verification of Distributed Computations Vijay K. Garg, Arindam Chakraborty Parallel and Distributed Systems Laboratory.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
CIS 842: Specification and Verification of Reactive Systems Lecture INTRO-Examples: Simple BIR-Lite Examples Copyright 2004, Matt Dwyer, John Hatcliff,
Video Games & Object Oriented Programming. Games.
Verification & Validation By: Amir Masoud Gharehbaghi
+ TIC-TAC-TOE GAME CAPSTONE PROJECT SEN Team Members Sno.NameITU ID 1Keerthi Alimity Venkata Ganugapati Sujitha Sanku Bavi Bharathan87550.
Version 02U-1 Computer Security: Art and Science1 Correctness by Construction: Developing a Commercial Secure System by Anthony Hall Roderick Chapman.
Properties as Processes : FORTE slide Properties as Processes: their Specification and Verification Joel Kelso and George Milne School of Computer.
Introduction to State Space Search
1 CSEP590 – Model Checking and Automated Verification Lecture outline for July 9, 2003.
5.2 Polynomial & Linear Factors Learning goals graph functions expressed symbolically and show key features of the graph, by hand in simple cases and using.
Strategic Reasoning with Game Description Language Ji Ruan, Prof. W. van der Hoek, Prof. M. Wooldridge Department of Computer Science From Specific Game.
6/12/20161 a.a.2015/2016 Prof. Anna Labella Formal Methods in software development.
Introduction to Problem Solving Programming is a problem solving activity. When you write a program, you are actually writing an instruction for the computer.
Model Checking Early Requirements Specifications in Tropos Presented by Chin-Yi Tsai.
Ms N Nashandi Dr SH Nggada Week 08 – Recursion. Outline We shall be covering the following What is a recursion? Iteration versus Recursion. Recursion.
Formal methods: Lecture
CIS 842: Specification and Verification of Reactive Systems
Program Synthesis is a Game
SS 2018 Software Verification Strategic Reasoning
Formal Methods in software development
Understanding Problems and how to Solve them by using Computers
Computer Security: Art and Science, 2nd Edition
A Trusted Safety Verifier for Process Controller Code
Formal Methods in software development
Formal Methods in software development
Using Multiple Models of Reality: On Agents who Know how to Play Safer
Presentation transcript:

Software Synthesis Participants: Omri Ajchenbaum and Daniel Hasson Supervised by Dr. Hillel Kugler Mid-Project presentations: February 2016

What is Synthesis? “Program synthesis is a special form of automatic programming that is most often paired with a technique for formal verification. The goal is to construct automatically a program that provably satisfies a given high-level specification. In contrast to other automatic programming techniques, the specifications are usually non-algorithmic statements of an appropriate logical calculus.” Wikipedia “Given a requirement which a circuit is to satisfy, we may suppose the requirement expressed in some suitable logistic system … The synthesis problem is then to find recursion equivalences representing a circuit that satisfies the given requirement (or alternatively, to determine that there is no such circuit). A. Church (1957)

Computation Tree Logic (CTL) CTL is a type of temporal logic. Temporal Logic was introduced by Pnueli (1977) to specify temporal behavior of reactive systems. In CTL one can express properties that should hold for all the paths that start in a state, as well as for properties that should hold just for some of the paths. For instance CTL formula AF p - expresses the condition that, for all the paths (A) starting from a given state, eventually in the future condition p must hold. CTL formula EF p, on the other hand, requires that there exists some path (E) that eventually in the future satisfies p. A tool and language that implements CTL model-checking - NuSMV

Example – Tic Tac Toe game In a tic-tac-toe game one must arrange 3 consecutive symbols in a 3X3 square board. Problem specifications: A player must use only use his symbol, play only on his turn and only mark an empty square. We started by adding a no-lose specification with the following CTL formula: !(EX(AX(EX(AX(EX(AX(EX(AX(EX !OtherPlayerWin))))))))) We used this specification because we wanted NuSMV to return a counter example which ensures the 2 nd player does not win. We then created a program using CPP which governs the board state, turn state and gives us a simple GUI. The CPP creates a new NuSMV code for each turn in order to implement all the specifications, then processes and “plays” according to the NuSMV result. At the next stage we added, by using CTL, the specification for win-first-if-possible strategy: !(EX(AX(EX(AX(EX(AX(EX(AX(EX win1)))))))))

What’s next?

Car-to-X communication The problem: Cars are driving on a two-lane road. On one of the lanes there’s an obstacle which blocks part of it. We want to synthesize a driver assistance system which tells the driver if the other lane is free and he can bypass the obstacle. How can we achieve that?

System rules and specification Collect/Transmit relevant information about cars and traffic in real time. Ensure no “crashes” occur (robust solution). Ensure “safety” and “liveness” of system. Enable scaling of the system to allow large number of cars (we shall start with up to 4). Ensure car does not wait more then K time units. Next Steps: - Implement Synthesis method using NuSMV framework (open source) - Evaluate compared to state of the art methods (Synthesis Competitions) - In future may be tested in real robotic system (Collaboration with Greenyer at Hannover, A. Marron at Weizmann Institute)