boolean algebra with presburger arithmetic

40
Lavdrim Selimi Winter 2013 Boolean Algebra with Presburger Arithmetic

Upload: trinhthuan

Post on 04-Jan-2017

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Boolean Algebra with Presburger Arithmetic

Lavdrim Selimi

Winter 2013

Boolean Algebra with Presburger Arithmetic

Page 2: Boolean Algebra with Presburger Arithmetic

Introduction

1

Define BAPA

Explain the decision procedure and quantifier elimination for the BAPA logic

NP completeness of the QFBAPA

Page 3: Boolean Algebra with Presburger Arithmetic

Define BAPA

2

BA – a variant of ordinary algebra

– instead of the usual algebra of numbers, BA is the algebra of truth values (0 and 1) or equivalently of subsets of a given set

PA – first order theory of natural numbers

– contains only addition and equality operations

– is a decidable theory

Page 4: Boolean Algebra with Presburger Arithmetic

Define BAPA

3

BAPA combines:

1. boolean algebras of sets of uninterpreted integers

2. Presburger Arithmetic operations

It can express the relationship between int vars and cardinalities of unbounded finite sets and verification of data structure consistency properties.

Was found to be of interest in program verification and constraint DB (ex. Revesz 2004)

Page 5: Boolean Algebra with Presburger Arithmetic

Define BAPA

4

BAPA formulas with quantifier alternations arise when

- verifying programs with annotations containing quantifiers

- Proving simulation relation conditions for refinement and equivalence of program fragments

BAPA constraints can be used for proving the termination of programs that manipulate data structures

Page 6: Boolean Algebra with Presburger Arithmetic

Contributions

5

1. BAPA constraints can be used for prog. Analysis and verification by expressing:

DS invariants and the correctness of procedures with respect to their specification

Simulation relation between prog. Fragments

Termination conditions for programs that manipulate DS

2. Presenting an alg. α that translates BAPA sentences into PA sentences

3. Analyze the alg. α and show that its complexity matches the lower bound for PA and is therefore optimal

Page 7: Boolean Algebra with Presburger Arithmetic

First–Order theory of BAPA

6

Our initial motivation for BAPA was the use of BA to reason about data structures in terms of sets.

Page 8: Boolean Algebra with Presburger Arithmetic

First–Order theory of BAPA

7

BA language allows cardinality constraints of the form |A| = K, where K constant integer

Such constant cardinality constraints are useful and enable quantifier elimination for the resulting language

But not constraints such as |A| = |B|

Also cannot represent constraints on relationships between sizes of sets and integer variables

Page 9: Boolean Algebra with Presburger Arithmetic

First–Order theory of BAPA

8

If we consider the equicardinality A ~ B that holds iff |A| = |B|, and consider BA extended with the relation

A ~ B

Define the relation:

plus(A, B, C) ⇔ (|A|+|B|=|C|)

by the formula:

∃x1. ∃x2. x1 ∩ x2 = ∅ ˄ A ~ x1 ˄ B ~ x2 ˄ x1∪ x2 = C

Page 10: Boolean Algebra with Presburger Arithmetic

First–Order theory of BAPA

9

The relation plus(A, B, C) allows us to:

Express addition using arbitrary sets as representatives for

natural numbers

∅ can represent the natural number 0 and

Any singleton set can represent the natural number 1

Therefore a natural closure under definable operations leads to our formulation of the language BAPA which contains both sets and integers.

Page 11: Boolean Algebra with Presburger Arithmetic

First–Order theory of BAPA

10

In the BAPA language we distinguish two kinds of quantifiers; over sets and over integers

Page 12: Boolean Algebra with Presburger Arithmetic

Decision procedure and quantifier elimination

11

The algorithm α which

Decides the validity of BAPA sentences

Reduces a BAPA sentence to an equivalent PA sentence with the same number of quantifier alternations and an exponential increase in the total size of the formula

Page 13: Boolean Algebra with Presburger Arithmetic

Algorithm procedures

12

This algorithm describes the steps to transform a BAPA sentence F0 into a PA sentence

First step: Put F0 Into Prenex form

Example:

∃A. ∃B. |A| = |B| ˄ A ∪ B = C ˄ |A ∩ B| = ∅

Page 14: Boolean Algebra with Presburger Arithmetic

Algorithm procedures

13

The next step: seperate BA from PA by replacing each b1 = b2 formula with b1 ⊆ b2 ˄ b2 ⊆ b1 and every b1 ⊆ b2 with |b1 ∩ b2

c|= 0

∃A. ∃B. |A| = |B| ˄ |(A ∪ B) ∩ Cc| = 0 ˄ |C ∩ (A ∪ B)c| = 0 ˄ |A ∩ B| = 0

Page 15: Boolean Algebra with Presburger Arithmetic

Algorithm procedures

14

Next step: write each set expression as a union of cubes (regions in the Venn Diagram)- -

and for each Si introduce a new variable li

The resulting formula will be of the form:

Page 16: Boolean Algebra with Presburger Arithmetic

Algorithm procedures

15

In our example:

|A| = |S1|+|S2|+|S4|+|S5|

|B| = |S2|+|S3|+|S5|+|S6|

|(A ∪ B) ∩ Cc| = |S1|+ |S2| + |S3|

|C ∩ (A ∪ B)c| = |S7| + |S8|

|A ∩ B| = |S2|+| S5|

Page 17: Boolean Algebra with Presburger Arithmetic

Algorithm procedures

16

|A| = |B| => l1+ l2+ l4+ l5 = l2+ l3+ l5+ l6 => l1+ l4 = l3+ l6 |(A ∪ B) ∩ Cc| = l1+ l2+ l3 = 0 => l1= l2= l3 = 0 |C ∩ (A ∪ B)c| = l7 + l8 = 0 => l7 = l8 = 0 |A ∩ B| = l2+ l5= 0 => l2= l5= 0

Page 18: Boolean Algebra with Presburger Arithmetic

Algorithm procedures

17

l1 = |A ∩ Bc ∩ Cc|

l2 = |A ∩ B ∩ Cc|

l3 = |Ac ∩ B ∩ Cc|

l4 = |A ∩ Bc ∩ C|

l5 = |A ∩ B ∩ C|

l6 = |Ac ∩ B ∩ C|

l7 = |Ac ∩ Bc ∩ C|

l8 = |Ac ∩ Bc ∩ Cc|

Page 19: Boolean Algebra with Presburger Arithmetic

Algorithm procedures

18

∃A. ∃ B. ∃ l1 . ∃ l2 . ∃ l3 . ∃ l4 . ∃ l5 . ∃ l6 . ∃ l7 . ∃ l8

l1 = |A ∩ Bc ∩ Cc|

˄ l2 = |A ∩ B ∩ Cc|

˄ l3 = |Ac ∩ B ∩ Cc|

˄ l4 = |A ∩ Bc ∩ C|

˄ l5 = |A ∩ B ∩ C|

˄ l6 = |Ac ∩ B ∩ C|

˄ l7 = |Ac ∩ Bc ∩ C|

˄ l8 = |Ac ∩ Bc ∩ Cc|

˄ l1+ l4 = l3+ l6 ˄ l1= l2= l3 = 0 ˄ l7 = l8 = 0 ˄ l2= l5= 0

Page 20: Boolean Algebra with Presburger Arithmetic

Algorithm procedures

19

Since: l1= l2= l3 = 0 ; l7 = l8 = 0 and l2= l5= 0

We simplify our formula to: ∃A. ∃ B. ∃ l4 . ∃ l6 . l1 = |A ∩ Bc ∩ Cc| ˄ l2 = |A ∩ B ∩ Cc| ˄ l3 = |Ac ∩ B ∩ Cc| ˄ l4 = |A ∩ Bc ∩ C| ˄ l5 = |A ∩ B ∩ C| ˄ l6 = |Ac ∩ B ∩ C| ˄ l7 = |Ac ∩ Bc ∩ C| ˄ l8 = |Ac ∩ Bc ∩ Cc| ˄ l4 = l6

Page 21: Boolean Algebra with Presburger Arithmetic

Algorithm procedures Removing quantifiers

20

Consider first the case ∃k . Because k does not occur in , simply move the existential quantifier to Gr and let Gr+1 = ∃k.Gr , which completes the step

Case ∀k , it suffices to let Gr+1 = ∀k.Gr ,

again because k does not occur in

Page 22: Boolean Algebra with Presburger Arithmetic

Algorithm procedures Removing set quantifiers

21

To remove ∃y :

LEMMA 1: Let b1, . . . , bn be finite disjoint sets, and l1, . . . , ln, k1, . . . , kn be natural numbers. Then the following two statements are equivalent:

Page 23: Boolean Algebra with Presburger Arithmetic

Algorithm procedures Removing set quantifiers

22

To remove ∃ B we have to consider following cases:

A ∩ C A ∩ Cc Ac ∩ C Ac ∩ Cc

Regarding the statements (1) and (2) of the previous Lemma:

|A ∩ C| = |A ∩ Bc ∩ C| ˄ |A ∩ B ∩ C| = l4 + l5

|A ∩ Cc| = |A ∩ Bc ∩ Cc| ˄ |A ∩ B ∩ Cc| = l1 + l2

|Ac ∩ C| = |Ac ∩ B ∩ C| ˄ |Ac ∩ Bc ∩ C| = l6 + l7

|Ac ∩ Cc|= |Ac ∩ B ∩ Cc| ˄ |Ac ∩ Bc ∩ Cc| = l3 + l8

Page 24: Boolean Algebra with Presburger Arithmetic

Algorithm procedures Removing set quantifiers

23

After removing ∃B our example takes this form:

∃A. ∃ l4 . ∃ l6 . |A ∩ C| = l4

˄ |A ∩ Cc| = 0

˄ |Ac ∩ C| = l6

˄ |Ac ∩ Cc| = 0

˄ l4 = l6

Page 25: Boolean Algebra with Presburger Arithmetic

Algorithm procedures Removing set quantifiers

24

To remove ∃A we consider the following two cases:

C and Cc

Again regarding to Lemma1:

|C| = |A ∩ C| ˄ |Ac ∩ C| = l4 + l6

|Cc|= |A ∩ Cc| ˄ |Ac ∩ Cc| = 0

We achieve the final step providing the PA formula:

∃ l4 . ∃ l6 . |C| = l4 + l6

|Cc|= 0

˄ l4 = l6

Page 26: Boolean Algebra with Presburger Arithmetic

Algorithm procedures Removing set quantifiers

25

In the cases when we have only one set variable

y and its negation yc we can write |y| and | yc| as

|1 ∩ y| and |1 ∩ yc| and apply the algorithm one more time

Finally we obtain a formula of the form :

which is the last step and the algorithm terminates

Page 27: Boolean Algebra with Presburger Arithmetic

Algorithm procedures Removing set quantifiers

26

Case ∀y:

is equivalent to

because existential quantifiers over li together with the conjuncts |Si| = li act as definitions for li

So by expressing ∀y as ∃y we show that elimination of ∀y is analogous to elimination of ∃k

Page 28: Boolean Algebra with Presburger Arithmetic

27

1) arbitrary BA expressions denoting sets

2) arbitrary quantifier-free PA expressions

3) cardinality operator

The constant MAXC denotes the size of the universal set, so |1| = MAXC.

Page 29: Boolean Algebra with Presburger Arithmetic

28

To be NP – complete:

NP – hard (QFBAPA is since it has propositional operators on formulas)

NP membership (the challenge)

QFPA formula is in NP because it has a small model property implying that satisfiable formulas have solutions whose binary representation is polynomial

Page 30: Boolean Algebra with Presburger Arithmetic

29

We show that:

It is not necessary to generate all Venn region variables (drop them which are empty)

Instead of using exponentially many Venn region cardinality vars to encode sets, we can use polinomially many generic variables

New QFPA formula is equisatisfiable with the original one

Page 31: Boolean Algebra with Presburger Arithmetic

30

Starting with an example

From a QFBAPA formula construct a polynomially large QFPA formula which is equisatisfiable with the original one

Again separate BA from PA by replacements:

b1 = b2 ⇒ b1 ⊆ b2 ˄ b2 ⊆ b1

and each |b1 ∩ b2c|= 0

ex: |A| = |B| ˄ |A ∩ B| = ∅

Page 32: Boolean Algebra with Presburger Arithmetic

31

G ˄ F where : G – a quantifier – free PA formula

F – of the form

|A| = |S1|+|S2|

|B| = |S2|+|S3|

|A ∩ B| = |S2|

Page 33: Boolean Algebra with Presburger Arithmetic

32

k1 = k2 ˄ |A| = k1

k3 = 0 |B| = k2

|A ∩ B| = k3

for β = (p1, … , pe)

where pi ∊ {0, 1} let [bi]β ∊ {0, 1}

express each |bi| = ∑ β⊨bi |Sβ |

and for each β ∊ {0, 1}e introduce a non-negative integer variable lβ denoting |Sβ|

Page 34: Boolean Algebra with Presburger Arithmetic

33

|b1| = l(1, 0) + l(1, 1)

|b2| = l(0, 1) + l(1, 1)

|b3| = l(1, 1)

Finally:

k1 = k2 ˄ |b1| = l(1, 0) + l(1, 1)

k3 = 0 |b2| = l(0, 1) + l(1, 1)

|b3| = l(1, 1)

Page 35: Boolean Algebra with Presburger Arithmetic

34

Our formula is of the form:

But instead of using this exponentially large formula

where β ranges over all 2e propositional assignments

We will check the satisfiability of a smaller formula

where β ranges over N assignemnts

Page 36: Boolean Algebra with Presburger Arithmetic

35

β ranges over a set of N assignments β1, . . . , βN for

βi = (pi1, . . . , pie) and

pij are fresh free variables ranging over {0, 1}.

We are interested in the best upper bound N(d) on the number of non-zero Venn regions over all possible systems of equations

Page 37: Boolean Algebra with Presburger Arithmetic

36

Page 38: Boolean Algebra with Presburger Arithmetic

37

|b1| = β(1, 0) + β(1, 1)

|b2| = β(0, 1) + β(1, 1)

|b3| = β(1, 1)

(k1, k2, k3) = (β(1, 0), 0, 0)

+ (0, β(0, 1), 0)

+ (β(1, 1), β(1, 1), β(1, 1))

Page 39: Boolean Algebra with Presburger Arithmetic

38

We will use a set of integer vectors con(X)

where X = {Xβ | β ∊ {0, 1}e } and

Xβ ∊ {0, 1}e is given by Xβ = ([b0]β, [b1]β, … , [be]β)

A direct application of Fact 1 yelds N = 2d log (4d)

Which is sufficient to show that QFBAPA is in NP

Page 40: Boolean Algebra with Presburger Arithmetic