Reachability Analysis Using Octagons Andrew N. Fisher and Chris J. - - PowerPoint PPT Presentation

reachability analysis using octagons
SMART_READER_LITE
LIVE PREVIEW

Reachability Analysis Using Octagons Andrew N. Fisher and Chris J. - - PowerPoint PPT Presentation

Reachability Analysis Using Octagons Andrew N. Fisher and Chris J. Myers Department of Electrical and Computer Engineering University of Utah FAC 2014 July 9, 2014 Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014 Digitally


slide-1
SLIDE 1

Reachability Analysis Using Octagons

Andrew N. Fisher and Chris J. Myers Department of Electrical and Computer Engineering University of Utah FAC 2014 July 9, 2014

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-2
SLIDE 2

Digitally Intensive Analog Circuits

Digitally intensive analog circuits attempt to replace analog components with digital ones whenever possible.

DLF DAC DPD TDC REFCLK VCO (LC)

  • ut

(synthesizable) Verilog Verilog (non−synthesizable)

Result is optimized power efficiency and performance as well as improved robustness to process variability. These circuits though further complicate the verification problem.

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-3
SLIDE 3

Simulation-Based Verification

Digital verification typically uses switch or RTL-level simulations. AMS verification uses detailed transistor-level (SPICE) simulations. SPICE simulation of a PLL can take weeks or even months. Long simulation time makes system-level simulation difficult. Functional bugs can be missed resulting in catastrophic failures.

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-4
SLIDE 4

Analog Verification

Sandipan Bhanot CEO of Knowlent If the digital designers did verification the way analog designers do verification, no chip would ever tape out. (DACezine, January 2008)

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-5
SLIDE 5

Model Checking

Model checking uses non-determinism and state exploration to formally verify designs over all possible behaviors. Has had tremendous success for verifying of both digital hardware and software systems (now routinely used at Intel, IBM, Microsoft, etc.). For AMS circuits, it is a promising mechanism to validate designs in the face of noise and uncertain parameters and initial conditions. AMS verification is complicated by the need to:

Construct abstract formal models of the AMS circuits. Specify formal properties that are to be verified. Represent continuous variables efficiently (voltages, currents, and time).

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-6
SLIDE 6

Model Checking

Model checking uses non-determinism and state exploration to formally verify designs over all possible behaviors. Has had tremendous success for verifying of both digital hardware and software systems (now routinely used at Intel, IBM, Microsoft, etc.). For AMS circuits, it is a promising mechanism to validate designs in the face of noise and uncertain parameters and initial conditions. AMS verification is complicated by the need to:

Construct abstract formal models of the AMS circuits. (FAC 2011) Specify formal properties that are to be verified. (FAC 2013) Represent continuous variables efficiently (voltages, currents, and time).

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-7
SLIDE 7

Zones

Used for formal verification of timed automata and time(d) Petri nets. Simple geometric polyhedra formed by the intersection of hyper-planes representing inequalities of the form y − x ≤ c. Implies polyhedra with only 0◦, 90◦, and positive 45◦ angles. For timed systems, all variables evolve at a rate of 1, and zone evolves along a positive 45◦ angle. Algorithms to restrict, project, and advance time are fast and simple. Can use Floyd’s all pairs shortest-path algorithm to construct a canonical maximally tight representation. Conveniently represented using a difference bound matrix (DBM).

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-8
SLIDE 8

Zones

4 3 2 1 1 2 3 5 4 y x

y − t0 ≤ My x − t0 ≤ Mx t0 − x ≤ −mx t0 − y ≤ −my y − x ≤ b1 x − y ≤ −b2   t0 x y t0 Mx My x −mx b1 y −my −b2  

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-9
SLIDE 9

Zones

4 3 2 1 1 2 3 5 4 y x

y − t0 ≤ 3 x − t0 ≤ 3 t0 − x ≤ 0 t0 − y ≤ 0 y − x ≤ 1 x − y ≤ 1   t0 x y t0 3 3 x 1 y 1  

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-10
SLIDE 10

Zone Warping

To verify AMS circuits, need variables that evolve at non-unity rates. Zones can be used with a variable substitution. Replace variable v with non-zero rate r with a variable v

r .

The new variable v

r evolves at a rate of 1.

Resultant polyhedra is no longer a zone. Warping creates the smallest zone that contains it.

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-11
SLIDE 11

Positive Zone Warping

x

y 4

7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-12
SLIDE 12

Positive Zone Warping

x

y 2

7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-13
SLIDE 13

Positive Zone Warping

x

y 2

7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-14
SLIDE 14

Negative Zone Warping

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-15
SLIDE 15

Negative Zone Warping

x −y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-16
SLIDE 16

Negative Zone Warping

x −y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-17
SLIDE 17

Negative Zone Warping: False Negative

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-18
SLIDE 18

Negative Zone Warping: False Negative

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-19
SLIDE 19

Negative Zone Warping: False Negative

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-20
SLIDE 20

Negative Zone Warping: False Negative

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-21
SLIDE 21

Negative Zone Warping: False Negative

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-22
SLIDE 22

Negative Zone Warping: False Negative

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-23
SLIDE 23

Negative Zone Warping: False Negative

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-24
SLIDE 24

Negative Zone Warping: False Negative

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-25
SLIDE 25

Negative Zone Warping: False Negative

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-26
SLIDE 26

Negative Zone Warping: False Negative

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-27
SLIDE 27

Negative Zone Warping: False Negative

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] fail t3 {∼ (y >= 7) ∧ (x >= 5)} x = [0, 1] < x := 0, y := 0 > p0 p2 [0] x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4 fail

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-28
SLIDE 28

Octagons

Extension of zones that allow negative 45◦ degree angles.

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4 Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-29
SLIDE 29

Octagon DBM

Can be represented using a DBM (Mine, 2001) and manipulated with efficient algorithms.

y b3 b4 b1 b2 x

x+ − x− ≤ 2Mx x− − x+ ≤ −2mx y+ − y− ≤ 2My y− − y− ≤ −2my     x+ x− y+ y− x+ −2mx x− 2Mx y+ −2my y− 2My    

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-30
SLIDE 30

Octagon DBM

Can be represented using a DBM (Mine, 2001) and manipulated with efficient algorithms.

y b3 b4 b1 b2 x

y+ − x+ ≤ b1 x− − y− ≤ b1 y− − x− ≤ −b2 x+ − y+ ≤ −b2 y+ − x− ≤ b3 x+ − y− ≤ b3 y− − x+ ≤ −b4 x− − y+ ≤ −b4     x+ x− y+ y− x+ −2mx b1 −b4 x− 2Mx b3 −b2 y+ −b2 −b4 −2my y− b3 b1 2My    

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-31
SLIDE 31

Reachability Analysis Using Octagons

Utilized for software checking, and efficient restriction, projection, and constraint tightening algorithms have been developed. New algorithms are needed to add new continuous variables, advance time, and warp the octagon.

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-32
SLIDE 32

Adding Variables to Octagons

Adding new continuous variables and clocks is simply a matter of re-interpreting the algorithms for zones in the language for octagons. When adding a continuous variable v with rate r, the maximum and minimum values for v are divided by r and added to the DBM (after multiplying by 2). Relational entries are set to infinity, indicating no relationship.

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-33
SLIDE 33

Octagon Time Advancement

Extend the octagon along the 45◦ lines. For zones, to advance time, simply set the upper bounds for all the variables to the maximum allowed value before an event occurs. For octagons, −45◦ line slicing the upper right hand corner has a limiting effect on the upper bounds of the two variables involved. Entries associated with inequalities y + x ≤ c must also be set to their maximum allowed value in relation to the maximums of x and y.

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4 x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-34
SLIDE 34

Octagon Warping

Again replace every variable v by v

r where r is the rate of v.

Replace resulting polyhedra with smallest octagon that contains it. Accomplished by using a few algebraic equations that determine where the new axis intercepts are in terms of the old intercept values.

1 2 3 5 6 7 4 y 7 6 5 4 3 2 1 8 x

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-35
SLIDE 35

Octagon Example

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-36
SLIDE 36

Octagon Example

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-37
SLIDE 37

Octagon Example

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-38
SLIDE 38

Octagon Example

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-39
SLIDE 39

Octagon Example

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-40
SLIDE 40

Octagon Example

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-41
SLIDE 41

Octagon Example

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-42
SLIDE 42

Octagon Example

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-43
SLIDE 43

Octagon Example

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

4 x y 7 6 5 4 3 2 1 1 2 3 5 6 7

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-44
SLIDE 44

Octagon Example

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-45
SLIDE 45

Comparison with Zones

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-46
SLIDE 46

Comparison with Zones

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-47
SLIDE 47

Comparison with Zones

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-48
SLIDE 48

Comparison with Zones

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-49
SLIDE 49

False Negatives

Octagons do not eliminate the possibility of false negatives even in the case where rates are only ±1. Time advancement also introduces a degree of over-approximation, related to the negative 45◦ lines. Advancement in three dimensions of one of these negative 45◦ line segments belongs to a plane of the form ax + by + cz = d. The bounding hyper-planes are of the form ±vi ± vj ≤ c and not able to capture this plane produced by advancing time.

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-50
SLIDE 50

False Negative Example

0.5 1 1.5 2 2.5 3 3.5 4 0.5 1 1.5 2 2.5 3 3.5 4 1 2 3 4 5 6 Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-51
SLIDE 51

False Negative Example

0.5 1 1.5 2 2.5 3 3.5 4 0.5 1 1.5 2 2.5 3 3.5 4 1 2 3 4 5 6 Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-52
SLIDE 52

LEMA: LPN Embedded Mixed-Signal Analyzer

Fisher et al., MWSCAS (2014) Petri Net (LPN) Simulation Engine Simulation Traces Model Checker Transistor Level Design SystemVerilog Model Assertion Pass/Fail RTL for Digital Components Pass or Fail + Error Trace SPICE Model Generator Verification Traditional Analog Circuit Kulkarni et al., VW−EDA (2011) Batchu, MS Thesis (2010) Little et al., IJFCS (2010) Kulkarni, MS Thesis (2013) (LAMP) Property Verification Kulkarni et al., FDL (2013) Fisher et al., LDMT (2014) Little, PhD (2008) Walter, PhD (2007) Walter et al., IEEE TCAD (2008) Little at al., IEEE TCAD (2011) Labeled Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-53
SLIDE 53

Acknowledgements

Satish Batchu (Qualcomm) Andrew Fisher (Utah) Kevin Jones (Aberdeen) Dhanashree Kulkarni (Intel) Scott Little (Intel) David Walter (Virginia State)

Supported by SRC Contracts 2002-TJ-1024, 2005-TJ-1357, 2008-TJ-1851, NSF Grant CCF-1117515, and by Intel Corporation.

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-54
SLIDE 54

Octagon DBM

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t0+ t0− x+ x− y+ y− t0+ 1 1 t0− 1 1 x+ 1 x− 1 1 2 2 1 y+ 1 y− 1 1 2 1 2        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-55
SLIDE 55

Octagon DBM

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t0+ t0− x+ x− y+ y− t0+ 1 1 t0− 4 1 1 x+ 1 x− 1 1 10 2 1 y+ 1 y− 1 1 2 1 14        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-56
SLIDE 56

Octagon DBM

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t0+ t0− x+ x− y+ y− t0+ 1 1 t0− 4 1 1 x+ 1 x− 1 1 10 ∞ 1 y+ 1 y− 1 1 ∞ 1 14        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-57
SLIDE 57

Octagon DBM

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t0+ t0− x+ x− y+ y− t0+ 1 1 t0− 4 1 1 x+ 1 x− 1 1 6 6 1 y+ 1 y− 1 1 6 1 6        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-58
SLIDE 58

Octagon DBM

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t0+ t0− x+ x− y+ y− t0+ 1 1 t0− 4 ∞ ∞ x+ 1 x− ∞ 1 6 6 1 y+ 1 y− ∞ 1 6 1 6        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-59
SLIDE 59

Octagon DBM

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t0+ t0− x+ x− y+ y− t0+ 1 1 t0− 4 5 5 x+ 1 x− 5 1 6 6 1 y+ 1 y− 5 1 6 1 6        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-60
SLIDE 60

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t1+ t1− x+ x− y+ y− t1+ 3 3 t1− 3 3 x+ 1 x− 3 3 6 1 6 y+ 3 3 6 1 6 y− 1        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-61
SLIDE 61

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t1+ t1− x+ x− y+ y− t1+ 3 3 t1− 2 3 3 x+ 1 x− 3 3 10 1 6 y+ 3 3 6 1 6 y− 1 14        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-62
SLIDE 62

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t1+ t1− x+ x− y+ y− t1+ 3 3 t1− 2 ∞ ∞ 3 x+ 1 x− ∞ 3 10 1 6 y+ 3 3 6 1 6 y− ∞ 1 14        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-63
SLIDE 63

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t1+ t1− x+ x− y+ y− t1+ 3 3 t1− 2 ∞ ∞ 3 x+ 1 x− ∞ 3 10 ∞ 6 y+ 3 3 6 1 6 y− ∞ ∞ 14        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-64
SLIDE 64

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t1+ t1− x+ x− y+ y− t1+ 3 3 t1− 2 ∞ ∞ 3 x+ 1 x− ∞ 3 10 2 6 y+ 3 3 6 1 6 y− ∞ 2 14        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-65
SLIDE 65

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] p0 x = [0, 1] p1 x′ = 1 y = [0, 1] y ′ = 1 p2 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t1+ t1− x+ x− y+ y− t1+ 3 3 t1− 2 5 2 3 x+ 1 x− 5 3 8 2 6 y+ 3 3 6 1 6 y− 2 2 2        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-66
SLIDE 66

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t2+ t2− x+ x− y+ y− t2+ 4 3 1 t2− 4 3 1 x+ 1 x− 4 4 8 6 2 y+ 1 1 2 2 y− 3 3 6 1 6        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-67
SLIDE 67

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t2+ t2− x+ x− y+ y− t2+ 4 3 1 t2− 2 ∞ ∞ 1 x+ 1 x− ∞ 4 10 6 2 y+ 1 1 2 2 y− ∞ 3 6 1 14        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-68
SLIDE 68

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t2+ t2− x+ x− y+ y− t2+ 4 3 1 t2− 2 ∞ ∞ 1 x+ 1 x− ∞ 4 10 ∞ 2 y+ 1 1 2 2 y− ∞ 3 ∞ 1 14        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-69
SLIDE 69

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t2+ t2− x+ x− y+ y− t2+ 4 3 1 t2− 2 ∞ ∞ 1 x+ 1 x− ∞ 4 10 8 2 y+ 1 1 2 2 y− ∞ 3 8 1 14        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-70
SLIDE 70

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t2+ t2− x+ x− y+ y− t2+ 4 3 1 t2− 2 6 5 1 x+ 1 x− 6 4 10 8 2 y+ 1 1 2 2 y− 5 3 8 1 8        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-71
SLIDE 71

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t3+ t3− x+ x− y+ y− t3+ 5 4 1 t3− 5 4 1 x+ 1 x− 5 5 10 8 2 y+ 1 1 2 2 y− 4 4 8 1 8        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-72
SLIDE 72

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

    x+ x− y+ y− x+ 1 x− 10 8 2 y+ 2 2 y− 8 1 8    

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-73
SLIDE 73

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

    x+ x− y+ y− x+ 1 x− 10 8 2 y+ 2 2 y− 8 1 14    

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-74
SLIDE 74

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

    x+ x− y+ y− x+ 1 x− 10 ∞ 2 y+ 2 2 y− ∞ 1 14    

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-75
SLIDE 75

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

    x+ x− y+ y− x+ 1 x− 10 11 2 y+ 2 2 y− 11 1 14    

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-76
SLIDE 76

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

4 x y 7 6 5 4 3 2 1 1 2 3 5 6 7

    x+ x− y+ y− x+ −10 1 x− 10 11 2 y+ 2 2 y− 11 1 14    

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-77
SLIDE 77

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

4 x y 7 6 5 4 3 2 1 1 2 3 5 6 7

    x+ x− y+ y− x+ −10 1 −8 x− 10 11 2 y+ 2 −8 2 y− 11 1 14    

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-78
SLIDE 78

Octagon DBM

{true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t4 {(y >= 7) ∧ (x >= 5)} [0] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > p0 x = [0, 1] p2 x′ = 1 y = [0, 1] y ′ = 1 p1 p2 t0

4 x y 7 6 5 4 3 2 1 1 2 3 5 6 7

        t3+ t3− x+ x− y+ y− t3+ 5 −5 6 −3 t3− 5 −5 6 −3 x+ −5 −5 −10 1 −8 x− 5 5 10 11 2 y+ −3 −3 2 −8 2 y− 3 3 11 1 14        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014

slide-79
SLIDE 79

Octagon DBM

p2 t0 {true} [0, 2] < y ′ := −1 > t1 {true} [0, 1] < y ′ := 1 > t2 {true} [0, 1] t3 {∼ (y >= 7) ∧ (x >= 5)} [0] < x := 0, y := 0 > t4 {(y >= 7) ∧ (x >= 5)} [0] x = [0, 1] p0 x′ = 1 y = [0, 1] y ′ = 1 p1 p2

x y 7 6 5 4 3 2 1 1 2 3 5 6 7 4

        t0+ t0− x+ x− y+ y− t0+ 1 1 t0− 1 1 x+ 1 x− 1 1 2 2 1 y+ 1 y− 1 1 2 1 2        

Fisher / Myers (U. of Utah) Octagons FAC 2014 / July 9, 2014