Splitting the Control Flow with Boolean Flags
|
|
- Daisy Williamson
- 5 years ago
- Views:
Transcription
1 École Normale Supérieure, Paris, France July 2008
2 Good States are Usually Convex Declare C variable int array[12]; i Access array[i] within bound if 0 i and i 11.
3 Good States are Usually Convex Declare C variable int array[s]; where s is any int s-1 i Access array[i] within bound if 0 i and i s 1.
4 Good States are Usually Convex Declare C variable int array[s]; where s is any int s-1 i Access array[i] within bound if 0 i and i s 1. Observations: One conjunction of linear inequalities is sufficient.
5 Good States are Usually Convex Declare C variable int array[s]; where s is any int s-1 i Access array[i] within bound if 0 i and i s 1. Observations: One conjunction of linear inequalities is sufficient. Such a conjunction defines a convex polyhedron.
6 Good States are Usually Convex Declare C variable int array[s]; where s is any int s-1 i Access array[i] within bound if 0 i and i s 1. Observations: One conjunction of linear inequalities is sufficient. Such a conjunction defines a convex polyhedron. Verification often possible by inferring a single polyhedron.
7 Domain of Convex Polyhedra Properties are expressed over abstract variables X e.g. value of p is expressed by xp X let x = x1,... x n and {x 1,... x n } = X
8 Domain of Convex Polyhedra Properties are expressed over abstract variables X e.g. value of p is expressed by xp X let x = x1,... x n and {x 1,... x n } = X The domain of convex polyhedra Poly X,,, : Ineq X : the set of linear inequalities a x c, a Z n, c Z. Poly X : subsets of Q n that can be delimited by finite sets of I Ineq X [[ a x c]]: subspace of Q n that satisfies a x c P 1 P 2 : entailment; P 1 P 2 P 1 P 2 : join; closure of the convex hull of P 1 and P 2. P 1 P 2 : meet; for instance P 1 P 2 := P 1 P 2
9 Example: Division by Zero Let 9 d 9 in abstract state P and execute: int r= MAX_INT ; if (d!=0) r=v/d; Task: Verify that d is not zero when dividing.
10 Example: Division by Zero Let 9 d 9 in abstract state P and execute: int r= MAX_INT ; if (d!=0) r=v/d; Task: Verify that d is not zero when dividing. Model d!=0 by P = (P [[d 1]]) (P [[d 1]]). Approximation results in 9 d 9 in P. Cannot prove v/d correct using P.
11 Example: Division by Zero Let 9 d 9 in abstract state P and execute: int r= MAX_INT ; if (d!=0) r=v/d; Task: Verify that d is not zero when dividing. Model d!=0 by P = (P [[d 1]]) (P [[d 1]]). Approximation results in 9 d 9 in P. Cannot prove v/d correct using P. One solution: Do not join the states P [[d 1]] and P [[d 1]] until after the division (trace partitioning). Partitioning the traces: when to split and when to join?
12 One Polyhedron and one Boolean Flag Idea: add a Boolean flag f to the states that are to be separated. Let P = P [[{d 1, f = 0}]] and P + = P [[{d 1, f = 1}]].
13 One Polyhedron and one Boolean Flag Idea: add a Boolean flag f to the states that are to be separated. Let P = P [[{d 1, f = 0}]] and P + = P [[{d 1, f = 1}]]. Analyze v/d using the state P = P P + : f d=0 1 + P 0 P d
14 One Polyhedron and one Boolean Flag Idea: add a Boolean flag f to the states that are to be separated. Let P = P [[{d 1, f = 0}]] and P + = P [[{d 1, f = 1}]]. Analyze v/d using the state P = P P + : f d=0 1 + P 0 P d Division by zero possible if P [[d = 0]].
15 One Polyhedron and one Boolean Flag Idea: add a Boolean flag f to the states that are to be separated. Let P = P [[{d 1, f = 0}]] and P + = P [[{d 1, f = 1}]]. Analyze v/d using the state P = P P + : f d=0 1 + P 0 P d Division by zero possible if P [[d = 0]]. Since d integral, we can conclude that P [[d = 0]] Z n =.
16 The Main Observation Let P 1, P 2 Poly X and let P = (P 1 [[f = 0]]) (P 2 [[f = 1]]). Then: P 1 and P 2 can be recovered from P if satisfies P 1 P 2 = S s.th. S Z n = P 1 P 2 Z n, P1 and P 2 are bounded. Otherwise a loss of information may occur. f 1 d=0 + P 0 P d
17 The Main Observation Let P 1, P 2 Poly X and let P = (P 1 [[f = 0]]) (P 2 [[f = 1]]). Then: P 1 and P 2 can be recovered from P if satisfies P1 P 2 = S s.th. S Z n = P 1 P 2 Z n, P1 and P 2 are bounded. Otherwise a loss of information may occur. E.g.: d 9: f 1 d=0 + P 0 P d
18 Using Boolean Flags instead of Reanalyzing a Path Separating two states using a Boolean flag is conceptually simpler, still need to decide where to split, but joining paths is automatic.
19 Using Boolean Flags instead of Reanalyzing a Path Separating two states using a Boolean flag is conceptually simpler, still need to decide where to split, but joining paths is automatic. Complexity: Polyhedra with integral tightening can express any Boolean function. Examples over two variables: y x y y x y y x y y x y x 0 1 x 0 1 x 0 1 x
20 Using Boolean Flags instead of Reanalyzing a Path Separating two states using a Boolean flag is conceptually simpler, still need to decide where to split, but joining paths is automatic. Complexity: Polyhedra with integral tightening can express any Boolean function. Examples over two variables: y x y y x y y x y y x y x 0 1 x 0 1 x 0 1 x Indeed, deciding if P Z n = is NP-complete. [Schrijver86]
21 Using Polyhedral Sub-Domains Reduce the complexity by using sub-domains of Z-polyhedra, e.g.:
22 Using Polyhedral Sub-Domains Reduce the complexity by using sub-domains of Z-polyhedra, e.g.: Octagons [Mine06]: Restrict Ineq X to ±x ± y c, c Z. Modifying the closure yields Z-Octagons and a decision procedure for 2-SAT. [Bagnara08]
23 Using Polyhedral Sub-Domains Reduce the complexity by using sub-domains of Z-polyhedra, e.g.: Octagons [Mine06]: Restrict Ineq X to ±x ± y c, c Z. Modifying the closure yields Z-Octagons and a decision procedure for 2-SAT. [Bagnara08] TVPI [Simon02]: Restrict Ineq X to ax + by c. Emptiness test for TVPI system over Z n is NP-complete [Lagarias85]. Approximation via Planar Integer Hull algorithm [Harvey99].
24 Using Polyhedral Sub-Domains Reduce the complexity by using sub-domains of Z-polyhedra, e.g.: Octagons [Mine06]: Restrict Ineq X to ±x ± y c, c Z. Modifying the closure yields Z-Octagons and a decision procedure for 2-SAT. [Bagnara08] TVPI [Simon02]: Restrict Ineq X to ax + by c. Emptiness test for TVPI system over Z n is NP-complete [Lagarias85]. Approximation via Planar Integer Hull algorithm [Harvey99]. Polyhedra with Tightening: a x c where gcd( a) = 1. Refine with Gomory s cutting plane method.
25 Using Polyhedral Sub-Domains Reduce the complexity by using sub-domains of Z-polyhedra, e.g.: Octagons [Mine06]: Restrict Ineq X to ±x ± y c, c Z. Modifying the closure yields Z-Octagons and a decision procedure for 2-SAT. [Bagnara08] f 1 d=0 + P 0 P d
26 Polyhedral and Points-to Analysis Consider the following call to f: char *p; bool r; r = f(&p); /* other statments here */ if (r) printf("value: %s", p); And the following stub implementation: int f( char ** pp) { if ( rand ()) return 0; /* error */ *pp = "Success."; return 1; /* success */ } Two possible cases:
27 Polyhedral and Points-to Analysis Consider the following call to f: char *p; bool r; r = f(&p); /* other statments here */ if (r) printf("value: %s", p); And the following stub implementation: int f( char ** pp) { if ( rand ()) return 0; /* error */ *pp = "Success."; return 1; /* success */ } Two possible cases: success rand() returns 0, p points to "Success.", r is 1
28 Polyhedral and Points-to Analysis Consider the following call to f: char *p; bool r; r = f(&p); /* other statments here */ if (r) printf("value: %s", p); And the following stub implementation: int f( char ** pp) { if ( rand ()) return 0; /* error */ *pp = "Success."; return 1; /* success */ } Two possible cases: success rand() returns 0, p points to "Success.", r is 1 error rand() returns non-zero, p is uninitialized, r is 0
29 Polyhedral and Points-to Analysis Consider the following call to f: char *p; bool r; r = f(&p); /* other statments here */ if (r) printf("value: %s", p); Let P Poly X and A : X P(A) represent state after call to f. points-to set A(x p ) value of x p in P value of x r success a s 0 1 error null [0, ] 0 p γ p (P, A) = {x p + p... x p,... P p ρ(a) a A(x p )} where A(x p ) = {a s, null} and ρ(a s ) = [4096, 2 31 ], ρ(null) = {0}
30 Evaluating the Condition Is dereferencing p correct in if (r) printf("value: %s", p);? points-to set A(x p ) value of x p in P value of x r success a s 0 1 error null [0, ] 0 Possible ways of analysing the program:
31 Evaluating the Condition Is dereferencing p correct in if (r) printf("value: %s", p);? points-to set A(x p ) value of x p in P value of x r success a s 0 1 error null [0, ] 0 Possible ways of analysing the program: Evaluate f and return one (joined) result: A(x p ) = {a s, null}, P = [[{x p 0, x r 0, x p + (2 32 1)x r (2 32 1)}]] Problem: P [[x r 1]] x p = 0 but null A(x p )
32 Evaluating the Condition Is dereferencing p correct in if (r) printf("value: %s", p);? points-to set A(x p ) value of x p in P value of x r success a s 0 1 error null [0, ] 0 Possible ways of analysing the program: Evaluate f and return one (joined) result: A(x p ) = {a s, null}, P = [[{x p 0, x r 0, x p + (2 32 1)x r (2 32 1)}]] Problem: P [[x r 1]] x p = 0 but null A(x p ) Analyse twice: keep success and error traces separate. The error traces are infeasible since r = 0 in P [[xr 1]].
33 Evaluating the Condition Is dereferencing p correct in if (r) printf("value: %s", p);? points-to set A(x p ) value of x p in P value of x r success a s 0 1 error null [0, ] 0 Possible ways of analysing the program: Evaluate f and return one (joined) result: A(x p ) = {a s, null}, P = [[{x p 0, x r 0, x p + (2 32 1)x r (2 32 1)}]] Problem: P [[x r 1]] x p = 0 but null A(x p ) Analyse twice: keep success and error traces separate. The error traces are infeasible since r = 0 in P [[xr 1]]. However, need to re-analyse code between f(&p) and if (r).
34 Evaluating the Condition Is dereferencing p correct in if (r) printf("value: %s", p);? points-to set A(x p ) value of x p in P value of x r success a s 0 1 error null [0, ] 0 Possible ways of analysing the program: Evaluate f and return one (joined) result: A(x p ) = {a s, null}, P = [[{x p 0, x r 0, x p + (2 32 1)x r (2 32 1)}]] Problem: P [[x r 1]] x p = 0 but null A(x p ) Analyse twice: keep success and error traces separate. The error traces are infeasible since r = 0 in P [[xr 1]]. However, need to re-analyse code between f(&p) and if (r). Choose a different way of performing points-to analysis.
35 Refining Points-to Analysis With Boolean Flags A : X P(A) is flow-sensitive points-to analysis null A to denote NULL Problem: can only restrict points-to set of x p for certain tests involving p such as if (p!=null).
36 Refining Points-to Analysis With Boolean Flags A : X P(A) is flow-sensitive points-to analysis null A to denote NULL Problem: can only restrict points-to set of x p for certain tests involving p such as if (p!=null). Now: Fix A : X P(X A) such that A(x p ) = { f s, a s }. p γ p (P) = {x p + f s p... x p,... f s,... P p ρ(a s )}
37 Refining Points-to Analysis With Boolean Flags A : X P(A) is flow-sensitive points-to analysis null A to denote NULL Problem: can only restrict points-to set of x p for certain tests involving p such as if (p!=null). Now: Fix A : X P(X A) such that A(x p ) = { f s, a s }. p γ p (P) = {x p + f s p... x p,... f s,... P p ρ(a s )} points-to set A(x p ) f s in P x p in P x r in P success a s if f s = error a s if f s = 1 0 [0, ] 0 P = [[{f s = x r, x p 0, r 0, x p + (2 32 1)r (2 32 1)}]]
38 Refining Points-to Analysis With Boolean Flags A : X P(A) is flow-sensitive points-to analysis null A to denote NULL Problem: can only restrict points-to set of x p for certain tests involving p such as if (p!=null). Now: Fix A : X P(X A) such that A(x p ) = { f s, a s }. p γ p (P) = {x p + f s p... x p,... f s,... P p ρ(a s )} points-to set A(x p ) f s in P x p in P x r in P success a s if f s = error a s if f s = 1 0 [0, ] 0 P = [[{f s = x r, x p 0, r 0, x p + (2 32 1)r (2 32 1)}]] Is dereferencing p correct in if (r) printf("value: %s", p);? Yes: P [[r 1]] x p = 0, f s = 1
39 On Using Flags in Points-to Analysis can use one points-to map for the whole program improves precision cost negligible if points-to flags is equal to variable or constant
40 On Using Flags in Points-to Analysis can use one points-to map for the whole program improves precision cost negligible if points-to flags is equal to variable or constant performing pointer arithmetic is simple. Evaluate e=p+q-r, and let A(x p ) = { a 1, f p 1,... a k, f p k }, similarly for x q, x r, x e. x e x p + x q x r f1 e. f p 1 + f q 1 f 1 r. fk e f p k + f q k f k r Same calculation, independent of which variable is a pointer.
41 On Using Flags in Points-to Analysis can use one points-to map for the whole program improves precision cost negligible if points-to flags is equal to variable or constant performing pointer arithmetic is simple. Evaluate e=p+q-r, and let A(x p ) = { a 1, f p 1,... a k, f p k }, similarly for x q, x r, x e. x e x p + x q x r f1 e. f p 1 + f q 1 f 1 r. fk e f p k + f q k f k r Same calculation, independent of which variable is a pointer. if 0 f1 e 1,... 0 f k e 1: each flag is Boolean
42 On Using Flags in Points-to Analysis can use one points-to map for the whole program improves precision cost negligible if points-to flags is equal to variable or constant performing pointer arithmetic is simple. Evaluate e=p+q-r, and let A(x p ) = { a 1, f p 1,... a k, f p k }, similarly for x q, x r, x e. x e x p + x q x r f1 e. f p 1 + f q 1 f 1 r. fk e f p k + f q k f k r Same calculation, independent of which variable is a pointer. if 0 f1 e 1,... 0 f k e 1: each flag is Boolean if f e fk e 1: e is not NULL
43 On Using Flags in Points-to Analysis can use one points-to map for the whole program improves precision cost negligible if points-to flags is equal to variable or constant performing pointer arithmetic is simple. Evaluate e=p+q-r, and let A(x p ) = { a 1, f p 1,... a k, f p k }, similarly for x q, x r, x e. x e x p + x q x r f1 e. f p 1 + f q 1 f 1 r. fk e f p k + f q k f k r Same calculation, independent of which variable is a pointer. if 0 f1 e 1,... 0 f k e 1: each flag is Boolean if f e fk e 1: e is not NULL if f e fk e 1: e is not the sum of pointers
44 Conclusion Using Boolean variables in a polyhedron distinguishes two states (if P bounded and Z-polyhedron) but approximation to Z-polyhedra suffice in practice are useful to refine points-to analysis can be cheaper than trace partitioning simpler to implement than trace partitioning
45 Conclusion Using Boolean variables in a polyhedron distinguishes two states (if P bounded and Z-polyhedron) but approximation to Z-polyhedra suffice in practice are useful to refine points-to analysis can be cheaper than trace partitioning simpler to implement than trace partitioning Observations: convex polyhedra can express non-convex spaces duality: some variables in a polyhedron are Boolean E.g.: string buffer analysis; character is either 0 or apply trace partitioning within polyhedron when relationship with Boolean flag become too complicated?
46 Simon 1 Value-Range Analysis of C Programs Value-Range Analysis of C Programs Towards Proving the Absence of Buffer Overflow Vulnerabilities 1 3 defines semantics for C abstracted using polyhedra abstraction relation precise to the bit-level formal but light-weight description add-ons: string buffer and improved pointer analysis starting point for other analyses appears July 18th 2008
The Chvátal-Gomory Closure of a Strictly Convex Body is a Rational Polyhedron
The Chvátal-Gomory Closure of a Strictly Convex Body is a Rational Polyhedron Juan Pablo Vielma Joint work with Daniel Dadush and Santanu S. Dey July, Atlanta, GA Outline Introduction Proof: Step Step
More informationInterprocStack analyzer for recursive programs with finite-type and numerical variables
InterprocStack analyzer for recursive programs with finite-type and numerical variables Bertrand Jeannet Contents 1 Invoking InterprocStack 1 2 The Simple language 2 2.1 Syntax and informal semantics.........................
More informationRanking Functions. Linear-Constraint Loops
for Linear-Constraint Loops Amir Ben-Amram 1 for Loops Example 1 (GCD program): while (x > 1, y > 1) if x
More informationThe Apron Library. Bertrand Jeannet and Antoine Miné. CAV 09 conference 02/07/2009 INRIA, CNRS/ENS
The Apron Library Bertrand Jeannet and Antoine Miné INRIA, CNRS/ENS CAV 09 conference 02/07/2009 Context : Static Analysis What is it about? Discover properties of a program statically and automatically.
More informationEmbedded Software Verification Challenges and Solutions. Static Program Analysis
Embedded Software Verification Challenges and Solutions Static Program Analysis Chao Wang chaowang@nec-labs.com NEC Labs America Princeton, NJ ICCAD Tutorial November 11, 2008 www.nec-labs.com 1 Outline
More informationConvex Geometry arising in Optimization
Convex Geometry arising in Optimization Jesús A. De Loera University of California, Davis Berlin Mathematical School Summer 2015 WHAT IS THIS COURSE ABOUT? Combinatorial Convexity and Optimization PLAN
More informationCombinatorial Geometry & Topology arising in Game Theory and Optimization
Combinatorial Geometry & Topology arising in Game Theory and Optimization Jesús A. De Loera University of California, Davis LAST EPISODE... We discuss the content of the course... Convex Sets A set is
More informationC&O 355 Lecture 16. N. Harvey
C&O 355 Lecture 16 N. Harvey Topics Review of Fourier-Motzkin Elimination Linear Transformations of Polyhedra Convex Combinations Convex Hulls Polytopes & Convex Hulls Fourier-Motzkin Elimination Joseph
More informationInterval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships
Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships Liqian Chen 1,2 Antoine Miné 3,2 Ji Wang 1 Patrick Cousot 2,4 1 National Lab. for Parallel and Distributed Processing, Changsha,
More informationarxiv: v1 [math.co] 15 Dec 2009
ANOTHER PROOF OF THE FACT THAT POLYHEDRAL CONES ARE FINITELY GENERATED arxiv:092.2927v [math.co] 5 Dec 2009 VOLKER KAIBEL Abstract. In this note, we work out a simple inductive proof showing that every
More informationSendmail crackaddr - Static Analysis strikes back
Sendmail crackaddr - Static Analysis strikes back Bogdan Mihaila Technical University of Munich, Germany December 6, 2014 Name Lastname < name@mail.org > ()()()()()()()()()... ()()() 1 / 25 Abstract Interpretation
More informationWeek 7 Convex Hulls in 3D
1 Week 7 Convex Hulls in 3D 2 Polyhedra A polyhedron is the natural generalization of a 2D polygon to 3D 3 Closed Polyhedral Surface A closed polyhedral surface is a finite set of interior disjoint polygons
More informationInteger Programming Theory
Integer Programming Theory Laura Galli October 24, 2016 In the following we assume all functions are linear, hence we often drop the term linear. In discrete optimization, we seek to find a solution x
More informationLecture 15: The subspace topology, Closed sets
Lecture 15: The subspace topology, Closed sets 1 The Subspace Topology Definition 1.1. Let (X, T) be a topological space with topology T. subset of X, the collection If Y is a T Y = {Y U U T} is a topology
More information2017 SOLUTIONS (PRELIMINARY VERSION)
SIMON MARAIS MATHEMATICS COMPETITION 07 SOLUTIONS (PRELIMINARY VERSION) This document will be updated to include alternative solutions provided by contestants, after the competition has been mared. Problem
More informationACTUALLY DOING IT : an Introduction to Polyhedral Computation
ACTUALLY DOING IT : an Introduction to Polyhedral Computation Jesús A. De Loera Department of Mathematics Univ. of California, Davis http://www.math.ucdavis.edu/ deloera/ 1 What is a Convex Polytope? 2
More informationMVE165/MMG630, Applied Optimization Lecture 8 Integer linear programming algorithms. Ann-Brith Strömberg
MVE165/MMG630, Integer linear programming algorithms Ann-Brith Strömberg 2009 04 15 Methods for ILP: Overview (Ch. 14.1) Enumeration Implicit enumeration: Branch and bound Relaxations Decomposition methods:
More informationStable sets, corner polyhedra and the Chvátal closure
Stable sets, corner polyhedra and the Chvátal closure Manoel Campêlo Departamento de Estatística e Matemática Aplicada, Universidade Federal do Ceará, Brazil, mcampelo@lia.ufc.br. Gérard Cornuéjols Tepper
More informationLine Arrangement. Chapter 6
Line Arrangement Chapter 6 Line Arrangement Problem: Given a set L of n lines in the plane, compute their arrangement which is a planar subdivision. Line Arrangements Problem: Given a set L of n lines
More informationChapter 4 Concepts from Geometry
Chapter 4 Concepts from Geometry An Introduction to Optimization Spring, 2014 Wei-Ta Chu 1 Line Segments The line segment between two points and in R n is the set of points on the straight line joining
More informationCOS 320. Compiling Techniques
Topic 5: Types COS 320 Compiling Techniques Princeton University Spring 2016 Lennart Beringer 1 Types: potential benefits (I) 2 For programmers: help to eliminate common programming mistakes, particularly
More informationThe Apron Library. Antoine Miné. CEA Seminar December the 10th, CNRS, École normale supérieure
Antoine Miné CNRS, École normale supérieure CEA Seminar December the 10th, 2007 CEA December the 10th, 2007 Antoine Miné p. 1 / 64 Outline Introduction Introduction Main goals Theoretical background The
More informationPierce Ch. 3, 8, 11, 15. Type Systems
Pierce Ch. 3, 8, 11, 15 Type Systems Goals Define the simple language of expressions A small subset of Lisp, with minor modifications Define the type system of this language Mathematical definition using
More informationLecture 4: Rational IPs, Polyhedron, Decomposition Theorem
IE 5: Integer Programming, Spring 29 24 Jan, 29 Lecture 4: Rational IPs, Polyhedron, Decomposition Theorem Lecturer: Karthik Chandrasekaran Scribe: Setareh Taki Disclaimer: These notes have not been subjected
More informationConvex Hulls in Three Dimensions. Polyhedra
Convex Hulls in Three Dimensions Polyhedra Polyhedron 1.A polyhedron is the generalization of a 2- D polygon to 3-D A finite number of flat polygonal faces The boundary or surface of a polyhedron - Zero-dimensional
More informationLinear programming and duality theory
Linear programming and duality theory Complements of Operations Research Giovanni Righini Linear Programming (LP) A linear program is defined by linear constraints, a linear objective function. Its variables
More informationWidening Polyhedra with Landmarks
Widening Polyhedra with Landmarks Axel Simon and Andy King Computing Laboratory, University of Kent, Canterbury, UK {a.simon,a.m.king}@kent.ac.uk Abstract. The abstract domain of polyhedra is suiciently
More informationValue-Range Analysis of C Programs
Value-Range Analysis of C Programs Axel Simon Value-Range Analysis of C Programs Towards Proving the Absence of Buffer Overflow Vulnerabilities 123 Axel Simon ISBN: 978-1-84800-016-2 e-isbn: 978-1-84800-017-9
More informationCuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers
Cuts from Proofs: A Complete and Practical Technique for Solving Linear Inequalities over Integers Isil Dillig, Thomas Dillig, and Alex Aiken Computer Science Department Stanford University Linear Arithmetic
More informationApplied Integer Programming
Applied Integer Programming D.S. Chen; R.G. Batson; Y. Dang Fahimeh 8.2 8.7 April 21, 2015 Context 8.2. Convex sets 8.3. Describing a bounded polyhedron 8.4. Describing unbounded polyhedron 8.5. Faces,
More informationLecture 3. Corner Polyhedron, Intersection Cuts, Maximal Lattice-Free Convex Sets. Tepper School of Business Carnegie Mellon University, Pittsburgh
Lecture 3 Corner Polyhedron, Intersection Cuts, Maximal Lattice-Free Convex Sets Gérard Cornuéjols Tepper School of Business Carnegie Mellon University, Pittsburgh January 2016 Mixed Integer Linear Programming
More informationStatic Program Analysis Part 1 the TIP language
Static Program Analysis Part 1 the TIP language http://cs.au.dk/~amoeller/spa/ Anders Møller & Michael I. Schwartzbach Computer Science, Aarhus University Questions about programs Does the program terminate
More informationIn this chapter we introduce some of the basic concepts that will be useful for the study of integer programming problems.
2 Basics In this chapter we introduce some of the basic concepts that will be useful for the study of integer programming problems. 2.1 Notation Let A R m n be a matrix with row index set M = {1,...,m}
More informationCS599: Convex and Combinatorial Optimization Fall 2013 Lecture 14: Combinatorial Problems as Linear Programs I. Instructor: Shaddin Dughmi
CS599: Convex and Combinatorial Optimization Fall 2013 Lecture 14: Combinatorial Problems as Linear Programs I Instructor: Shaddin Dughmi Announcements Posted solutions to HW1 Today: Combinatorial problems
More information1 Inference for Boolean theories
Scribe notes on the class discussion on consistency methods for boolean theories, row convex constraints and linear inequalities (Section 8.3 to 8.6) Speaker: Eric Moss Scribe: Anagh Lal Corrector: Chen
More informationRelational Abstract Domains for the Detection of Floating-Point Run-Time Errors
ESOP 2004 Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors Antoine Miné École Normale Supérieure Paris FRANCE This work was partially supported by the ASTRÉE RNTL project
More informationJava byte code verification
Java byte code verification SOS Master Science Informatique U. Rennes 1 Thomas Jensen SOS Java byte code verification 1 / 26 Java security architecture Java: programming applications with code from different
More informationThe Two Variable Per Inequality Abstract Domain
The Two Variable Per Inequality Abstract Domain Axel Simon (axel.simon@ens.fr) École Normale Supérieure, 45 rue d Ulm, 75230 Paris Cedex 05, France Andy King (a.m.king@kent.ac.uk) University of Kent, Canterbury,
More informationLecture 21: Other Reductions Steven Skiena
Lecture 21: Other Reductions Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.stonybrook.edu/ skiena Problem of the Day Show that the dense
More informationVerification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control
Verification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control Zachary Kincaid Azadeh Farzan University of Toronto January 18, 2013 Z. Kincaid (U. Toronto) Modular Reasoning
More informationPlanar Graphs. 1 Graphs and maps. 1.1 Planarity and duality
Planar Graphs In the first half of this book, we consider mostly planar graphs and their geometric representations, mostly in the plane. We start with a survey of basic results on planar graphs. This chapter
More information[0569] p 0318 garbage
A Pointer is a variable which contains the address of another variable. Declaration syntax: Pointer_type *pointer_name; This declaration will create a pointer of the pointer_name which will point to the
More informationAdvanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs
Advanced Operations Research Techniques IE316 Quiz 1 Review Dr. Ted Ralphs IE316 Quiz 1 Review 1 Reading for The Quiz Material covered in detail in lecture. 1.1, 1.4, 2.1-2.6, 3.1-3.3, 3.5 Background material
More informationCOMPUTATIONAL GEOMETRY
Thursday, September 20, 2007 (Ming C. Lin) Review on Computational Geometry & Collision Detection for Convex Polytopes COMPUTATIONAL GEOMETRY (Refer to O'Rourke's and Dutch textbook ) 1. Extreme Points
More informationConic Duality. yyye
Conic Linear Optimization and Appl. MS&E314 Lecture Note #02 1 Conic Duality Yinyu Ye Department of Management Science and Engineering Stanford University Stanford, CA 94305, U.S.A. http://www.stanford.edu/
More informationGeometric Modeling Mortenson Chapter 11. Complex Model Construction
Geometric Modeling 91.580.201 Mortenson Chapter 11 Complex Model Construction Topics Topology of Models Connectivity and other intrinsic properties Graph-Based Models Emphasize topological structure Boolean
More informationIntroduction to CBMC: Part 1
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA 15213 Arie Gurfinkel, Sagar Chaki October 2, 2007 Many slides are courtesy of Daniel Kroening Bug Catching with SAT Solvers Main
More information1. CONVEX POLYGONS. Definition. A shape D in the plane is convex if every line drawn between two points in D is entirely inside D.
1. CONVEX POLYGONS Definition. A shape D in the plane is convex if every line drawn between two points in D is entirely inside D. Convex 6 gon Another convex 6 gon Not convex Question. Why is the third
More informationFast Algorithms for Octagon Abstract Domain
Research Collection Master Thesis Fast Algorithms for Octagon Abstract Domain Author(s): Singh, Gagandeep Publication Date: 2014 Permanent Link: https://doi.org/10.3929/ethz-a-010154448 Rights / License:
More informationFINITE DISJUNCTIVE PROGRAMMING CHARACTERIZATIONS FOR GENERAL MIXED-INTEGER LINEAR PROGRAMS
FINITE DISJUNCTIVE PROGRAMMING CHARACTERIZATIONS FOR GENERAL MIXED-INTEGER LINEAR PROGRAMS BINYUAN CHEN, SİMGE KÜÇÜKYAVUZ, SUVRAJEET SEN Abstract. In this paper, we give a finite disjunctive programming
More informationSplit-Cuts and the Stable Set Polytope of Quasi-Line Graphs
Split-Cuts and the Stable Set Polytope of Quasi-Line Graphs Friedrich Eisenbrand Joint work with G. Oriolo, P. Ventura and G. Stauffer Gomory cutting planes P = {x n Ax b} polyhedron, c T x δ, c n valid
More informationMatching and Planarity
Matching and Planarity Po-Shen Loh June 010 1 Warm-up 1. (Bondy 1.5.9.) There are n points in the plane such that every pair of points has distance 1. Show that there are at most n (unordered) pairs of
More informationNP-complete Reductions
NP-complete Reductions 1. Prove that 3SAT P DOUBLE-SAT, i.e., show DOUBLE-SAT is NP-complete by reduction from 3SAT. The 3-SAT problem consists of a conjunction of clauses over n Boolean variables, where
More informationDiscrete Optimization. Lecture Notes 2
Discrete Optimization. Lecture Notes 2 Disjunctive Constraints Defining variables and formulating linear constraints can be straightforward or more sophisticated, depending on the problem structure. The
More informationMath 414 Lecture 2 Everyone have a laptop?
Math 44 Lecture 2 Everyone have a laptop? THEOREM. Let v,...,v k be k vectors in an n-dimensional space and A = [v ;...; v k ] v,..., v k independent v,..., v k span the space v,..., v k a basis v,...,
More informationCOMP331/557. Chapter 2: The Geometry of Linear Programming. (Bertsimas & Tsitsiklis, Chapter 2)
COMP331/557 Chapter 2: The Geometry of Linear Programming (Bertsimas & Tsitsiklis, Chapter 2) 49 Polyhedra and Polytopes Definition 2.1. Let A 2 R m n and b 2 R m. a set {x 2 R n A x b} is called polyhedron
More informationIntroduction to Mathematical Programming IE496. Final Review. Dr. Ted Ralphs
Introduction to Mathematical Programming IE496 Final Review Dr. Ted Ralphs IE496 Final Review 1 Course Wrap-up: Chapter 2 In the introduction, we discussed the general framework of mathematical modeling
More informationInteger Programming as Projection
Integer Programming as Projection H. P. Williams London School of Economics John Hooker Carnegie Mellon University INFORMS 2015, Philadelphia USA A Different Perspective on IP Projection of an IP onto
More informationmaximize c, x subject to Ax b,
Lecture 8 Linear programming is about problems of the form maximize c, x subject to Ax b, where A R m n, x R n, c R n, and b R m, and the inequality sign means inequality in each row. The feasible set
More informationMath 5593 Linear Programming Lecture Notes
Math 5593 Linear Programming Lecture Notes Unit II: Theory & Foundations (Convex Analysis) University of Colorado Denver, Fall 2013 Topics 1 Convex Sets 1 1.1 Basic Properties (Luenberger-Ye Appendix B.1).........................
More informationVerasco: a Formally Verified C Static Analyzer
Verasco: a Formally Verified C Static Analyzer Jacques-Henri Jourdan Joint work with: Vincent Laporte, Sandrine Blazy, Xavier Leroy, David Pichardie,... June 13, 2017, Montpellier GdR GPL thesis prize
More informationStatic Analysis and Bugfinding
Static Analysis and Bugfinding Alex Kantchelian 09/12/2011 Last week we talked about runtime checking methods: tools for detecting vulnerabilities being exploited in deployment. So far, these tools have
More informationType Checking. Outline. General properties of type systems. Types in programming languages. Notation for type rules.
Outline Type Checking General properties of type systems Types in programming languages Notation for type rules Logical rules of inference Common type rules 2 Static Checking Refers to the compile-time
More information[Ch 6] Set Theory. 1. Basic Concepts and Definitions. 400 lecture note #4. 1) Basics
400 lecture note #4 [Ch 6] Set Theory 1. Basic Concepts and Definitions 1) Basics Element: ; A is a set consisting of elements x which is in a/another set S such that P(x) is true. Empty set: notated {
More informationMAXIMAL FLOW THROUGH A NETWORK
MAXIMAL FLOW THROUGH A NETWORK L. R. FORD, JR. AND D. R. FULKERSON Introduction. The problem discussed in this paper was formulated by T. Harris as follows: "Consider a rail network connecting two cities
More informationStable sets, corner polyhedra and the Chvátal closure
Stable sets, corner polyhedra and the Chvátal closure Manoel Campêlo Departamento de Estatística e Matemática Aplicada, Universidade Federal do Ceará, Brazil, mcampelo@lia.ufc.br. Gérard Cornuéjols Tepper
More informationOutline. General properties of type systems. Types in programming languages. Notation for type rules. Common type rules. Logical rules of inference
Type Checking Outline General properties of type systems Types in programming languages Notation for type rules Logical rules of inference Common type rules 2 Static Checking Refers to the compile-time
More informationConvex Optimization CMU-10725
Convex Optimization CMU-10725 Ellipsoid Methods Barnabás Póczos & Ryan Tibshirani Outline Linear programs Simplex algorithm Running time: Polynomial or Exponential? Cutting planes & Ellipsoid methods for
More informationThe Low-Level Bounded Model Checker LLBMC
The Low-Level Bounded Model Checker LLBMC A Precise Memory Model for LLBMC Carsten Sinz Stephan Falke Florian Merz October 7, 2010 VERIFICATION MEETS ALGORITHM ENGINEERING KIT University of the State of
More informationTHREE LECTURES ON BASIC TOPOLOGY. 1. Basic notions.
THREE LECTURES ON BASIC TOPOLOGY PHILIP FOTH 1. Basic notions. Let X be a set. To make a topological space out of X, one must specify a collection T of subsets of X, which are said to be open subsets of
More informationSimply-Typed Lambda Calculus
#1 Simply-Typed Lambda Calculus #2 Back to School What is operational semantics? When would you use contextual (small-step) semantics? What is denotational semantics? What is axiomatic semantics? What
More informationCSCI 2212: Intermediate Programming / C Review, Chapters 10 and 11
... 1/16 CSCI 2212: Intermediate Programming / C Review, Chapters 10 and 11 Alice E. Fischer February 3, 2016 ... 2/16 Outline Basic Types and Diagrams ... 3/16 Basic Types and Diagrams Types in C C has
More informationLecture 21: Other Reductions Steven Skiena. Department of Computer Science State University of New York Stony Brook, NY
Lecture 21: Other Reductions Steven Skiena Department of Computer Science State University of New York Stony Brook, NY 11794 4400 http://www.cs.sunysb.edu/ skiena Problem of the Day Show that the Dense
More informationCSE 307: Principles of Programming Languages
1 / 26 CSE 307: Principles of Programming Languages Names, Scopes, and Bindings R. Sekar 2 / 26 Topics Bindings 1. Bindings Bindings: Names and Attributes Names are a fundamental abstraction in languages
More informationInteger Programming Chapter 9
Integer Programming Chapter 9 University of Chicago Booth School of Business Kipp Martin October 25, 2017 1 / 40 Outline Key Concepts MILP Set Monoids LP set Relaxation of MILP Set Formulation Quality
More informationChapter 12 and 11.1 Planar graphs, regular polyhedra, and graph colorings
Chapter 12 and 11.1 Planar graphs, regular polyhedra, and graph colorings Prof. Tesler Math 184A Fall 2017 Prof. Tesler Ch. 12: Planar Graphs Math 184A / Fall 2017 1 / 45 12.1 12.2. Planar graphs Definition
More informationConvex Hull Representation Conversion (cddlib, lrslib)
Convex Hull Representation Conversion (cddlib, lrslib) Student Seminar in Combinatorics: Mathematical Software Niklas Pfister October 31, 2014 1 Introduction In this report we try to give a short overview
More informationExperimental Evaluation of Numerical Domains for Inferring Ranges
Available online at www.sciencedirect.com Electronic Notes in Theoretical Computer Science 334 (2018) 3 16 www.elsevier.com/locate/entcs Experimental Evaluation of Numerical Domains for Inferring Ranges
More informationCS671 Parallel Programming in the Many-Core Era
1 CS671 Parallel Programming in the Many-Core Era Polyhedral Framework for Compilation: Polyhedral Model Representation, Data Dependence Analysis, Scheduling and Data Locality Optimizations December 3,
More informationarxiv: v1 [cs.pl] 1 Dec 2016
NSAD 2016 arxiv:1612.00277v1 [cs.pl] 1 Dec 2016 Sparsity Preserving Algorithms for Octagons Abstract Jacques-Henri Jourdan MPI-SWS, Inria Paris Known algorithms for manipulating octagons do not preserve
More informationFACES OF CONVEX SETS
FACES OF CONVEX SETS VERA ROSHCHINA Abstract. We remind the basic definitions of faces of convex sets and their basic properties. For more details see the classic references [1, 2] and [4] for polytopes.
More informationCMSC 330: Organization of Programming Languages. Formal Semantics of a Prog. Lang. Specifying Syntax, Semantics
Recall Architecture of Compilers, Interpreters CMSC 330: Organization of Programming Languages Source Scanner Parser Static Analyzer Operational Semantics Intermediate Representation Front End Back End
More informationState of Practice. Automatic Verification of Embedded Control Software with ASTRÉE and beyond
Automatic Verification of Embedded Control Software with ASTRÉE and beyond Patrick Cousot Jerome C. Hunsaker Visiting Professor Department of Aeronautics and Astronautics, MIT cousot mit edu www.mit.edu/~cousot
More informationPOLYHEDRAL GEOMETRY. Convex functions and sets. Mathematical Programming Niels Lauritzen Recall that a subset C R n is convex if
POLYHEDRAL GEOMETRY Mathematical Programming Niels Lauritzen 7.9.2007 Convex functions and sets Recall that a subset C R n is convex if {λx + (1 λ)y 0 λ 1} C for every x, y C and 0 λ 1. A function f :
More informationBuilding a specialized static analyzer
Building a specialized static analyzer The Astrée experience Antoine Miné CNRS, École Normale Supérieure Security and Reliability of Software Systems 12 December 2008 Antoine Miné Building a specialized
More informationSOFTWARE QUALITY OBJECTIVES FOR SOURCE CODE
Software Quality Objectives Page 1/21 Version 2.0 SOFTWARE QUALITY OBJECTIVES FOR SOURCE CODE The MathWorks 2 rue de Paris 92196 Meudon France 01 41 14 87 00 http://www.mathworks.fr Revision table Index
More informationLecture 6: Faces, Facets
IE 511: Integer Programming, Spring 2019 31 Jan, 2019 Lecturer: Karthik Chandrasekaran Lecture 6: Faces, Facets Scribe: Setareh Taki Disclaimer: These notes have not been subjected to the usual scrutiny
More informationSome notes about Event-B and Rodin
Some notes about Event-B and Rodin Résumé This document briefly presents the language event-b and the tool Rodin. For a comprehensive presentation, refer to the event-b page http://www.event-b.org/, the
More informationThe Design of Core C++ (Notes)
The Design of Core C++ (Notes) Uday Reddy May 13, 1994 This note is to define a small formal language called Core C++ which reflects the essential structure of C++. As the name implies, the design only
More informationQuestion. Why is the third shape not convex?
1. CONVEX POLYGONS Definition. A shape D in the plane is convex if every line drawn between two points in D is entirely inside D. Convex 6 gon Another convex 6 gon Not convex Question. Why is the third
More informationInteger Programming ISE 418. Lecture 7. Dr. Ted Ralphs
Integer Programming ISE 418 Lecture 7 Dr. Ted Ralphs ISE 418 Lecture 7 1 Reading for This Lecture Nemhauser and Wolsey Sections II.3.1, II.3.6, II.4.1, II.4.2, II.5.4 Wolsey Chapter 7 CCZ Chapter 1 Constraint
More informationFigure 2.1: An example of a convex set and a nonconvex one.
Convex Hulls 2.1 Definitions 2 Convexity is the key to understanding and simplifying geometry, and the convex hull plays a role in geometry akin to the sorted order for a collection of numbers. So what
More informationLECTURE 10 LECTURE OUTLINE
We now introduce a new concept with important theoretical and algorithmic implications: polyhedral convexity, extreme points, and related issues. LECTURE 1 LECTURE OUTLINE Polar cones and polar cone theorem
More informationSome Advanced Topics in Linear Programming
Some Advanced Topics in Linear Programming Matthew J. Saltzman July 2, 995 Connections with Algebra and Geometry In this section, we will explore how some of the ideas in linear programming, duality theory,
More informationLecture Compiler Middle-End
Lecture 16-18 18 Compiler Middle-End Jianwen Zhu Electrical and Computer Engineering University of Toronto Jianwen Zhu 2009 - P. 1 What We Have Done A lot! Compiler Frontend Defining language Generating
More informationPrinciples of Programming Languages
Principles of Programming Languages Lesson 14 Type Checking Collaboration and Management Dana Fisman www.cs.bgu.ac.il/~ppl172 1 Type Checking We return to the issue of type safety we discussed informally,
More informationLECTURE 18 LECTURE OUTLINE
LECTURE 18 LECTURE OUTLINE Generalized polyhedral approximation methods Combined cutting plane and simplicial decomposition methods Lecture based on the paper D. P. Bertsekas and H. Yu, A Unifying Polyhedral
More informationPolar Duality and Farkas Lemma
Lecture 3 Polar Duality and Farkas Lemma October 8th, 2004 Lecturer: Kamal Jain Notes: Daniel Lowd 3.1 Polytope = bounded polyhedron Last lecture, we were attempting to prove the Minkowsky-Weyl Theorem:
More information3.7 Denotational Semantics
3.7 Denotational Semantics Denotational semantics, also known as fixed-point semantics, associates to each programming language construct a well-defined and rigorously understood mathematical object. These
More informationInduction and Semantics in Dafny
15-414 Lecture 11 1 Instructor: Matt Fredrikson Induction and Semantics in Dafny TA: Ryan Wagner Encoding the syntax of Imp Recall the abstract syntax of Imp: a AExp ::= n Z x Var a 1 + a 2 b BExp ::=
More information