Typestate: A programming language concept for enhancing software reliability
IEEE Transactions on Software Engineering
Tree automata, Mu-Calculus and determinacy
SFCS '91 Proceedings of the 32nd annual symposium on Foundations of computer science
Linear-time subtransitive control flow analysis
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Languages, automata, and logic
Handbook of formal languages, vol. 3
Tractable constraints in finite semilattices
Science of Computer Programming
Automatic predicate abstraction of C programs
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Types as models: model checking message-passing programs
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Flow-sensitive type qualifiers
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Adoption and focus: practical linear types for imperative programming
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Higher-Order Pushdown Trees Are Easy
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
A generic type system for the Pi-calculus
Theoretical Computer Science
Type error slicing in implicitly typed higher-order languages
Science of Computer Programming - Special issue on 12th European symposium on programming (ESOP 2003)
Regular expression types for XML
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM Transactions on Programming Languages and Systems (TOPLAS)
Resource usage analysis for a functional language with exceptions
Proceedings of the 2006 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Typestate verification: abstraction techniques and complexity results
Science of Computer Programming - Special issue: Static analysis symposium (SAS 2003)
On Model-Checking Trees Generated by Higher-Order Recursion Schemes
LICS '06 Proceedings of the 21st Annual IEEE Symposium on Logic in Computer Science
Proving that programs eventually do something good
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The software model checker Blast: Applications to software engineering
International Journal on Software Tools for Technology Transfer (STTT)
Effective typestate verification in the presence of aliasing
ACM Transactions on Software Engineering and Methodology (TOSEM)
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Symbolic backwards-reachability analysis for higher-order pushdown systems
FOSSACS'07 Proceedings of the 10th international conference on Foundations of software science and computational structures
Type-based verification of correspondence assertions for communication protocols
APLAS'07 Proceedings of the 5th Asian conference on Programming languages and systems
On-demand refinement of dependent types
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
Generalized typestate checking for data structure consistency
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
A type system equivalent to a model checker
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
The monadic second order theory of trees given by arbitrary level-two recursion schemes is decidable
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Complexity of Model Checking Recursion Schemes for Fragments of the Modal Mu-Calculus
ICALP '09 Proceedings of the 36th Internatilonal Collogquium on Automata, Languages and Programming: Part II
Model-checking higher-order functions
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
Types and Recursion Schemes for Higher-Order Program Verification
APLAS '09 Proceedings of the 7th Asian Symposium on Programming Languages and Systems
Dependent types from counterexamples
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Higher-order multi-parameter tree transducers and recursion schemes for program verification
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automated termination proofs for haskell by term rewriting
ACM Transactions on Programming Languages and Systems (TOPLAS)
Verifying higher-order functional programs with pattern-matching algebraic data types
Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verification of tree-processing programs via higher-order model checking
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
FOSSACS'11/ETAPS'11 Proceedings of the 14th international conference on Foundations of software science and computational structures: part of the joint European conferences on theory and practice of software
Predicate abstraction and CEGAR for higher-order model checking
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
HMC: verifying functional programs using abstract interpreters
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Hybrid contract checking via symbolic simplification
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Functional programs as compressed data
PEPM '12 Proceedings of the ACM SIGPLAN 2012 workshop on Partial evaluation and program manipulation
Higher-order program verification and language-based security
ASIAN'09 Proceedings of the 13th Asian conference on Advances in Computer Science: information Security and Privacy
CFA2: a context-free approach to control-flow analysis
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Untyped recursion schemes and infinite intersection types
FOSSACS'10 Proceedings of the 13th international conference on Foundations of Software Science and Computational Structures
Union and intersection types for secure protocol implementations
TOSCA'11 Proceedings of the 2011 international conference on Theory of Security and Applications
Exact flow analysis by higher-order model checking
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Two-level game semantics, intersection types, and recursion schemes
ICALP'12 Proceedings of the 39th international colloquium conference on Automata, Languages, and Programming - Volume Part II
Introspective pushdown analysis of higher-order programs
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
A traversal-based algorithm for higher-order model checking
Proceedings of the 17th ACM SIGPLAN international conference on Functional programming
Simple models for recursive schemes
MFCS'12 Proceedings of the 37th international conference on Mathematical Foundations of Computer Science
Higher-order symbolic execution via contracts
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Recursive schemes, krivine machines, and collapsible pushdown automata
RP'12 Proceedings of the 6th international conference on Reachability Problems
An intersection type system for deterministic pushdown automata
TCS'12 Proceedings of the 7th IFIP TC 1/WG 202 international conference on Theoretical Computer Science
Towards a scalable software model checker for higher-order programs
PEPM '13 Proceedings of the ACM SIGPLAN 2013 workshop on Partial evaluation and program manipulation
Program certification by higher-order model checking
CPP'12 Proceedings of the Second international conference on Certified Programs and Proofs
Automating relatively complete verification of higher-order functional programs
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
HALO: haskell to logic through denotational semantics
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model-Checking higher-order programs with recursive types
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Model Checking Higher-Order Programs
Journal of the ACM (JACM)
C-SHORe: a collapsible approach to higher-order verification
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
A type-directed abstraction refinement approach to higher-order model checking
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
LICS '13 Proceedings of the 2013 28th Annual ACM/IEEE Symposium on Logic in Computer Science
Journal of Computer Security - Foundational Aspects of Security
Hi-index | 0.00 |
We propose a new verification method for temporal properties of higher-order functional programs, which takes advantage of Ong's recent result on the decidability of the model-checking problem for higher-order recursion schemes (HORS's). A program is transformed to an HORS that generates a tree representing all the possible event sequences of the program, and then the HORS is model-checked. Unlike most of the previous methods for verification of higher-order programs, our verification method is sound and complete. Moreover, this new verification framework allows a smooth integration of abstract model checking techniques into verification of higher-order programs. We also present a type-based verification algorithm for HORS's. The algorithm can deal with only a fragment of the properties expressed by modal mu-calculus, but the algorithm and its correctness proof are (arguably) much simpler than those of Ong's game-semantics-based algorithm. Moreover, while the HORS model checking problem is n-EXPTIME in general, our algorithm is linear in the size of HORS, under the assumption that the sizes of types and specification formulas are bounded by a constant.