((a)) A a and c C ((c))

Slides:



Advertisements
Similar presentations
Summary of Martensite Creation: Box with Fixed Cylinder July 1, 2012.
Advertisements

Tutorial on Widening (and Narrowing) Hongseok Yang Seoul National University.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 13.
Chapter 7 Energy Energy and persistence conquer all things. -Benjamin Franklin.
Lecture 03 – Background + intro AI + dataflow and connection to AI Eran Yahav 1.
Lecture 04 – Numerical Abstractions Eran Yahav 1.
1 Basic abstract interpretation theory. 2 The general idea §a semantics l any definition style, from a denotational definition to a detailed interpreter.
K = K xx K xy K xz K yx K yy K yz K zx K zy K zz K xx, K yy, K zz are the principal components of K K is a tensor with 9 components.
Chapter 2 – Combinational Logic Circuits Part 1 – Gate Circuits and Boolean Equations Logic and Computer Design Fundamentals.
Analysis of Stress and Strain
A set of equations that describes the physical and/or chemical processes occurring in a system. Mathematical Model.
Abstract Interpretation Part I Mooly Sagiv Textbook: Chapter 4.
1 Systematic Domain Design Some Remarks. 2 Best (Conservative) interpretation abstract representation Set of states concretization Abstract semantics.
Unit 4 Review Solutions a 5 – 32a 2 4a 2 (3a 3 – 8) 2. a 2 b 2 + ab ab(ab + 1) 3. x(x – 2) + y(2 – x) x(x – 2) – y(x – 2) (x – 2)(x – y)
Lattice and Boolean Algebra
Reflexive -- First sentence of proof is: (1) Let x  Z (2) Let (x,x)  R. (3) Let (x,x)  I (4) Let x  R.
1 Program Analysis Mooly Sagiv Tel Aviv University Textbook: Principles of Program Analysis.
Gate Circuits and Boolean Equations BIL- 223 Logic Circuit Design Ege University Department of Computer Engineering.
Program Analysis and Verification Noam Rinetzky Lecture 10: Shape Analysis 1 Slides credit: Roman Manevich, Mooly Sagiv, Eran Yahav.
1 Iterative Program Analysis Abstract Interpretation Mooly Sagiv Tel Aviv University Textbook:
Program Analysis and Verification Spring 2014 Program Analysis and Verification Lecture 11: Abstract Interpretation III Roman Manevich Ben-Gurion University.
Program Analysis and Verification Spring 2015 Program Analysis and Verification Lecture 14: Numerical Abstractions Roman Manevich Ben-Gurion University.
Program Analysis and Verification Noam Rinetzky Lecture 6: Abstract Interpretation 1 Slides credit: Roman Manevich, Mooly Sagiv, Eran Yahav.
Copyright © 2011 Pearson Education, Inc. Publishing as Prentice Hall. 3.5 Multiplying Polynomials.
Program Analysis and Verification Spring 2014 Program Analysis and Verification Lecture 14: Numerical Abstractions Roman Manevich Ben-Gurion University.
Vector Addition Cummutative Law A B C B A C A + B = C B + A = C A + B = B + A.
Functions of Several Variables Copyright © Cengage Learning. All rights reserved.
Chapter 2: Boolean Algebra and Logic Gates. F 1 = XY’ + X’Z XYZX’Y’XY’X’ZF1F
Chapter 7 Energy Energy and persistence conquer all things. -Benjamin Franklin.
Program Analysis and Verification Spring 2015 Program Analysis and Verification Lecture 9: Abstract Interpretation I Roman Manevich Ben-Gurion University.
5x 4 – 405 = 5(x 4 – 81) = 5(x 2 + 9)(x 2 – 9) = 5(x 2 + 9)(x + 3)(x – 3) by D. Fisher.
Section 4Chapter 5. 1 Copyright © 2012, 2008, 2004 Pearson Education, Inc. Objectives Multiplying Polynomials Multiply terms. Multiply any two.
Linear optical properties of dielectrics
Program Analysis and Verification Spring 2015 Program Analysis and Verification Lecture 12: Abstract Interpretation IV Roman Manevich Ben-Gurion University.
1 Lect # 2 Boolean Algebra and Logic Gates Boolean algebra defines rules for manipulating symbolic binary logic expressions. –a symbolic binary logic expression.
Program Analysis and Verification Spring 2015 Program Analysis and Verification Lecture 13: Abstract Interpretation V Roman Manevich Ben-Gurion University.
Lesson 3 Formalizing and Implementing Pure Lambda Calculus 1/15/02 Chapters 5.3, 6, 7.
Program Analysis and Verification Spring 2014 Program Analysis and Verification Lecture 12: Abstract Interpretation IV Roman Manevich Ben-Gurion University.
Program Analysis and Verification
Program Analysis and Verification
1 Objectives State the inequalities that relate angles and lengths of sides in a triangle State the possible lengths of three sides of a triangle.
1 Iterative Program Analysis Abstract Interpretation Mooly Sagiv Tel Aviv University Textbook:
Program Analysis and Verification Noam Rinetzky Lecture 8: Abstract Interpretation 1 Slides credit: Roman Manevich, Mooly Sagiv, Eran Yahav.
Program Analysis and Verification
1 Abstract interpretation Giorgio Levi Dipartimento di Informatica, Università di Pisa
CHAPTER 2 Boolean algebra and Logic gates
Counterexample-Guided Abstraction Refinement By Edmund Clarke, Orna Grumberg, Somesh Jha, Yuan Lu, and Helmut Veith Presented by Yunho Kim Provable Software.
Program Analysis and Verification Spring 2014 Program Analysis and Verification Lecture 15: Alias Analysis Roman Manevich Ben-Gurion University.
Spring 2017 Program Analysis and Verification
Modal, Dynamic and Temporal Logics
Spring 2016 Program Analysis and Verification
Textbook: Principles of Program Analysis
Spring 2016 Program Analysis and Verification
Program Analysis and Verification
Spring 2016 Program Analysis and Verification
A Brief Review of Factoring
Semantic Minimization of 3-Valued Propositional Formulas
Combining Abstract Interpreters
Program Analysis and Verification
Symbolic Implementation of the Best Transformer
Iterative Program Analysis Abstract Interpretation
Boolean Algebra.
Program Analysis and Verification
Parametric Shape Analysis via 3-Valued Logic
Program Analysis and Verification
Program Analysis and Verification
Software analysis SET seminar.
Program Analysis and Verification
. Components of  in Rectangular and Cylindrical Coordinates
Program Analysis and Verification
Presentation transcript:

((a)) A a and c C ((c)) Galois Connection Given two complete lattices C = (DC, C, C, C, C, C) – concrete domain A = (DA, A, A, A, A, A) – abstract domain A Galois Connection (GC) is quadruple (C, , , A) that relates C and A via the monotone functions The abstraction function  : DC  DA The concretization function  : DA  DC For every concrete element cDC and abstract element aDA 1) ((a)) A a and c C ((c)) (c) A a iff c C (a) 2)

Abstracting (disjunctive) sets It is usually convenient to first define the abstraction of single elements (s) = ({s}) Then lift the abstraction to sets of elements (X) = A {(s) | sX}

Partial/full reduction The operator    is called a semantic reduction (or full reduction) since ((a)) means the same a a but it is a reduced – more precise version of a An operator reduce : DA  DA is a partial reduction if reduce(a) A a and (a)=(reduce(a))

Galois Insertion a: ((a))=a How can we obtain a Galois Insertion from a Galois Connection? C A 2 … [x6, y6, z6] [x5, y5, z5] [x4, y4, z4] … All elements are reduced   1 x=x, y=y, z=z, x=y, y=x, x=z, z=x, y=z, z=y

The case of symbolic domains An important class of abstract domains are symbolic domains – domains of formulas C = (2State, , , , , State) A = (DA, A, A, A, A, A) If DA is a set of formulas then the abstraction of a state is defined as () = ({}) = A{ |   } the least formula from DA that s satisfies The abstraction of a set of states is (X) = A {() | sX} The concretization is () = { |    } = models()

Sound abstract transformer Given two lattices C = (DC, C, C, C, C, C) A = (DA, A, A, A, A, A) and GCC,A=(C, , , A) with A concrete transformer f : DC DC an abstract transformer f# : DA DA We say that f# is a sound transformer (w.r.t. f) if c: f(c)=c’  (f#(c))  (c’) 1) 2) a: f#(a)=a’  f((a))  (a’)

Best (induced) transformer f#(a)= (f((a))) C A 4 f f# 3 1 2 Problem:  incomputable directly

Formalize Constant Propagation Define the abstract domain Define a Galois Connection Is it a Galois Insertion? Define a semantic reduction Define sound abstract transformers for x := c x := y + z