Modular Synthesis of Sketches Using Models
|
|
- Marian White
- 5 years ago
- Views:
Transcription
1 Modular Synthesis of Sketches Using Models Rohit Singh, Rishabh Singh, Zhilei Xu, Rebecca Krosnick and Armando Solar-Lezama March 10-11, 2014 Berkeley, CA, USA Rohit Singh., Rishabh Singh, Zhilei Xu, Armando Solar-Lezama, Rebecca Krosnick Modular Synthesis of Sketches using Models
2 Synthesis with Sketch Extend a C-like language with one construct Constant hole:?? int bar (int x) { int t = x *??; assert t == x + x; return t; int bar (int x) { int t = x * 2; assert t == x + x; return t; Manifests as huge sketch problems in general (SQL, Auto-grader, MPI etc)
3 More Complex Sketches Main(){ Bar();??; Baz(); Baz(){ Qux();??; Bar(){??; Baz(); Qux(??); Qux(){ Application Structure: Sketch based Synthesis
4 More complex Sketches Main(){ Bar();??; Baz(); Bar(){??; Baz(); Qux(??); Baz(){ Qux();??; Baz(){??; Qux(){ Qux(){ Need to reason about this Popular way potentially of solving: huge piece Contracts of code (Verification)
5 Modularity through Contracts Main(){ Bar(); Baz(); ContractBaz() Baz(){ Qux(); ContractBar() Bar(){ Baz(); Qux(); ContractQux() Qux(){ Application Structure
6 Modularity through Contracts Foo(){ ContractBar() Bar(); ContractBaz() Baz(); Baz(){ ContractQux() Qux(); Bar(){ ContractBaz() Baz(); ContractQux() Qux(); Qux(){ Application to Formulae with Contracts: Can Reason Separately ContractQux()
7 Contracts for Synthesis? Foo(){ Bar();??; Baz(); Baz(){ Qux();??; Bar(){??; Baz(); Qux(??); Qux(){ Application Structure: Sketch based Synthesis??s: Control Bits Or Constant Holes
8 Contracts for Verification {Pre(in) rv = Foo(in){ Bar(); Baz(); return ; {Post(rv, in, temp) Precondition Postcondition Easily combined as a predicate for analysis
9 Contracts for Synthesis We call our contracts Models Partially interpreted functions Canonicalization step Un-interpreted function Post-condition
10 Example: Sq. Root for Primality Test harness bool void fastprimalitycheck(int p) { bool isprime = false; if (p > 1 ) { isprime = true; minrepeat { if (p %?? == 0) isprime = false; int bnd = linexp(sqrt(linexp(p))) /??; optimize(bnd, p); for (int i =?? ; i < bnd; ++i) { Checking if an integer p is prime or not Some exceptions to the prime linear expressions rule All linear expressions representing primes should be p bnd expression minrepeat { minrepeat{s linexp(i) repeat??*i ±?? if (p % linexp(i) == 0) Check only a bounded Only statements a few linear {s expressions minimum (modulo a isprime = false; number of divisors big number) of are times candidates needed for primes assert isprime == checkprimalitylinear(p); return isprime;
11 Example: Sq. Root for Primality Test harness bool void fastprimalitycheck(int p) { bool isprime = false; if (p > 1 ) { isprime = true; minrepeat { if (p %?? == 0) isprime = false; int bnd = linexp(sqrt(linexp(p))) /?? ; optimize(bnd, p); for (int i =?? ; i < bnd; ++i) { minrepeat { if (p % linexp(i) == 0) isprime = false; assert isprime == checkprimalitylinear(p); return isprime; int msqrt(int i) models sqrt { int rv = sqrtuf(i); if (i <= 0) { assert rv == 0; else { assert rv * rv <= i; assert(rv + 1) * (rv + 1) > i; return rv; Uninterpretted Function Post Conditions on return value sqrt is also sketched (too complicated), msqrt is fairly simple Both sketches solved in < 9 mins with the model but can t be solved together (memory/time limit exceeds) otherwise
12 Example: Sq. Root for Primality Test harness void fastprimalitycheck(int p) { bool isprime = false; if (p > 1 ) { isprime = true; { if (p % 2 == 0) isprime = false; if (p % 3 == 0) isprime = false; int bnd = (sqrt(p)+ 1) / 6; for (int i = 1 ; i < bnd; ++i) { if (p % (6*i + 1) == 0) isprime = false; if (p % (6*i - 1) == 0) isprime = false; assert isprime == checkprimalitylinear(p);
13 Example: Big Integer Multiplication harness main(int[n] x1, int[n] x2){ t = mul(x1,x2); int[n] mul(int[n] x1, int[n] x2){ Karatsuba Multiplication Sketch int[n] mmul(int[n] x1, int[n] x2) models mul { int[n] xa = min(x1,x2); int[n] xb = max(x1,x2); int[n] rv = muluf(xa,xb); if (x1 == 0 x2 == 0 ) { assert rv == 0; return rv; Uninterpretted Function Modelling Commutativity with canonicalization Post condition on return value mmul models mul (Karatsuba multiplication sketch) with a much smaller model size Underspecified model Hope that the modeled properties are sufficient for main Benchmarks: Poly-deriv Auto-Grader, Poly-eval Auto-Grader
14 Problem Formalization Rohit Singh., Rishabh Singh, Zhilei Xu, Armando Solar-Lezama, Rebecca Krosnick Modular Synthesis of Sketches using Models
15 Problem Formalization Canonicalization Function f model (in model ) models f orig { x = α(in model ); rv = f u (x); Uninterpretted Function assert P model (rv, in model ); return rv; Post Condition harness void Main(in main ) { t1 = h(in main, c); t2 = f orig (t1, c); assert P main (t2, in main, c); Model M α, f u, P model Models f orig which has holes
16 How to Solve? f model (in model ) models f orig { x = α(in model ); rv = f u (x); assert P model (rv, in model ); return rv; harness void Main(in main ) { t1 = h(in main, c); t2 = f orig (t1, c); assert P main (t2, in main, c); Goal: Solve complete sketch Main and the sketch for f orig inlined in it (without f model )
17 How to Solve using models? f model (in model ) models f orig { x = α(in model ); rv = f u (x); assert P model (rv, in model ); return rv; harness void Main(in main ) { t1 = h(in main, c); t2 = f orig (t1, c); assert P main (t2, in main, c); f orig (c orig ) P model (f u α ) Main (c main ) Find an instance of f orig in the set of functions represented by P model (Adherence) Find c main such that for any function replacing f orig in Main satisfying model property, P main is satisfied (Correctness)
18 Adherence Equation f model (in) models f orig { x = α(in); rv = f u (x); assert P model (rv, in); return rv; Adherence of original function to the model (Adherence equation) There is a candidate f orig and uninterpretted function f u f orig (c orig ) f u οα (P model ) Main (c main ) Tricky to deal with this! But we don t care what is f u c orig f u in f u α in = f orig in, c orig P model f u α in, in Model function should satisfy the model constraints P model Model function is equal to the original value function on all inputs
19 Solving the Adherence Equation No quantified functions Easy to solve using traditional CEGIS
20 Correctness f model (in model ) models f orig { x = α(in model ); rv = f u (x); f orig (c orig ) f u οα (P model ) Main (c main ) assert P model (rv, in model ); return rv; harness void Main(in main ) { t1 = h(in main, c main ); t2 = f orig (t1, c main ); assert P main (t2, in main, c main ); Correctness of main under the model (Correctness equation) in model h in main, c main rv f u α in model Find a candidate Main For each input and each uninterpretted function f u c main in f u P model rv, in model P main (rv, in, c main ) f u satisfies model constraint Main constraint P main is satisfied
21 Comparison of different approaches
22 Comparison of different approaches
23 Boolean DAG Calculator: Case Study A calculator using topological sort as a subroutine Topological sort has Complex imperative implementation Simple declarative model Complete inlined sketch times out after 5 hours Solution with model takes 30 minutes
24 Related work Library-Based Scalable Refinement Checking for Contract-Based Design Antonio Iannopollo, Pierluigi Nuzzo, Stavros Tripakis, Alberto Sangiovanni-Vincentelli New efficient LTL Assume-Guarantee refinement algorithm can solve reactive synthesis problems Contracts based design enables Compositional reasoning Hierarchical design Component reuse
25 Conclusion Existing approaches to CEGIS in the presence of models (CEGIS and Angelic approach) are inefficient and potentially incomplete A new, complete and terminating algorithm (CEGIS+) that can efficiently synthesize functions using models Preliminary evaluation of our algorithm shows how CEGIS+ enables solving of complex sketches
Modular Synthesis of Sketches using Models
Modular Synthesis of Sketches using Models Rohit Singh, Rishabh Singh, Zhilei Xu, Rebecca Krosnick, and Armando Solar-Lezama Massachusetts Institute of Technology Abstract. One problem with the constraint-based
More informationLibrary-Based Scalable Refinement Checking for Contract-Based Design
Library-Based Scalable Refinement Checking for Contract-Based Design Antonio Iannopollo Pierluigi Nuzzo Stavros Tripakis Alberto Sangiovanni-Vincentelli EXCAPE ANNUAL MEETING 10-11 MARCH 2014 UC BERKELEY
More informationAutograder RISHABH SINGH, SUMIT GULWANI, ARMANDO SOLAR-LEZAMA
Autograder RISHABH SINGH, SUMIT GULWANI, ARMANDO SOLAR-LEZAMA Test-cases based feedback Hard to relate failing inputs to errors Manual feedback by TAs Time consuming and error prone Feedback on Programming
More informationType Assisted Synthesis of Programs with Algebraic Data Types
Type Assisted Synthesis of Programs with Algebraic Data Types Jeevana Priya Inala MIT Collaborators: Xiaokang Qiu (MIT), Ben Lerner (Brown), Armando Solar-Lezama (MIT) Example - Desugaring a simple language
More informationEXCAPE SEMINAR SEPT 10, Armando Solar-Lezama
SKETCH TUTORIAL EXCAPE SEMINAR SEPT 10, 2012 Armando Solar-Lezama http://bit.ly/sketch2012 What is Sketch A programming language with synthesis capabilities A platform for synthesis research Rapidly try
More informationCSC410 Program Synthesis AZADEH FARZAN FALL 2017
CSC410 Program Synthesis AZADEH FARZAN FALL 2017 The idea Produce small code fragments that satisfy the given specification As a programming aid: It helps you write programs. The insight is yours, the
More informationParallel Programming with Inductive Synthesis
Parallel Programming with Inductive Synthesis Shaon Barman, Ras Bodik, Sagar Jain, Yewen Pu, Saurabh Srivastava, Nicholas Tung UC Berkeley ParLab with help from Armando Solar-Lezama, MIT Once you understand
More informationSynthesis of Domain Specific Encoders for Bit- Vector Solvers
Synthesis of Domain Specific Encoders for Bit- Vector Solvers Jeevana Priya Inala! with Rohit Singh, Armando Solar-Lezama To appear at SAT 16 High-level constraint to CNF clauses SMT solver High-level
More informationEECS 219C: Formal Methods Syntax-Guided Synthesis (selected/adapted slides from FMCAD 13 tutorial by R. Alur) Sanjit A. Seshia EECS, UC Berkeley
EECS 219C: Formal Methods Syntax-Guided Synthesis (selected/adapted slides from FMCAD 13 tutorial by R. Alur) Sanjit A. Seshia EECS, UC Berkeley Solving SyGuS Is SyGuS same as solving SMT formulas with
More informationSynthesizing a Synthesis tool. Rohit Singh
Synthesizing a Synthesis tool by Rohit Singh Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degree of Master of Science in
More informationPart II. Hoare Logic and Program Verification. Why specify programs? Specification and Verification. Code Verification. Why verify programs?
Part II. Hoare Logic and Program Verification Part II. Hoare Logic and Program Verification Dilian Gurov Props: Models: Specs: Method: Tool: safety of data manipulation source code logic assertions Hoare
More informationSynthesis for Automated Grading and Feedback EXCAPE NSF SITE VISIT AUGUST 2013
Synthesis for Automated Grading and Feedback EXCAPE NSF SITE VISIT AUGUST 2013 Sumit Gulwani Solar-Lezama Alur Seshia Hartmann Leverage Synthesis in Education Technology Computer aided approach to introduce
More informationQLOSE: Program Repair with Quantitative Objectives
QLOSE: Program Repair with Quantitative Objectives Loris D Antoni Roopsha Samanta Rishabh Singh Everyone wants to be a programmer 2 Programming for Everybody (Getting Started with Python) 657,068 An Introduction
More informationAn Annotated Language
Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of
More informationarxiv: v1 [cs.pl] 22 May 2014
Language to Specify Syntax-Guided Synthesis Problems Mukund Raghothaman Abhishek Udupa Friday 7 th December, 2018 arxiv:1405.5590v1 [cs.pl] 22 May 2014 Abstract We present a language to specify syntax
More informationTop Down Design. 2. Design Methodology
Top Down Design 1 A solution method where the problem is broken down into smaller subproblems, which in turn are broken down into smaller problems until each subproblem can be solved in a few steps. (Also
More informationExCAPE. Expeditions in Computer Augmented Program Engineering
ExCAPE Expeditions in Computer Augmented Program Engineering Rajeev Alur, Ras Bodik, Jeff Foster, Bjorn Hartmann, Lydia Kavraki, Hadas Kress-Gazit, Stephane Lafortune, Boon Loo, P. Madhusudan, Milo Martin,
More informationLanguage to Specify Syntax-Guided Synthesis Problems
Language to Specify Syntax-Guided Synthesis Problems Mukund Raghothaman Abhishek Udupa Saturday 25 th January, 2014 1 Introduction We present a language to specify syntax guided synthesis (SyGuS) problems.
More informationIntroduction to Sketching
Introduction to Sketching IAP 2008 Armando Solar-Lezama What is sketching? A program synthesis system - generates small fragments of code - checks their validity against a specification A programming aid
More informationTesting, Debugging, and Verification
Testing, Debugging, and Verification Formal Specification, Part II Srinivas Pinisetty 23 November 2017 Introduction Today: Introduction to Dafny: An imperative language with integrated support for formal
More informationTesting and Debugging
Testing and Debugging Comp-303 : Programming Techniques Lecture 14 Alexandre Denault Computer Science McGill University Winter 2004 March 1, 2004 Lecture 14 Comp 303 : Testing and Debugging Page 1 Announcements...
More informationPLDI: U: Type Assisted Synthesis of Recursive Transformers on Algebraic Datatypes
PLDI: U: Type Assisted Synthesis of Recursive Transformers on Algebraic Datatypes Jeevana Priya Inala MIT jinala@mit.edu Advisor: Armando Solar-Lezama 1. Problem and Motivation As programming languages
More informationAssertions, pre/postconditions
Programming as a contract Assertions, pre/postconditions Assertions: Section 4.2 in Savitch (p. 239) Specifying what each method does q Specify it in a comment before method's header Precondition q What
More informationSpecification-Based Sketching with Sketch#
Specification-Based Sketching with Sketch# Hesam Samimi University of California, Los Angeles hesam@cs.ucla.edu Kaushik Rajan Microsoft Research India krajan@microsoft.com ABSTRACT We introduce a new tool
More informationProgramming with Constraint Solvers CS294: Program Synthesis for Everyone
Programming with Constraint Solvers CS294: Program Synthesis for Everyone Ras Bodik Emina Torlak Division of Computer Science University of California, Berkeley Today Today: we describe four programming
More informationIII. Check if the divisors add up to the number. Now we may consider each of these tasks separately, assuming the others will be taken care of
Top-Down Design 1 Top-Down Design: A solution method where the problem is broken down into smaller sub-problems, which in turn are broken down into smaller subproblems, continuing until each sub-problem
More informationHarvard School of Engineering and Applied Sciences CS 152: Programming Languages
Harvard School of Engineering and Applied Sciences CS 152: Programming Languages Lecture 19 Tuesday, April 3, 2018 1 Introduction to axiomatic semantics The idea in axiomatic semantics is to give specifications
More informationLecture 10 Design by Contract
CS 5959 Writing Solid Code Fall 2015 Nov-23 Lecture 10 Design by Contract Zvonimir Rakamarić University of Utah Design by Contract Also called assume-guarantee reasoning Developers annotate software components
More informationFinding and Fixing Bugs in Liquid Haskell. Anish Tondwalkar
Finding and Fixing Bugs in Liquid Haskell Anish Tondwalkar Overview Motivation Liquid Haskell Fault Localization Fault Localization Evaluation Predicate Discovery Predicate Discovery Evaluation Conclusion
More informationUniversity of Dublin
University of Dublin TRINITY COLLEGE Faculty of Enginering & Systems Sciences School of Engineering Junior Freshman Engineering Trinity Term 2015 Computer Engineering I (1E3) Date Location Time Dr L. Hederman
More informationSoftware Model Checking with Abstraction Refinement
Software Model Checking with Abstraction Refinement Computer Science and Artificial Intelligence Laboratory MIT Armando Solar-Lezama With slides from Thomas Henzinger, Ranjit Jhala and Rupak Majumdar.
More informationLecture 1 Contracts : Principles of Imperative Computation (Fall 2018) Frank Pfenning
Lecture 1 Contracts 15-122: Principles of Imperative Computation (Fall 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,
More information11. Methods. Educational Objectives. Example Cookie Calculator. Methods
Educational Objectives You can encapsulate code fragments in methods. You know all elements of method declarations. You understand what happens to the parameters upon calling a method: pass by value You
More informationChapter 9: Functions. Chapter 9. Functions. Copyright 2008 W. W. Norton & Company. All rights reserved.
Chapter 9 Functions 1 Introduction A function is a series of statements that have been grouped together and given a name. Each function is essentially a small program, with its own declarations and statements.
More informationLecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning
Lecture 1 Contracts 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,
More informationSymbolic Execution and Proof of Properties
Chapter 7 Symbolic Execution and Proof of Properties Symbolic execution builds predicates that characterize the conditions under which execution paths can be taken and the effect of the execution on program
More informationThe Sketching Approach to Program Synthesis
The Sketching Approach to Program Synthesis Armando Solar-Lezama Massachusetts Institute of Technology Abstract. Sketching is a new form of localized software synthesis that aims to bridge the gap between
More informationModel Checking and Its Applications
Model Checking and Its Applications Orna Grumberg Technion, Israel Verification and Deduction Mentoring Workshop July 13, 2018 1 Personal data Ph.d. in (non-automated) verification Postdoc in Model Checking
More informationLecture Notes on Contracts
Lecture Notes on Contracts 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 30, 2012 1 Introduction For an overview the course goals and the mechanics and schedule of the course,
More informationSynthesizing Data- Structure Manipula5ons with Natural Proofs
Synthesizing Data- Structure Manipula5ons with Natural Proofs Xiaokang Qiu (Joint work with Armando Solar- Lezama) Program Synthesis Building Reliable SoHware Program Verification Constraint Solving (Verifica5on
More information10. Functions II. Pre- and Postconditions. Postconditions. Preconditions. // PRE: e >= 0 b!= 0.0. // POST: return value is b^e
Pre- and Postconditions 10. Functions II Pre- and Postconditions Stepwise Refinement, Scope, Libraries and Standard Functions characterize (as complete as possible) what a function does document the function
More informationFormalization of Incremental Simplex Algorithm by Stepwise Refinement
Formalization of Incremental Simplex Algorithm by Stepwise Refinement Mirko Spasić, Filip Marić Faculty of Mathematics, University of Belgrade FM2012, 30. August 2012. Overview 1 Introduction 2 Approach
More information10. Methods. Methods. Example Cookie Calculator. Cookie Calculator Additional Requirements
Methods 10. Methods Defining and Calling Methods, Evaluation of Method Calls, the Type void, Pre- and Post-Conditions,Stepwise Refinement,Libraries Code fragments can be assembled in methods Advantages:
More informationBOOGIE. Presentation by Itsik Hefez A MODULAR REUSABLE VERIFIER FOR OBJECT-ORIENTED PROGRAMS MICROSOFT RESEARCH
BOOGIE A MODULAR REUSABLE VERIFIER FOR OBJECT-ORIENTED PROGRAMS MICROSOFT RESEARCH Presentation by Itsik Hefez Introduction Boogie is an intermediate verification language, intended as a layer on which
More informationSemantic Analysis. CSE 307 Principles of Programming Languages Stony Brook University
Semantic Analysis CSE 307 Principles of Programming Languages Stony Brook University http://www.cs.stonybrook.edu/~cse307 1 Role of Semantic Analysis Syntax vs. Semantics: syntax concerns the form of a
More informationLecture Notes on Ints
Lecture Notes on Ints 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 26, 2010 1 Introduction Two fundamental types in almost any programming language are booleans and integers.
More informationSpark verification features
Spark verification features Paul Jackson School of Informatics University of Edinburgh Formal Verification Spring 2018 Adding specification information to programs Verification concerns checking whether
More informationSciduction: Combining Induction, Deduction and Structure for Verification and Synthesis
Sciduction: Combining Induction, Deduction and Structure for Verification and Synthesis (abridged version of DAC slides) Sanjit A. Seshia Associate Professor EECS Department UC Berkeley Design Automation
More informationLecture Notes on Linear Search
Lecture Notes on Linear Search 15-122: Principles of Imperative Computation Frank Pfenning Lecture 5 January 28, 2014 1 Introduction One of the fundamental and recurring problems in computer science is
More informationAbstractions and small languages in synthesis CS294: Program Synthesis for Everyone
Abstractions and small languages in synthesis CS294: Program Synthesis for Everyone Ras Bodik Emina Torlak Division of Computer Science University of California, Berkeley Today Today: we describe why high-level
More informationMidterm I Exam Principles of Imperative Computation André Platzer Ananda Gunawardena. February 23, Name: Andrew ID: Section:
Midterm I Exam 15-122 Principles of Imperative Computation André Platzer Ananda Gunawardena February 23, 2012 Name: Andrew ID: Section: Instructions This exam is closed-book with one sheet of notes permitted.
More informationMidterm I Exam Principles of Imperative Computation André Platzer Ananda Gunawardena. February 23, 2012
Midterm I Exam 15-122 Principles of Imperative Computation André Platzer Ananda Gunawardena February 23, 2012 Name: Sample Solution Andrew ID: aplatzer Section: Instructions This exam is closed-book with
More informationAdvanced Tool Architectures. Edited and Presented by Edward A. Lee, Co-PI UC Berkeley. Tool Projects. Chess Review May 10, 2004 Berkeley, CA
Advanced Tool Architectures Edited and Presented by Edward A. Lee, Co-PI UC Berkeley Chess Review May 10, 2004 Berkeley, CA Tool Projects Concurrent model-based design Giotto (Henzinger) E machine & S
More informationProgram Synthesis for Forth Forth Day 2012
Program Synthesis for Forth Forth Day 2012 Computer Science UC Berkeley Ras Bodik Mangpo Phitchaya Phothilimthana Tikhon Jelvis Rohin Shah Synthesis with sketches Extend your language with two constructs
More informationSyntax-Guided Program Synthesis. Rajeev Alur. University of Pennsylvania
Syntax-Guided Program Synthesis Rajeev Alur University of Pennsylvania 1 Goal: Programming computers easier than communicating with people Can programming be liberated, period. David Harel, IEEE Computer,
More informationSyntax-Guided Program Synthesis. Rajeev Alur
Syntax-Guided Program Synthesis Rajeev Alur University of Pennsylvania 1 Goal: Programming computers easier than communicating with people Can programming be liberated, period. David Harel, IEEE Computer,
More informationMutual Summaries: Unifying Program Comparison Techniques
Mutual Summaries: Unifying Program Comparison Techniques Chris Hawblitzel 1, Ming Kawaguchi 2, Shuvendu K. Lahiri 1, and Henrique Rebêlo 3 1 Microsoft Research, Redmond, WA, USA 2 University of California,
More information(6) The specification of a name with its type in a program. (7) Some memory that holds a value of a given type.
CS 7A - Fall 2016 - Midterm 1 10/20/16 Write responses to questions 1 and 2 on this paper or attach additional sheets, as necessary For all subsequent problems, use separate paper Do not use a computer
More informationLecture 3 Notes Arrays
Lecture 3 Notes Arrays 15-122: Principles of Imperative Computation (Summer 1 2015) Frank Pfenning, André Platzer 1 Introduction So far we have seen how to process primitive data like integers in imperative
More informationProgram Synthesis for Forth Forth Day 2012
Program Synthesis for Forth Forth Day 2012 Computer Science UC Berkeley Ras Bodik Mangpo Phitchaya Phothilimthana Tikhon Jelvis Rohin Shah Synthesis with sketches Extend your language with two constructs
More informationCOP 4516: Math for Programming Contest Notes
COP 4516: Math for Programming Contest Notes Euclid's Algorithm Euclid's Algorithm is the efficient way to determine the greatest common divisor between two integers. Given two positive integers a and
More informationCombining Static and Dynamic Contract Checking for Curry
Michael Hanus (CAU Kiel) Combining Static and Dynamic Contract Checking for Curry LOPSTR 2017 1 Combining Static and Dynamic Contract Checking for Curry Michael Hanus University of Kiel Programming Languages
More informationTesting. Prof. Clarkson Fall Today s music: Wrecking Ball by Miley Cyrus
Testing Prof. Clarkson Fall 2017 Today s music: Wrecking Ball by Miley Cyrus Review Previously in 3110: Modules Specification (functions, modules) Today: Validation Testing Black box Glass box Randomized
More informationStoryboard Programming of Data Structure Manipulations. Rishabh Singh
Storyboard Programming of Data Structure Manipulations A picture is worth 20 lines of code by Rishabh Singh B.Tech(H), Indian Institute of Technology Kharagpur (2008) Submitted to the Department of Electrical
More informationSpecification, Verification, and Interactive Proof
Specification, Verification, and Interactive Proof SRI International May 23, 2016 PVS PVS - Prototype Verification System PVS is a verification system combining language expressiveness with automated tools.
More information! Addition! Multiplication! Bigger Example - RSA cryptography
! Addition! Multiplication! Bigger Example - RSA cryptography Modular Arithmetic Modular Exponentiation Primality Testing (Fermat s little theorem) Probabilistic algorithm Euclid s Algorithm for gcd (greatest
More informationCode Contracts. Pavel Parízek. CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics
Code Contracts http://d3s.mff.cuni.cz Pavel Parízek CHARLES UNIVERSITY IN PRAGUE faculty of mathematics and physics Pavel Parízek Code Contracts 2 Assertions Typically used as internal checks in the program
More information! Use of formal notations. ! in software system descriptions. ! for a broad range of effects. ! and varying levels of use. !
What Are Formal Methods? David S. Rosenblum ICS 221 Winter 2001! Use of formal notations! first-order logic, state machines, etc.! in software system descriptions! system models, constraints, specifications,
More informationLibrary-Based Scalable Refinement Checking for Contract-Based Design
Library-Based Scalable Refinement Checking for Contract-Based Design Antonio Iannopollo, Pierluigi Nuzzo, Stavros Tripakis, Alberto Sangiovanni-Vincentelli EECS Department, University of California at
More informationReasoning About Imperative Programs. COS 441 Slides 10
Reasoning About Imperative Programs COS 441 Slides 10 The last few weeks Agenda reasoning about functional programming It s very simple and very uniform: substitution of equal expressions for equal expressions
More informationSoftware Development. Modular Design and Algorithm Analysis
Software Development Modular Design and Algorithm Analysis Precondition and Postcondition To create a good algorithm, a programmer must be able to analyse a precondition (starting state) and a postcondition
More informationCounterexample-Driven Genetic Programming
Counterexample-Driven Genetic Programming Iwo Błądek, Krzysztof Krawiec Institute of Computing Science, Poznań University of Technology Poznań, 12.12.2017 I. Błądek, K. Krawiec Counterexample-Driven Genetic
More informationReactive Synthesis using Sketching
Reactive Synthesis using Sketching Garvit Juniwal UC Berkeley Email: garvitjuniwal@eecs.berkeley.edu Abstract We first formalize the idea of using sketching(completing partial programs using specifications)
More informationExample: Monte Carlo Simulation 1
Example: Monte Carlo Simulation 1 Write a program which conducts a Monte Carlo simulation to estimate π. 1 See https://en.wikipedia.org/wiki/monte_carlo_method. Zheng-Liang Lu Java Programming 133 / 149
More informationSynthesis of Synchronization using Uninterpreted Functions
Synthesis of Synchronization using Uninterpreted Functions* October 22, 2014 Roderick Bloem, Georg Hofferek, Bettina Könighofer, Robert Könighofer, Simon Außerlechner, and Raphael Spörk * This work was
More informationFunc%onal Programming in Scheme and Lisp
Func%onal Programming in Scheme and Lisp http://www.lisperati.com/landoflisp/ Overview In a func(onal programming language, func(ons are first class objects You can create them, put them in data structures,
More informationFreePascal changes: user documentation
FreePascal changes: user documentation Table of Contents Jochem Berndsen February 2007 1Introduction...1 2Accepted syntax...2 Declarations...2 Statements...3 Class invariants...3 3Semantics...3 Definitions,
More informationAbstract Interpretation
Abstract Interpretation Ranjit Jhala, UC San Diego April 22, 2013 Fundamental Challenge of Program Analysis How to infer (loop) invariants? Fundamental Challenge of Program Analysis Key issue for any analysis
More informationProgram Verification. Program Verification 307/434
Program Verification Program Verification 307/434 Outline Introduction: What and Why? Pre- and Postconditions Conditionals while-loops and Total Correctness Arrays Program Verification Introduction 308/434
More informationProgram Synthesis of Parallel Scans
Program Synthesis of Parallel Scans Sagar Jain Electrical Engineering and Computer Sciences University of California at Berkeley Technical Report No. UCB/EECS-2011-141 http://www.eecs.berkeley.edu/pubs/techrpts/2011/eecs-2011-141.html
More informationStatic Contract Checking for Haskell
Static Contract Checking for Haskell Dana N. Xu INRIA France Work done at University of Cambridge Simon Peyton Jones Microsoft Research Cambridge Joint work with Koen Claessen Chalmers University of Technology
More informationFunc%onal Programming in Scheme and Lisp
Func%onal Programming in Scheme and Lisp http://www.lisperati.com/landoflisp/ Overview In a func(onal programming language, func(ons are first class objects You can create them, put them in data structures,
More informationModule Contact: Dr Pierre Chardaire, CMP Copyright of the University of East Anglia Version 1
UNIVERSITY OF EAST ANGLIA School of Computing Sciences Main Series UG Examination 2015/16 INTRODUCTORY PROGRAMMING CMP-0005B Time allowed: 2 hours. Answer BOTH questions from section A and ONE question
More informationCSCI-1200 Data Structures Spring 2018 Lecture 14 Associative Containers (Maps), Part 1 (and Problem Solving Too)
CSCI-1200 Data Structures Spring 2018 Lecture 14 Associative Containers (Maps), Part 1 (and Problem Solving Too) HW6 NOTE: Do not use the STL map or STL pair for HW6. (It s okay to use them for the contest.)
More informationRefinement calculus for reactive systems
Refinement calcls for reactive systems Stavros Tripakis UC Berkeley and Aalto University Joint work with Viorel Preoteasa (Aalto), Ben Lickly (Berkeley), Thomas Henzinger (IST Astria), and Edward Lee (Berkeley)
More informationPlan of the lecture. Quick-Sort. Partition of lists (or using extra workspace) Quick-Sort ( 10.2) Quick-Sort Tree. Partitioning arrays
Plan of the lecture Quick-sort Lower bounds on comparison sorting Correctness of programs (loop invariants) Quick-Sort 7 4 9 6 2 2 4 6 7 9 4 2 2 4 7 9 7 9 2 2 9 9 Lecture 16 1 Lecture 16 2 Quick-Sort (
More informationOther operators. Some times a simple comparison is not enough to determine if our criteria has been met.
Lecture 6 Other operators Some times a simple comparison is not enough to determine if our criteria has been met. For example: (and operation) If a person wants to login to bank account, the user name
More informationCMSC 330: Organization of Programming Languages
CMSC 330: Organization of Programming Languages Operational Semantics CMSC 330 Summer 2018 1 Formal Semantics of a Prog. Lang. Mathematical description of the meaning of programs written in that language
More informationPROGRAM ANALYSIS & SYNTHESIS
Lecture 02 Structural Operational Semantics (SOS) PROGRAM ANALYSIS & SYNTHESIS EranYahav 1 Previously static analysis over-approximation of program behavior abstract interpretation abstraction, transformers,
More informationJump Statements. The keyword break and continue are often used in repetition structures to provide additional controls.
Jump Statements The keyword break and continue are often used in repetition structures to provide additional controls. break: the loop is terminated right after a break statement is executed. continue:
More informationSoftware Verification : Introduction
Software Verification : Introduction Ranjit Jhala, UC San Diego April 4, 2013 What is Algorithmic Verification? Algorithms, Techniques and Tools to ensure that Programs Don t Have Bugs (What does that
More informationIntroduction to Axiomatic Semantics (1/2)
#1 Introduction to Axiomatic Semantics (1/2) How s The Homework Going? Remember: just do the counterexample guided abstraction refinement part of DPLL(T). If you notice any other errors, those are good
More informationMidterm I Exam Principles of Imperative Computation Frank Pfenning. February 17, 2011
Midterm I Exam 15-122 Principles of Imperative Computation Frank Pfenning February 17, 2011 Name: Sample Solution Andrew ID: fp Section: Instructions This exam is closed-book with one sheet of notes permitted.
More informationProgramming with Primal and Dual Semantics
Do not distribute Programming with Primal and Dual Semantics Ashish Tiwari SRI International ashish.tiwari@sri.com Abstract We present a programming paradigm that allows a single program to have multiple
More informationStatic program checking and verification
Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness
More informationVS 3 : SMT Solvers for Program Verification
VS 3 : SMT Solvers for Program Verification Saurabh Srivastava 1,, Sumit Gulwani 2, and Jeffrey S. Foster 1 1 University of Maryland, College Park, {saurabhs,jfoster}@cs.umd.edu 2 Microsoft Research, Redmond,
More informationLab Instructor : Jean Lai
Lab Instructor : Jean Lai Group related statements to perform a specific task. Structure the program (No duplicate codes!) Must be declared before used. Can be invoked (called) as any number of times.
More informationCS115 - Module 3 - Booleans, Conditionals, and Symbols
Fall 2017 Reminder: if you have not already, ensure you: Read How to Design Programs, sections 4-5 Booleans (Bool) , and = are new functions, each of which produces a boolean value (Bool). (< 4 6)
More informationChapter 3 (part 3) Describing Syntax and Semantics
Chapter 3 (part 3) Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings
More informationAutomation in Cryptology
Automation in Cryptology Ashish Tiwari Abstract Inspired by the recent work on sketching-based synthesis of programs [SLRBE05, SLTB + 06], we have developed a language for specifying sketches, or partially
More information