{"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}
{"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}
{"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}
{"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}
{"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}
{"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}
{"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}
{"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}
{"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}
{"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}