RELOC RELOADED: A MECHANIZED RELATIONAL LOGIC FOR FINE-GRAINED CONCURRENCY AND LOGICAL ATOMICITY

被引:13
作者
Frumin, Dan [1 ,2 ]
Krebbers, Robbert [2 ,3 ]
Birkedal, Lars [4 ]
机构
[1] Univ Groningen, Groningen, Netherlands
[2] Radboud Univ Nijmegen, Nijmegen, Netherlands
[3] Delft Univ Technol, Delft, Netherlands
[4] Aarhus Univ, Aarhus, Denmark
基金
荷兰研究理事会;
关键词
separation logic; concurrency; program refinement; Iris; Coq; MODEL CHECKING; LINEARIZABILITY; ABSTRACTION; SEMANTICS; REFINEMENT; PROOFS; STATE;
D O I
10.46298/LMCS-17(3:9)2021
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
We present a new version of ReLoC: a relational separation logic for proving refinements of programs with higher-order state, fine-grained concurrency, polymorphism and recursive types. The core of ReLoC is its refinement judgment e e' :T, which states that a program e refines a program e' at type T. ReLoC provides type-directed structural rules and symbolic execution rules in separation-logic style for manipulating the judgment, whereas in prior work on refinements for languages with higher-order state and concurrency, such proofs were carried out by unfolding the judgment into its definition in the model. ReLoC's abstract proof rules make it simpler to carry out refinement proofs, and enable us to generalize the notion of logically atomic specifications to the relational case, which we call logically atomic relational specifications. We build ReLoC on top of the Iris framework for separation logic in Coq, allowing us to leverage features of Iris to prove soundness of ReLoC, and to carry out refinement proofs in ReLoC. We implement tactics for interactive proofs in ReLoC, allowing us to mechanize several case studies in Coq, and thereby demonstrate the practicality of ReLoC. ReLoC Reloaded extends ReLoC (LICS'18) with various technical improvements, a new Coq mechanization, and support for Iris's prophecy variables. The latter allows us to carry out refinement proofs that involve reasoning about the program's future. We also expand ReLoC's notion of logically atomic relational specifications with a new flavor based on the HOCAP pattern by Svendsen et al.
引用
收藏
页数:59
相关论文
共 104 条
  • [81] Plotkin G., 1993, Typed Lambda Calculi and Applications. International Conference. TLCA '93, P361, DOI 10.1007/BFb0037118
  • [82] Plotkin G. D., 1976, SIAM Journal on Computing, V5, P452, DOI 10.1137/0205035
  • [83] Monadic Refinements for Relational Cost Analysis
    Radicek, Ivan
    Barthe, Gilles
    Gaboardi, Marco
    Garg, Deepak
    Zuleger, Florian
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2018, 2 (02):
  • [84] Types for Information Flow Control: Labeling Granularity and Semantic Models
    Rajani, Vineet
    Garg, Deepak
    [J]. IEEE 31ST COMPUTER SECURITY FOUNDATIONS SYMPOSIUM (CSF 2018), 2018, : 233 - 246
  • [85] Reynolds J. C., 1974, Programming Symposium, P408
  • [86] The High-Level Benefits of Low-Level Sandboxing
    Sammler, Michael
    Garg, Deepak
    Dreyer, Derek
    Litak, Tadeusz
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2020, 4 (POPL):
  • [87] Autosubst: Reasoning with de Bruijn Terms and Parallel Substitutions
    Schaefer, Steven
    Tebbi, Tobias
    Smolka, Gert
    [J]. INTERACTIVE THEOREM PROVING, 2015, 9236 : 359 - 374
  • [88] Smyth Michael B., 1976, INT S MATH FDN COMPU, P537
  • [89] Stefanesco Leo, 2018, PACMPL, V2
  • [90] A bisimulation for type abstraction and recursion
    Sumii, Eijiro
    Pierce, Benjamin C.
    [J]. JOURNAL OF THE ACM, 2007, 54 (05)