首页 > 最新文献

Formal Aspects of Computing最新文献

英文 中文
RNA: R1CS Normalization Algorithm Based on Data Flow Graphs for Zero-Knowledge Proofs RNA:基于零知识证明数据流图的 R1CS 归一化算法
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2024-05-17 DOI: 10.1145/3665339
Chenhao Shi, Ruibang Liu, Hao Chen, Guoqiang Li, Sinka Gao
The communities of blockchains and distributed ledgers have been stirred up by the introduction of zero-knowledge proofs (ZKPs). Originally designed as a solution to privacy issues, ZKPs have now evolved into an effective remedy for scalability concerns. To enable ZKPs, Rank-1 Constraint Systems (R1CS) offer a verifier for bi-linear equations. In order to accurately and efficiently represent R1CS, several language tools like Circom, Noir, and Snarky have been proposed to automate the compilation of advanced programs into R1CS. However, due to the flexible nature of R1CS representation, there can be significant differences in the compiled R1CS forms generated from circuit language programs with the same underlying semantics. To address this issue, this paper puts forth a data-flow-based R1CS paradigm algorithm, which produces a standardized format for different R1CS instances with identical semantics. Additionally, we present an R1CS benchmark, and our experimental evaluation demonstrates the efficacy of our methods.
零知识证明(ZKPs)的引入搅动了区块链和分布式账本的社区。零知识证明最初是为了解决隐私问题而设计的,现在已发展成为解决可扩展性问题的有效方法。为了实现 ZKPs,Rank-1 约束系统(R1CS)为双线性方程提供了验证器。为了准确有效地表示 R1CS,人们提出了一些语言工具,如 Circom、Noir 和 Snarky,用于将高级程序自动编译成 R1CS。然而,由于 R1CS 表示的灵活性,具有相同底层语义的电路语言程序生成的编译 R1CS 形式可能存在显著差异。为了解决这个问题,本文提出了一种基于数据流的 R1CS 范式算法,它能为具有相同语义的不同 R1CS 实例生成标准化格式。此外,我们还提出了一个 R1CS 基准,实验评估证明了我们方法的有效性。
{"title":"RNA: R1CS Normalization Algorithm Based on Data Flow Graphs for Zero-Knowledge Proofs","authors":"Chenhao Shi, Ruibang Liu, Hao Chen, Guoqiang Li, Sinka Gao","doi":"10.1145/3665339","DOIUrl":"https://doi.org/10.1145/3665339","url":null,"abstract":"The communities of blockchains and distributed ledgers have been stirred up by the introduction of zero-knowledge proofs (ZKPs). Originally designed as a solution to privacy issues, ZKPs have now evolved into an effective remedy for scalability concerns. To enable ZKPs, Rank-1 Constraint Systems (R1CS) offer a verifier for bi-linear equations. In order to accurately and efficiently represent R1CS, several language tools like Circom, Noir, and Snarky have been proposed to automate the compilation of advanced programs into R1CS. However, due to the flexible nature of R1CS representation, there can be significant differences in the compiled R1CS forms generated from circuit language programs with the same underlying semantics. To address this issue, this paper puts forth a data-flow-based R1CS paradigm algorithm, which produces a standardized format for different R1CS instances with identical semantics. Additionally, we present an R1CS benchmark, and our experimental evaluation demonstrates the efficacy of our methods.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2024-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140963630","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
Polymorphic dynamic programming by algebraic shortcut fusion 通过代数捷径融合实现多态动态编程
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2024-05-13 DOI: 10.1145/3664828
Max A Little, Xi He, Ugur Kayas

Dynamic programming (DP) is a broadly applicable algorithmic design paradigm for the efficient, exact solution of otherwise intractable, combinatorial problems. However, the design of such algorithms is often presented informally in an ad-hoc manner. It is sometimes difficult to justify the correctness of these DP algorithms. To address this issue, this paper presents a rigorous algebraic formalism for systematically deriving DP algorithms, based on semiring polymorphism. We start with a specification, construct a (brute-force) algorithm to compute the required solution which is self-evidently correct because it exhaustively generates and evaluates all possible solutions meeting the specification. We then derive, primarily through the use of shortcut fusion, an implementation of this algorithm which is both efficient and correct. We also demonstrate how, with the use of semiring lifting, the specification can be augmented with combinatorial constraints and through semiring lifting, show how these constraints can also be fused with the derived algorithm. This paper furthermore demonstrates how existing DP algorithms for a given combinatorial problem can be abstracted from their original context and re-purposed to solve other combinatorial problems.

This approach can be applied to the full scope of combinatorial problems expressible in terms of semirings. This includes, for example: optimization, optimal probability and Viterbi decoding, probabilistic marginalization, logical inference, fuzzy sets, differentiable softmax, and relational and provenance queries. The approach, building on many ideas from the existing literature on constructive algorithmics, exploits generic properties of (semiring) polymorphic functions, tupling and formal sums (lifting), and algebraic simplifications arising from constraint algebras. We demonstrate the effectiveness of this formalism for some example applications arising in signal processing, bioinformatics and reliability engineering. Python software implementing these algorithms can be downloaded from: http://www.maxlittle.net/software/dppolyalg.zip.

动态编程(DP)是一种广泛适用的算法设计范式,可高效、精确地解决难以解决的组合问题。然而,这类算法的设计往往是以非正式的方式临时提出的。有时很难证明这些 DP 算法的正确性。为了解决这个问题,本文基于语义多态性,提出了一种严格的代数形式,用于系统地推导 DP 算法。我们从一个规范开始,构建一个(暴力)算法来计算所需的解,这个算法不言而喻是正确的,因为它能穷举生成和评估所有符合规范的可能解。然后,我们主要通过使用捷径融合法,推导出一种既高效又正确的算法实现方法。我们还展示了如何通过语义提升,用组合约束来增强规范,并通过语义提升,展示如何将这些约束与衍生算法融合。本文还进一步展示了针对特定组合问题的现有 DP 算法如何从其原始环境中抽象出来,并重新用于解决其他组合问题。这种方法可应用于用语义表达的所有组合问题。例如,这包括:优化、最优概率和维特比解码、概率边际化、逻辑推理、模糊集、可微软最大值以及关系和出处查询。这种方法借鉴了现有建构算法文献中的许多观点,利用了(语义)多态函数、元组和形式和(提升)的通用属性,以及约束代数的代数简化。我们在信号处理、生物信息学和可靠性工程中的一些示例应用中演示了这一形式主义的有效性。实现这些算法的 Python 软件可从以下网站下载:http://www.maxlittle.net/software/dppolyalg.zip。
{"title":"Polymorphic dynamic programming by algebraic shortcut fusion","authors":"Max A Little, Xi He, Ugur Kayas","doi":"10.1145/3664828","DOIUrl":"https://doi.org/10.1145/3664828","url":null,"abstract":"<p>Dynamic programming (DP) is a broadly applicable algorithmic design paradigm for the efficient, exact solution of otherwise intractable, combinatorial problems. However, the design of such algorithms is often presented informally in an ad-hoc manner. It is sometimes difficult to justify the correctness of these DP algorithms. To address this issue, this paper presents a rigorous algebraic formalism for systematically deriving DP algorithms, based on semiring polymorphism. We start with a specification, construct a (brute-force) algorithm to compute the required solution which is self-evidently correct because it exhaustively generates and evaluates all possible solutions meeting the specification. We then derive, primarily through the use of shortcut fusion, an implementation of this algorithm which is both efficient and correct. We also demonstrate how, with the use of semiring lifting, the specification can be augmented with combinatorial constraints and through semiring lifting, show how these constraints can also be fused with the derived algorithm. This paper furthermore demonstrates how existing DP algorithms for a given combinatorial problem can be abstracted from their original context and re-purposed to solve other combinatorial problems. </p><p>This approach can be applied to the full scope of combinatorial problems expressible in terms of semirings. This includes, for example: optimization, optimal probability and Viterbi decoding, probabilistic marginalization, logical inference, fuzzy sets, differentiable softmax, and relational and provenance queries. The approach, building on many ideas from the existing literature on constructive algorithmics, exploits generic properties of (semiring) polymorphic functions, tupling and formal sums (lifting), and algebraic simplifications arising from constraint algebras. We demonstrate the effectiveness of this formalism for some example applications arising in signal processing, bioinformatics and reliability engineering. Python software implementing these algorithms can be downloaded from: http://www.maxlittle.net/software/dppolyalg.zip.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2024-05-13","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140938601","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
Introduction to the Special Collection from the International Conference on Tests and Proofs (TAP) 2020 and 2021 2020 年和 2021 年国际测试与证明会议(TAP)特辑简介
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2024-03-22 DOI: 10.1145/3650092
Wolfgang Ahrendt, Frédéric Loulergue, Heike Wehrheim
{"title":"Introduction to the Special Collection from the International Conference on Tests and Proofs (TAP) 2020 and 2021","authors":"Wolfgang Ahrendt, Frédéric Loulergue, Heike Wehrheim","doi":"10.1145/3650092","DOIUrl":"https://doi.org/10.1145/3650092","url":null,"abstract":"","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2024-03-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140217103","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
A compositional simulation framework for Abstract State Machine models of Discrete Event Systems 离散事件系统抽象状态机模型的合成模拟框架
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2024-03-16 DOI: 10.1145/3652862
Silvia Bonfanti, Angelo Gargantini, Elvinia Riccobene, Patrizia Scandurra

Modeling complex system requirements often requires specifying system components in separate models, which can be validated and verified in isolation from each other, and then integrating all components’ behavior in order to validate the operation of the whole system. If models are executable, as for state-based formal specifications, engines to orchestrate the simulation of separate component operational models are extremely useful.

This paper presents an approach for the co-simulation, according to predefined orchestration schemas, of state-based models of separate components of a Discrete Event System. More precisely, we exploit the Abstract State Machine (ASM) formal method as state-based formalism, and we (i) define a set of operators to compose ASMs that communicate with each other through I/O events, and (ii) present an engine to execute the compositional simulation of the ASMs as a whole assembly.

As proof of concepts, we use a set of model examples of Discrete Event Systems of increasing complexity to show the application of our approach and to evaluate its effectiveness in co-simulating models of real systems.

复杂系统需求建模通常需要在独立模型中指定系统组件,这些组件可以在相互隔离的情况下进行验证和检验,然后将所有组件的行为整合起来,以验证整个系统的运行。如果模型是可执行的,就像基于状态的形式化规范一样,那么协调模拟独立组件运行模型的引擎就非常有用。本文介绍了一种根据预定义的协调模式,对离散事件系统各独立组件的基于状态的模型进行协同仿真的方法。更确切地说,我们利用抽象状态机(ASM)形式方法作为基于状态的形式主义,并(i) 定义了一组操作符,用于组成通过 I/O 事件相互通信的 ASM;(ii) 提出了一个引擎,用于将 ASM 作为一个整体装配执行组成模拟。作为概念验证,我们使用了一组复杂度不断增加的离散事件系统模型示例来展示我们方法的应用,并评估其在协同模拟真实系统模型方面的有效性。
{"title":"A compositional simulation framework for Abstract State Machine models of Discrete Event Systems","authors":"Silvia Bonfanti, Angelo Gargantini, Elvinia Riccobene, Patrizia Scandurra","doi":"10.1145/3652862","DOIUrl":"https://doi.org/10.1145/3652862","url":null,"abstract":"<p>Modeling complex system requirements often requires specifying system components in separate models, which can be validated and verified in isolation from each other, and then integrating all components’ behavior in order to validate the operation of the whole system. If models are executable, as for state-based formal specifications, engines to orchestrate the simulation of separate component operational models are extremely useful. </p><p>This paper presents an approach for the co-simulation, according to predefined orchestration schemas, of state-based models of separate components of a Discrete Event System. More precisely, we exploit the Abstract State Machine (ASM) formal method as state-based formalism, and we (<i>i</i>) define a set of operators to compose ASMs that communicate with each other through I/O events, and (<i>ii</i>) present an engine to execute the compositional simulation of the ASMs as a whole assembly. </p><p>As proof of concepts, we use a set of model examples of Discrete Event Systems of increasing complexity to show the application of our approach and to evaluate its effectiveness in co-simulating models of real systems.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2024-03-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140146566","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
The universality of functions in the sciences at large and in computing 函数在整个科学和计算机领域的普遍性
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2024-03-06 DOI: 10.1145/3649154
Raymond Boute

Universality of a concept here means wide conceptual and practical usefulness in mathematics and applications. The function concept owes its universality to simplicity, generality and powerful algebraic properties. Advantages proven in the sciences at large significantly benefit computing science as well. Universality critically depends on the definitional choices. The first half of this paper shows that a “function” in the sense prevalent throughout the sciences, namely, as fully specified by its domain and its values, entails the characteristics that most contribute to universality. This link is clarified by some less well-understood aspects, including the role of function types as partial specifications, the ramifications of having composition defined for any pair of functions, and unification by capturing various notions not commonly seen as functions. Simple but representative examples are given in diverse areas, mostly computing. When a codomain appears at all in basic textbooks, it mostly involves a self-contradicting definition, corrected by the labeled function variant. Either way, it severely reduces universality, especially for composition. Yet, the axiomatization of category theory common in theoretical computing science offers no other choice. The second half explores how waiving one axiom generalizes category theory to include a wider variety of concepts, primarily the conventional function variant. It is also shown how this can be done unobtrusively for typical categorical notions, such as products, coproducts, functors, natural transformations, adjunctions, Galois connections, and auxiliary concepts, illustrated by example definitions and technical comments. Allowing the familiar function variant renders category theory more appealing to a wider group of scientists. A lesson for mathematics in general is Rogaway’s maxim: “Your definitional choices should be justified”!

这里概念的普遍性是指在数学和应用中具有广泛的概念性和实用性。函数概念的普遍性归功于其简单性、通用性和强大的代数特性。在整个科学领域被证明的优势也使计算科学受益匪浅。通用性主要取决于定义的选择。本文的前半部分表明,在整个科学中普遍意义上的 "函数",即由其域和值完全指定的 "函数",包含了最有助于普遍性的特征。本文通过一些不太为人所理解的方面阐明了这种联系,包括函数类型作为部分规范的作用、为任何一对函数定义组成的后果,以及通过捕捉各种通常不被视为函数的概念来实现统一。我们给出了不同领域(主要是计算领域)中简单但具有代表性的例子。当代码域出现在基础教科书中时,大多涉及自相矛盾的定义,并通过标注的函数变体加以纠正。无论哪种方式,它都严重降低了普遍性,尤其是对构成而言。然而,理论计算科学中常见的范畴论公理化提供了别无选择的选择。下半部分探讨了放弃一条公理如何将范畴论泛化为更广泛的概念,主要是传统函数变体。此外,我们还通过定义示例和技术注释,说明了如何以不显眼的方式实现典型范畴概念的泛化,如积、共积、函数、自然转换、邻接、伽罗瓦连接和辅助概念。允许使用大家熟悉的函数变体,使范畴理论对更多科学家更有吸引力。罗加韦的格言 "你的定义选择应该有理有据 "为一般数学上了一课!
{"title":"The universality of functions in the sciences at large and in computing","authors":"Raymond Boute","doi":"10.1145/3649154","DOIUrl":"https://doi.org/10.1145/3649154","url":null,"abstract":"<p><i>Universality</i> of a concept here means wide conceptual and practical usefulness in mathematics and applications. The <i>function</i> concept owes its universality to simplicity, generality and powerful algebraic properties. Advantages proven in the sciences at large significantly benefit computing science as well. Universality critically depends on the definitional choices. The first half of this paper shows that a “function” in the sense prevalent throughout the sciences, namely, as fully specified by its <i>domain</i> and its <i>values</i>, entails the characteristics that most contribute to universality. This link is clarified by some less well-understood aspects, including the role of function types as partial specifications, the ramifications of having composition defined for any pair of functions, and unification by capturing various notions not commonly seen as functions. Simple but representative examples are given in diverse areas, mostly computing. When a <i>codomain</i> appears at all in basic textbooks, it mostly involves a self-contradicting definition, corrected by the <i>labeled</i> function variant. Either way, it severely reduces universality, especially for composition. Yet, the axiomatization of category theory common in theoretical computing science offers no other choice. The second half explores how waiving one axiom generalizes category theory to include a wider variety of concepts, primarily the conventional function variant. It is also shown how this can be done unobtrusively for typical categorical notions, such as products, coproducts, functors, natural transformations, adjunctions, Galois connections, and auxiliary concepts, illustrated by example definitions and technical comments. Allowing the familiar function variant renders category theory more appealing to a wider group of scientists. A lesson for mathematics in general is Rogaway’s maxim: “Your definitional choices should be justified”!</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2024-03-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"140056825","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
Modeling and Verification of Natural Language Requirements based on States and Modes 基于状态和模式的自然语言需求建模与验证
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2024-02-05 DOI: 10.1145/3640822
Yinling Liu, Jean-Michel Bruel

The relationship between states (status of a system) and modes (capabilities of a system) used to describe system requirements is often poorly defined. The unclear relationship could make systems of interest out of control because of the out of boundaries of the systems caused by the newly added modes. Formally modeling and verifying requirements can clarify the relationship, making the system safer. To this end, an innovative approach to analyzing requirements is proposed. The MoSt language (a Domain Specific Language implemented on the Xtext framework) is firstly designed for requirements modeling and a model validator is realized to check requirements statically. A code generator is then provided to realize the automatic model transformation from the MoSt model to a NuSMV model, laying the foundation for the dynamic checks of requirements through symbolic model checking. Next, a NuSMV runner is designed to connect the NuSMV with the validator to automate the whole dynamic checks. The grammar, the model validator, the code generator, and the NuSMV runner are finally integrated into a publicly available Eclipse-based tool. Two case studies have been employed to illustrate the feasibility of our approach. For each case study, we injected 14 errors. The results show that the static and dynamic checks can successfully detect all the errors.

用于描述系统需求的状态(系统的状态)和模式(系统的能力)之间的关系往往界定不清。这种不明确的关系可能会使相关系统失去控制,因为新增加的模式会使系统失去边界。对需求进行正式建模和验证可以明确这种关系,使系统更加安全。为此,我们提出了一种创新的需求分析方法。首先为需求建模设计了 MoSt 语言(一种在 Xtext 框架上实现的特定领域语言),并实现了一个模型验证器来静态检查需求。然后提供一个代码生成器,实现从 MoSt 模型到 NuSMV 模型的自动模型转换,为通过符号模型检查对需求进行动态检查奠定基础。接下来,我们设计了一个 NuSMV 运行器,将 NuSMV 与验证器连接起来,实现整个动态检查的自动化。最后,语法、模型验证器、代码生成器和 NuSMV 运行程序被集成到一个基于 Eclipse 的公开工具中。我们采用了两个案例研究来说明我们方法的可行性。在每个案例研究中,我们都注入了 14 个错误。结果表明,静态和动态检查可以成功检测出所有错误。
{"title":"Modeling and Verification of Natural Language Requirements based on States and Modes","authors":"Yinling Liu, Jean-Michel Bruel","doi":"10.1145/3640822","DOIUrl":"https://doi.org/10.1145/3640822","url":null,"abstract":"<p>The relationship between states (status of a system) and modes (capabilities of a system) used to describe system requirements is often poorly defined. The unclear relationship could make systems of interest out of control because of the out of boundaries of the systems caused by the newly added modes. Formally modeling and verifying requirements can clarify the relationship, making the system safer. To this end, an innovative approach to analyzing requirements is proposed. The <span>MoSt</span> language (a Domain Specific Language implemented on the Xtext framework) is firstly designed for requirements modeling and a model validator is realized to check requirements statically. A code generator is then provided to realize the automatic model transformation from the <span>MoSt</span> model to a NuSMV model, laying the foundation for the dynamic checks of requirements through symbolic model checking. Next, a NuSMV runner is designed to connect the NuSMV with the validator to automate the whole dynamic checks. The grammar, the model validator, the code generator, and the NuSMV runner are finally integrated into a publicly available Eclipse-based tool. Two case studies have been employed to illustrate the feasibility of our approach. For each case study, we injected 14 errors. The results show that the static and dynamic checks can successfully detect all the errors.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2024-02-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139689133","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
The concept of class invariant in object-oriented programming 面向对象程序设计中的类不变概念
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2024-01-24 DOI: 10.1145/3626201
Bertrand Meyer, Alisa Arkadova, Alexander Kogtenkov

Class invariants — consistency constraints preserved by every operation on objects of a given type — are fundamental to building, understanding and verifying object-oriented programs. For verification, however, they raise difficulties, which have not yet received a generally accepted solution. The present work introduces a proof rule meant to address these issues and allow verification tools to benefit from invariants.

It clarifies the notion of invariant and identifies the three associated problems: callbacks, furtive access and reference leak. As an example, the 2016 Ethereum DAO bug, in which $50 million were stolen, resulted from a callback invalidating an invariant.

The discussion starts with a simplified model of computation and an associated proof rule, demonstrating its soundness. It then removes one by one the three simplifying assumptions, each removal raising one of the three issues, and leading to a corresponding adaptation to the proof rule. The final version of the rule can tackle tricky examples, including “challenge problems” listed in the literature.

类不变式--对给定类型的对象进行的每次操作所保留的一致性约束--是构建、理解和验证面向对象程序的基础。然而,对于验证而言,它们却带来了困难,至今尚未得到普遍认可的解决方案。本作品介绍了一种证明规则,旨在解决这些问题,让验证工具从不变式中受益。它澄清了不变式的概念,并确定了三个相关问题:回调、隐秘访问和引用泄漏。例如,2016 年以太坊 DAO 漏洞导致 5000 万美元被盗,就是回调使不变式失效造成的。讨论从一个简化的计算模型和相关的证明规则开始,证明其合理性。然后逐一移除三个简化假设,每移除一个假设都会引起三个问题中的一个,并导致对证明规则进行相应的调整。最终版本的规则可以解决棘手的例子,包括文献中列出的 "挑战问题"。
{"title":"The concept of class invariant in object-oriented programming","authors":"Bertrand Meyer, Alisa Arkadova, Alexander Kogtenkov","doi":"10.1145/3626201","DOIUrl":"https://doi.org/10.1145/3626201","url":null,"abstract":"<p>Class invariants — consistency constraints preserved by every operation on objects of a given type — are fundamental to building, understanding and verifying object-oriented programs. For verification, however, they raise difficulties, which have not yet received a generally accepted solution. The present work introduces a proof rule meant to address these issues and allow verification tools to benefit from invariants. </p><p>It clarifies the notion of invariant and identifies the three associated problems: callbacks, furtive access and reference leak. As an example, the 2016 Ethereum DAO bug, in which $50 million were stolen, resulted from a callback invalidating an invariant. </p><p>The discussion starts with a simplified model of computation and an associated proof rule, demonstrating its soundness. It then removes one by one the three simplifying assumptions, each removal raising one of the three issues, and leading to a corresponding adaptation to the proof rule. The final version of the rule can tackle tricky examples, including “challenge problems” listed in the literature.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2024-01-24","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139555146","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
Review on Verified Functional Programming in Agda 关于 Agda 验证函数式编程的评论
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2024-01-23 DOI: 10.1145/3641886
Matteo Pradella
{"title":"Review on\u0000 Verified Functional Programming in Agda","authors":"Matteo Pradella","doi":"10.1145/3641886","DOIUrl":"https://doi.org/10.1145/3641886","url":null,"abstract":"","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2024-01-23","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"139603979","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
iStar Goal Model to Z Formal Model Translation and Model Checking of CBTC Moving Block Interlocking System CBTC移动块联锁系统的iStar目标模型到Z形式模型的转换与模型检验
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2023-11-27 DOI: 10.1145/3633065
Lokanna Kadakolmath, Umesh D. Ramu

The reliability and safety of complex software systems are provided by extracting safety requirements from regulations and operational environments and later specifying these requirements precisely. At the early stage, these extracted safety requirements are informal. Typically, they cope with non-functional requirements. Analysis of early requirements using traditional methods is inadequate because these methods only focus on the WHAT dimension of requirements engineering but do not address the WHY dimension of requirements engineering. In this article, we are using a goal-oriented modelling method called iStar to confront these issues. To ensure that the software system developed fulfils the requirements specified in the early-phase, it is necessary to integrate early-phase requirements with late-phase requirements. To accomplish this task, in this article, we use Z formal method to integrate early-phase requirements with late-phase requirements. This integration synergistically resolves the above issues. As a case study, we use the CBTC moving block interlocking system to illustrate the synergy of the iStar and Z combination on complex software systems. Finally, we verify the developed formal model against LTL safety properties using the ProZ model checking tool.

复杂软件系统的可靠性和安全性是通过从法规和操作环境中提取安全需求,然后精确地指定这些需求来提供的。在早期阶段,这些提取的安全需求是非正式的。通常,它们处理非功能性需求。使用传统方法对早期需求进行分析是不够的,因为这些方法只关注需求工程的WHAT维度,而不关注需求工程的WHY维度。在本文中,我们将使用一种名为iStar的面向目标的建模方法来解决这些问题。为了确保开发的软件系统满足早期阶段指定的需求,有必要将早期阶段的需求与后期阶段的需求集成在一起。为了完成这项任务,在本文中,我们使用Z形式化方法来集成早期阶段的需求和后期阶段的需求。这一整合协同解决了上述问题。作为一个案例研究,我们使用CBTC移动块联锁系统来说明iStar和Z组合在复杂软件系统上的协同作用。最后,我们使用ProZ模型检查工具根据LTL安全属性验证所开发的形式化模型。
{"title":"iStar Goal Model to Z Formal Model Translation and Model Checking of CBTC Moving Block Interlocking System","authors":"Lokanna Kadakolmath, Umesh D. Ramu","doi":"10.1145/3633065","DOIUrl":"https://doi.org/10.1145/3633065","url":null,"abstract":"<p>The reliability and safety of complex software systems are provided by extracting safety requirements from regulations and operational environments and later specifying these requirements precisely. At the early stage, these extracted safety requirements are informal. Typically, they cope with non-functional requirements. Analysis of early requirements using traditional methods is inadequate because these methods only focus on the WHAT dimension of requirements engineering but do not address the WHY dimension of requirements engineering. In this article, we are using a goal-oriented modelling method called iStar to confront these issues. To ensure that the software system developed fulfils the requirements specified in the early-phase, it is necessary to integrate early-phase requirements with late-phase requirements. To accomplish this task, in this article, we use Z formal method to integrate early-phase requirements with late-phase requirements. This integration synergistically resolves the above issues. As a case study, we use the CBTC moving block interlocking system to illustrate the synergy of the iStar and Z combination on complex software systems. Finally, we verify the developed formal model against LTL safety properties using the ProZ model checking tool.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2023-11-27","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138517746","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
State machines for large scale computer software and systems 用于大型计算机软件和系统的状态机
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2023-11-22 DOI: 10.1145/3633786
Victor Yodaiken

The behavior and architecture of large scale discrete state systems found in computer software and hardware can be specified and analyzed using a particular class of primitive recursive functions. This paper begins with an illustration of the utility of the method via a number of small examples and then via longer specification and verification of the ”Paxos” distributed consensus algorithm[26]. The “sequence maps” are then shown to provide an alternative representation of deterministic state machines and algebraic products of state machines.

Distributed and composite systems, parallel and concurrent computation, and real-time behavior can all be specified naturally with these methods - which require neither extensions to the classical state machine model nor any axiomatic methods or other techniques from formal logic or other foundational methods. Compared to state diagrams or tables or the standard set-tuple-transition-maps, sequence maps are more concise and better suited to describing the behavior and compositional architecture of computer systems. Staying strictly within the boundaries of classical deterministic state machines anchors the methods to the algebraic structures of automata and makes the specifications faithful to engineering practice.

在计算机软件和硬件中发现的大规模离散状态系统的行为和结构可以使用一类特定的原始递归函数来指定和分析。本文首先通过一些小的例子来说明该方法的实用性,然后通过对“Paxos”分布式共识算法的更长的规范和验证[26]。然后显示“序列映射”,以提供确定性状态机和状态机的代数积的替代表示。分布式和复合系统、并行和并发计算以及实时行为都可以用这些方法自然地指定——它们既不需要对经典状态机模型的扩展,也不需要任何公理方法或形式逻辑或其他基础方法中的其他技术。与状态图或表或标准集元转换映射相比,序列映射更简洁,更适合于描述计算机系统的行为和组合体系结构。严格遵守经典确定性状态机的边界,将方法锚定在自动机的代数结构上,使规范忠实于工程实践。
{"title":"State machines for large scale computer software and systems","authors":"Victor Yodaiken","doi":"10.1145/3633786","DOIUrl":"https://doi.org/10.1145/3633786","url":null,"abstract":"<p>The behavior and architecture of large scale discrete state systems found in computer software and hardware can be specified and analyzed using a particular class of primitive recursive functions. This paper begins with an illustration of the utility of the method via a number of small examples and then via longer specification and verification of the ”Paxos” distributed consensus algorithm[26]. The “sequence maps” are then shown to provide an alternative representation of deterministic state machines and algebraic products of state machines. </p><p>Distributed and composite systems, parallel and concurrent computation, and real-time behavior can all be specified naturally with these methods - which require neither extensions to the classical state machine model nor any axiomatic methods or other techniques from formal logic or other foundational methods. Compared to state diagrams or tables or the standard set-tuple-transition-maps, sequence maps are more concise and better suited to describing the behavior and compositional architecture of computer systems. Staying strictly within the boundaries of classical deterministic state machines anchors the methods to the algebraic structures of automata and makes the specifications faithful to engineering practice.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2023-11-22","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"138517752","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}
引用次数: 3
期刊
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