Mathematical semantics and compiler correctness

Author(s):  
H. Bekić

2021 ◽  
Vol 14 ◽  
pp. 26-38
Author(s):  
Samuel R. Elliott ◽  

The classical interpretation of mathematical statements can be seen as comprising two separate but related aspects: a domain and a truth-schema. L. E. J. Brouwer’s intuitionistic project lays the groundwork for an alternative conception of the objects in this domain, as well as an accompanying intuitionistic truth-schema. Drawing on the work of Arend Heyting and Michael Dummett, I present two objections to classical mathematical semantics, with the aim of creating an opening for an alternative interpretation. With this accomplished, I then make the case for intuitionism as a suitable candidate to fill this void.



2019 ◽  
Vol 3 (ICFP) ◽  
pp. 1-29 ◽  
Author(s):  
Daniel Patterson ◽  
Amal Ahmed
Keyword(s):  


2014 ◽  
Vol 14 (4-5) ◽  
pp. 587-601 ◽  
Author(s):  
MICHAEL GELFOND ◽  
YUANLIN ZHANG

AbstractThe paper presents a knowledge representation language $\mathcal{A}log$ which extends ASP with aggregates. The goal is to have a language based on simple syntax and clear intuitive and mathematical semantics. We give some properties of $\mathcal{A}log$, an algorithm for computing its answer sets, and comparison with other approaches.





2021 ◽  
Vol 5 (ICFP) ◽  
pp. 1-30
Author(s):  
Zoe Paraskevopoulou ◽  
John M. Li ◽  
Andrew W. Appel

Compositional compiler verification is a difficult problem that focuses on separate compilation of program components with possibly different verified compilers. Logical relations are widely used in proving correctness of program transformations in higher-order languages; however, they do not scale to compositional verification of multi-pass compilers due to their lack of transitivity. The only known technique to apply to compositional verification of multi-pass compilers for higher-order languages is parametric inter-language simulations (PILS), which is however significantly more complicated than traditional proof techniques for compiler correctness. In this paper, we present a novel verification framework for lightweight compositional compiler correctness . We demonstrate that by imposing the additional restriction that program components are compiled by pipelines that go through the same sequence of intermediate representations , logical relation proofs can be transitively composed in order to derive an end-to-end compositional specification for multi-pass compiler pipelines. Unlike traditional logical-relation frameworks, our framework supports divergence preservation—even when transformations reduce the number of program steps. We achieve this by parameterizing our logical relations with a pair of relational invariants . We apply this technique to verify a multi-pass, optimizing middle-end pipeline for CertiCoq, a compiler from Gallina (Coq’s specification language) to C. The pipeline optimizes and closure-converts an untyped functional intermediate language (ANF or CPS) to a subset of that language without nested functions, which can be easily code-generated to low-level languages. Notably, our pipeline performs more complex closure-allocation optimizations than the state of the art in verified compilation. Using our novel verification framework, we prove an end-to-end theorem for our pipeline that covers both termination and divergence and applies to whole-program and separate compilation, even when different modules are compiled with different optimizations. Our results are mechanized in the Coq proof assistant.





Sign in / Sign up

Export Citation Format

Share Document