A calculus of refinements for program derivations
Acta Informatica
Proceedings of the Second European Symposium on Programming
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
Type inclusion constraints and type inference
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Set based program analysis
TYPES '93 Proceedings of the international workshop on Types for proofs and programs
Lower bounds on type inference with subtypes
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formal language, grammar and set-constraint-based program analysis by abstract interpretation
FPCA '95 Proceedings of the seventh international conference on Functional programming languages and computer architecture
Simplifying subtyping constraints
Proceedings of the first ACM SIGPLAN international conference on Functional programming
Componential set-based analysis
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dependent types in practical programming
Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Type inference with constrained types
Theory and Practice of Object Systems - Special issue on foundations of object-oriented languages
Intersection types and computational effects
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
An axiomatic basis for computer programming
Communications of the ACM
A Discipline of Programming
Refinement types for specification
PROCOMET '98 Proceedings of the IFIP TC2/WG2.2,2.3 International Conference on Programming Concepts and Methods
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Making Set-Constraint Program Analyses Scale
Making Set-Constraint Program Analyses Scale
An effective theory of type refinements
ICFP '03 Proceedings of the eighth ACM SIGPLAN international conference on Functional programming
Generating error traces from verification-condition counterexamples
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Polymorphism and separation in hoare type theory
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Type reconstruction for general refinement types
ESOP'07 Proceedings of the 16th European conference on Programming
Proceedings of the 2008 ACM SIGPLAN conference on Programming language design and implementation
Static contract checking for Haskell
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Compositional reasoning and decidable checking for dependent contract types
Proceedings of the 3rd workshop on Programming languages meets program verification
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
Type reconstruction for general refinement types
ESOP'07 Proceedings of the 16th European conference on Programming
On-demand refinement of dependent types
FLOPS'08 Proceedings of the 9th international conference on Functional and logic programming
HMC: verifying functional programs using abstract interpreters
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
Synthesizing software verifiers from proof rules
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Automatic type inference for amortised heap-space analysis
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Hi-index | 0.00 |
General refinement types allow types to be refined by predicates written in a general-purpose programming language, and can express function pre- and postconditions and data structure invariants. In this setting, with expressive and possibly verbose types, type reconstruction is particularly valuable, yet typeability is undecidable because it subsumes type checking. Using a generalized notion of type reconstruction, we present the first type reconstruction algorithm for a type system with base types refined by abitrary program terms. Our algorithm is a typeability-preserving transformation and defers type checking to a subsequent phase. The algorithm generates and solves a collection of implication constraints over refinement predicates, inferring maximally precise refinement predicates in a largely syntactic manner that is reminiscent of strongest postcondition calculation. Perhaps surprisingly, our notion of type reconstruction is decidable even though type checking is not.