Verifying replicated data types with typeclass refinements in Liquid Haskell
Yiyun Liu, James Parker, Patrick Redmond, Lindsey Kuper, Michael Hicks, Niki Vazou
摘要
This paper presents an extension to Liquid Haskell that facilitates stating and semi-automatically proving properties of typeclasses. Liquid Haskell augments Haskell with refinement types-our work allows such types to be attached to typeclass method declarations, and ensures that instance implementations respect these types. The engineering of this extension is a modular interaction between GHC, the Glasgow Haskell Compiler, and Liquid Haskell's core proof infrastructure. The design sheds light on the interplay between modular proofs and typeclass resolution, which in Haskell is coherent by default (meaning that resolution always selects the same implementation for a particular instantiating type), but in other dependently typed languages is not.
We demonstrate the utility of our extension by using Liquid Haskell to modularly verify that 34 instances satisfy the laws of five standard typeclasses.
More substantially, we implement a framework for programming distributed applications based on replicated data types (RDTs). We define a typeclass whose Liquid Haskell type captures the mathematical properties RDTs should satisfy; prove in Liquid Haskell that these properties are sufficient to ensure that replicas' states converge despite out-of-order update delivery; implement (and prove correct) several instances of our RDT typeclass; and use them to build two realistic applications, a multi-user calendar event planner and a collaborative text editor.
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper8
- Katara: synthesizing CRDTs with verified liftingShadaj Laddad, Conor Power, Mae Milano, Alvin Cheung 等OOPSLA 2022 · 被引用 24 次
- Type-Checking CRDT ConvergenceGeorge Zakhour, Pascal Weisenburger, Guido SalvaneschiPLDI 2023 · 被引用 16 次
- Modular verification of op-based CRDTs in separation logicAbel Nieto, Léon Gondelman, Alban Reynaud, Amin Timany 等OOPSLA 2022 · 被引用 16 次
- Certified mergeable replicated data typesVimala Soundarapandian, Adharsh Kamath, Kartik Nagar, K. C. SivaramakrishnanPLDI 2022 · 被引用 12 次
- Automated Verification of Fundamental Algebraic LawsGeorge Zakhour, Pascal Weisenburger, Guido SalvaneschiPLDI 2024 · 被引用 6 次
它引用的顶会 Paper1
相关 Paper
- Liquidate your assets: reasoning about resource usage in liquid HaskellMartin A. T. Handley, Niki Vazou, Graham HuttonPOPL 2020 · 被引用 38 次
- Quotient Haskell: Lightweight Quotient Types for AllBrandon Hewer, Graham HuttonPOPL 2024 · 被引用 3 次
- PLEX: Normalization for Refinement TypesAlessio Ferrarini, Niki Vazou, Wouter SwierstraOOPSLA 2026
- Neurosymbolic Modular Refinement Type InferenceGeorgios Sakkas, Pratyush Sahu, Kyeling Ong, Ranjit JhalaICSE 2025 · 被引用 1 次
- First-Class Refinement Types for ScalaMatt Bovel, Viktor Kunčak, Martin OderskyOOPSLA 2026
