Motivated by recent research in abstract model checking, we present a new approach to inferring dependent types. Unlike many of the existing approaches, our approach does not rely on program-mers to supply the candidate (or the correct) types for the recursive functions and instead does counterexample-guided refinement to automatically generate the set of candidate dependent types. The main idea is to extend the classical fixed-point type inference rou-tine to return a counterexample if the program is found untypable with the current set of candidate types. Then, an interpolating the-orem prover is used to validate the counterexample as a real type error or generate additional candidate dependent types to refute the spurious counterexample....
In a previous paper [7], we have developed a type abstract interpreter which was shown to be more p...
Abstract. A new framework for higher-order program verification has been recently proposed, in which...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Abstract. Dependent types are useful for statically checking detailed specifications of programs and...
We present a simple type-checker for a language with dependent types and let expressions, with a sim...
Many computer programs have the property that they work correctly on a variety of types of input; s...
Dependently typed programming languages provide a powerful tool for proving code correct. However, t...
We show how random testing, model checking and interactive proving can be combined for functional pr...
We propose a novel type inference algorithm for a dependently-typed functional language. The novel f...
We examine the complexity of type checking in an ML-style type system that permits functions to be ...
This paper addresses the question of how to extend OCaml’s Hindley-Milner type system with types ind...
This paper addresses the question of how to extend OCaml’s Hindley-Milner type system with types ind...
Abstract. Type inference in the context of polymorphic recursion is notoriously difficult. The exten...
AbstractWe define a powerful type inference mechanism with application to object-oriented programmin...
This paper describes an experiment in the definition of tools for type inference and type verificat...
In a previous paper [7], we have developed a type abstract interpreter which was shown to be more p...
Abstract. A new framework for higher-order program verification has been recently proposed, in which...
Type inference is a key component of modern statically typed programming languages. It allows progra...
Abstract. Dependent types are useful for statically checking detailed specifications of programs and...
We present a simple type-checker for a language with dependent types and let expressions, with a sim...
Many computer programs have the property that they work correctly on a variety of types of input; s...
Dependently typed programming languages provide a powerful tool for proving code correct. However, t...
We show how random testing, model checking and interactive proving can be combined for functional pr...
We propose a novel type inference algorithm for a dependently-typed functional language. The novel f...
We examine the complexity of type checking in an ML-style type system that permits functions to be ...
This paper addresses the question of how to extend OCaml’s Hindley-Milner type system with types ind...
This paper addresses the question of how to extend OCaml’s Hindley-Milner type system with types ind...
Abstract. Type inference in the context of polymorphic recursion is notoriously difficult. The exten...
AbstractWe define a powerful type inference mechanism with application to object-oriented programmin...
This paper describes an experiment in the definition of tools for type inference and type verificat...
In a previous paper [7], we have developed a type abstract interpreter which was shown to be more p...
Abstract. A new framework for higher-order program verification has been recently proposed, in which...
Type inference is a key component of modern statically typed programming languages. It allows progra...