首页 > 最新文献

Formal Aspects of Computing最新文献

英文 中文
ω-Regular Energy Problems ω-常规能量问题
IF 1.4 4区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Pub Date : 2024-07-17 DOI: 10.1145/3678265
S. Dziadek, Ulrich Fahrenberg, Philipp Schlehuber
We show how to efficiently solve problems involving a quantitative measure, here called energy, as well as a qualitative acceptance condition, expressed as a Büchi or Parity objective, in finite weighted automata and in one-clock weighted timed automata. Solving the former problem and extracting the corresponding witness is our main contribution and is handled by a modified version of the Bellman-Ford algorithm interleaved with Couvreur’s algorithm. The latter problem is handled via a reduction to the former relying on the corner-point abstraction. All our algorithms are freely available and implemented in a tool based on the open-source platforms TChecker and Spot.
我们展示了如何在有限加权自动机和单时钟加权定时自动机中高效解决涉及定量度量(这里称为能量)和定性接受条件(用布奇或奇偶目标表示)的问题。解决前一个问题并提取相应的见证是我们的主要贡献,它是通过改进版的贝尔曼-福德算法和库弗勒算法交错处理的。后一个问题是通过对前者的还原,依靠角点抽象来解决的。我们的所有算法都是免费提供的,并在基于开源平台 TChecker 和 Spot 的工具中实现。
{"title":"ω-Regular Energy Problems","authors":"S. Dziadek, Ulrich Fahrenberg, Philipp Schlehuber","doi":"10.1145/3678265","DOIUrl":"https://doi.org/10.1145/3678265","url":null,"abstract":"We show how to efficiently solve problems involving a quantitative measure, here called energy, as well as a qualitative acceptance condition, expressed as a Büchi or Parity objective, in finite weighted automata and in one-clock weighted timed automata. Solving the former problem and extracting the corresponding witness is our main contribution and is handled by a modified version of the Bellman-Ford algorithm interleaved with Couvreur’s algorithm. The latter problem is handled via a reduction to the former relying on the corner-point abstraction. All our algorithms are freely available and implemented in a tool based on the open-source platforms TChecker and Spot.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.4,"publicationDate":"2024-07-17","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141828007","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 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":null,"pages":null},"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
Does Every Computer Scientist Need to Know Formal Methods? 每个计算机科学家都需要了解形式化方法吗?
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2024-06-10 DOI: 10.1145/3670795
Manfred Broy, Achim Brucker, Alessandro Fantechi, Mario Gleirscher, Klaus Havelund, M. Kuppe, Alexandra Mendes, André Platzer, Jan Ringert, Allison Sullivan
We focus on the integration of Formal Methods as mandatory theme in any Computer Science University curriculum. In particular, when considering the ACM Curriculum for Computer Science, the inclusion of Formal Methods as a mandatory Knowledge Area needs arguing for why and how does every computer science graduate benefit from such knowledge. We do not agree with the sentence “While there is a belief that formal methods are important and they are growing in importance, we cannot state that every computer science graduate will need to use formal methods in their career.” We argue that formal methods are and have to be an integral part of every computer science curriculum. Just as not all graduates will need to know how to work with databases either, it is still important for students to have a basic understanding of how data is stored and managed efficiently. The same way, students have to understand why and how methods work, what their formal background is, and how they are justified. No engineer should be ignorant of the foundations of their subject and the formal methods based on these. In this paper, we aim to highlight why every computer scientist needs to be familiar with formal methods. We argue that education in formal methods plays a key role by shaping students' programming mindset, fostering an appreciation for underlying principles, and encouraging the practice of thoughtful program design and justification, rather than simply writing programs without reflection and deeper understanding. Since integrating formal methods into the computer science curriculum is not a straightforward process, we explore the additional question: what are the trade-offs between one dedicated knowledge area of formal methods in a computer science curriculum versus having formal methods scattered across all knowledge areas? Solving problems while designing software and software-intensive systems demands an understanding of what is required, followed by a specification and formalizing a solution in a programming language. How to do this systematically and correctly on solid grounds is exactly the supported by Formal Methods.
我们重点关注将形式化方法作为必修主题纳入任何计算机科学大学课程的问题。特别是,在考虑 ACM 计算机科学课程时,将形式化方法列为必修知识领域需要论证为什么以及如何让每个计算机科学毕业生从这些知识中受益。我们不同意这样一句话:"虽然我们相信形式化方法很重要,而且它们的重要性也在不断增加,但我们不能说每个计算机科学专业的毕业生都需要在他们的职业生涯中使用形式化方法"。我们认为,形式化方法是而且必须是每个计算机科学课程的组成部分。正如并非所有毕业生都需要了解如何使用数据库一样,让学生基本了解如何有效地存储和管理数据仍然非常重要。同样,学生必须了解各种方法的工作原理和方法,了解这些方法的正式背景,以及这些方法的合理性。任何工程师都不应该对自己学科的基础和基于这些基础的形式方法一无所知。在本文中,我们旨在强调为什么每个计算机科学家都需要熟悉形式化方法。我们认为,形式化方法教育的关键作用在于塑造学生的编程思维,培养对基本原理的理解,并鼓励学生进行深思熟虑的程序设计和论证,而不是简单地编写程序而不加思考和深入理解。由于将形式化方法融入计算机科学课程并不是一个简单的过程,因此我们探讨了另外一个问题:在计算机科学课程中专门设置一个形式化方法知识领域与将形式化方法分散到所有知识领域之间的权衡是什么?在设计软件和软件密集型系统时,要解决问题,就必须先了解需要什么,然后用编程语言规范和形式化解决方案。如何在坚实的基础上系统而正确地做到这一点,正是形式化方法所支持的。
{"title":"Does Every Computer Scientist Need to Know Formal Methods?","authors":"Manfred Broy, Achim Brucker, Alessandro Fantechi, Mario Gleirscher, Klaus Havelund, M. Kuppe, Alexandra Mendes, André Platzer, Jan Ringert, Allison Sullivan","doi":"10.1145/3670795","DOIUrl":"https://doi.org/10.1145/3670795","url":null,"abstract":"We focus on the integration of Formal Methods as mandatory theme in any Computer Science University curriculum. In particular, when considering the ACM Curriculum for Computer Science, the inclusion of Formal Methods as a mandatory Knowledge Area needs arguing for why and how does every computer science graduate benefit from such knowledge. We do not agree with the sentence “While there is a belief that formal methods are important and they are growing in importance, we cannot state that every computer science graduate will need to use formal methods in their career.” We argue that formal methods are and have to be an integral part of every computer science curriculum. Just as not all graduates will need to know how to work with databases either, it is still important for students to have a basic understanding of how data is stored and managed efficiently. The same way, students have to understand why and how methods work, what their formal background is, and how they are justified. No engineer should be ignorant of the foundations of their subject and the formal methods based on these. In this paper, we aim to highlight why every computer scientist needs to be familiar with formal methods. We argue that education in formal methods plays a key role by shaping students' programming mindset, fostering an appreciation for underlying principles, and encouraging the practice of thoughtful program design and justification, rather than simply writing programs without reflection and deeper understanding. Since integrating formal methods into the computer science curriculum is not a straightforward process, we explore the additional question: what are the trade-offs between one dedicated knowledge area of formal methods in a computer science curriculum versus having formal methods scattered across all knowledge areas? Solving problems while designing software and software-intensive systems demands an understanding of what is required, followed by a specification and formalizing a solution in a programming language. How to do this systematically and correctly on solid grounds is exactly the supported by Formal Methods.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2024-06-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141361913","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
Specification and Verification of Multi-clock Systems using a Temporal Logic with Clock Constraints 使用带时钟约束的时态逻辑规范和验证多时钟系统
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2024-06-08 DOI: 10.1145/3670794
Yuanrui Zhang, Frederic Mallet, Min Zhang, Zhiming Liu
The polychronous or multi-clock paradigm is adequate to model large distributed systems where achieving a full timed synchronization is not only very costly, but also often not necessary. It concerns systems made of a set of components with loose synchronization constraints. We study an approach where those components are orchestrated using logical clocks, made popular by L. Lamport and synchronous languages. The temporal and causal specification of those systems is built by defining a set of clock relations that would constrain the instant when clocks can tick or must not tick, thus defining families of valid schedules. In this paper, we propose a specification language, called LTLc /CCSL, for specifying temporal properties of multi-clock systems. While traditional temporal logics (LTL, MTL, CTL*), whether linear or branching, rely on a global step, our language, LTLc /CCSL, builds a partial order on logical clocks, thus allowing both a hierarchical approach based on refinement of clock hierarchies, and compositionality as what happens in one clock domain may remain largely independent of what may happen in other domains. This good property helps preserve the properties without requiring to perform the proofs again. An LTLc /CCSL specification consists of a clock temporal logic LTLc, accompanied with a clock calculus called CCSL for specifying clock relations. We build the syntax and semantics of LTLc and link its semantics with CCSL. After that we mainly focus on the verification aspect of LTLc /CCSL specifications using model checking technique. We show how LTLc /CCSL can be used for specifying multi-clock systems with an example.
在大型分布式系统中,实现完全定时同步不仅成本高昂,而且往往没有必要。它适用于由一组具有松散同步约束的组件组成的系统。L. Lamport 和同步语言流行起来的一种方法。这些系统的时间和因果规范是通过定义一组时钟关系来建立的,这些时钟关系将限制时钟可以滴答或不可以滴答的瞬间,从而定义有效的时间表系列。在本文中,我们提出了一种名为 LTLc /CCSL 的规范语言,用于指定多时钟系统的时间属性。传统的时态逻辑(LTL、MTL、CTL*),无论是线性逻辑还是分支逻辑,都依赖于全局步骤,而我们的语言 LTLc /CCSL 则在逻辑时钟上建立了部分顺序,从而允许基于时钟层次结构细化的分层方法和组合性,因为一个时钟域中发生的事情可能在很大程度上与其他域中可能发生的事情无关。这种良好的特性有助于保留这些特性,而无需再次进行证明。LTLc /CCSL 规范由时钟时态逻辑 LTLc 和用于指定时钟关系的时钟微积分 CCSL 组成。我们构建了 LTLc 的语法和语义,并将其语义与 CCSL 联系起来。之后,我们将重点放在使用模型检查技术验证 LTLc /CCSL 规范方面。我们通过一个例子展示了 LTLc /CCSL 如何用于指定多时钟系统。
{"title":"Specification and Verification of Multi-clock Systems using a Temporal Logic with Clock Constraints","authors":"Yuanrui Zhang, Frederic Mallet, Min Zhang, Zhiming Liu","doi":"10.1145/3670794","DOIUrl":"https://doi.org/10.1145/3670794","url":null,"abstract":"The polychronous or multi-clock paradigm is adequate to model large distributed systems where achieving a full timed synchronization is not only very costly, but also often not necessary. It concerns systems made of a set of components with loose synchronization constraints. We study an approach where those components are orchestrated using logical clocks, made popular by L. Lamport and synchronous languages. The temporal and causal specification of those systems is built by defining a set of clock relations that would constrain the instant when clocks can tick or must not tick, thus defining families of valid schedules. In this paper, we propose a specification language, called LTLc /CCSL, for specifying temporal properties of multi-clock systems. While traditional temporal logics (LTL, MTL, CTL*), whether linear or branching, rely on a global step, our language, LTLc /CCSL, builds a partial order on logical clocks, thus allowing both a hierarchical approach based on refinement of clock hierarchies, and compositionality as what happens in one clock domain may remain largely independent of what may happen in other domains. This good property helps preserve the properties without requiring to perform the proofs again. An LTLc /CCSL specification consists of a clock temporal logic LTLc, accompanied with a clock calculus called CCSL for specifying clock relations. We build the syntax and semantics of LTLc and link its semantics with CCSL. After that we mainly focus on the verification aspect of LTLc /CCSL specifications using model checking technique. We show how LTLc /CCSL can be used for specifying multi-clock systems with an example.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2024-06-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141368042","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
SMT based parameter identifiable combination detection for non-linear continuous and hybrid dynamics 基于 SMT 的非线性连续和混合动力学参数可识别组合检测
IF 1 4区 计算机科学 Q2 Mathematics Pub Date : 2024-06-07 DOI: 10.1145/3665920
Devleena Ghosh, C. Mandal
Parameter identifiability is an important aspect of parameter estimation of dynamic system modelling. Several methods exist to determine identifiability of parameter sets using the model definition and analysis of experimental data. There is also the possibility of some parameters being independently unidentifiable but forming identifiable parameter combinations. These identifiable parameter combinations are useful in model reparameterisation to estimate parameters experimentally. Multiple numerical and algebraic methods exist to detect identifiable parameter combinations of dynamic system models represented as ordinary differential equations (ODE). Local identifiability analysis of hybrid system models are available in the literature. However, methods for structural identifiability analysis and identifiable combination detection for hybrid systems are not explored. Here, we have developed a parameter identifiable combination detection method for non-linear hybrid systems along with ODE systems using an SMT based parameter space exploration method. For higher dimensional systems and larger parameter space, SMT based approaches may easily become computationally intractable. This problem has been mitigated to a large extent by heuristically limiting the parameter space to be explored, using Gaussian process regression and gradient based approaches. The developed method has been demonstrated for some simple hybrid models, biochemical models of ODE systems and non-linear hybrid systems.
参数可识别性是动态系统建模参数估计的一个重要方面。有几种方法可以利用模型定义和实验数据分析来确定参数集的可识别性。还有一种可能性是,某些参数无法独立识别,但可以形成可识别的参数组合。这些可识别的参数组合有助于对模型进行重新参数化,从而通过实验估算参数。有多种数值和代数方法可以检测以常微分方程(ODE)表示的动态系统模型的可识别参数组合。文献中提供了混合系统模型的局部可识别性分析。然而,对混合系统的结构可识别性分析和可识别组合检测方法还没有进行探讨。在这里,我们利用基于 SMT 的参数空间探索方法,为非线性混合系统和 ODE 系统开发了一种参数可识别组合检测方法。对于高维系统和更大的参数空间,基于 SMT 的方法很容易变得难以计算。通过使用高斯过程回归和基于梯度的方法,启发式地限制待探索的参数空间,在很大程度上缓解了这一问题。所开发的方法已在一些简单混合模型、ODE 系统生化模型和非线性混合系统中得到了验证。
{"title":"SMT based parameter identifiable combination detection for non-linear continuous and hybrid dynamics","authors":"Devleena Ghosh, C. Mandal","doi":"10.1145/3665920","DOIUrl":"https://doi.org/10.1145/3665920","url":null,"abstract":"Parameter identifiability is an important aspect of parameter estimation of dynamic system modelling. Several methods exist to determine identifiability of parameter sets using the model definition and analysis of experimental data. There is also the possibility of some parameters being independently unidentifiable but forming identifiable parameter combinations. These identifiable parameter combinations are useful in model reparameterisation to estimate parameters experimentally. Multiple numerical and algebraic methods exist to detect identifiable parameter combinations of dynamic system models represented as ordinary differential equations (ODE). Local identifiability analysis of hybrid system models are available in the literature. However, methods for structural identifiability analysis and identifiable combination detection for hybrid systems are not explored. Here, we have developed a parameter identifiable combination detection method for non-linear hybrid systems along with ODE systems using an SMT based parameter space exploration method. For higher dimensional systems and larger parameter space, SMT based approaches may easily become computationally intractable. This problem has been mitigated to a large extent by heuristically limiting the parameter space to be explored, using Gaussian process regression and gradient based approaches. The developed method has been demonstrated for some simple hybrid models, biochemical models of ODE systems and non-linear hybrid systems.","PeriodicalId":50432,"journal":{"name":"Formal Aspects of Computing","volume":null,"pages":null},"PeriodicalIF":1.0,"publicationDate":"2024-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"141375769","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区 计算机科学 Q2 Mathematics 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":null,"pages":null},"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区 计算机科学 Q2 Mathematics 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":null,"pages":null},"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区 计算机科学 Q2 Mathematics 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":null,"pages":null},"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区 计算机科学 Q2 Mathematics 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":null,"pages":null},"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区 计算机科学 Q2 Mathematics 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":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":"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
期刊
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