PLDI '91 Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation
Algorithmic aspects of type inference with subtypes
POPL '92 Proceedings of the 19th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The essence of compiling with continuations
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Simplifying subtyping constraints
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Eliminating array bound checking through dependent types
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Cayenne—a language with dependent types
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Predicate abstraction for software verification
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Discipline of Programming
Principal type-schemes for functional programs
POPL '82 Proceedings of the 9th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
Counterexample-Guided Abstraction Refinement
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
Assertion Graphs for Verifying and Synthesizing Programs
Assertion Graphs for Verifying and Synthesizing Programs
Type qualifiers: lightweight specifications to improve software quality
Type qualifiers: lightweight specifications to improve software quality
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Efficient Verification of Sequential and Concurrent C Programs
Formal Methods in System Design
Scalable error detection using boolean satisfiability
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model Checking C Programs Using F-SOFT
ICCD '05 Proceedings of the 2005 International Conference on Computer Design
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type reconstruction for general refinement types
ESOP'07 Proceedings of the 16th European conference on Programming
Inference of user-defined type qualifiers and qualifier rules
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Ynot: dependent types for imperative programs
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Constrained types for object-oriented languages
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Types and higher-order recursion schemes for verification of higher-order programs
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type-based data structure verification
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
ACM Computing Surveys (CSUR)
Dependent type inference with interpolants
PPDP '09 Proceedings of the 11th ACM SIGPLAN conference on Principles and practice of declarative programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
Dependent types from counterexamples
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Decision procedures for algebraic data types with abstractions
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular verification of security protocol code by typing
Proceedings of the 37th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Ur: statically-typed metaprogramming with type-level record computation
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Mixing type checking and symbolic execution
PLDI '10 Proceedings of the 2010 ACM SIGPLAN conference on Programming language design and implementation
Semantic subtyping with an SMT solver
Proceedings of the 15th ACM SIGPLAN international conference on Functional programming
Automated termination proofs for haskell by term rewriting
ACM Transactions on Programming Languages and Systems (TOPLAS)
Refinement types for secure implementations
ACM Transactions on Programming Languages and Systems (TOPLAS)
RV'10 Proceedings of the First international conference on Runtime verification
Typechecking higher-order security libraries
APLAS'10 Proceedings of the 8th Asian conference on Programming languages and systems
Predicate abstraction and CEGAR for higher-order model checking
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Automatically refining partial specifications for program verification
FM'11 Proceedings of the 17th international conference on Formal methods
HMC: verifying functional programs using abstract interpreters
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Maintaining database integrity with refinement types
Proceedings of the 25th European conference on Object-oriented programming
Satisfiability modulo recursive programs
SAS'11 Proceedings of the 18th international conference on Static analysis
Trustworthy numerical computation in Scala
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 10th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software
Nested refinements: a logic for duck typing
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dsolve: safety verification via liquid types
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Automatically verifying typing constraints for a data processing language
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Union and intersection types for secure protocol implementations
TOSCA'11 Proceedings of the 2011 international conference on Theory of Security and Applications
Synthesizing software verifiers from proof rules
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
CSolve: verifying c with liquid types
CAV'12 Proceedings of the 24th international conference on Computer Aided Verification
Higher-order symbolic execution via contracts
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
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
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
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Model-Checking higher-order programs with recursive types
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Automatic type inference for amortised heap-space analysis
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Verifying higher-order programs with the dijkstra monad
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Fissile type analysis: modular checking of almost everywhere invariants
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Symbolic optimization with SMT solvers
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Invariants synthesis over a combined domain for automated program verification
Theories of Programming and Formal Methods
Automatically refining partial specifications for heap-manipulating programs
Science of Computer Programming
Journal of Computer Security - Foundational Aspects of Security
Hi-index | 0.00 |
We present Logically Qualified Data Types, abbreviated to Liquid Types, a system that combines Hindley-Milner type inference with Predicate Abstraction to automatically infer dependent types precise enough to prove a variety of safety properties. Liquid types allow programmers to reap many of the benefits of dependent types, namely static verification of critical properties and the elimination of expensive run-time checks, without the heavy price of manual annotation. We have implemented liquid type inference in DSOLVE, which takes as input an OCAML program and a set of logical qualifiers and infers dependent types for the expressions in the OCAML program. To demonstrate the utility of our approach, we describe experiments using DSOLVE to statically verify the safety of array accesses on a set of OCAML benchmarks that were previously annotated with dependent types as part of the DML project. We show that when used in conjunction with a fixed set of array bounds checking qualifiers, DSOLVE reduces the amount of manual annotation required for proving safety from 31% of program text to under 1%.