Download presentation

Presentation is loading. Please wait.

Published byAlison Lutts Modified over 4 years ago

1
Linked List Implementation class List { private List next; private Object data; private static List root; private static int size; public static void addNew(Object x) { List n1 = new List(); n1.next = root; n1.data = x; root = n1; size = size + 1; } next root data x invariant : size = |{data(x). next*(root,x)}|

2
Verification Condition for addNew next0*(root0,n1) x {data0(n) | next0*(root0,n)} next=next0[n1:=root0] data=data0[n1:=x] |{data(n). next*(n1,n)}| = |{data0(n). next0*(root0,n)}| + 1 Expressing this VC requires a rich logic –transitive closure * (in lists and also in trees) –unconstraint functions (data, data0) –cardinality operator on sets |... | Is there a decidable logic containing all this? “The number of stored objects has increased by one.”

3
Decomposing the Formula Consider a (simpler) formula |{data(x). next*(root,x)}|=k+1 Introduce fresh variables denoting sets: A = {x. next*(root,x)} B = {y. x. data(x,y) x A} |B|=k+1 Conjuncts belong to decidable fragments! 1) WS2S 2) C 2 3) BAPA Next –define these 3 fragments –sketch a technique to combine them

4
WS2S: Monadic 2 nd Order Logic Weak Monadic 2 nd -order Logic of 2 Successors In HOL, satisfiability of formulas of the form: tree[f1,f2] & F(f1,f2,S,T) where - tree[f1,f2] means f1,f2 form a tree F ::= x=f1(y) | x=f2(y) |x S | S T | 9 S.F | F 1 Æ F 2 | : F - quantification is over finite sets of positions in tree - transitive closure encoded using set quantification Decision procedure - recognize WS2S formula within HOL - run the MONA tool (tree automata, BDDs) f2 f1 f2 f1 f2 f1

5
C 2 : Two-Variable Logic w/ Counting Two-Variable Logic with Counting F ::= P(v 1,...,v n ) | F 1 Æ F 2 | : F | 9 count v i.F where P : is a predicate symbol v i : is one of the two variable names x,y count : is =k, k, or k for nonnegative constants k We can write ( 9 k v i.F) as |{v i.F}| k We can define 9, 8 and axiomatize total functions: 8 x 9 =1 y.R(x,y) Decidable sat. and fin-sat. (1997), NEXPTIME even for binary-encoded k: Pratt-Hartman ‘05

6
BAPA: Boolean Algebra with Presburger Arithmetic Essence of decidability: Feferman, Vaught 1959 Our results –first implementation for BAPA (CADE’05) –first, exact, complexity for full BAPA (JAR’06) –first, exact, complexity for QFBAPA (CADE’07) –generalize to multisets (VMCAI’08,CAV’08,CSL’08) New: role of BAPA in combination of logics S ::= V | S 1 [ S 2 | S 1 Å S 2 | S 1 n S 2 T ::= k | C | T 1 + T 2 | T 1 – T 2 | C ¢ T | |S| A ::= S 1 = S 2 | S 1 µ S 2 | T 1 = T 2 | T 1 < T 2 F ::= A | F 1 Æ F 2 | F 1 Ç F 2 | : F | 9 S.F | 9 k.F

7
Back to Decomposing the Formula Consider a (simpler) formula |{data(x). next*(root,x)}|=k+1 Introduce fresh variables denoting sets: A = {x. next*(root,x)} B = {y. x. data(x,y) x A} |B|=k+1 Conjuncts belong to decidable fragments 1) WS2S 2) C 2 3) BAPA Next –define these 3 fragments – we have seen this –sketch a technique to combine them

8
Combining Decidable Logics Satisfiability problem expressed in HOL: (all free symbols existentially quantified) next,data,k. root,A,B. A = {x. next*(root,x)} B = {y. x. data(x,y) x A} |B|=k+1 We assume formulas share only: - set variables (sets of uninterpreted elems) - individual variables, as a special case - {x} 1) WS2S 2) C 2 3) BAPA

9
Satisfiability problem expressed in HOL, after moving fragment-specific quantifiers root,A,B. next. A = {x. next*(root,x)} data. B = {y. x. data(x,y) x A} k. |B|=k+1 Extend decision procedures into projection procedures for WS2S,C 2,BAPA applies to all non-set variables Combining Decidable Logics F WS2S F C2 F BAPA : {root} µ A : |B| |A| : 1 |B| root,A,B. {root} µ A |B| |A| 1 |B| Conjunction of projections satisfiable so is original formula

10
Fragment of Insertion into Tree right left right left data p left data

11
Verification Condition for Tree Insertion Conjunction of projections unsatisfiable so is original formula

12
Decision Procedure for Combination 1.Separate formula into WS2S, C 2, BAPA parts 2.For each part, compute projection onto set vars 3.Check satisfiability of conjunction of projections Definition: Logic is effectively cardinality-linear iff there is an algorithm that computes projections of formulas onto set variables, and these projections are quantifier-free BAPA formulas. Theorem: WS2S, C 2, BAPA are all cardinality linear. Proof: WS2S – Parikh image of tree language is in PA C 2 – proof by Pratt-Hartmann reduces to PA BAPA - has quantifier elimination

Similar presentations

OK

Selected Decision Procedures and Techniques for SMT More on combination – theories sharing sets – convex theory Un-interpreted function symbols (quantifier-free.

Selected Decision Procedures and Techniques for SMT More on combination – theories sharing sets – convex theory Un-interpreted function symbols (quantifier-free.

© 2019 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google