Publication | Closed Access
Dependent types from counterexamples
79
Citations
28
References
2010
Year
Unknown Venue
Dependent TypesEngineeringAbstract Model CheckingProgram AnalysisAutomated ReasoningType TheoryVerificationDependently Typed ProgrammingFormal MethodsSoftware AnalysisComputer-aided VerificationComputer ScienceType SystemModel CheckingFormal VerificationCausal InferenceCandidate Dependent Types
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 programmers 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 routine to return a counterexample if the program is found untypable with the current set of candidate types. Then, an interpolating theorem prover is used to validate the counterexample as a real type error or generate additional candidate dependent types to refute the spurious counterexample. The process is repeated until either a real type error is found or sufficient candidates are generated to prove the program typable. Our system makes non-trivial use of "linear" intersection types in the refinement phase.
| Year | Citations | |
|---|---|---|
Page 1
Page 1