40 likes | 141 Views
Applying Learning Technique to Formal Verification. Wonhong Nam wnam@cis.upenn.edu. Recent work I. Assume-guarantee reasoning based compositional verification [CGP03, AMN05(CAV) ] To prove that a safety property holds for a module M = M 1 || M 2
E N D
Applying Learning Technique to Formal Verification Wonhong Nam wnam@cis.upenn.edu
Recent work I • Assume-guarantee reasoning based compositional verification [CGP03, AMN05(CAV)] • To prove that a safety property holds for a module M = M1 || M2 • Find an appropriate module A such that • Composition of M1 and A satisfies (assumption for M1) • M2 is a refinement of A (commitment of M2) • Asking the user to identify such an assumption is not feasible in practice. • The assumption can be considered as a regular language.
Recent work II • Java interface synthesis [ACMN05(POPL)] • Static interface: #, type of paras and return type of methods • Dynamic interface: the correct sequences of method calls • A simple file class: open(), read(), close() open.(read)*.close • Given a Java class with a set of methods and a safety property, • To automatically generate the most general way of invoking methods in the class so that the property is not violated • Construct a symbolic representation for methods by predicate abstraction • Synthesis of the interface corresponds to solving a two-player partial information game. • Approximately solve it using the learning technique.
Construct C Eq(C) Teacher EQ Yes/ No & cex Memb(s) Teacher MQ Learner Yes/No L* algorithm [Ang87, RS93] • Describe how to learn an unknown regular language U • by asking membership and equivalence queries to a teacher • If we have the teacher, it guarantees to generate a minimal DFA accepting the language U • membership queries: ask whether a given string s is in U • equivalence queries: whether the current conjecture DFA C represents U