Automated Verification of Fundamental Algebraic Laws

被引:4
|
作者
Zakhour, George [1 ]
Weisenburger, Pascal [1 ]
Salvaneschi, Guido [1 ]
机构
[1] Univ St Gallen, St Gallen, Switzerland
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2024年 / 8卷 / PLDI期
基金
芬兰科学院; 瑞士国家科学基金会;
关键词
Algebraic Properties; Type Systems; Verification; SPECIFICATIONS; PROOFS;
D O I
10.1145/3656408
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页数:24
相关论文
共 50 条
  • [11] Algebraic MACs and Keyed-Verification Anonymous Credentials
    Chase, Melissa
    Meiklejohn, Sarah
    Zaverucha, Gregory M.
    CCS'14: PROCEEDINGS OF THE 21ST ACM CONFERENCE ON COMPUTER AND COMMUNICATIONS SECURITY, 2014, : 1205 - 1216
  • [12] A computer checked algebraic verification of a distributed summation algorithm
    Groote, JF
    Monin, F
    Springintveld, J
    FORMAL ASPECTS OF COMPUTING, 2005, 17 (01) : 19 - 37
  • [13] System verification and validation - a fundamental systems engineering task
    Ansorge, WR
    MODELING AND SYSTEMS ENGINEERING FOR ASTRONOMY, 2004, 5497 : 376 - 384
  • [14] Confirmation of Non-classical Laws in Nonequilibrium Gases and Application of Conservation Laws to Verification of DSMC
    Myong, R. S.
    Park, J. H.
    28TH INTERNATIONAL SYMPOSIUM ON RAREFIED GAS DYNAMICS 2012, VOLS. 1 AND 2, 2012, 1501 : 621 - 628
  • [15] An Algebraic Framework for the Verification of Context-Aware Adaptive Systems
    Ksystra, Katerina
    Stefaneas, Petros
    Frangos, Panayiotis
    INTERNATIONAL JOURNAL OF SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, 2015, 25 (07) : 1105 - 1128
  • [16] Automated Algebraic Reasoning for Collections and Local Variables with Lenses
    Foster, Simon
    Baxter, James
    RELATIONAL AND ALGEBRAIC METHODS IN COMPUTER SCIENCE, 2020, 12062 : 100 - 116
  • [17] Relative liveness: From intuition to automated verification
    Negulescu, R
    Brzozowski, JA
    FORMAL METHODS IN SYSTEM DESIGN, 1998, 12 (01) : 73 - 115
  • [18] Automated Verification of Relational While-Programs
    Berghammer, Rudolf
    Hoefner, Peter
    Stucke, Insa
    RELATIONAL AND ALGEBRAIC METHODS IN COMPUTER SCIENCE (RAMICS 2014), 2014, 8428 : 173 - 190
  • [19] An Automated Collective Approach to Verification Coverage Merge
    Huang, Xu
    Fu, YiRu
    Liu, LinTao
    Liu, LunCai
    PROCEEDINGS OF THE 2016 INTERNATIONAL CONFERENCE ON COMPUTER AND INFORMATION TECHNOLOGY APPLICATIONS (ICCITA), 2016, 53 : 227 - 230
  • [20] Early Automated Verification of Tool Chain Design
    Biehl, Matthias
    COMPUTATIONAL SCIENCE AND ITS APPLICATIONS - ICCSA 2012, PT IV, 2012, 7336 : 40 - 50