首页 > 最新文献

Formal Aspects of Computing最新文献

英文 中文
JMLKelinci+: Detecting Semantic Bugs and Covering Branches with Valid Inputs using Coverage-Guided Fuzzing and Runtime Assertion Checking JMLKelinci+:使用覆盖率引导模糊测试和运行时断言检查检测语义错误并覆盖具有有效输入的分支
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-08-05 DOI: 10.1145/3607538
Amirfarhad Nilizadeh, Gary T. Leavens, C. Pasareanu, Yannic Noller
Testing to detect semantic bugs is essential, especially for critical systems. Coverage-guided fuzzing (CGF) and runtime assertion checking (RAC) are two well-known approaches for detecting semantic bugs. CGF aims to generate test inputs with high code coverage. However, while CGF tools can be equipped with sanitizers to detect a fixed set of semantic bugs, they can otherwise only detect bugs that lead to a crash. Thus, the first problem we address is how to help fuzzers detect previously unknown semantic bugs that do not lead to a crash. Moreover, a CGF tool may not necessarily cover all branches with valid inputs, although invalid inputs are useless for detecting semantic bugs. So, the second problem is how to guide a fuzzer to maximize coverage using only valid inputs. On the other hand, RAC monitors the expected behavior of a program dynamically and can only detect a semantic bug when a valid test input shows that the program does not satisfy its specification. Thus, the third problem is how to provide high-quality test inputs for a RAC that can trigger potential bugs. The combination of a CGF tool and RAC solves these problems and can cover branches with valid inputs and detect semantic bugs effectively. Our study uses RAC to guarantee that only valid inputs reach the program under test using the program’s specified preconditions and it also uses RAC to detect semantic bugs using specified postconditions. A prototype tool was developed for this study, named JMLKelinci+. Our results show that combining a CGF tool with RAC will lead to executing the program under test only with valid inputs and that this technique can effectively detect semantic bugs. Also, this idea improves the feedback given to a CGF tool, enabling it to cover all branches faster in programs with non-trivial preconditions.
检测语义错误的测试是必不可少的,特别是对于关键系统。覆盖率引导的模糊测试(CGF)和运行时断言检查(RAC)是检测语义错误的两种众所周知的方法。CGF旨在生成具有高代码覆盖率的测试输入。然而,尽管CGF工具可以配备杀菌器来检测一组固定的语义错误,但它们只能检测导致崩溃的错误。因此,我们要解决的第一个问题是如何帮助fuzzers检测以前未知的语义错误,而不会导致崩溃。此外,CGF工具不一定覆盖所有具有有效输入的分支,尽管无效输入对于检测语义错误是无用的。所以,第二个问题是如何引导模糊器只使用有效的输入来最大化覆盖范围。另一方面,RAC动态地监视程序的预期行为,并且只能在有效的测试输入显示程序不满足其规范时检测语义错误。因此,第三个问题是如何为可能触发潜在错误的RAC提供高质量的测试输入。CGF工具和RAC的组合解决了这些问题,可以用有效的输入覆盖分支,并有效地检测语义错误。我们的研究使用RAC来保证只有有效的输入才能使用程序指定的前提条件到达被测程序,它还使用RAC来检测使用指定后置条件的语义错误。为此研究开发了一个原型工具,命名为JMLKelinci+。我们的结果表明,将CGF工具与RAC相结合将导致仅使用有效输入执行被测程序,并且该技术可以有效地检测语义错误。此外,这个想法改进了给予CGF工具的反馈,使它能够在具有重要前提条件的程序中更快地覆盖所有分支。
{"title":"JMLKelinci+: Detecting Semantic Bugs and Covering Branches with Valid Inputs using Coverage-Guided Fuzzing and Runtime Assertion Checking","authors":"Amirfarhad Nilizadeh, Gary T. Leavens, C. Pasareanu, Yannic Noller","doi":"10.1145/3607538","DOIUrl":"https://doi.org/10.1145/3607538","url":null,"abstract":"Testing to detect semantic bugs is essential, especially for critical systems. Coverage-guided fuzzing (CGF) and runtime assertion checking (RAC) are two well-known approaches for detecting semantic bugs. CGF aims to generate test inputs with high code coverage. However, while CGF tools can be equipped with sanitizers to detect a fixed set of semantic bugs, they can otherwise only detect bugs that lead to a crash. Thus, the first problem we address is how to help fuzzers detect previously unknown semantic bugs that do not lead to a crash. Moreover, a CGF tool may not necessarily cover all branches with valid inputs, although invalid inputs are useless for detecting semantic bugs. So, the second problem is how to guide a fuzzer to maximize coverage using only valid inputs. On the other hand, RAC monitors the expected behavior of a program dynamically and can only detect a semantic bug when a valid test input shows that the program does not satisfy its specification. Thus, the third problem is how to provide high-quality test inputs for a RAC that can trigger potential bugs. The combination of a CGF tool and RAC solves these problems and can cover branches with valid inputs and detect semantic bugs effectively. Our study uses RAC to guarantee that only valid inputs reach the program under test using the program’s specified preconditions and it also uses RAC to detect semantic bugs using specified postconditions. A prototype tool was developed for this study, named JMLKelinci+. Our results show that combining a CGF tool with RAC will lead to executing the program under test only with valid inputs and that this technique can effectively detect semantic bugs. Also, this idea improves the feedback given to a CGF tool, enabling it to cover all branches faster in programs with non-trivial preconditions.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"1 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-08-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"41602782","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
Sound Runtime Assertion Checking for Memory Properties via Program Transformation 声音运行时断言检查内存属性通过程序转换
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-07-31 DOI: 10.1145/3605951
Dara Ly, N. Kosmatov, F. Loulergue, Julien Signoles
Runtime Assertion Checking (RAC) for expressive specification languages is a non-trivial verification task, that becomes even more complex for memory-related properties of imperative languages with dynamic memory allocation. It is important to ensure the soundness of RAC verdicts, in particular when RAC reports the absence of failures for execution traces. This paper presents a formalization of a program transformation technique for RAC of memory properties for a representative language with pointers and memory operations, including dynamic allocation and deallocation. The generated program instrumentation relies on an axiomatized observation memory model, which is essential to record and monitor memory-related properties. We prove the soundness of RAC verdicts with regard to the semantics of this language.
用于表达性规范语言的运行时断言检查(RAC)是一项重要的验证任务,对于具有动态内存分配的命令式语言的内存相关属性来说,这一任务变得更加复杂。确保RAC判决的正确性非常重要,特别是当RAC报告执行跟踪中没有失败时。本文提出了一种具有指针和内存操作(包括动态分配和动态释放)的典型语言的内存属性RAC的程序转换技术的形式化。生成的程序检测依赖于公理化的观察内存模型,该模型对于记录和监视与内存相关的属性至关重要。我们证明了RAC结论关于这种语言的语义的正确性。
{"title":"Sound Runtime Assertion Checking for Memory Properties via Program Transformation","authors":"Dara Ly, N. Kosmatov, F. Loulergue, Julien Signoles","doi":"10.1145/3605951","DOIUrl":"https://doi.org/10.1145/3605951","url":null,"abstract":"Runtime Assertion Checking (RAC) for expressive specification languages is a non-trivial verification task, that becomes even more complex for memory-related properties of imperative languages with dynamic memory allocation. It is important to ensure the soundness of RAC verdicts, in particular when RAC reports the absence of failures for execution traces. This paper presents a formalization of a program transformation technique for RAC of memory properties for a representative language with pointers and memory operations, including dynamic allocation and deallocation. The generated program instrumentation relies on an axiomatized observation memory model, which is essential to record and monitor memory-related properties. We prove the soundness of RAC verdicts with regard to the semantics of this language.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":" ","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-07-31","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"47744857","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Multi-objective ω-Regular Reinforcement Learning 多目标ω-常规强化学习
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-07-18 DOI: https://dl.acm.org/doi/10.1145/3605950
Ernst Moritz Hahn, Mateo Perez, Sven Schewe, Fabio Somenzi, Ashutosh Trivedi, Dominik Wojtczak

The expanding role of reinforcement learning (RL) in safety-critical system design has promoted ω-automata as a way to express learning requirements—often non-Markovian—with greater ease of expression and interpretation than scalar reward signals. However, real-world sequential decision making situations often involve multiple, potentially conflicting, objectives. Two dominant approaches to express relative preferences over multiple objectives are: (1) weighted preference, where the decision maker provides scalar weights for various objectives, and (2) lexicographic preference, where the decision maker provides an order over the objectives such that any amount of satisfaction of a higher-ordered objective is preferable to any amount of a lower-ordered one. In this article, we study and develop RL algorithms to compute optimal strategies in Markov decision processes against multiple ω-regular objectives under weighted and lexicographic preferences. We provide a translation from multiple ω-regular objectives to a scalar reward signal that is both faithful (maximising reward means maximising probability of achieving the objectives under the corresponding preference) and effective (RL quickly converges to optimal strategies). We have implemented the translations in a formal reinforcement learning tool, Mungojerrie, and we present an experimental evaluation of our technique on benchmark learning problems.

强化学习(RL)在安全关键型系统设计中的作用不断扩大,使得ω-自动机成为一种表达学习需求的方式——通常是非马尔科夫的——比标量奖励信号更容易表达和解释。然而,现实世界的顺序决策通常涉及多个潜在冲突的目标。在多个目标上表达相对偏好的两种主要方法是:(1)加权偏好,其中决策者为各种目标提供标量权重;(2)字典偏好,其中决策者提供目标的顺序,以便任何数量的高阶目标的满足都优于任何数量的低阶目标。在本文中,我们研究和开发了RL算法,用于在加权和字典偏好下针对多个ω-正则目标计算马尔可夫决策过程中的最优策略。我们提供了从多个正则目标到标量奖励信号的转换,该信号既忠实(奖励最大化意味着在相应偏好下实现目标的概率最大化)又有效(强化学习快速收敛到最优策略)。我们已经在正式的强化学习工具Mungojerrie中实现了翻译,并在基准学习问题上对我们的技术进行了实验评估。
{"title":"Multi-objective ω-Regular Reinforcement Learning","authors":"Ernst Moritz Hahn, Mateo Perez, Sven Schewe, Fabio Somenzi, Ashutosh Trivedi, Dominik Wojtczak","doi":"https://dl.acm.org/doi/10.1145/3605950","DOIUrl":"https://doi.org/https://dl.acm.org/doi/10.1145/3605950","url":null,"abstract":"<p>The expanding role of reinforcement learning (RL) in safety-critical system design has promoted ω-automata as a way to express learning requirements—often non-Markovian—with greater ease of expression and interpretation than scalar reward signals. However, real-world sequential decision making situations often involve multiple, potentially conflicting, objectives. Two dominant approaches to express relative preferences over multiple objectives are: (1) <i>weighted preference</i>, where the decision maker provides scalar weights for various objectives, and (2) <i>lexicographic preference</i>, where the decision maker provides an order over the objectives such that any amount of satisfaction of a higher-ordered objective is preferable to any amount of a lower-ordered one. In this article, we study and develop RL algorithms to compute optimal strategies in Markov decision processes against multiple ω-regular objectives under weighted and lexicographic preferences. We provide a translation from multiple ω-regular objectives to a scalar reward signal that is both <i>faithful</i> (maximising reward means maximising probability of achieving the objectives under the corresponding preference) and <i>effective</i> (RL quickly converges to optimal strategies). We have implemented the translations in a formal reinforcement learning tool, <span>Mungojerrie</span>, and we present an experimental evaluation of our technique on benchmark learning problems.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"23 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-07-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138517764","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Towards Verifying Cooperatively-Scheduled Runtimes using CSP 迈向使用CSP验证协同计划运行时
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-07-12 DOI: https://dl.acm.org/doi/10.1145/3605942
Jan Bækgaard Pedersen, Kevin Chalmers

In this paper we present the novel verification of synchronous channel communication and channel alternation (choice) by considering the environment within which our primitives are executing. Our work is in exploring development of a multi-threaded scheduler for a cooperatively scheduled process-oriented language, ProcessJ. We use CSP to produce formal specifications for the implementation of the various parts of the language runtime (scheduler, runtime components, and generated code). We use established CSP specifications that model channel communication and choice as well as the formal verification tool FDR to formally prove that the implementations are correct and behave as expected, when executed by our scheduler (the execution environment). Our approach is novel and not seen in similar research, because we consider the behaviour of the systems we examine under the restrictions imposed by an execution environment (e.g., a runtime system, a scheduler, an operating system, etc.) and show that even with such restrictions the channel communication and alternation work. More specifically, we show correctness when a system is executed by the ProcessJ cooperative scheduler. The main contributions of this work are in the models defined and method undertaken to verify cooperatively channel communication and choice.

在本文中,我们通过考虑原语执行的环境,提出了同步信道通信和信道交替(选择)的新验证方法。我们的工作是探索为协作调度的面向进程语言ProcessJ开发多线程调度器。我们使用CSP为语言运行时的各个部分(调度程序、运行时组件和生成的代码)的实现生成正式规范。我们使用已建立的CSP规范来对通道通信和选择进行建模,并使用正式的验证工具FDR来正式证明,当我们的调度程序(执行环境)执行时,实现是正确的,并且按照预期的方式运行。我们的方法是新颖的,在类似的研究中没有见过,因为我们考虑了我们在执行环境(例如,运行时系统,调度程序,操作系统等)施加的限制下检查的系统的行为,并表明即使有这样的限制,通道通信和交替工作。更具体地说,我们将在ProcessJ协作调度器执行系统时显示正确性。这项工作的主要贡献在于定义的模型和采用的方法来验证合作渠道的沟通和选择。
{"title":"Towards Verifying Cooperatively-Scheduled Runtimes using CSP","authors":"Jan Bækgaard Pedersen, Kevin Chalmers","doi":"https://dl.acm.org/doi/10.1145/3605942","DOIUrl":"https://doi.org/https://dl.acm.org/doi/10.1145/3605942","url":null,"abstract":"<p>In this paper we present the novel verification of synchronous channel communication and channel alternation (choice) by considering the environment within which our primitives are executing. Our work is in exploring development of a multi-threaded scheduler for a cooperatively scheduled process-oriented language, ProcessJ. We use CSP to produce formal specifications for the implementation of the various parts of the language runtime (scheduler, runtime components, and generated code). We use established CSP specifications that model channel communication and choice as well as the formal verification tool FDR to formally prove that the implementations are correct and behave as expected, when executed by our scheduler (the execution environment). Our approach is novel and not seen in similar research, because we consider the behaviour of the systems we examine under the restrictions imposed by an execution environment (e.g., a runtime system, a scheduler, an operating system, etc.) and show that even with such restrictions the channel communication and alternation work. More specifically, we show correctness when a system is executed by the ProcessJ cooperative scheduler. The main contributions of this work are in the models defined and method undertaken to verify cooperatively channel communication and choice.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"3 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138517745","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Towards Verifying Cooperatively-Scheduled Runtimes using CSP 使用CSP验证协同调度运行时间
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-07-12 DOI: 10.1145/3605942
J. Pedersen, K. Chalmers
In this paper we present the novel verification of synchronous channel communication and channel alternation (choice) by considering the environment within which our primitives are executing. Our work is in exploring development of a multi-threaded scheduler for a cooperatively scheduled process-oriented language, ProcessJ. We use CSP to produce formal specifications for the implementation of the various parts of the language runtime (scheduler, runtime components, and generated code). We use established CSP specifications that model channel communication and choice as well as the formal verification tool FDR to formally prove that the implementations are correct and behave as expected, when executed by our scheduler (the execution environment). Our approach is novel and not seen in similar research, because we consider the behaviour of the systems we examine under the restrictions imposed by an execution environment (e.g., a runtime system, a scheduler, an operating system, etc.) and show that even with such restrictions the channel communication and alternation work. More specifically, we show correctness when a system is executed by the ProcessJ cooperative scheduler. The main contributions of this work are in the models defined and method undertaken to verify cooperatively channel communication and choice.
在本文中,我们通过考虑原语执行的环境,提出了同步信道通信和信道交替(选择)的新验证。我们的工作是探索为协作调度的面向进程的语言ProcessJ开发多线程调度器。我们使用CSP为语言运行时的各个部分(调度程序、运行时组件和生成的代码)的实现生成正式规范。我们使用已建立的对信道通信和选择进行建模的CSP规范,以及正式的验证工具FDR,以正式证明实现是正确的,并且在由我们的调度器(执行环境)执行时表现如预期。我们的方法是新颖的,在类似的研究中没有看到,因为我们考虑了我们检查的系统在执行环境(例如,运行时系统、调度器、操作系统等)施加的限制下的行为,并表明即使有这样的限制,信道通信和交替也能工作。更具体地说,我们展示了由ProcessJ协作调度器执行系统时的正确性。这项工作的主要贡献在于定义了验证合作渠道沟通和选择的模型和方法。
{"title":"Towards Verifying Cooperatively-Scheduled Runtimes using CSP","authors":"J. Pedersen, K. Chalmers","doi":"10.1145/3605942","DOIUrl":"https://doi.org/10.1145/3605942","url":null,"abstract":"In this paper we present the novel verification of synchronous channel communication and channel alternation (choice) by considering the environment within which our primitives are executing. Our work is in exploring development of a multi-threaded scheduler for a cooperatively scheduled process-oriented language, ProcessJ. We use CSP to produce formal specifications for the implementation of the various parts of the language runtime (scheduler, runtime components, and generated code). We use established CSP specifications that model channel communication and choice as well as the formal verification tool FDR to formally prove that the implementations are correct and behave as expected, when executed by our scheduler (the execution environment). Our approach is novel and not seen in similar research, because we consider the behaviour of the systems we examine under the restrictions imposed by an execution environment (e.g., a runtime system, a scheduler, an operating system, etc.) and show that even with such restrictions the channel communication and alternation work. More specifically, we show correctness when a system is executed by the ProcessJ cooperative scheduler. The main contributions of this work are in the models defined and method undertaken to verify cooperatively channel communication and choice.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":" ","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-07-12","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"49136051","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Explanatory Denotational Semantics for Complex Event Patterns 复杂事件模式的解释性指称语义
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-07-10 DOI: 10.1145/3608486
B. Zielinski
Recent years brought popularity and importance of complex event processing (CEP) and associated query languages. CEP systems can be hard to understand. It is often non-trivial to determine streams of events matched by a query, and sometimes we may not notice important edge cases. Hence, the desirability of formal semantics permitting reasoning about resulting complex events and checking if actual matchings agree with our intentions follows. In the paper we introduce a pattern language ({sl PatLang} ) with some unique syntactic features related to variable binding. We provide two distinct denotational semantics for ({sl PatLang} ) : Minimal semantics, sufficient to describe when patterns match, and tree semantics, which provides detailed information about subpatterns with which the matched events actually match, i.e., information about interpretation of matched events induced by the pattern matching. The tree semantics is unnecessary for verifying correctness of pattern matching execution. However, we show that neither minimal semantics, nor semantics from the prior work suffices to effectively locate errors in patterns with respect to their intended meaning, and that the additional information provided by the tree semantics is crucial for that purpose. We prove that tree semantics can be mapped to minimal semantics. Finally, we provide some practical evaluation.
近年来,复杂事件处理(CEP)和相关查询语言变得越来越流行和重要。CEP系统可能很难理解。确定查询匹配的事件流通常是不平凡的,有时我们可能没有注意到重要的边缘情况。因此,允许对由此产生的复杂事件进行推理并检查实际匹配是否符合我们的意图的形式语义的可取性随之而来。在本文中,我们介绍了一种模式语言({sl PatLang}),它具有与变量绑定有关的一些独特的句法特征。我们为({sl PatLang})提供了两种不同的指称语义:最小语义,足以描述模式何时匹配;树语义,提供关于匹配事件实际匹配的子模式的详细信息,即关于由模式匹配引起的匹配事件的解释的信息。树语义对于验证模式匹配执行的正确性是不必要的。然而,我们表明,无论是最小语义,还是来自先前工作的语义,都不足以有效地定位模式中关于其预期含义的错误,并且树语义提供的额外信息对于这一目的至关重要。我们证明了树语义可以映射到最小语义。最后,我们给出了一些实用的评价。
{"title":"Explanatory Denotational Semantics for Complex Event Patterns","authors":"B. Zielinski","doi":"10.1145/3608486","DOIUrl":"https://doi.org/10.1145/3608486","url":null,"abstract":"Recent years brought popularity and importance of complex event processing (CEP) and associated query languages. CEP systems can be hard to understand. It is often non-trivial to determine streams of events matched by a query, and sometimes we may not notice important edge cases. Hence, the desirability of formal semantics permitting reasoning about resulting complex events and checking if actual matchings agree with our intentions follows. In the paper we introduce a pattern language ({sl PatLang} ) with some unique syntactic features related to variable binding. We provide two distinct denotational semantics for ({sl PatLang} ) : Minimal semantics, sufficient to describe when patterns match, and tree semantics, which provides detailed information about subpatterns with which the matched events actually match, i.e., information about interpretation of matched events induced by the pattern matching. The tree semantics is unnecessary for verifying correctness of pattern matching execution. However, we show that neither minimal semantics, nor semantics from the prior work suffices to effectively locate errors in patterns with respect to their intended meaning, and that the additional information provided by the tree semantics is crucial for that purpose. We prove that tree semantics can be mapped to minimal semantics. Finally, we provide some practical evaluation.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":" ","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-07-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"48491183","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Explanatory Denotational Semantics for Complex Event Patterns 复杂事件模式的解释性指称语义
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-07-10 DOI: https://dl.acm.org/doi/10.1145/3608486
Bartosz Zieliński

Recent years brought popularity and importance of complex event processing (CEP) and associated query languages. CEP systems can be hard to understand. It is often non-trivial to determine streams of events matched by a query, and sometimes we may not notice important edge cases. Hence, the desirability of formal semantics permitting reasoning about resulting complex events and checking if actual matchings agree with our intentions follows. In the paper we introduce a pattern language ({sl PatLang} ) with some unique syntactic features related to variable binding. We provide two distinct denotational semantics for ({sl PatLang} ): Minimal semantics, sufficient to describe when patterns match, and tree semantics, which provides detailed information about subpatterns with which the matched events actually match, i.e., information about interpretation of matched events induced by the pattern matching. The tree semantics is unnecessary for verifying correctness of pattern matching execution. However, we show that neither minimal semantics, nor semantics from the prior work suffices to effectively locate errors in patterns with respect to their intended meaning, and that the additional information provided by the tree semantics is crucial for that purpose. We prove that tree semantics can be mapped to minimal semantics. Finally, we provide some practical evaluation.

近年来,复杂事件处理(CEP)及其相关查询语言得到了广泛的关注和重视。CEP系统可能很难理解。确定与查询匹配的事件流通常是非常重要的,有时我们可能不会注意到重要的边缘情况。因此,形式语义的可取性允许对产生的复杂事件进行推理,并检查实际匹配是否符合我们的意图。本文介绍了一种模式语言({sl PatLang} ),它具有一些与变量绑定相关的独特语法特征。我们为({sl PatLang} )提供了两种不同的指称语义:最小语义,足以描述模式何时匹配;树语义,提供关于匹配事件实际匹配的子模式的详细信息,即关于由模式匹配引起的匹配事件的解释的信息。树语义对于验证模式匹配执行的正确性是不必要的。然而,我们表明,无论是最小语义还是先前工作的语义都不足以有效地根据模式的预期含义定位模式中的错误,并且树语义提供的附加信息对于该目的至关重要。我们证明了树语义可以映射到最小语义。最后,给出了一些实用的评价。
{"title":"Explanatory Denotational Semantics for Complex Event Patterns","authors":"Bartosz Zieliński","doi":"https://dl.acm.org/doi/10.1145/3608486","DOIUrl":"https://doi.org/https://dl.acm.org/doi/10.1145/3608486","url":null,"abstract":"<p>Recent years brought popularity and importance of complex event processing (CEP) and associated query languages. CEP systems can be hard to understand. It is often non-trivial to determine streams of events matched by a query, and sometimes we may not notice important edge cases. Hence, the desirability of formal semantics permitting reasoning about resulting complex events and checking if actual matchings agree with our intentions follows. In the paper we introduce a pattern language ({sl PatLang} ) with some unique syntactic features related to variable binding. We provide two distinct denotational semantics for ({sl PatLang} ): <i>Minimal semantics</i>, sufficient to describe when patterns match, and <i>tree semantics</i>, which provides detailed information about subpatterns with which the matched events actually match, i.e., information about interpretation of matched events induced by the pattern matching. The tree semantics is unnecessary for verifying correctness of pattern matching execution. However, we show that neither minimal semantics, nor semantics from the prior work suffices to effectively locate errors in patterns with respect to their intended meaning, and that the additional information provided by the tree semantics is crucial for that purpose. We prove that tree semantics can be mapped to minimal semantics. Finally, we provide some practical evaluation.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"6 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-07-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138517747","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Multi-objective ω-Regular Reinforcement Learning 多目标ω-规则强化学习
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-06-26 DOI: 10.1145/3605950
E. M. Hahn, Mateo Perez, S. Schewe, F. Somenzi, Ashutosh Trivedi, D. Wojtczak
The expanding role of reinforcement learning (RL) in safety-critical system design has promoted ω-automata as a way to express learning requirements—often non-Markovian—with greater ease of expression and interpretation than scalar reward signals. However, real-world sequential decision making situations often involve multiple, potentially conflicting, objectives. Two dominant approaches to express relative preferences over multiple objectives are: (1) weighted preference, where the decision maker provides scalar weights for various objectives, and (2) lexicographic preference, where the decision maker provides an order over the objectives such that any amount of satisfaction of a higher-ordered objective is preferable to any amount of a lower-ordered one. In this article, we study and develop RL algorithms to compute optimal strategies in Markov decision processes against multiple ω-regular objectives under weighted and lexicographic preferences. We provide a translation from multiple ω-regular objectives to a scalar reward signal that is both faithful (maximising reward means maximising probability of achieving the objectives under the corresponding preference) and effective (RL quickly converges to optimal strategies). We have implemented the translations in a formal reinforcement learning tool, Mungojerrie, and we present an experimental evaluation of our technique on benchmark learning problems.
强化学习(RL)在安全关键系统设计中的作用不断扩大,促使ω-自动机成为一种表达学习需求的方式——通常是非马尔可夫的——比标量奖励信号更容易表达和解释。然而,现实世界中的顺序决策情况往往涉及多个潜在冲突的目标。表达对多个目标的相对偏好的两种主要方法是:(1)加权偏好,其中决策者为各种目标提供标量权重;(2)词典偏好,其中决策者提供对目标的排序,使得较高排序目标的任何数量的满足比较低排序目标的任意数量的满足更可取。在本文中,我们研究并开发了RL算法,以在加权和字典偏好下计算马尔可夫决策过程中针对多个ω-正则目标的最优策略。我们提供了从多个ω-正则目标到标量奖励信号的转换,该信号既忠实(最大化奖励意味着在相应偏好下实现目标的概率最大化)又有效(RL快速收敛到最优策略)。我们在一个正式的强化学习工具Mungojerrie中实现了翻译,并对我们在基准学习问题上的技术进行了实验评估。
{"title":"Multi-objective ω-Regular Reinforcement Learning","authors":"E. M. Hahn, Mateo Perez, S. Schewe, F. Somenzi, Ashutosh Trivedi, D. Wojtczak","doi":"10.1145/3605950","DOIUrl":"https://doi.org/10.1145/3605950","url":null,"abstract":"The expanding role of reinforcement learning (RL) in safety-critical system design has promoted ω-automata as a way to express learning requirements—often non-Markovian—with greater ease of expression and interpretation than scalar reward signals. However, real-world sequential decision making situations often involve multiple, potentially conflicting, objectives. Two dominant approaches to express relative preferences over multiple objectives are: (1) weighted preference, where the decision maker provides scalar weights for various objectives, and (2) lexicographic preference, where the decision maker provides an order over the objectives such that any amount of satisfaction of a higher-ordered objective is preferable to any amount of a lower-ordered one. In this article, we study and develop RL algorithms to compute optimal strategies in Markov decision processes against multiple ω-regular objectives under weighted and lexicographic preferences. We provide a translation from multiple ω-regular objectives to a scalar reward signal that is both faithful (maximising reward means maximising probability of achieving the objectives under the corresponding preference) and effective (RL quickly converges to optimal strategies). We have implemented the translations in a formal reinforcement learning tool, Mungojerrie, and we present an experimental evaluation of our technique on benchmark learning problems.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"35 1","pages":"1 - 24"},"PeriodicalIF":1.0,"publicationDate":"2023-06-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"43722069","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Identifying Overly Restrictive Matching Patterns in SMT-based Program Verifiers (Extended Version) 在基于smt的程序验证器中识别过度限制的匹配模式(扩展版)
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-06-24 DOI: https://dl.acm.org/doi/10.1145/3571748
Alexandra Bugariu, Arshavir Ter-Gabrielyan, Peter Müller

Universal quantifiers occur frequently in proof obligations produced by program verifiers, for instance, to axiomatize uninterpreted functions and to statically express properties of arrays. SMT-based verifiers typically reason about them via E-matching, an SMT algorithm that requires syntactic matching patterns to guide the quantifier instantiations. Devising good matching patterns is challenging. In particular, overly restrictive patterns may lead to spurious verification errors if the quantifiers needed for proof are not instantiated; they may also conceal unsoundness caused by inconsistent axiomatizations. In this article, we present the first technique that identifies and helps the users and the developers of program verifiers remedy the effects of overly restrictive matching patterns. We designed a novel algorithm to synthesize missing triggering terms required to complete unsatisfiability proofs via E-matching. Tool developers can use this information to refine their matching patterns and prevent similar verification errors, or to fix a detected unsoundness.

通用量词经常出现在由程序验证器产生的证明义务中,例如,对未解释的函数进行公理化和静态地表示数组的属性。基于SMT的验证器通常通过E-matching(一种需要语法匹配模式来指导量词实例化的SMT算法)对它们进行推理。设计好的匹配模式是具有挑战性的。特别是,如果没有实例化证明所需的量词,过度限制的模式可能导致虚假的验证错误;它们也可能隐藏由不一致的公理化引起的不健全。在本文中,我们将介绍识别并帮助程序验证器的用户和开发人员纠正过于严格的匹配模式的影响的第一种技术。我们设计了一种新的算法来合成通过e匹配完成不满足性证明所需的缺失触发项。工具开发人员可以使用这些信息来改进他们的匹配模式,防止类似的验证错误,或者修复检测到的不健全。
{"title":"Identifying Overly Restrictive Matching Patterns in SMT-based Program Verifiers (Extended Version)","authors":"Alexandra Bugariu, Arshavir Ter-Gabrielyan, Peter Müller","doi":"https://dl.acm.org/doi/10.1145/3571748","DOIUrl":"https://doi.org/https://dl.acm.org/doi/10.1145/3571748","url":null,"abstract":"<p>Universal quantifiers occur frequently in proof obligations produced by program verifiers, for instance, to axiomatize uninterpreted functions and to statically express properties of arrays. SMT-based verifiers typically reason about them via E-matching, an SMT algorithm that requires syntactic matching patterns to guide the quantifier instantiations. Devising good matching patterns is challenging. In particular, overly restrictive patterns may lead to spurious verification errors if the quantifiers needed for proof are not instantiated; they may also conceal unsoundness caused by inconsistent axiomatizations. In this article, we present the first technique that identifies and helps the users and the developers of program verifiers remedy the effects of overly restrictive matching patterns. We designed a novel algorithm to synthesize missing triggering terms required to complete unsatisfiability proofs via E-matching. Tool developers can use this information to refine their matching patterns and prevent similar verification errors, or to fix a detected unsoundness.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"23 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2023-06-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138517741","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
Kaki: Efficient Concurrent Update Synthesis for SDN Kaki: SDN的高效并发更新综合
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2023-06-23 DOI: 10.1145/3605952
Nicklas S. Johansen, Lasse B. Kær, Andreas L. Madsen, K. Ø. Nielsen, J. Srba, Rasmus G. Tollund
Modern computer networks based on the software-defined networking (SDN) paradigm are becoming increasingly complex and often require frequent configuration changes in order to react to traffic fluctuations. It is essential that forwarding policies are preserved not only before and after the configuration update but also at any moment during the inherently distributed execution of such an update. We present Kaki, a Petri game based tool for automatic synthesis of switch batches which can be updated in parallel without violating a given (regular) forwarding policy like waypointing or service chaining. Kaki guarantees to find the minimum number of concurrent batches and supports both splittable and nonsplittable flow forwarding. In order to achieve optimal performance, we introduce two novel optimisation techniques based on static analysis: decomposition into independent subproblems and identification of switches that can be collectively updated in the same batch. These techniques considerably improve the performance of our tool Kaki, relying on TAPAAL’s verification engine for Petri games as its backend. Experiments on a large benchmark of real networks from the Internet Topology Zoo database demonstrate that Kaki outperforms the state-of-the-art tools Netstack and FLIP. Kaki computes concurrent update synthesis significantly faster than Netstack and compared to FLIP, it provides shorter (and provably optimal) concurrent update sequences at similar runtimes.
基于软件定义网络(SDN)范例的现代计算机网络正变得越来越复杂,并且经常需要频繁更改配置以应对流量波动。重要的是,不仅在配置更新之前和之后,而且在这种更新的固有分布式执行期间的任何时刻都要保留转发策略。我们提出了Kaki,一个基于Petri游戏的工具,用于自动合成开关批次,可以并行更新,而不会违反给定的(常规)转发策略,如路径指向或服务链。Kaki保证找到并发批的最小数量,并支持可分割和不可分割的流转发。为了获得最佳性能,我们引入了两种基于静态分析的新型优化技术:分解为独立的子问题和识别可以在同一批中集体更新的开关。这些技术极大地提高了我们的工具Kaki的性能,它依赖于TAPAAL的Petri游戏验证引擎作为后端。在来自Internet Topology Zoo数据库的大型真实网络基准测试中进行的实验表明,Kaki优于最先进的工具Netstack和FLIP。Kaki计算并发更新合成的速度比Netstack快得多,与FLIP相比,它在类似的运行时提供了更短的(并且可以证明是最优的)并发更新序列。
{"title":"Kaki: Efficient Concurrent Update Synthesis for SDN","authors":"Nicklas S. Johansen, Lasse B. Kær, Andreas L. Madsen, K. Ø. Nielsen, J. Srba, Rasmus G. Tollund","doi":"10.1145/3605952","DOIUrl":"https://doi.org/10.1145/3605952","url":null,"abstract":"Modern computer networks based on the software-defined networking (SDN) paradigm are becoming increasingly complex and often require frequent configuration changes in order to react to traffic fluctuations. It is essential that forwarding policies are preserved not only before and after the configuration update but also at any moment during the inherently distributed execution of such an update. We present Kaki, a Petri game based tool for automatic synthesis of switch batches which can be updated in parallel without violating a given (regular) forwarding policy like waypointing or service chaining. Kaki guarantees to find the minimum number of concurrent batches and supports both splittable and nonsplittable flow forwarding. In order to achieve optimal performance, we introduce two novel optimisation techniques based on static analysis: decomposition into independent subproblems and identification of switches that can be collectively updated in the same batch. These techniques considerably improve the performance of our tool Kaki, relying on TAPAAL’s verification engine for Petri games as its backend. Experiments on a large benchmark of real networks from the Internet Topology Zoo database demonstrate that Kaki outperforms the state-of-the-art tools Netstack and FLIP. Kaki computes concurrent update synthesis significantly faster than Netstack and compared to FLIP, it provides shorter (and provably optimal) concurrent update sequences at similar runtimes.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"35 1","pages":"1 - 22"},"PeriodicalIF":1.0,"publicationDate":"2023-06-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"43411543","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":4,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 0
期刊
Formal Aspects of Computing
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1