24
1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential Properties over- and under-approximations Abstraction for Mixed Properties 3-valued abstraction Overlapping Abstract Domains Belnap (4-valued) abstraction

1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

Embed Size (px)

Citation preview

Page 1: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

1

Abstraction (Cont’d) Defining an Abstract Domain

variable elimination, data abstraction, predicate abstraction

Abstraction for Universal/Existential Propertiesover- and under-approximations

Abstraction for Mixed Properties3-valued abstraction

Overlapping Abstract DomainsBelnap (4-valued) abstraction

Page 2: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

2

Recall: Defining an Abstract Domain

Abstraction : S→S’

S

S’

γ γ γ γγ

Concretization γ : S’→2S

Page 3: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

3

Abstract Kripke Structure Abstract interpretation of atomic propositions

I ’(a, p) = true iff forall s in (a), I (s, p) = trueI ’(a, p) = false iff forall s in (a), I (s, p) =

false

Abstract Transition Relation (2 choices)Over-Approximation (Existential)

Make a transition from an abstract state if at least one corresponding

concrete state has the transition.

Under-Approximation (Universal)

Make a transition from an abstract state if all the corresponding

concrete states have the transition.

Page 4: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

4

Which abstraction to use?

Property

TypeExpected

Result

Abstraction

to use

Universal

(ACTL, LTL)

True Over-

False Under-

Existential

(ECTL)

True Under-

False Over-

But what about mixed properties?!

Page 5: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

5

3-Valued Kleene LogicInformation Ordering

f t

true

false

unknown

t ⋀ ⊥ =

⊥ t ⋁⊥ =

t ¬t = f

¬⊥ =

Truth Ordering

f

t

Page 6: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

6

3-Valued Kripke Structures

p = tq = f

p = fq = f

p = tq = ⊥

t

f

Kripke structures extended to 3-valued logic

Propositions can beTrue, False, or Unknown

Transitionspossible: ⊥necessary and possible: timpossible: f

s0

s2

s1

⊥t

Page 7: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

7

3-Valued Abstraction

p

pq

t

f

⊥p

pq

over-approximation

under-approximation

p

pq

3-Valued Abstraction

Page 8: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

8

Example Revisited (3-Val Abstraction)

I

I

⊥t

t

tt

Page 9: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

9

Model-Checking with 3 Values

Usual semantics of temporal operators

BUT connectives ⋀ ⋁ ¬ are interpreted in 3-Valued Logic

t

f

(EX ¬p)(s0) = t(EX q)(s0) = ⊥(EX ¬p⋀q)(s0) = f

Examples

s0

s2

s1p

pq

(EX p)(s) = ⋁t R(s,t) ⋀ p(t)

Page 10: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

10

Preservation via 3-Valued Abstraction Let φ be a temporal formula (CTL) Let K’ be a 3-valued abstraction of K Preservation Theorem

Abstract MC Result Concrete Information

True K ⊨ φ

False K ⊨ ¬φ

Maybe K ⊨ φ or K ⊨ ¬φ

Preserves truth and falsity of arbitrary properties!

no informati

on

Page 11: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

11

Abstraction (Outline) Defining an Abstract Domain

variable elimination, data abstraction, predicate abstraction

Abstraction for Universal/Existential Propertiesover- and under-approximations

Abstraction for Mixed Properties3-valued abstraction

Overlapping Abstract DomainsBelnap (4-valued) abstraction

Page 12: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

12

Example: Coarse Abstract Domain

s0

s1

s2

pq

q s3a0 a1

Over-Approximation Under-Approximation

p?qa0 a1

p?q

a0 a1

AX (p ⋁ ¬p) is inconclusive

EX (q) is true

Goal: make AX conclusive as well, via domain refinement

Page 13: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

13

Example: Refined Abstract Domain

s0

s1

s2pq

q s3a0

Over-Approximation Under-Approximation

AX (p ⋁ ¬p) is true

EX (q) is inconclusive

a2

a3

pq

a0

a2

q a3

pq

a0

a2

q a3

Partitioned domain does not work!Need an overlapping abstract domain!!!

Page 14: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

14

Example: Overlapping Abstract Domain

s0

s1

s2

pq

q s3a0

Over-Approximation Under-Approximation

AX (p ⋁ ¬p) is true

EX (q) is true

a2

a3a1

pq

a0

a2

q a3

p?q

a1

pq

a0

a2

q a3

p?q a1

Page 15: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

15

Supporting Overlapping Abstract Domains Goal

as before, want to combine over- and under-approximations to support analysis of mixed properties

Problem3-valued logic is no longer sufficientneed to deal with 4 types of transitions

over-, under-, both over- and under-, and neither

i.e., under-approx is no longer a subset of over-approx

Solutionuse 4-valued Belnap logic

Page 16: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

16

Belnap LogicInformation Ordering

f t

true

false

unknown

inconsistent

t ⋀ ⊥ =

⊥ t ⋁⊥ =

t ¬t = f

¬⊥ =

Truth Ordering

⊤⊥

f

t

Page 17: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

17

Belnap Kripke Structures

f

⊥ ⊤

Kripke structures extended to Belnap logic

PropositionsTrue, False, or Unknown

Transitionsonly under-approximation: ⊤only over-approximation: ⊥both over- and under-: tneither: f

p = tq = f

p = fq = f

p = tq = ⊥

p = tq = t

t⊥

⊥ ⊤

Page 18: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

18

Belnap Kripke Structures

p

pq?

pq

t

f

⊥ ⊤p

pq

p

pq?

Over-approximation

Under-approximation

Page 19: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

19

Overview of Model Checking

Yes/No

Answer

Yes/No

Answer

SW/HW

artifact

SW/HW

artifact

Correctness

properties

Correctness

properties

Temporal

logic

Temporal

logicModel of

System

Model of

System

Model Extraction

Model Extraction TranslationTranslation

Model Checker

Model Checker

Correct?

[CDEG03]

Page 20: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

20

Yes/No

Answer

Yes/No

Answer

SW/HW

artifact

SW/HW

artifact

Correctness

properties

Correctness

properties

Temporal

logic

Temporal

logicModel of

System

Model of

System

Model Extraction

Model Extraction TranslationTranslation

Model Checker

Model Checker

MV-LogicMV-Logic

MV-Logic

Answer

MV-Logic

Answer

MV-Model Checker

MV-Model Checker

How correct?

[CDEG03]

Overview of MV-Model Checking

Page 21: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

21

Preservation via Belnap Abstraction Let φ be a temporal formula (CTL) Let K’ be a Belnap abstraction of K Preservation Theorem

Abstract MC Result Concrete Information

True K ⊨ φ

False K ⊨ ¬φ

⊥ K ⊨ φ or K ⊨ ¬φ

⊤ K ⊨ φ and K ⊨ ¬φ

Preserves truth and falsity of arbitrary properties!

Not possible for

a sound abstraction

Page 22: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

22

SummaryAbstraction is the key to scaling up

1. Choose an abstract domain

Variable elimination, data abstraction, predicate abstraction, …

2. Choose a type of abstraction

Over-, Under-, 3Val, Belnap

3. Build an abstract model ($$$$$)

4. Model-check the property on the abstract model

5. If the result is conclusive, STOP

6. Otherwise, pick a new abstract domain, REPEAT

Page 23: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

23

References [DGG97] D. Dams, R. Gerth, and O. Grumberg,

“Abstract Interpretation of Reactive Systems”. In TOPLAS, No. 19, Vol. 2, pp. 253-291, 1997.

[CDEG03] M. Chechik, B. Devereux, S. Easterbrook, and A. Gurfinkel, “Multi-Valued Symbolic Model-Checking”. In TOSEM, No. 4, Vol. 12, pp. 1-38, 2003.

Page 24: 1 Abstraction (Cont’d) Defining an Abstract Domain variable elimination, data abstraction, predicate abstraction Abstraction for Universal/Existential

24

AcknowledgementsThese slides are based on the tutorial “Model-

Checking: From Software to Hardware” given by Marsha Chechik and Arie Gurfinkel at Formal Methods 2006.