Automated Verification of Fundamental Algebraic Laws
George Zakhour, Pascal Weisenburger, Guido Salvaneschi
Abstract
Algebraic laws of functions in mathematics – such as commutativity, associativity, and idempotence – are often used as the basis to derive more sophisticated properties of complex mathematical structures and are heavily used in abstract computational thinking. Algebraic laws of functions in coding , however, are rarely considered. Yet, they are essential. For example, commutativity and associativity are crucial to ensure correctness of a variety of software systems in numerous domains, such as compiler optimization, big data processing, data flow processing, machine learning or distributed algorithms and data structures. Still, most programming languages lack built-in mechanisms to enforce and verify that operations adhere to such properties. In this paper, we propose a verifier specialized on a set of fundamental algebraic laws that ensures that such laws hold in application code. The verifier can conjecture auxiliary properties and can reason about both equalities and inequalities of expressions, which is crucial to prove a given property when other competitors do not succeed. We implement these ideas in the Propel verifier. Our evaluation against five state-of-the-art verifiers on a total of 142 instances of algebraic properties shows that Propel is able to automatically deduce algebraic properties in different domains that rely on such properties for correctness, even in cases where competitors fail to verify the same properties or time out.
Ask about this paper
Your agent reads all of it.
Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.
Your agent calls
Luneget_paper_fulltext
Free to start. No credit card required.
Terminal
Install the CLIlune papers fulltext 78614f3b-22d5-4898-bd3f-0b355eaa3a7fCited by top-tier papers3
- Dis/Equality GraphsGeorge Zakhour, Pascal Weisenburger, Jahrim Gabriele Cesario, Guido SalvaneschiPOPL 2025 · 3 citations
- Composing CRDTs Convergent by ConstructionAlexander Städing Dominguez, George Zakhour, Pascal Weisenburger, Guido SalvaneschiOOPSLA 2026
- Versioned E-GraphsJahrim Gabriele Cesario, George Zakhour, Pascal Weisenburger, Guido SalvaneschiPLDI 2026
Builds on4
- Verifying replicated data types with typeclass refinements in Liquid HaskellYiyun Liu, James Parker, Patrick Redmond, Lindsey Kuper et al.OOPSLA 2020 · 24 citations
- Theory Exploration Powered by Deductive SynthesisEytan Singher, Shachar ItzhakyCAV 2021 · 19 citations
- Type-Checking CRDT ConvergenceGeorge Zakhour, Pascal Weisenburger, Guido SalvaneschiPLDI 2023 · 16 citations
- CycleQ: an efficient basis for cyclic equational reasoningEddie Jones, C.-H. Luke Ong, Steven J. RamsayPLDI 2022 · 8 citations
Related papers
- RunTime-assisted convergence in replicated data typesGowtham Kaki, Prasanth Prahladan, Nicholas V. LewchenkoPLDI 2022 · 3 citations
- Modular Reasoning About Object RelationsMicha Greutmann, Marco Eilers, Peter MüllerCAV 2026
- Generically Automating Separation Logic by Functors, Homomorphisms, and ModulesQiyuan Xu, David Sanán, Zhe Hou, Xiaokun Luan et al.POPL 2025
- KestRel: Relational Verification using E-Graphs for Program AlignmentRobert Dickerson, Prasita Mukherjee, Benjamin DelawareOOPSLA 2025 · 3 citations
- Veracity: declarative multicore programming with commutativityAdam Chen, Parisa Fathololumi, Eric Koskinen, Jared PincusOOPSLA 2022 · 2 citations
