Fairness in parallel programs: the transformational approach
ACM Transactions on Programming Languages and Systems (TOPLAS)
On the synthesis of a reactive module
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Completing the temporal picture
Selected papers of the 16th international colloquium on Automata, languages, and programming
Tree automata, Mu-Calculus and determinacy
SFCS '91 Proceedings of the 32nd annual symposium on Foundations of computer science
Infinite games on finitely coloured graphs with applications to automata on infinite trees
Theoretical Computer Science
A Deductive Approach to Program Synthesis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Pushdown processes: games and model-checking
Information and Computation - Special issue on FLOC '96
Symbolic Strategy Synthesis for Games on Pushdown Graphs
ICALP '02 Proceedings of the 29th International Colloquium on Automata, Languages and Programming
Small Progress Measures for Solving Parity Games
STACS '00 Proceedings of the 17th Annual Symposium on Theoretical Aspects of Computer Science
CONCUR '99 Proceedings of the 10th International Conference on Concurrency Theory
Symbolic Algorithms for Infinite-State Games
CONCUR '01 Proceedings of the 12th International Conference on Concurrency Theory
Fast LTL to Büchi Automata Translation
CAV '01 Proceedings of the 13th International Conference on Computer Aided Verification
LICS '04 Proceedings of the 19th Annual IEEE Symposium on Logic in Computer Science
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An Abstraction-Refinement Framework for Multi-Agent Systems
LICS '06 Proceedings of the 21st Annual IEEE Symposium on Logic in Computer Science
Combinatorial sketching for finite programs
Proceedings of the 12th international conference on Architectural support for programming languages and operating systems
When not losing is better than winning: Abstraction and refinement for the full μ-calculus
Information and Computation
CAV '08 Proceedings of the 20th international conference on Computer Aided Verification
From program verification to program synthesis
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Abstraction-guided synthesis of synchronization
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ICALP'03 Proceedings of the 30th international conference on Automata, languages and programming
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
µZ: an efficient engine for fixed points with constraints
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
SAT Modulo Linear Arithmetic for Solving Polynomial Constraints
Journal of Automated Reasoning
Local abstraction–refinement for the μ-calculus
International Journal on Software Tools for Technology Transfer (STTT)
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Repair of boolean programs with an application to c
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
A new algorithm for strategy synthesis in LTL games
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Synthesis of reactive(1) designs
VMCAI'06 Proceedings of the 7th international conference on Verification, Model Checking, and Abstract Interpretation
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Ranked predicate abstraction for branching time: complete, incremental, and precise
ATVA'06 Proceedings of the 4th international conference on Automated Technology for Verification and Analysis
Why waste a perfectly good abstraction?
TACAS'06 Proceedings of the 12th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Synthesizing software verifiers from proof rules
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
HSF(C): a software verifier based on horn clauses
TACAS'12 Proceedings of the 18th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Theoretical Computer Science
Cinderella versus the wicked stepmother
TCS'12 Proceedings of the 7th IFIP TC 1/WG 202 international conference on Theoretical Computer Science
Reasoning about nondeterminism in programs
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Solving existentially quantified horn clauses
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Hi-index | 0.00 |
We present a constraint-based approach to computing winning strategies in two-player graph games over the state space of infinite-state programs. Such games have numerous applications in program verification and synthesis, including the synthesis of infinite-state reactive programs and branching-time verification of infinite-state programs. Our method handles games with winning conditions given by safety, reachability, and general Linear Temporal Logic (LTL) properties. For each property class, we give a deductive proof rule that --- provided a symbolic representation of the game players --- describes a winning strategy for a particular player. Our rules are sound and relatively complete. We show that these rules can be automated by using an off-the-shelf Horn constraint solver that supports existential quantification in clause heads. The practical promise of the rules is demonstrated through several case studies, including a challenging "Cinderella-Stepmother game" that allows infinite alternation of discrete and continuous choices by two players, as well as examples derived from prior work on program repair and synthesis.