首页 > 最新文献

Formal Aspects of Computing最新文献

英文 中文
A Calculus for the Specification, Design, and Verification of Distributed Concurrent Systems 分布式并发系统的规范、设计和验证计算器
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-06-17 DOI: 10.1145/3672085
Manfred Broy

A calculus for the specification and verification of distributed concurrent interactive real time systems is introduced. Systems are specified by their interface behavior formalized by interface predicates and interface assertions. System designs in terms of architectures of distributed networks of interactive systems are constructed by concurrent composition of subsystems. The specification of system designs is calculated from the specifications of their subsystems. Verification is done by proof rules which are based on the concepts of causality and realizability justified by the operational model in terms of generalized Moore machines, Moore machines not restricted to finite state spaces. The calculus supports interface specification and reasoning both about untimed as well as timed distributed concurrent systems. This includes the design of cyber-physical systems. Real-time is used, in particular, to specify time sensitive behavior and to prove properties related to causality and realizability, properties which hold for all Moore machines. On this basis, a calculus is worked out and illustrated by small examples. The calculus is shown to be sound and relatively complete.

本文介绍了一种用于规范和验证分布式并发交互实时系统的微积分。系统通过接口谓词和接口断言形式化的接口行为进行规范。交互系统分布式网络体系结构的系统设计是通过子系统的并发组合来构建的。系统设计的规格是根据其子系统的规格计算出来的。验证是通过证明规则完成的,证明规则基于因果关系和可实现性的概念,并以广义摩尔机(不限于有限状态空间的摩尔机)的运行模型为依据。微积分支持非定时和定时分布式并发系统的接口规范和推理。这包括网络物理系统的设计。实时性尤其用于指定对时间敏感的行为,并证明与因果关系和可实现性相关的属性,这些属性对所有摩尔机器都是成立的。在此基础上,我们提出了一个微积分,并通过小例子进行了说明。微积分证明是合理和相对完整的。
{"title":"A Calculus for the Specification, Design, and Verification of Distributed Concurrent Systems","authors":"Manfred Broy","doi":"10.1145/3672085","DOIUrl":"https://doi.org/10.1145/3672085","url":null,"abstract":"<p>A calculus for the specification and verification of distributed concurrent interactive real time systems is introduced. Systems are specified by their interface behavior formalized by interface predicates and interface assertions. System designs in terms of architectures of distributed networks of interactive systems are constructed by concurrent composition of subsystems. The specification of system designs is calculated from the specifications of their subsystems. Verification is done by proof rules which are based on the concepts of causality and realizability justified by the operational model in terms of generalized Moore machines, Moore machines not restricted to finite state spaces. The calculus supports interface specification and reasoning both about untimed as well as timed distributed concurrent systems. This includes the design of cyber-physical systems. Real-time is used, in particular, to specify time sensitive behavior and to prove properties related to causality and realizability, properties which hold for all Moore machines. On this basis, a calculus is worked out and illustrated by small examples. The calculus is shown to be sound and relatively complete.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"3 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2024-06-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141503315","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
Trace Semantics for C++11 Memory Model C++11 内存模型的跟踪语义
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-06-05 DOI: 10.1145/3670696
Lili Xiao, Huibiao Zhu, Sini Chen, Mengda He, Shengchao Qin

The C and C++ languages introduced the relaxed-memory concurrency into the language specification for efficiency purposes in 2011.

Trace semantics can provide the mathematical foundation for the proposed C++11 memory model, and there is a lack of investigation of trace semantics for C++11.

The Promising Semantics (PS) of Kang et al. provides the standard SC-style operational semantics for the C++11 concurrency model, where “SC” refers to “Sequential Consistency”. Inspired by PS, in this paper we first investigate the trace semantics for the relaxed read and write accesses under C++11, acting in the denotational semantics style. In our semantic model, a trace is in the form of a sequence of snapshots, and the snapshots record the modification in the relevant global or local variables, and the thread view. Moreover, the trace semantics for the release/acquire accesses under C++11 is also explored, based on the separated thread views and newly added message views.

When considering this trace model, different accesses bring in their unique snapshots, and make distinguished effects on the production of the sequences.

For any given program, the proposed trace semantics in this paper produces all the valid traces directly. Further, our trace semantics, together with that for TSO and MCA ARMv8, has the possibility to be the foundation of the meta model of the trace semantics for weak memory models.

为了提高效率,C 和 C++ 语言于 2011 年在语言规范中引入了松弛内存并发性。跟踪语义可以为 C++11 内存模型的提出提供数学基础,而目前缺乏对 C++11 跟踪语义的研究。 Kang 等人的 Promising Semantics(PS)为 C++11 并发模型提供了标准的 SC 风格操作语义,其中 "SC "指的是 "顺序一致性"。受 PS 的启发,本文首先研究了 C++11 下松弛读写访问的跟踪语义,以表示式语义的方式进行。在我们的语义模型中,跟踪是快照序列的形式,快照记录了相关全局或局部变量以及线程视图的修改。此外,我们还基于分离的线程视图和新添加的消息视图,探讨了 C++11 下释放/获取访问的跟踪语义。在考虑这种跟踪模型时,不同的访问会带来各自独特的快照,并对序列的生成产生不同的影响。对于任何给定的程序,本文提出的跟踪语义都能直接生成所有有效的跟踪。此外,我们的跟踪语义与 TSO 和 MCA ARMv8 的跟踪语义一起,有可能成为弱内存模型跟踪语义元模型的基础。
{"title":"Trace Semantics for C++11 Memory Model","authors":"Lili Xiao, Huibiao Zhu, Sini Chen, Mengda He, Shengchao Qin","doi":"10.1145/3670696","DOIUrl":"https://doi.org/10.1145/3670696","url":null,"abstract":"<p>The C and C++ languages introduced the relaxed-memory concurrency into the language specification for efficiency purposes in 2011. </p><p>Trace semantics can provide the mathematical foundation for the proposed C++11 memory model, and there is a lack of investigation of trace semantics for C++11. </p><p>The Promising Semantics (PS) of Kang et al. provides the standard SC-style operational semantics for the C++11 concurrency model, where “SC” refers to “Sequential Consistency”. Inspired by PS, in this paper we first investigate the trace semantics for the relaxed read and write accesses under C++11, acting in the denotational semantics style. In our semantic model, a trace is in the form of a sequence of snapshots, and the snapshots record the modification in the relevant global or local variables, and the thread view. Moreover, the trace semantics for the release/acquire accesses under C++11 is also explored, based on the separated thread views and newly added message views. </p><p>When considering this trace model, different accesses bring in their unique snapshots, and make distinguished effects on the production of the sequences. </p><p>For any given program, the proposed trace semantics in this paper produces all the valid traces directly. Further, our trace semantics, together with that for TSO and MCA ARMv8, has the possibility to be the foundation of the meta model of the trace semantics for weak memory models.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"33 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2024-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141259170","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
SecCT: Secure and scalable count query models on encrypted genomic data SecCT:加密基因组数据的安全和可扩展计数查询模型
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-06-03 DOI: 10.1145/3670697
Yanguo Peng, Rongqiao Liu, Jingjing Guo, Xiyue Gao, Luyuan Huang, Yaofeng Tu

Recently, due to the continued reduction in DNA sequencing cost, large-scale genetic samples are being gathered for accelerating predispositions to specific diseases, tailoring treatment of efficient drugs and therapies, etc. Massive genetic samples are encrypted-and-then-delegated to a public cloud to both save investment and maintenance costs and prevent the potential leakage of sensitive information. However, such a manner compromises the serviceability of a public cloud, since encryption inevitably breaks the semantic information of genetic samples. Secure count query of single-nucleotide polymorphisms (SNPs), as a kernel component for GWASs and related genomic analysis, is attracting much more attention.

Existing methods lack provable security, suffer low efficiency caused by multiple interactions with the cloud, etc. In this paper, a secure virtual CT-Tree (secure vCT-Tree) is carefully constructed to confuse the tree structure by introducing a hash function and a Paillier system. Furthermore, by delegating the secure vCT-Tree to the cloud, concrete models (i.e., SecCT and SecCT+) are presented to resolve secure count query problems on-the-fly. SecCT+ is a solution based on trusted execution environment while SecCT is a pure software solution. Both models advance the provable security of genetic research and are proven to be secure under the adaptive chosen keyword (query) attack (IND-CKA2) model. Furthermore, massive experiments are evaluated on realistic data to show the superiority of SecCT and SecCT+.

最近,由于 DNA 测序成本的不断降低,人们正在收集大规模的基因样本,以加速对特定疾病的倾向性分析、定制高效药物和疗法等。为了节省投资和维护成本,并防止敏感信息的潜在泄漏,人们将大量基因样本加密后委托给公共云。然而,由于加密不可避免地会破坏基因样本的语义信息,因此这种方式损害了公共云的可服务性。单核苷酸多态性(SNPs)的安全计数查询作为 GWAS 和相关基因组分析的核心组件,正引起越来越多的关注。现有方法缺乏可证明的安全性,与云的多重交互导致效率低下等。本文精心构建了一种安全虚拟 CT 树(secure vCT-Tree),通过引入哈希函数和 Paillier 系统来混淆树结构。此外,通过将安全 vCT-Tree 委托给云,本文提出了具体的模型(即 SecCT 和 SecCT+)来即时解决安全计数查询问题。SecCT+ 是基于可信执行环境的解决方案,而 SecCT 是纯软件解决方案。这两种模型都推进了基因研究的可证明安全性,并证明在自适应选择关键词(查询)攻击(IND-CKA2)模型下是安全的。此外,还在现实数据上进行了大规模实验评估,以显示 SecCT 和 SecCT+ 的优越性。
{"title":"SecCT: Secure and scalable count query models on encrypted genomic data","authors":"Yanguo Peng, Rongqiao Liu, Jingjing Guo, Xiyue Gao, Luyuan Huang, Yaofeng Tu","doi":"10.1145/3670697","DOIUrl":"https://doi.org/10.1145/3670697","url":null,"abstract":"<p>Recently, due to the continued reduction in DNA sequencing cost, large-scale genetic samples are being gathered for accelerating predispositions to specific diseases, tailoring treatment of efficient drugs and therapies, etc. Massive genetic samples are encrypted-and-then-delegated to a public cloud to both save investment and maintenance costs and prevent the potential leakage of sensitive information. However, such a manner compromises the serviceability of a public cloud, since encryption inevitably breaks the semantic information of genetic samples. Secure count query of single-nucleotide polymorphisms (SNPs), as a kernel component for GWASs and related genomic analysis, is attracting much more attention. </p><p>Existing methods lack provable security, suffer low efficiency caused by multiple interactions with the cloud, etc. In this paper, a secure virtual CT-Tree (secure vCT-Tree) is carefully constructed to confuse the tree structure by introducing a hash function and a Paillier system. Furthermore, by delegating the secure vCT-Tree to the cloud, concrete models (i.e., SecCT and SecCT+) are presented to resolve secure count query problems on-the-fly. SecCT+ is a solution based on trusted execution environment while SecCT is a pure software solution. Both models advance the provable security of genetic research and are proven to be secure under the adaptive chosen keyword (query) attack (IND-CKA2) model. Furthermore, massive experiments are evaluated on realistic data to show the superiority of SecCT and SecCT+.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"33 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2024-06-03","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141259318","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
On Formal Methods Thinking in Computer Science Education 论计算机科学教育中的形式方法思维
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-06-01 DOI: 10.1145/3670419
Brijesh Dongol, Catherine Dubois, Stefan Hallerstede, Eric Hehner, Carroll Morgan, Peter Müller, Leila Ribeiro, Alexandra Silva, Graeme Smith, Erik de Vink

Formal Methods (FM) radically improve the quality of the code artefacts they help to produce. They are simple, probably accessible to first-year undergraduate students and certainly to second-year students and beyond. Nevertheless, in many cases, they are not part of a general recommendation for course curricula, i.e., they are not taught — and yet they are valuable.

One reason for this is that teaching “Formal Methods” is often confused with teaching logic and theory. This paper advocates what we call FM thinking: the application of ideas from Formal Methods applied in informal, lightweight, practical and accessible ways. And we will argue here that FM thinking should be part of the recommended curriculum for every Computer Science student. For even students who train only in that “thinking” will become much better programmers. But there will be others who, exposed to those ideas, will be ideally positioned to go further into the more theoretical background: why the techniques work; how they can be automated; and how new ones can be developed. Those students would follow subsequently a specialised, more theoretical stream, including topics such as semantics, logics, verification and proof-automation techniques.

形式化方法(FM)能从根本上提高代码成品的质量。它们很简单,本科一年级的学生可能就能掌握,当然二年级以上的学生也能掌握。然而,在许多情况下,它们并不是课程设置的一般建议的一部分,也就是说,它们并没有被教授,但它们却很有价值。其中一个原因是,教授 "形式化方法 "常常与教授逻辑和理论相混淆。本文提倡我们所说的 "FM 思维":以非正式的、轻量级的、实用的和易于理解的方式应用形式化方法的思想。我们将在此论证,FM 思维应成为每个计算机科学专业学生的推荐课程之一。因为即使只接受这种 "思维 "训练的学生,也会成为更好的程序员。但还有一些学生,他们在接触到这些思想后,将有能力进一步了解更多的理论背景:这些技术为何有效;如何实现自动化;以及如何开发新的技术。这些学生随后将学习更专业、更理论化的课程,包括语义学、逻辑学、验证和证明自动化技术等主题。
{"title":"On Formal Methods Thinking in Computer Science Education","authors":"Brijesh Dongol, Catherine Dubois, Stefan Hallerstede, Eric Hehner, Carroll Morgan, Peter Müller, Leila Ribeiro, Alexandra Silva, Graeme Smith, Erik de Vink","doi":"10.1145/3670419","DOIUrl":"https://doi.org/10.1145/3670419","url":null,"abstract":"<p>Formal Methods (FM) radically improve the quality of the code artefacts they help to produce. They are simple, probably accessible to first-year undergraduate students and certainly to second-year students and beyond. Nevertheless, in many cases, they are not part of a general recommendation for course curricula, i.e., they are not taught — and yet they are valuable. </p><p>One reason for this is that teaching “Formal Methods” is often confused with teaching logic and theory. This paper advocates what we call <i>FM thinking</i>: the application of <underline>ideas</underline> from <i>Formal</i> Methods applied in informal, lightweight, practical and accessible ways. And we will argue here that <i>FM thinking</i> should be part of the recommended curriculum for every Computer Science student. For even students who train only in that “thinking” will become much better programmers. But there will be others who, exposed to those ideas, will be ideally positioned to go further into the more theoretical background: why the techniques work; how they can be automated; and how new ones can be developed. Those students would follow subsequently a specialised, more theoretical stream, including topics such as semantics, logics, verification and proof-automation techniques.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"23 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2024-06-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141194465","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
FuSeBMC v4: Improving code coverage with smart seeds via BMC, fuzzing and static analysis FuSeBMC v4:通过 BMC、模糊处理和静态分析利用智能种子提高代码覆盖率
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-05-20 DOI: 10.1145/3665337
Kaled Alshmrany, Mohannad Aldughaim, Ahmed Bhayat, Lucas Cordeiro

Bounded model checking (BMC) and fuzzing techniques are among the most effective methods for detecting errors and security vulnerabilities in software. However, there are still shortcomings in detecting these errors due to the inability of existent methods to cover large areas in target code. We propose FuSeBMC v4, a test generator that synthesizes seeds with useful properties, that we refer to as smart seeds, to improve the performance of its hybrid fuzzer thereby achieving high C program coverage. FuSeBMC works by first analyzing and incrementally injecting goal labels into the given C program to guide BMC and Evolutionary Fuzzing engines. After that, the engines are employed for an initial period to produce the so–called smart seeds. Finally, the engines are run again, with these smart seeds as starting seeds, in an attempt to achieve maximum code coverage / find bugs. During seed generation and normal running, the Tracer subsystem aids coordination between the engines. This subsystem conducts additional coverage analysis and updates a shared memory with information on goals covered so far. Furthermore, the Tracer evaluates test-cases dynamically to convert cases into seeds for subsequent test fuzzing. Thus, the BMC engine can provide the seed that allows the fuzzing engine to bypass complex mathematical guards (e.g., input validation). As a result, we received three awards for participation in the fourth international competition in software testing (Test-Comp 2022), outperforming all state-of-the-art tools in every category, including the coverage category.

有界模型检查(BMC)和模糊技术是检测软件错误和安全漏洞的最有效方法之一。然而,由于现有方法无法覆盖目标代码中的大面积区域,因此在检测这些错误方面仍存在不足。我们提出的 FuSeBMC v4 是一种测试生成器,它能合成具有有用特性的种子(我们称之为智能种子),以提高混合模糊器的性能,从而实现 C 程序的高覆盖率。FuSeBMC 的工作原理是,首先分析并逐步向给定的 C 程序中注入目标标签,以指导 BMC 和进化模糊引擎。然后,在初始阶段使用引擎生成所谓的智能种子。最后,以这些智能种子作为起始种子,再次运行引擎,试图实现最大的代码覆盖率/发现错误。在种子生成和正常运行期间,跟踪子系统会帮助引擎之间进行协调。该子系统会进行额外的覆盖率分析,并更新共享内存中有关迄今为止所覆盖目标的信息。此外,跟踪器还动态评估测试用例,将案例转化为种子,供后续测试模糊处理使用。因此,BMC 引擎可以提供种子,让模糊引擎绕过复杂的数学防护(如输入验证)。因此,在第四届国际软件测试竞赛(Test-Comp 2022)中,我们获得了三个奖项,在包括覆盖率在内的每个类别中都超越了所有最先进的工具。
{"title":"FuSeBMC v4: Improving code coverage with smart seeds via BMC, fuzzing and static analysis","authors":"Kaled Alshmrany, Mohannad Aldughaim, Ahmed Bhayat, Lucas Cordeiro","doi":"10.1145/3665337","DOIUrl":"https://doi.org/10.1145/3665337","url":null,"abstract":"<p>Bounded model checking (BMC) and fuzzing techniques are among the most effective methods for detecting errors and security vulnerabilities in software. However, there are still shortcomings in detecting these errors due to the inability of existent methods to cover large areas in target code. We propose <i>FuSeBMC</i> v4, a test generator that synthesizes seeds with useful properties, that we refer to as <i>smart seeds</i>, to improve the performance of its hybrid fuzzer thereby achieving high C program coverage. <i>FuSeBMC</i> works by first analyzing and incrementally injecting goal labels into the given C program to guide BMC and Evolutionary Fuzzing engines. After that, the engines are employed for an initial period to produce the so–called smart seeds. Finally, the engines are run again, with these smart seeds as starting seeds, in an attempt to achieve maximum code coverage / find bugs. During seed generation and normal running, the <i>Tracer</i> subsystem aids coordination between the engines. This subsystem conducts additional coverage analysis and updates a shared memory with information on goals covered so far. Furthermore, the <i>Tracer</i> evaluates test-cases dynamically to convert cases into seeds for subsequent test fuzzing. Thus, the BMC engine can provide the seed that allows the fuzzing engine to bypass complex mathematical guards (e.g., input validation). As a result, we received three awards for participation in the fourth international competition in software testing (Test-Comp 2022), outperforming all state-of-the-art tools in every category, including the coverage category.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"40 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2024-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141152999","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
Using Multi-dimensional Quorums for Optimal Resilience in Multi-resource Blockchains 在多资源区块链中使用多维法定量表实现最佳复原力
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-05-17 DOI: 10.1145/3665338
Yucheng Sun, Ruomu Hou, Haifeng Yu

Permissionless blockchains commonly use resource challenges to defend against sybil attacks. For example, popular resource challenge designs include Proof-of-Work and Proof-of-Stake. It is well-known that simultaneously exploiting multiple resources can help make a permissionless blockchain more robust. For example, combining PoW and PoS can help to keep a blockchain secure, even when the attacker controls more than 50% of the computational power in the system.

While there have been existing efforts for combining multiple resources in blockchains, they only provide partial solutions. Specifically, it is currently still unclear how to combine PoW and PoS, or multiple resources in general, to achieve optimal resilience. Here by optimal resilience, we mean that the blockchain can tolerate every security region, unless that security region is proven to be impossible to tolerate. Existing designs are not able to achieve such optimal resilience.

As our central contribution, this work proposes the novel design and formal security analysis of a blockchain protocol that combines PoS and PoW, which can be further generalized to multiple resources. Our blockchain is the very first blockchain that can achieve optimal resilience. Our design also overcomes a common tricky issue of PoW difficulty adjustment in previous designs. We have further implemented a research prototype of our blockchain design, and experimentally demonstrated its good end-to-end performance.

无权限区块链通常使用资源挑战来抵御仿冒攻击。例如,流行的资源挑战设计包括工作证明(Proof-of-Work)和摄取证明(Proof-of-Stake)。众所周知,同时利用多种资源有助于提高无权限区块链的稳健性。例如,将 PoW 和 PoS 结合起来,即使攻击者控制了系统中 50% 以上的计算能力,也能帮助保证区块链的安全。虽然目前已经有了在区块链中结合多种资源的努力,但它们只提供了部分解决方案。具体来说,目前还不清楚如何结合 PoW 和 PoS 或一般的多种资源来实现最佳弹性。这里所说的最佳弹性,是指区块链可以容忍每一个安全区域,除非该安全区域被证明是不可能容忍的。现有的设计无法实现这种最佳弹性。作为我们的核心贡献,这项工作提出了一种结合 PoS 和 PoW 的区块链协议的新颖设计和正式安全分析,该协议可进一步推广到多种资源。我们的区块链是第一个可以实现最佳弹性的区块链。我们的设计还克服了以往设计中常见的PoW难度调整的棘手问题。我们进一步实现了区块链设计的研究原型,并通过实验证明了其良好的端到端性能。
{"title":"Using Multi-dimensional Quorums for Optimal Resilience in Multi-resource Blockchains","authors":"Yucheng Sun, Ruomu Hou, Haifeng Yu","doi":"10.1145/3665338","DOIUrl":"https://doi.org/10.1145/3665338","url":null,"abstract":"<p>Permissionless blockchains commonly use resource challenges to defend against sybil attacks. For example, popular resource challenge designs include Proof-of-Work and Proof-of-Stake. It is well-known that simultaneously exploiting multiple resources can help make a permissionless blockchain more robust. For example, combining PoW and PoS can help to keep a blockchain secure, even when the attacker controls more than 50% of the computational power in the system. </p><p>While there have been existing efforts for combining multiple resources in blockchains, they only provide partial solutions. Specifically, it is currently still unclear <i>how to combine PoW and PoS, or multiple resources in general, to achieve optimal resilience</i>. Here by <i>optimal resilience</i>, we mean that the blockchain can tolerate every <i>security region</i>, unless that security region is proven to be impossible to tolerate. Existing designs are not able to achieve such optimal resilience. </p><p>As our central contribution, this work proposes the novel design and formal security analysis of a blockchain protocol that combines PoS and PoW, which can be further generalized to multiple resources. Our blockchain is the <i>very first</i> blockchain that can achieve <i>optimal resilience</i>. Our design also overcomes a common tricky issue of PoW difficulty adjustment in previous designs. We have further implemented a research prototype of our blockchain design, and experimentally demonstrated its good end-to-end performance.</p>","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":"26 1","pages":""},"PeriodicalIF":1.0,"publicationDate":"2024-05-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141063912","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区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING 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":"44 1","pages":""},"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
A compositional simulation framework for Abstract State Machine models of Discrete Event Systems 离散事件系统抽象状态机模型的合成模拟框架
IF 1 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING 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":"23 1","pages":""},"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区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING 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":"51 1","pages":""},"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区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING 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":"306 1 1","pages":""},"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
期刊
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