Pub Date : 2020-10-01DOI: 10.1016/j.entcs.2020.09.014
Tao Gu, Alexandra Silva, Fabio Zanasi
Kozen introduced probabilistic propositional dynamic logic (PPDL) in 1985 as a compositional framework to reason about probabilistic programs. In this paper we study expressiveness for PPDL and provide a series of results analogues to the classical Hennessy-Milner theorem for modal logic. First, we show that PPDL charaterises probabilistic trace equivalence of probabilistic automata (with outputs). Second, we show that PPDL can be mildly extended to yield a characterisation of probabilistic state bisimulation for PPDL models. Third, we provide a different extension of PPDL, this time characterising probabilistic event bisimulation.
{"title":"Hennessy-Milner Results for Probabilistic PDL","authors":"Tao Gu, Alexandra Silva, Fabio Zanasi","doi":"10.1016/j.entcs.2020.09.014","DOIUrl":"10.1016/j.entcs.2020.09.014","url":null,"abstract":"<div><p>Kozen introduced probabilistic propositional dynamic logic (PPDL) in 1985 as a compositional framework to reason about probabilistic programs. In this paper we study expressiveness for PPDL and provide a series of results analogues to the classical Hennessy-Milner theorem for modal logic. First, we show that PPDL charaterises probabilistic trace equivalence of probabilistic automata (with outputs). Second, we show that PPDL can be mildly extended to yield a characterisation of probabilistic state bisimulation for PPDL models. Third, we provide a different extension of PPDL, this time characterising probabilistic event bisimulation.</p></div>","PeriodicalId":38770,"journal":{"name":"Electronic Notes in Theoretical Computer Science","volume":"352 ","pages":"Pages 283-304"},"PeriodicalIF":0.0,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.entcs.2020.09.014","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126719628","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-10-01DOI: 10.1016/j.entcs.2020.09.005
Samuele Buro , Roy Crole , Isabella Mastroeni
Programming language interoperability is the capability of two programming languages to interact as parts of a single system. Each language may be optimized for specific tasks, and a programmer can take advantage of this. HTML, CSS, and JavaScript yield a form of interoperability, working in conjunction to render webpages. Some object oriented languages have interoperability via a virtual machine host (.NET CLI compliant languages in the Common Language Runtime, and JVM compliant languages in the Java Virtual Machine). A high-level language can interact with a lower level one (Apple's Swift and Objective-C). While there has been some research exploring the interoperability mechanisms (Section 1) there is little development of theoretical foundations. This paper presents an approach to interoperability based around theories of equational logic, and categorical semantics.
We give ways in which two languages can be blended, and interoperability reasoned about using equations over the blended language. Formally, multi-language equational logic is defined within which one may deduce valid equations starting from a collection of axioms that postulate properties of the combined language. Thus we have the notion of a multi-language theory and much of the paper is devoted to exploring the properties of these theories. This is accomplished by way of category theory, giving us a very general and flexible semantics, and hence a nice collection of models. Classifying categories are constructed, and hence equational theories furnish each categorical model with an internal language; from this we can also establish soundness and completeness. A set-theoretic semantics follows as an instance, itself sound and complete. The categorical semantics is based on some pre-existing research, but we give a presentation that we feel is easier and simpler to work with, improves and mildly extends current research, and in particular is well suited to computer scientists. Throughout the paper we prove some interesting properties of the new semantic machinery. We provide a small running example throughout the paper to illustrate our ideas, and a more complex example in conclusion.
编程语言互操作性是两种编程语言作为单个系统的一部分进行交互的能力。每种语言都可以针对特定的任务进行优化,程序员可以利用这一点。HTML、CSS和JavaScript产生了一种互操作性的形式,它们一起工作来呈现网页。一些面向对象的语言通过虚拟机主机具有互操作性。. NET CLI兼容的公共语言运行库语言和Java虚拟机JVM兼容的语言)。高级语言可以与低级语言交互(苹果的Swift和Objective-C)。虽然已经有一些研究探索互操作性机制(第1节),但理论基础的发展很少。本文提出了一种基于等价逻辑和范畴语义理论的互操作性方法。我们给出了两种语言可以混合的方法,以及在混合语言上使用方程的互操作性。形式上,定义了多语言方程逻辑,其中可以从假定组合语言的属性的公理集合中推导出有效的方程。因此,我们有了多语言理论的概念,本文的大部分内容都致力于探索这些理论的性质。这是通过范畴论实现的,给我们一个非常一般和灵活的语义,因此是一个很好的模型集合。分类范畴被构建,因此等式理论为每个范畴模型提供了一种内部语言;由此我们也可以建立健全和完备性。集合论语义作为一个实例紧随其后,它本身是健全的和完整的。分类语义是基于一些已有的研究,但我们给出了一个我们认为更容易和更简单的演示,改进并适度扩展了当前的研究,特别适合计算机科学家。在整个论文中,我们证明了新的语义机制的一些有趣的性质。我们在本文中提供了一个小的运行示例来说明我们的想法,并在结论中提供了一个更复杂的示例。
{"title":"Equational Logic and Categorical Semantics for Multi-Languages","authors":"Samuele Buro , Roy Crole , Isabella Mastroeni","doi":"10.1016/j.entcs.2020.09.005","DOIUrl":"10.1016/j.entcs.2020.09.005","url":null,"abstract":"<div><p>Programming language interoperability is the capability of two programming languages to interact as parts of a single system. Each language may be optimized for specific tasks, and a programmer can take advantage of this. HTML, CSS, and JavaScript yield a form of interoperability, working in conjunction to render webpages. Some object oriented languages have interoperability via a virtual machine host (.NET CLI compliant languages in the Common Language Runtime, and JVM compliant languages in the Java Virtual Machine). A high-level language can interact with a lower level one (Apple's Swift and Objective-C). While there has been some research exploring the interoperability mechanisms (Section 1) there is little development of theoretical foundations. This paper presents an approach to interoperability based around theories of equational logic, and categorical semantics.</p><p>We give ways in which two languages can be blended, and interoperability reasoned about using equations over the blended language. Formally, <em>multi-language equational logic</em> is defined within which one may deduce valid equations starting from a collection of axioms that postulate properties of the combined language. Thus we have the notion of a <em>multi-language theory</em> and much of the paper is devoted to exploring the properties of these theories. This is accomplished by way of <em>category theory</em>, giving us a very general and flexible semantics, and hence a nice collection of models. Classifying categories are constructed, and hence equational theories furnish each categorical model with an internal language; from this we can also establish soundness and completeness. A set-theoretic semantics follows as an instance, itself sound and complete. The categorical semantics is based on some pre-existing research, but we give a presentation that we feel is easier and simpler to work with, improves and mildly extends current research, and in particular is well suited to computer scientists. Throughout the paper we prove some interesting properties of the new semantic machinery. We provide a small running example throughout the paper to illustrate our ideas, and a more complex example in conclusion.</p></div>","PeriodicalId":38770,"journal":{"name":"Electronic Notes in Theoretical Computer Science","volume":"352 ","pages":"Pages 79-103"},"PeriodicalIF":0.0,"publicationDate":"2020-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.entcs.2020.09.005","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128017130","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-09-15DOI: 10.1016/j.entcs.2020.08.007
Sepehr Amir-Mohammadian, Chadi Kari
Audit logging provides post-facto analysis of runtime behavior for different purposes, including error detection, amelioration of system operations, and the establishment of security in depth. This necessitates some level of assurance on the quality of the generated audit logs, i.e., how well the audit log represents the events transpired during the execution. Information-algebraic techniques have been proposed to formally specify this relation and provide a framework to study correct audit log generation in a provable fashion. However, previous work fall short on how to guarantee this property of audit logging in concurrent environments. In this paper, we study an implementation model in a concurrent environment. We propose an algorithm that instruments a concurrent system according to a formal specification of audit logging requirements, so that any instrumented concurrent system guarantees correct audit log generation. As an application, we consider systems with microservices architecture, where logging an event by a microservice is conditioned on the occurrence of a collection of events that take place in other microservices of the system.
{"title":"Correct Audit Logging in Concurrent Systems","authors":"Sepehr Amir-Mohammadian, Chadi Kari","doi":"10.1016/j.entcs.2020.08.007","DOIUrl":"10.1016/j.entcs.2020.08.007","url":null,"abstract":"<div><p>Audit logging provides post-facto analysis of runtime behavior for different purposes, including error detection, amelioration of system operations, and the establishment of security in depth. This necessitates some level of assurance on the quality of the generated audit logs, i.e., how well the audit log represents the events transpired during the execution. Information-algebraic techniques have been proposed to formally specify this relation and provide a framework to study correct audit log generation in a provable fashion. However, previous work fall short on how to guarantee this property of audit logging in concurrent environments. In this paper, we study an implementation model in a concurrent environment. We propose an algorithm that instruments a concurrent system according to a formal specification of audit logging requirements, so that any instrumented concurrent system guarantees correct audit log generation. As an application, we consider systems with microservices architecture, where logging an event by a microservice is conditioned on the occurrence of a collection of events that take place in other microservices of the system.</p></div>","PeriodicalId":38770,"journal":{"name":"Electronic Notes in Theoretical Computer Science","volume":"351 ","pages":"Pages 115-141"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.entcs.2020.08.007","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128058660","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-09-15DOI: 10.1016/j.entcs.2020.08.009
Sandro Preto , Marcelo Finger
Rational McNaughton functions may be implicitly represented by logical formulas in Łukasiewicz Infinitely-valued Logic by constraining the set of valuations to the ones that satisfy some specific formulas. This work investigates this implicit representation called representation modulo satisfiability and describes a polynomial algorithm that builds it — the representative formula and the constraining ones — for a given rational McNaughton function.
{"title":"An Efficient Algorithm for Representing Piecewise Linear Functions into Logic","authors":"Sandro Preto , Marcelo Finger","doi":"10.1016/j.entcs.2020.08.009","DOIUrl":"10.1016/j.entcs.2020.08.009","url":null,"abstract":"<div><p>Rational McNaughton functions may be implicitly represented by logical formulas in Łukasiewicz Infinitely-valued Logic by constraining the set of valuations to the ones that satisfy some specific formulas. This work investigates this implicit representation called representation modulo satisfiability and describes a polynomial algorithm that builds it — the representative formula and the constraining ones — for a given rational McNaughton function.</p></div>","PeriodicalId":38770,"journal":{"name":"Electronic Notes in Theoretical Computer Science","volume":"351 ","pages":"Pages 167-186"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.entcs.2020.08.009","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131034224","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-09-15DOI: 10.1016/j.entcs.2020.08.006
Alexis Martín, Alejandro Ríos, Andrés Viso
It is well-known in the field of programming languages that dealing with variable names and binders may lead to conflicts such as undesired captures when implementing interpreters or compilers. This situation has been overcome by resorting to de Bruijn indices for calculi where binders capture only one variable name, like the λ-calculus. The advantage of this approach relies on the fact that so-called α-equivalence becomes syntactical equality when working with indices.
In recent years pattern calculi have gained considerable attention given their expressiveness. They turn out to be notoriously convenient to study the foundations of modern functional programming languages modeling features like pattern matching, path polymorphism, pattern polymorphism, etc. However, the literature falls short when it comes to dealing with α-conversion and binders capturing simultaneously several variable names. Such is the case of the Pure Pattern Calculus (PPC): a natural extension of λ-calculus that allows to abstract virtually any term.
This paper extends de Bruijn's ideas to properly overcome the multi-binding problem by introducing a novel presentation of PPC with bidimensional indices, in an effort to implement a prototype for a typed functional programming language based on PPC that captures path polymorphism.
{"title":"Pure Pattern Calculus à la de Bruijn","authors":"Alexis Martín, Alejandro Ríos, Andrés Viso","doi":"10.1016/j.entcs.2020.08.006","DOIUrl":"10.1016/j.entcs.2020.08.006","url":null,"abstract":"<div><p>It is well-known in the field of programming languages that dealing with variable names and binders may lead to conflicts such as undesired captures when implementing interpreters or compilers. This situation has been overcome by resorting to de Bruijn indices for calculi where binders capture only one variable name, like the <em>λ</em>-calculus. The advantage of this approach relies on the fact that so-called <em>α</em>-equivalence becomes syntactical equality when working with indices.</p><p>In recent years pattern calculi have gained considerable attention given their expressiveness. They turn out to be notoriously convenient to study the foundations of modern functional programming languages modeling features like pattern matching, path polymorphism, pattern polymorphism, etc. However, the literature falls short when it comes to dealing with <em>α</em>-conversion and binders capturing simultaneously several variable names. Such is the case of the <em>Pure Pattern Calculus</em> (<span>PPC</span>): a natural extension of <em>λ</em>-calculus that allows to abstract virtually any term.</p><p>This paper extends de Bruijn's ideas to properly overcome the multi-binding problem by introducing a novel presentation of <span>PPC</span> with bidimensional indices, in an effort to implement a prototype for a typed functional programming language based on <span>PPC</span> that captures path polymorphism.</p></div>","PeriodicalId":38770,"journal":{"name":"Electronic Notes in Theoretical Computer Science","volume":"351 ","pages":"Pages 95-113"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.entcs.2020.08.006","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134030210","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-09-15DOI: 10.1016/j.entcs.2020.08.005
Cecilia Manzino, Alberto Pardo
The analysis of information flow is a popular technique for ensuring the confidentiality of data. It is in this context that confidentiality policies arise for giving guarantees that private data cannot be inferred by the inspection of public data. One of those policies is non-interference, a semantic condition that ensures the absence of illicit information flow during program execution by not allowing to distinguish the results of two computations when they only vary in their confidential inputs. A remarkable feature of non-interference is that it can be enforced statically by the definition of information flow type systems. In those type systems, if a program type-checks, then it means that it meets the security policy.
In this paper we focus on the preservation of non-interference through program translation. Concretely, we formalize the proof of security preservation of Hunt and Sands' translation that transforms high-level While programs typable in a flow-sensitive type system into equivalent high-level programs typable in a flow-insensitive type system. Our formalization is performed in the dependently-typed language Agda. We use the expressive power of Agda's type system to encode the security type systems at the type level. A particular aspect of our formalization is that it follows a fully internalist approach where we decorate the type of the abstract syntax with security type information in order to obtain the representation of well-typed (i.e secure) programs. A benefit of this approach is that it allows us to directly express the property of security preservation in the type of the translation relation. In this manner, apart from inherently expressing the transformation of programs, the translation relation also stands for an inductive proof of security preservation.
{"title":"Agda Formalization of a Security-preserving Translation from Flow-sensitive to Flow-insensitive Security Types","authors":"Cecilia Manzino, Alberto Pardo","doi":"10.1016/j.entcs.2020.08.005","DOIUrl":"10.1016/j.entcs.2020.08.005","url":null,"abstract":"<div><p>The analysis of information flow is a popular technique for ensuring the confidentiality of data. It is in this context that confidentiality policies arise for giving guarantees that private data cannot be inferred by the inspection of public data. One of those policies is non-interference, a semantic condition that ensures the absence of illicit information flow during program execution by not allowing to distinguish the results of two computations when they only vary in their confidential inputs. A remarkable feature of non-interference is that it can be enforced statically by the definition of information flow type systems. In those type systems, if a program type-checks, then it means that it meets the security policy.</p><p>In this paper we focus on the preservation of non-interference through program translation. Concretely, we formalize the proof of security preservation of Hunt and Sands' translation that transforms high-level While programs typable in a flow-sensitive type system into equivalent high-level programs typable in a flow-insensitive type system. Our formalization is performed in the dependently-typed language Agda. We use the expressive power of Agda's type system to encode the security type systems at the type level. A particular aspect of our formalization is that it follows a fully internalist approach where we decorate the type of the abstract syntax with security type information in order to obtain the representation of well-typed (i.e secure) programs. A benefit of this approach is that it allows us to directly express the property of security preservation in the type of the translation relation. In this manner, apart from inherently expressing the transformation of programs, the translation relation also stands for an inductive proof of security preservation.</p></div>","PeriodicalId":38770,"journal":{"name":"Electronic Notes in Theoretical Computer Science","volume":"351 ","pages":"Pages 75-94"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.entcs.2020.08.005","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115273545","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-09-15DOI: 10.1016/j.entcs.2020.08.008
Carlos Olarte, Elaine Pimentel, Bruno Xavier
One of the most fundamental properties of a proof system is analyticity, expressing the fact that a proof of a given formula F only uses subformulas of F. In sequent calculus, this property is usually proved by showing that the cut rule is admissible, i.e., the introduction of the auxiliary lemma A in the reasoning “if A follows from B and C follows from A, then C follows from B” can be eliminated. Mathematically, this means that we can inline the intermediate step A to have a direct proof of C from the hypothesis B. More importantly, the proof of cut-elimination shows that the proof of C follows directly from the axiomatic theory and B (and no external lemmas are needed). The proof of cut-elimination is usually a tedious process through several proof transformations, thus requiring the assistance of (semi-)automatic procedures to avoid mistakes. In a previous work by Miller and Pimentel, linear logic (LL) was used as a logical framework for establishing sufficient conditions for cut-elimination of object logics (OL). The OL's inference rules were encoded as an LL theory and an easy-to-verify criterion sufficed to establish the cut-elimination theorem for the OL at hand. Using such procedure, analyticity of logical systems such as LK (classical logic), LJ (intuitionistic logic) and substructural logics such as MALL (multiplicative additive LL) was proved within the framework. However, there are many logical systems that cannot be adequately encoded in LL, the most symptomatic cases being sequent systems for modal logics. In this paper we use a linear-nested sequent (LNS) presentation of SLL (a variant of linear logic with subexponentials) and show that it is possible to establish a cut-elimination criterion for a larger class of logical systems, including LNS proof systems for K, 4, KT, KD, S4 and the multi-conclusion LNS system for intuitionistic logic (mLJ). Impressively enough, the sufficient conditions for cut-elimination presented here remain as simple as the one proposed by Miller and Pimentel. The key ingredient in our developments is the use of the right formalism: we adopt LNS based OL systems, instead of sequent ones. This not only provides a neat encoding procedure of OLs into SLL, but it also allows for the use of the meta-theory of SLL to establish fundamental meta-properties of the encoded OLs. We thus contribute with procedures for checking cut-elimination of several logical systems that are widely used in philosophy, mathematics and computer science.
{"title":"A Fresh View of Linear Logic as a Logical Framework","authors":"Carlos Olarte, Elaine Pimentel, Bruno Xavier","doi":"10.1016/j.entcs.2020.08.008","DOIUrl":"10.1016/j.entcs.2020.08.008","url":null,"abstract":"<div><p>One of the most fundamental properties of a proof system is <em>analyticity</em>, expressing the fact that a proof of a given formula <em>F</em> only uses subformulas of <em>F</em>. In sequent calculus, this property is usually proved by showing that the cut rule is admissible, <em>i.e</em>., the introduction of the auxiliary lemma <em>A</em> in the reasoning “if <em>A</em> follows from <em>B</em> and <em>C</em> follows from <em>A</em>, then <em>C</em> follows from <em>B</em>” can be eliminated. Mathematically, this means that we can inline the intermediate step <em>A</em> to have a direct proof of <em>C</em> from the hypothesis <em>B</em>. More importantly, the proof of cut-elimination shows that the proof of <em>C</em> follows directly from the axiomatic theory and <em>B</em> (and no external lemmas are needed). The proof of cut-elimination is usually a tedious process through several proof transformations, thus requiring the assistance of (semi-)automatic procedures to avoid mistakes. In a previous work by Miller and Pimentel, linear logic (<span>LL</span>) was used as a logical framework for establishing sufficient conditions for cut-elimination of object logics (OL). The OL's inference rules were encoded as an <span>LL</span> theory and an easy-to-verify criterion sufficed to establish the cut-elimination theorem for the OL at hand. Using such procedure, analyticity of logical systems such as <span>LK</span> (classical logic), <span>LJ</span> (intuitionistic logic) and substructural logics such as <span>MALL</span> (multiplicative additive <span>LL</span>) was proved within the framework. However, there are many logical systems that cannot be adequately encoded in <span>LL</span>, the most symptomatic cases being sequent systems for modal logics. In this paper we use a linear-nested sequent (<span>LNS</span>) presentation of <span>SLL</span> (a variant of linear logic with subexponentials) and show that it is possible to establish a cut-elimination criterion for a larger class of logical systems, including <span>LNS</span> proof systems for <span>K</span>, <span>4</span>, <span>KT</span>, <span>KD</span>, <span>S4</span> and the multi-conclusion <span>LNS</span> system for intuitionistic logic (<span>mLJ</span>). Impressively enough, the sufficient conditions for cut-elimination presented here remain as simple as the one proposed by Miller and Pimentel. The key ingredient in our developments is the use of the right formalism: we adopt <span>LNS</span> based OL systems, instead of sequent ones. This not only provides a neat encoding procedure of OLs into <span>SLL</span>, but it also allows for the use of the meta-theory of <span>SLL</span> to establish fundamental meta-properties of the encoded OLs. We thus contribute with procedures for checking cut-elimination of several logical systems that are widely used in philosophy, mathematics and computer science.</p></div>","PeriodicalId":38770,"journal":{"name":"Electronic Notes in Theoretical Computer Science","volume":"351 ","pages":"Pages 143-165"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.entcs.2020.08.008","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131318503","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-09-15DOI: 10.1016/j.entcs.2020.08.004
Susannah Mansky , Elsa L. Gunter
Regression Test Selection (RTS) algorithms select which tests to rerun on revised code, reducing the time required to check for newly introduced errors. An RTS algorithm is considered safe if and only if all deselected tests would have unchanged results. In this paper, we present a formal proof of safety of an RTS algorithm based on that used by Ekstazi [Gligoric, M., L. Eloussi and D. Marinov, Practical regression test selection with dynamic file dependencies, in: Proceedings of the 2015 International Symposium on Software Testing and Analysis, ISSTA 2015 (2015), p. 211–222. URL https://doi.org/10.1145/2771783.2771784], a Java library for regression testing. Ekstazi's algorithm adds print statements to JVM code in order to collect the names of classes used by a test during its execution on a program. When the program is changed, tests are only rerun if a class they used changed. The main insight in their algorithm is that not all uses of classes must be noted, as many necessarily require previous uses, such as when using an object previously created. The algorithm we formally define and prove safe here uses an instrumented semantics to collect touched classes in an even smaller set of locations. We identify problems with Ekstazi's current collection location set that make it not safe, then present a modified set that will make it equivalent to our safe set. The theorems given in this paper have been formalized in the theorem prover Isabelle over JinjaDCI [Mansky, S. and E. L. Gunter, Dynamic class initialization semantics: A jinja extension, in: Proceedings of the 8th ACM SIGPLAN International Conference on Certified Programs and Proofs, CPP 2019 (2019), p. 209–221. URL https://doi.org/10.1145/3293880.3294104], a semantics for a subset of Java and JVM including dynamic class initialization and static field and methods. We instrumented JinjaDCI's JVM semantics by giving a general definition for Collection Semantics, small-step semantics instrumented to collect information during execution. We also give a formal general definition of RTS algorithms, including a definition of safety.
回归测试选择(RTS)算法选择在修改后的代码上重新运行哪些测试,从而减少检查新引入的错误所需的时间。当且仅当所有取消选择的测试结果不变时,RTS算法被认为是安全的。在本文中,我们提出了基于Ekstazi [Gligoric, M., L. Eloussi和D. Marinov]使用的RTS算法的安全性的正式证明,动态文件依赖性的实际回归测试选择,见:2015年软件测试与分析国际研讨会论文集,ISSTA 2015(2015),第211-222页。URL https://doi.org/10.1145/2771783.2771784],一个用于回归测试的Java库。Ekstazi的算法将print语句添加到JVM代码中,以便收集测试在程序上执行期间使用的类的名称。当程序发生更改时,只有当测试使用的类发生更改时,测试才会重新运行。他们的算法的主要观点是,并不是所有类的使用都必须被记录,因为许多类必须需要以前的使用,比如使用以前创建的对象。我们在这里正式定义并证明安全的算法使用工具化语义在更小的位置集合中收集触摸类。我们找出Ekstazi当前的收集位置集存在的问题,使其不安全,然后提出一个修改后的集合,使其等同于我们的安全集。本文所给出的定理在定理证明者Isabelle over JinjaDCI中得到了形式化[Mansky, S. and E. L. Gunter,动态类初始化语义:一个jinja扩展,第8届ACM SIGPLAN国际认证程序与证明会议论文集,CPP 2019 (2019), p. 209-221]。URL https://doi.org/10.1145/3293880.3294104], Java和JVM子集的语义,包括动态类初始化和静态字段和方法。我们通过给出集合语义(Collection semantics)的通用定义来检测JinjaDCI的JVM语义,小步骤语义用于在执行期间收集信息。我们还给出了RTS算法的正式一般定义,包括安全性的定义。
{"title":"Safety of a Smart Classes-Used Regression Test Selection Algorithm","authors":"Susannah Mansky , Elsa L. Gunter","doi":"10.1016/j.entcs.2020.08.004","DOIUrl":"10.1016/j.entcs.2020.08.004","url":null,"abstract":"<div><p>Regression Test Selection (RTS) algorithms select which tests to rerun on revised code, reducing the time required to check for newly introduced errors. An RTS algorithm is considered safe if and only if all deselected tests would have unchanged results. In this paper, we present a formal proof of safety of an RTS algorithm based on that used by Ekstazi [Gligoric, M., L. Eloussi and D. Marinov, <em>Practical regression test selection with dynamic file dependencies</em>, in: <em>Proceedings of the 2015 International Symposium on Software Testing and Analysis</em>, ISSTA 2015 (2015), p. 211–222. URL <span>https://doi.org/10.1145/2771783.2771784</span><svg><path></path></svg>], a Java library for regression testing. Ekstazi's algorithm adds print statements to JVM code in order to collect the names of classes used by a test during its execution on a program. When the program is changed, tests are only rerun if a class they used changed. The main insight in their algorithm is that not all uses of classes must be noted, as many necessarily require previous uses, such as when using an object previously created. The algorithm we formally define and prove safe here uses an instrumented semantics to collect touched classes in an even smaller set of locations. We identify problems with Ekstazi's current collection location set that make it not safe, then present a modified set that will make it equivalent to our safe set. The theorems given in this paper have been formalized in the theorem prover Isabelle over JinjaDCI [Mansky, S. and E. L. Gunter, <em>Dynamic class initialization semantics: A jinja extension</em>, in: <em>Proceedings of the 8th ACM SIGPLAN International Conference on Certified Programs and Proofs</em>, CPP 2019 (2019), p. 209–221. URL <span>https://doi.org/10.1145/3293880.3294104</span><svg><path></path></svg>], a semantics for a subset of Java and JVM including dynamic class initialization and static field and methods. We instrumented JinjaDCI's JVM semantics by giving a general definition for Collection Semantics, small-step semantics instrumented to collect information during execution. We also give a formal general definition of RTS algorithms, including a definition of safety.</p></div>","PeriodicalId":38770,"journal":{"name":"Electronic Notes in Theoretical Computer Science","volume":"351 ","pages":"Pages 51-73"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.entcs.2020.08.004","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120947264","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-09-15DOI: 10.1016/j.entcs.2020.08.010
Sebastián Urciuoli , Álvaro Tasistro, Nora Szasz
We consider a pre-existing formalization in Constructive Type Theory of the pure Lambda Calculus in its presentation in first order syntax with only one sort of names and alpha-conversion based upon multiple substitution, as well as of the system of assignment of simple types to terms. On top of it, we formalize a slick proof of strong normalization given by Joachimski and Matthes whose main lemma proceeds by complete induction on types and subordinate induction on a characterization of the strongly normalizing terms which is in turn proven sound with respect to their direct definition as the accessible part of the relation of one-step beta reduction. The proof of strong normalization itself is thereby allowed to consist just of a direct induction on the type system. The whole development has been machine-checked using the system Agda. We assess merits and drawbacks of the approach.
{"title":"Strong Normalization for the Simply-Typed Lambda Calculus in Constructive Type Theory Using Agda","authors":"Sebastián Urciuoli , Álvaro Tasistro, Nora Szasz","doi":"10.1016/j.entcs.2020.08.010","DOIUrl":"10.1016/j.entcs.2020.08.010","url":null,"abstract":"<div><p>We consider a pre-existing formalization in Constructive Type Theory of the pure Lambda Calculus in its presentation in first order syntax with only one sort of names and alpha-conversion based upon multiple substitution, as well as of the system of assignment of simple types to terms. On top of it, we formalize a slick proof of strong normalization given by Joachimski and Matthes whose main lemma proceeds by complete induction on types and subordinate induction on a characterization of the strongly normalizing terms which is in turn proven sound with respect to their direct definition as the accessible part of the relation of one-step beta reduction. The proof of strong normalization itself is thereby allowed to consist just of a direct induction on the type system. The whole development has been machine-checked using the system Agda. We assess merits and drawbacks of the approach.</p></div>","PeriodicalId":38770,"journal":{"name":"Electronic Notes in Theoretical Computer Science","volume":"351 ","pages":"Pages 187-203"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.entcs.2020.08.010","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124089064","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Pub Date : 2020-09-15DOI: 10.1016/j.entcs.2020.08.002
Sandra Alves, Maribel Fernández, Miguel Ramos
We define EVL, a minimal higher-order functional language for dealing with generic events. The notion of generic event extends the well-known notion of event traditionally used in a variety of areas, such as database management, concurrency, reactive systems and cybersecurity. Generic events were introduced in the context of a metamodel to deal with obligations in access control systems. Event specifications are represented as records and we use polymorphic record types to type events in our language. We show how the higher-order capabilities of EVL can be used in the context of Complex Event Processing (CEP), to define higher-order parameterised functions that deal with the usual CEP techniques.
{"title":"EVL: A Typed Higher-order Functional Language for Events","authors":"Sandra Alves, Maribel Fernández, Miguel Ramos","doi":"10.1016/j.entcs.2020.08.002","DOIUrl":"10.1016/j.entcs.2020.08.002","url":null,"abstract":"<div><p>We define EVL, a minimal higher-order functional language for dealing with generic events. The notion of generic event extends the well-known notion of event traditionally used in a variety of areas, such as database management, concurrency, reactive systems and cybersecurity. Generic events were introduced in the context of a metamodel to deal with obligations in access control systems. Event specifications are represented as records and we use polymorphic record types to type events in our language. We show how the higher-order capabilities of EVL can be used in the context of Complex Event Processing (CEP), to define higher-order parameterised functions that deal with the usual CEP techniques.</p></div>","PeriodicalId":38770,"journal":{"name":"Electronic Notes in Theoretical Computer Science","volume":"351 ","pages":"Pages 3-23"},"PeriodicalIF":0.0,"publicationDate":"2020-09-15","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/j.entcs.2020.08.002","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128031288","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"OA","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}