Data Flow Refinement Type Inference
summary
DRIFT is a parametric abstract-interpretation framework that produces refinement-type systems and an inference algorithm; it implements numerical domains via the Apron library and supports octagon and polka (polyhedral) refinements plus configurable context sensitivity (call-stack length 1). The prototype runs on ~250 benchmarks, using widening (with/without thresholds) and 5-minute timeouts, and a context-sensitive loose-polka instantiation verifies 244 programs vs 217 for context-insensitive; overall it compares favorably to Dsolve and Mochi. APRON 244 verified programs
AI-written summary · about
chapters (16)
- 0:00Intro
- 1:47Motivation (cont'd)
- 3:29The Problem
- 3:53Main Contribution
- 5:12Concrete Semantics
- 6:11Concrete Data Flow Semantics
- 10:04Higher-order Functions
- 13:02Concrete Data Flow Propagation
- 13:52Concrete Transformer Example
- 15:05Abstract Interpretation Framework
- 17:12Collapsed Relational Data Flow Semantics
- 18:01Parametric Refinement Data Flow Semantics
- 18:43Parametric Type System
- 19:42Liquid Type Semantics
- 20:22Implementation & Evaluation
- 23:02Summary
