550 likes | 910 Views
Kleene Algebra with Tests. Dexter Kozen Cornell University Workshop on Logic & Computation Nelson, NZ, January 2004. These Lectures. Tutorial on KA and KAT model theory complexity, deductive completeness relation to Hoare logic Practical applications compiler optimization
E N D
Kleene Algebra with Tests Dexter Kozen Cornell University Workshop on Logic & Computation Nelson, NZ, January 2004
These Lectures • Tutorial on KA and KAT • model theory • complexity, deductive completeness • relation to Hoare logic • Practical applications • compiler optimization • scheme equivalence • static analysis • Theoretical applications • automata on guarded strings & BDDs • algebraic version of Parikh’s theorem • representation • dynamic model theory
Kleene Algebra (KA)is the algebra of regular expressions pq + qp p*q {pq,qp} {q,pq,p2q,p3q, …} (p + q)* = (p*q)*p* (pq)*p = p(qp)* {all strings over p,q}{p,pqp,pqpqp,} (0 + 1(01*0)*1)* {multiples of 3 in binary} p p q q q p p,q q p 0 1 0 1 0 1
Standard Interpretation Regular sets over A+B = A B AB = {xy | x A, y B} A* = Un0 An = A0 A1 A2 ... 1 = {} 0 = p interpreted as {p}
Binary Relations R, S binary relations on a set X R+S = R S RS = R ° S = {(u,v) | w (u,w) R, (w,v) S} R* = reflexive transitive closure of R = Un0 Rn = R R1 R2 1 = identity relation = {(u,u) | u X} 0 =
Applications • Automata and formal languages regular expressions • Program logic and verification Dynamic Logic program analysis protocol verification compiler optimization • Algorithms shortest paths connectivity computational geometry
Prehistory • Definition, relation to finite automata Kleene 56 • No purely equational axiomatization Redko 64 • Axiomatization of equational theory Salomaa 66 • Algebraic theory Conway 71 • Equational theory PSPACE complete (Stock+1)Meyer 74
def x y x + y = y Axioms of KA [K91] • K is an idempotent semiring under +, ·, 0, 1 (p + q) + r = p + (q + r) (pq)r = p(qr) p + q = q + p p1 = 1p = p p + p = p p0 = 0p = 0 p + 0 = p p(q + r) = pq + pr (p + q)r = pr + qr • p*q = least x such that q + px x • qp* = least x such that q + xp x
Succinctly stated, A Kleene algebra is an idempotent semiring such that • p*qis the least fixpoint ofx.(q + px) • qp*is the least fixpoint ofx.(q + xp)
This is a universal Horn axiomatization • p*q = least x such that q + px x q + p(p*q) p*q q + px x p*q x • qp* = least x such that q + xp x q + p(qp*) qp* q + px x qp* x Every system of linear inequalities a11x1 + ... + an1xn + b1 x1 . . . an1x1 + ... + annxn + bn xn has a unique least solution
Complete semirings (quantales) i I pi = supremum of {pi | i I} with respect to *-continuity pq*r = sup pqnr • infinitary • same equational theory Eq(KA) = Eq(KA*) n 0 Alternative Characterizations of *
Some Useful Properties 1 + pp* = 1 + p*p = p* p*p* = p** = p* (pq)*p = p(qp)* sliding (p*q)*p* = (p + q)*denesting px = xq p*x = xq* bisimulation qp = 0 (p + q)* = p*q* loop distribution qp = pq (p + q)* = (pq)*(p* + q*)
Proof of the Sliding Rule (ab)*a a(ba)* a + aba(ba)* = a(1 + ba(ba)*) distributivity = a(ba)* 1 + pp* = p*. a + aba(ba)* a(ba)* (ab)*a a(ba)*q + px x p*q x The reverse inequality is symmetric.
Completeness and Complexity • Deductively complete for the equational theory of regular sets of strings and relational models [K 94] • Complexity: Equational theory is PSPACE-complete [Meyer+Stockmeyer 74] • Hoare theory (Horn theory with premises p = 0) is PSPACE-complete [Cohen 93] • Horn theory is 1-complete for star-continuous & relational models [Hardin+K 03] 1
Matrices over a KA a b c d e f g h a+e b+f c+g d+h def + = ae+bg af+bh ce+dg cf+dh a b c d e f g h · def = 1 0 0 1 0 0 0 0 def def = 0 = 1 a b c d * (a+bd*c)* (a+bd*c)*bd* (d+ca*b)*ca* (d+ca*b)* def =
Matrices over a KA * a b c d (a+bd*c)* (a+bd*c)*bd* (d+ca*b)*ca* (d+ca*b)* def = b d a c
Matrices over a KA Representation of finite automata Construction of regular expressions Solution of linear equations over a KA Connectivity and shortest path algorithms
Solution of Linear Inequalities a11x1 + ... + an1xn + b1 x1 . . . an1x1 + ... + annxn + bn xn a11 ... an1 . . + . an1 ... ann x1 . . . xn b1 . . . bn x1 . . . xn
Shortest PathsThe min,+ algebra R+ {} r + s = min r,s rs = r + s r* = 0 0 = 1 = 0 = .9 1.4 3.2 * 0 1.4 2.3 0 .9 0 0 1.4 3.2 0 .9 0 =
Other Models Convex polyhedra [Iwano & Steiglitz 90] AB = {ax + by | x A, y B} A* = convex hull of A A B
Other Models Convex polyhedra [Iwano & Steiglitz 90] AB = {ax + by | x A, y B} A* = convex hull of A A B
Hoare LogicC. A. R. “Sir Tony” Hoare, 1969 • The first formal system for verification of well-structured programs • Initiated the field of program correctness • Inspiration of hundred of technical articles, books, book chapters, surveys • Turing Award 1980, knighted in 1999
Partial Correctness Assertions {b}p{c} postcondition program precondition ‘‘If b holds in the current state, and if p is executed starting in the current state, then if p halts, c will be true of the halting state.’’
{b}p{c},{c}q{d} {b}pq{d} b’ b, {b}p{c}, c c’ {b’}p{c’} Rules of Hoare Logic assignment rule {b[x/e]} x:=e {b} composition rule {bc}p{d},{bc}q{d} {c}if b then p else q{d} conditional rule {bc}p{c} {c}while b do p{bc} while rule weakening rule
Dynamic Logic[Pratt 76] <p>b “Starting from the current state, it is possible for p to halt in a state satisfying b.” [p]b “Starting from the current state, it is necessary that if p halts, it does so in a state satisfying b.” DL subsumes HL {b}p{c} b [p]c
Propositional Dynamic Logic (PDL)[Fischer & Ladner 1979] propositional modal logic + Kleene algebra Syntax • program operators ; + * • propositional operators 0 1 • mixed operators <p>b [p]b b? Semantics • binary relations (input/output)
While programs in PDL[Fischer & Ladner 79] if b then p else q b?;p + b?;q while b do p (b?;p)*;b?
Results about PDL • complete deductive system [Segerberg 77, Gabbay 77, Parikh 78] b [p*](b [p]b) [p*]b • EXPTIME-complete [Pratt 78]
For many applications in CS (simple program manipulations, safety analysis, local optimizations) don’t need the full power of PDL—equational reasoning suffices BUT need tests to model conventional programming constructs (if-then-else, while-do, )
Kleene Algebra with Tests (KAT) (K, B, +, ·, *, ¯, 0, 1) • (K, +, ·, *, 0, 1) is a Kleene algebra • (B, +, ·, ¯, 0, 1) is a Boolean algebra • B K • p,q,r, range over K • a,b,c, range over B
Kleene Algebra with Tests (KAT) +, ·, 0, 1 serve double duty • applied to programs, denote choice, composition, fail, and skip, resp. • applied to tests, denote disjunction, conjunction, falsity, and truth, resp. • these usages do not conflict! bc = b c b + c = b c
Models • Relational models K = binary relations on a set X B = subsets of the identity relation • Trace models K = sets of traces u0p0u1p1u2 … un-1pn-1un B = sets of traces of length 0 • Language-theoretic models K = regular sets of guarded strings over B = atoms of a finite free Boolean algebra
Guarded Strings [Kaplan 69] P atomic programs B atomic tests , , atoms (minimal nonzero elements) of the free Boolean algebra on generators B e.g. if B = {b1,...,b6}, then b1b2b3b4b5b6 is an atom guarded strings 0p01p12p23 n-1pn-1n A+B = A B AB = {xy | x A, y B} A* = Un0 An 1 = {atoms} 0 =
Theorem [K & Smith 96] The family of regular sets of guarded strings over P,B is the free KAT on generators P,B. Corollary KAT is complete over relational models. Eq(GS) = Eq(KAT) = Eq(KAT*) = Eq(REL)
Completeness and Complexity • Deductively complete for the equational theory of regular sets of guarded strings and relational models [K+Smith 96] • Complexity: Equational theory is PSPACE-complete [K+S 96, Cohen+K+S 97] • Hoare theory (Horn formulas with premises of form p=0) is PSPACE-complete [K+S 96] • Full Horn theory is still 1-complete 1
Matrices over a KAT The n x n matrices over a KAT (K,B) forms a KAT (K’,B’) B’ = diagonal matrices over B
Modeling Programssame as in PDL [Fischer & Ladner 79] p;q pq if b then p else q bp + bq while b do p (bp)*b
Propositional Hoare Logic (PHL) Hoare Logic without the assignment rule {b[x/t]}x := t {b} Is a given rule • a logical consequence of the composition, conditional, while, and weakening rules? • relationally valid? {b1}p1{c1}, ..., {bn}pn{cn} {b}p{c}
KAT subsumes PHL {b}p{c} is modeled by any of the following equivalent equations & inequalities: • bppc • bppc • bp=bpc • bpc= 0
{b}p{c},{c}q{d} {b}pq{d} composition rule {bc}p{d},{bc}q{d} {c}if b then p else q{d} conditional rule {bc}p{c} {c}while b do p{bc} while rule
{b}p{c},{c}q{d} {b}pq{d} composition rule bpc = 0 cqd = 0bpqd = 0 {bc}p{d},{bc}q{d} {c}if b then p else q{d} conditional rule bcpd = 0 bcqd = 0 c(bp+bq)d = 0 {bc}p{c} {c}while b do p{bc} while rule bcpc = 0c(bp)*b bc = 0
{b1}p1{c1}, ..., {bn}pn{cn} {b}p{c} Theorem These are all theorems of KAT Completeness Theorem [K 99] All relationally valid rules of the form are derivable in KAT (not so for PHL)
Counterexample {c}if b then p else p{c} {c}p{c} is trivially unprovable in Hoare Logic, but c(bp + bp)c = 0 cpc = 0 is easily provable in KAT
Hoare formulas p1 = 0 p2 = 0 ... pn = 0q = r Theorem KAT is complete for the Hoare theory of relational algebras ... not for the Horn theory! Counterexample: p 1 p2 = p
Complexity Theorem[Berstel 79] It is undecidable whether a given equation holds under a given set of commutativity conditions in all *-continuous Kleene algebras Theorem[K 99] ... -complete ... 0 2
Horn Theories Theorem [K 99, K + Hardin 03] The universal Horn theories of KA*, KAT*, REL are -complete Q:Is there a natural example of a sentence in H(KA*) H(KA)? Q:Is H(REL) finitely axiomatizable relative to H(KA*)? Q: What is the complexity of H(KA)? 1 1
Complexity of KAT and PHL Theorem [Cohen 94] The Hoare theory of KA (Horn formulas with premises p = 0) is PSPACE-complete Theorem [Cohen, Kozen & Smith 96] The Hoare theory of KAT is PSPACE-complete Theorem PHL is PSPACE-complete
Schematic KAT (SKAT) x:=s;y:=t= y:=t[x/s];x:=s yFV(s) x:=s;y:=t= x:=s;y:=t[x/s] xFV(s) x:=s;x:=t = x:=t[x/s] b[x/t];x:=t = x:=t;b x:=x = 1
Special Cases x := s ; y := t y := t ; x := s (x Var(t), y Var(s)) x := t ; bb ; x := t (x Var(b)) x := s x := s ; x = s(x Var(s)) x = sx = s ; x := s
Relation to Hoare Assignment Rule [x/t];x:=t = x:=t; is equivalent to {[x/t]} x:=t {} {[x/t]} x:=t {}