Splitting the Control Flow with Boolean Flags

Size: px
Start display at page:

Download "Splitting the Control Flow with Boolean Flags"

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 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 information

InterprocStack analyzer for recursive programs with finite-type and numerical variables

InterprocStack 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 information

Ranking Functions. Linear-Constraint Loops

Ranking 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 information

The Apron Library. Bertrand Jeannet and Antoine Miné. CAV 09 conference 02/07/2009 INRIA, CNRS/ENS

The 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 information

Embedded Software Verification Challenges and Solutions. Static Program Analysis

Embedded 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 information

Convex Geometry arising in Optimization

Convex 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 information

Combinatorial Geometry & Topology arising in Game Theory and Optimization

Combinatorial 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 information

C&O 355 Lecture 16. N. Harvey

C&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 information

Interval Polyhedra: An Abstract Domain to Infer Interval Linear Relationships

Interval 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 information

arxiv: v1 [math.co] 15 Dec 2009

arxiv: 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 information

Sendmail crackaddr - Static Analysis strikes back

Sendmail 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 information

Week 7 Convex Hulls in 3D

Week 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 information

Integer Programming Theory

Integer 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 information

Lecture 15: The subspace topology, Closed sets

Lecture 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 information

2017 SOLUTIONS (PRELIMINARY VERSION)

2017 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 information

ACTUALLY DOING IT : an Introduction to Polyhedral Computation

ACTUALLY 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 information

MVE165/MMG630, Applied Optimization Lecture 8 Integer linear programming algorithms. Ann-Brith Strömberg

MVE165/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 information

Stable sets, corner polyhedra and the Chvátal closure

Stable 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 information

Line Arrangement. Chapter 6

Line 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 information

Chapter 4 Concepts from Geometry

Chapter 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 information

COS 320. Compiling Techniques

COS 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 information

The Apron Library. Antoine Miné. CEA Seminar December the 10th, CNRS, École normale supérieure

The 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 information

Pierce Ch. 3, 8, 11, 15. Type Systems

Pierce 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 information

Lecture 4: Rational IPs, Polyhedron, Decomposition Theorem

Lecture 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 information

Convex Hulls in Three Dimensions. Polyhedra

Convex 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 information

Linear programming and duality theory

Linear 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 information

Widening Polyhedra with Landmarks

Widening 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 information

Value-Range Analysis of C Programs

Value-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 information

Cuts 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 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 information

Applied Integer Programming

Applied 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 information

Lecture 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. 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 information

Static Program Analysis Part 1 the TIP language

Static 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 information

In this chapter we introduce some of the basic concepts that will be useful for the study of integer programming problems.

In 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 information

CS599: 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 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 information

1 Inference for Boolean theories

1 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 information

Relational Abstract Domains for the Detection of Floating-Point Run-Time Errors

Relational 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 information

Java byte code verification

Java 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 information

The Two Variable Per Inequality Abstract Domain

The 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 information

Lecture 21: Other Reductions Steven Skiena

Lecture 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 information

Verification of Parameterized Concurrent Programs By Modular Reasoning about Data and Control

Verification 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 information

Planar Graphs. 1 Graphs and maps. 1.1 Planarity and duality

Planar 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

[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 information

Advanced Operations Research Techniques IE316. Quiz 1 Review. Dr. Ted Ralphs

Advanced 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 information

COMPUTATIONAL GEOMETRY

COMPUTATIONAL 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 information

Conic Duality. yyye

Conic 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 information

Geometric Modeling Mortenson Chapter 11. Complex Model Construction

Geometric 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 information

Introduction to CBMC: Part 1

Introduction 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 information

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.

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. 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 information

Fast Algorithms for Octagon Abstract Domain

Fast 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 information

FINITE DISJUNCTIVE PROGRAMMING CHARACTERIZATIONS FOR GENERAL MIXED-INTEGER LINEAR PROGRAMS

FINITE 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 information

Split-Cuts and the Stable Set Polytope of Quasi-Line Graphs

Split-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 information

Matching and Planarity

Matching 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 information

NP-complete Reductions

NP-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 information

Discrete Optimization. Lecture Notes 2

Discrete 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 information

Math 414 Lecture 2 Everyone have a laptop?

Math 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 information

COMP331/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) 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 information

Introduction to Mathematical Programming IE496. Final Review. Dr. Ted Ralphs

Introduction 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 information

Integer Programming as Projection

Integer 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 information

maximize c, x subject to Ax b,

maximize 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 information

Math 5593 Linear Programming Lecture Notes

Math 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 information

Verasco: a Formally Verified C Static Analyzer

Verasco: 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 information

Static Analysis and Bugfinding

Static 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 information

Type Checking. Outline. General properties of type systems. Types in programming languages. Notation for type rules.

Type 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

[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 information

MAXIMAL FLOW THROUGH A NETWORK

MAXIMAL 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 information

Stable sets, corner polyhedra and the Chvátal closure

Stable 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 information

Outline. General properties of type systems. Types in programming languages. Notation for type rules. Common type rules. Logical rules of inference

Outline. 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 information

Convex Optimization CMU-10725

Convex 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 information

The Low-Level Bounded Model Checker LLBMC

The 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 information

THREE LECTURES ON BASIC TOPOLOGY. 1. Basic notions.

THREE 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 information

Simply-Typed Lambda Calculus

Simply-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 information

CSCI 2212: Intermediate Programming / C Review, Chapters 10 and 11

CSCI 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 information

Lecture 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 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 information

CSE 307: Principles of Programming Languages

CSE 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 information

Integer Programming Chapter 9

Integer 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 information

Chapter 12 and 11.1 Planar graphs, regular polyhedra, and graph colorings

Chapter 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 information

Convex Hull Representation Conversion (cddlib, lrslib)

Convex 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 information

Experimental Evaluation of Numerical Domains for Inferring Ranges

Experimental 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 information

CS671 Parallel Programming in the Many-Core Era

CS671 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 information

arxiv: v1 [cs.pl] 1 Dec 2016

arxiv: 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 information

FACES OF CONVEX SETS

FACES 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 information

CMSC 330: Organization of Programming Languages. Formal Semantics of a Prog. Lang. Specifying Syntax, Semantics

CMSC 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 information

State of Practice. Automatic Verification of Embedded Control Software with ASTRÉE and beyond

State 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 information

POLYHEDRAL GEOMETRY. Convex functions and sets. Mathematical Programming Niels Lauritzen Recall that a subset C R n is convex if

POLYHEDRAL 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 information

Building a specialized static analyzer

Building 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 information

SOFTWARE QUALITY OBJECTIVES FOR SOURCE CODE

SOFTWARE 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 information

Lecture 6: Faces, Facets

Lecture 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 information

Some notes about Event-B and Rodin

Some 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 information

The Design of Core C++ (Notes)

The 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 information

Question. Why is the third shape not convex?

Question. 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 information

Integer Programming ISE 418. Lecture 7. Dr. Ted Ralphs

Integer 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 information

Figure 2.1: An example of a convex set and a nonconvex one.

Figure 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 information

LECTURE 10 LECTURE OUTLINE

LECTURE 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 information

Some Advanced Topics in Linear Programming

Some 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 information

Lecture Compiler Middle-End

Lecture 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 information

Principles of Programming Languages

Principles 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 information

LECTURE 18 LECTURE OUTLINE

LECTURE 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 information

Polar Duality and Farkas Lemma

Polar 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 information

3.7 Denotational Semantics

3.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 information

Induction and Semantics in Dafny

Induction 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