Satisfiability Modulo Transcendental Functions via Incremental - - PowerPoint PPT Presentation

satisfiability modulo transcendental functions via
SMART_READER_LITE
LIVE PREVIEW

Satisfiability Modulo Transcendental Functions via Incremental - - PowerPoint PPT Presentation

Satisfiability Modulo Transcendental Functions via Incremental Linearization Alberto Griggio Fondazione Bruno Kessler, Trento, Italy Joint work with A. Irfan, A. Cimatti, M. Roveri, R. Sebastiani Executive Summary Main idea Abstract


slide-1
SLIDE 1

Satisfiability Modulo Transcendental Functions via Incremental Linearization

Alberto Griggio

Fondazione Bruno Kessler, Trento, Italy

Joint work with A. Irfan, A. Cimatti, M. Roveri, R. Sebastiani

slide-2
SLIDE 2

Executive Summary

 Main idea

 Abstract transcendental functions with uninterpreted functions  Incrementally add upper- and lower- bound linear lemmas  Tangent and secant lines  Added to refine spurious models

 Challenges

 Irrational values: transcendental functions give irrational outputs

to (most) rational inputs

 Linearization requires calculation of slope at arbitrary point, which

is not straightforward

 Handling periodicity (of trigonometric functions)  Detecting SAT

slide-3
SLIDE 3

Some Math Background

 Transcendental function : doesn’t satisfy a polynomial equation

 We assume to be continuous and (n-times) differentiable

 Tangent line to at point :  Secant line to between and :  Concavity: sign of the second derivative  Taylor theorem:

slide-4
SLIDE 4

Main Algorithm

precision initial abstraction

return UNSAT return SAT

slide-5
SLIDE 5

Initial Abstraction

 Replace every occurrence of a transcendental function

with a corresponding uninterpreted function

 Add some basic lemmas about the behaviour of the function

 E.g. for exponential

slide-6
SLIDE 6

Spuriousness Check

 Check that the model is consistent wrt

 Intuitively, check

 Problem: is typically irrational

 Can’t check precisely

 Solution: check whether is close enough to

 use Taylor’s theorem to compute polynomial bounds  Depend on the current precision  Model is definitely spurious if

  • r
slide-7
SLIDE 7

Spuriousness Check and Refinement

while true: e := 10-precision L := {}

slide-8
SLIDE 8

Spuriousness Check and Refinement

while true: e := 10-precision L := {} for all tf(x) in : c := Pl(x), Pu(x) := poly-approx(tf(x),c,e) if or : L := L + get-lemmas-point(tf(x), ,Pl(x),Pu(x))

slide-9
SLIDE 9

Spuriousness Check and Refinement

while true: e := 10-precision L := {} for all tf(x) in : c := Pl(x), Pu(x) := poly-approx(tf(x),c,e) if or : L := L + get-lemmas-point(tf(x), ,Pl(x),Pu(x)) if L is empty: if check-sat( , ): return true else: precision += 1 else: return false, L

slide-10
SLIDE 10

Refinement via Linearization – Basic Idea

 Use upper and lower polynomials for linearization  If the concavity of the function is negative (positive):

 Tangent Refinement: Tangent Line to the upper (lower)

polynomial gives upper (lower) bound

 Secant Refinement: Secant Line to the lower (upper) polynomial

gives lower (upper) bound

slide-11
SLIDE 11

Refinement via Linearization – Basic Idea

 Use upper and lower polynomials for linearization  If the concavity of the function is negative (positive):

 Tangent Refinement: Tangent Line to the upper (lower)

polynomial gives upper (lower) bound

 Secant Refinement: Secant Line to the lower (upper) polynomial

gives lower (upper) bound

Spurious Point

slide-12
SLIDE 12

Refinement via Linearization – Basic Idea

 Use upper and lower polynomials for linearization  If the concavity of the function is negative (positive):

 Tangent Refinement: Tangent Line to the upper (lower)

polynomial gives upper (lower) bound

 Secant Refinement: Secant Line to the lower (upper) polynomial

gives lower (upper) bound

Spurious Point Tangent Refinement

slide-13
SLIDE 13

Refinement via Linearization – Basic Idea

 Use upper and lower polynomials for linearization  If the concavity of the function is negative (positive):

 Tangent Refinement: Tangent Line to the upper (lower)

polynomial gives upper (lower) bound

 Secant Refinement: Secant Line to the lower (upper) polynomial

gives lower (upper) bound

Spurious Point Tangent Refinement Precision

slide-14
SLIDE 14

Refinement via Linearization – Basic Idea

 Use upper and lower polynomials for linearization  If the concavity of the function is negative (positive):

 Tangent Refinement: Tangent Line to the upper (lower)

polynomial gives upper (lower) bound

 Secant Refinement: Secant Line to the lower (upper) polynomial

gives lower (upper) bound

Spurious Point Tangent Refinement Precision The concavity of the lower and upper polynomials should be equal to the concavity of the function in the interval of interest

slide-15
SLIDE 15

Refinement: Exponential Function

 Using Taylor’s theorem:  Case x = 0:

 Lower Polynomial:  Upper Polynomial:

 Case x < 0:

 Lower Polynomial: when n is odd  Upper Polynomial: when n is even

 Case x > 0:

 Lower Polynomial:  Upper Polynomial:

slide-16
SLIDE 16

Sin Function

 We introduce a symbolic variable with initial rational bounds  Reasoning is split depending on two periods:

 Base Period:  Extended Period: when not in the base period

 For each sin(x), new application sin(yx)

 yx fresh (called a base variable)  The domain of yx is in the base period  sin(x) and sin(yx) are equal in the base period

slide-17
SLIDE 17

Sin Function

 Tangent and secant refinement only with base variables  Concavity check in the base period is easy

 Case x > 0: concavity is negative  Case x < 0: concavity is positive

 Using Taylor’s theorem and current precision

 Lower Polynomial:  Upper Polynomial:

slide-18
SLIDE 18

Sin Function – Extended periods

 Shift to the base period, and compare with  Shift calculation  If the values differ, we perform shift refinement

 Relate the extended period with the base period

(after appropriate shift)

 Note that the shift is symbolic in  Ensure soundness

slide-19
SLIDE 19

Check for SAT

 We know

so, is a candidate solution

 Sufficient condition for sat:

validity of Replace ’s with fresh vars and check validity of the first-order formula

slide-20
SLIDE 20

Implementation and Experiments

 887 BMC Benchmarks (also

scaled)

 Hand-crafted benchmarks  Discretized Hybrid System

benchmarks

 HyComp benchmarks  iSAT benchmarks  HyST benchmarks  HARE benchmarks

 681 MetiTarski Benchmarks

(also scaled)

 944 dReal Benchmarks

 Tools  MathSAT  MetiTarski  iSAT3  dReal  Prototype Implementation in MathSAT + PySMT

slide-21
SLIDE 21

Results

slide-22
SLIDE 22

Results

slide-23
SLIDE 23

Thank You

slide-24
SLIDE 24