首页 > 最新文献

Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages最新文献

英文 中文
Symbolic optimization with SMT solvers 使用SMT求解器进行符号优化
Yi Li, Aws Albarghouthi, Zachary Kincaid, A. Gurfinkel, M. Chechik
The rise in efficiency of Satisfiability Modulo Theories (SMT) solvers has created numerous uses for them in software verification, program synthesis, functional programming, refinement types, etc. In all of these applications, SMT solvers are used for generating satisfying assignments (e.g., a witness for a bug) or proving unsatisfiability/validity(e.g., proving that a subtyping relation holds). We are often interested in finding not just an arbitrary satisfying assignment, but one that optimizes (minimizes/maximizes) certain criteria. For example, we might be interested in detecting program executions that maximize energy usage (performance bugs), or synthesizing short programs that do not make expensive API calls. Unfortunately, none of the available SMT solvers offer such optimization capabilities. In this paper, we present SYMBA, an efficient SMT-based optimization algorithm for objective functions in the theory of linear real arithmetic (LRA). Given a formula φ and an objective function t, SYMBA finds a satisfying assignment of φthat maximizes the value of t. SYMBA utilizes efficient SMT solvers as black boxes. As a result, it is easy to implement and it directly benefits from future advances in SMT solvers. Moreover, SYMBA can optimize a set of objective functions, reusing information between them to speed up the analysis. We have implemented SYMBA and evaluated it on a large number of optimization benchmarks drawn from program analysis tasks. Our results indicate the power and efficiency of SYMBA in comparison with competing approaches, and highlight the importance of its multi-objective-function feature.
可满足模理论(SMT)求解器效率的提高为它们在软件验证、程序合成、函数式编程、优化类型等方面创造了许多用途。在所有这些应用程序中,SMT求解器用于生成令人满意的分配(例如,一个bug的见证)或证明不令人满意/有效性(例如。(证明子类型关系成立)。我们经常感兴趣的不仅仅是找到一个任意的令人满意的任务,而是找到一个优化(最小化/最大化)某些标准的任务。例如,我们可能感兴趣的是检测最大化能源使用的程序执行(性能错误),或者合成不进行昂贵API调用的短程序。不幸的是,没有一个可用的SMT求解器提供这样的优化功能。本文提出了线性实数算法(LRA)中基于smt的目标函数优化算法SYMBA。给定公式φ和目标函数t, SYMBA找到一个令人满意的φ赋值,使t的值最大化。SYMBA利用高效的SMT求解器作为黑盒。因此,它很容易实现,并直接受益于SMT求解器的未来发展。此外,SYMBA可以优化一组目标函数,并在目标函数之间重用信息以加快分析速度。我们已经实现了SYMBA,并在从程序分析任务中提取的大量优化基准上对其进行了评估。我们的研究结果表明了SYMBA与其他方法相比的能力和效率,并突出了其多目标函数特性的重要性。
{"title":"Symbolic optimization with SMT solvers","authors":"Yi Li, Aws Albarghouthi, Zachary Kincaid, A. Gurfinkel, M. Chechik","doi":"10.1145/2535838.2535857","DOIUrl":"https://doi.org/10.1145/2535838.2535857","url":null,"abstract":"The rise in efficiency of Satisfiability Modulo Theories (SMT) solvers has created numerous uses for them in software verification, program synthesis, functional programming, refinement types, etc. In all of these applications, SMT solvers are used for generating satisfying assignments (e.g., a witness for a bug) or proving unsatisfiability/validity(e.g., proving that a subtyping relation holds). We are often interested in finding not just an arbitrary satisfying assignment, but one that optimizes (minimizes/maximizes) certain criteria. For example, we might be interested in detecting program executions that maximize energy usage (performance bugs), or synthesizing short programs that do not make expensive API calls. Unfortunately, none of the available SMT solvers offer such optimization capabilities. In this paper, we present SYMBA, an efficient SMT-based optimization algorithm for objective functions in the theory of linear real arithmetic (LRA). Given a formula φ and an objective function t, SYMBA finds a satisfying assignment of φthat maximizes the value of t. SYMBA utilizes efficient SMT solvers as black boxes. As a result, it is easy to implement and it directly benefits from future advances in SMT solvers. Moreover, SYMBA can optimize a set of objective functions, reusing information between them to speed up the analysis. We have implemented SYMBA and evaluated it on a large number of optimization benchmarks drawn from program analysis tasks. Our results indicate the power and efficiency of SYMBA in comparison with competing approaches, and highlight the importance of its multi-objective-function feature.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":"30 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"76142769","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 131
A verified information-flow architecture 经过验证的信息流架构
Arthur Azevedo de Amorim, Nathan Collins, A. DeHon, Delphine Demange, Catalin Hritcu, David Pichardie, B. Pierce, R. Pollack, A. Tolmach
SAFE is a clean-slate design for a highly secure computer system, with pervasive mechanisms for tracking and limiting information flows. At the lowest level, the SAFE hardware supports fine-grained programmable tags, with efficient and flexible propagation and combination of tags as instructions are executed. The operating system virtualizes these generic facilities to present an information-flow abstract machine that allows user programs to label sensitive data with rich confidentiality policies. We present a formal, machine-checked model of the key hardware and software mechanisms used to control information flow in SAFE and an end-to-end proof of noninterference for this model.
SAFE是一个高度安全的计算机系统的全新设计,具有广泛的追踪和限制信息流的机制。在最低级别,SAFE硬件支持细粒度可编程标签,在执行指令时具有高效灵活的标签传播和组合。操作系统将这些通用设施虚拟化,以提供一个信息流抽象机器,允许用户程序用丰富的保密策略标记敏感数据。我们提出了一个用于控制SAFE信息流的关键硬件和软件机制的正式的、机器检查的模型,以及该模型的端到端不干扰证明。
{"title":"A verified information-flow architecture","authors":"Arthur Azevedo de Amorim, Nathan Collins, A. DeHon, Delphine Demange, Catalin Hritcu, David Pichardie, B. Pierce, R. Pollack, A. Tolmach","doi":"10.1145/2535838.2535839","DOIUrl":"https://doi.org/10.1145/2535838.2535839","url":null,"abstract":"SAFE is a clean-slate design for a highly secure computer system, with pervasive mechanisms for tracking and limiting information flows. At the lowest level, the SAFE hardware supports fine-grained programmable tags, with efficient and flexible propagation and combination of tags as instructions are executed. The operating system virtualizes these generic facilities to present an information-flow abstract machine that allows user programs to label sensitive data with rich confidentiality policies. We present a formal, machine-checked model of the key hardware and software mechanisms used to control information flow in SAFE and an end-to-end proof of noninterference for this model.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":"43 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79085656","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 86
Proofs that count 重要的证明
Azadeh Farzan, Zachary Kincaid, A. Podelski
Counting arguments are among the most basic proof methods in mathematics. Within the field of formal verification, they are useful for reasoning about programs with infinite control, such as programs with an unbounded number of threads, or (concurrent) programs with recursive procedures. While counting arguments are common in informal, hand-written proofs of such programs, there are no fully automated techniques to construct counting arguments. The key questions involved in automating counting arguments are: how to decide what should be counted?, and how to decide when a counting argument is valid? In this paper, we present a technique for automatically constructing and checking counting arguments, which includes novel solutions to these questions.
计数论证是数学中最基本的证明方法之一。在形式验证领域中,它们用于推理具有无限控制的程序,例如具有无限线程数的程序或具有递归过程的(并发)程序。虽然计数参数在此类程序的非正式手写证明中很常见,但没有完全自动化的技术来构造计数参数。自动计数参数涉及的关键问题是:如何决定应该计数什么?,以及如何确定计数参数何时有效?在本文中,我们提出了一种自动构造和检查计数参数的技术,其中包括对这些问题的新颖解决方案。
{"title":"Proofs that count","authors":"Azadeh Farzan, Zachary Kincaid, A. Podelski","doi":"10.1145/2535838.2535885","DOIUrl":"https://doi.org/10.1145/2535838.2535885","url":null,"abstract":"Counting arguments are among the most basic proof methods in mathematics. Within the field of formal verification, they are useful for reasoning about programs with infinite control, such as programs with an unbounded number of threads, or (concurrent) programs with recursive procedures. While counting arguments are common in informal, hand-written proofs of such programs, there are no fully automated techniques to construct counting arguments. The key questions involved in automating counting arguments are: how to decide what should be counted?, and how to decide when a counting argument is valid? In this paper, we present a technique for automatically constructing and checking counting arguments, which includes novel solutions to these questions.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":"171 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"72957690","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 34
CakeML: a verified implementation of ML CakeML:一个经过验证的ML实现
Ramana Kumar, Magnus O. Myreen, Michael Norrish, Scott Owens
We have developed and mechanically verified an ML system called CakeML, which supports a substantial subset of Standard ML. CakeML is implemented as an interactive read-eval-print loop (REPL) in x86-64 machine code. Our correctness theorem ensures that this REPL implementation prints only those results permitted by the semantics of CakeML. Our verification effort touches on a breadth of topics including lexing, parsing, type checking, incremental and dynamic compilation, garbage collection, arbitrary-precision arithmetic, and compiler bootstrapping. Our contributions are twofold. The first is simply in building a system that is end-to-end verified, demonstrating that each piece of such a verification effort can in practice be composed with the others, and ensuring that none of the pieces rely on any over-simplifying assumptions. The second is developing novel approaches to some of the more challenging aspects of the verification. In particular, our formally verified compiler can bootstrap itself: we apply the verified compiler to itself to produce a verified machine-code implementation of the compiler. Additionally, our compiler proof handles diverging input programs with a lightweight approach based on logical timeout exceptions. The entire development was carried out in the HOL4 theorem prover.
我们已经开发并机械验证了一个名为CakeML的ML系统,它支持标准ML的大量子集。CakeML在x86-64机器码中实现为交互式读取-执行-打印循环(REPL)。我们的正确性定理确保这个REPL实现只打印CakeML语义允许的结果。我们的验证工作涉及广泛的主题,包括词法分析、解析、类型检查、增量和动态编译、垃圾收集、任意精度算术和编译器引导。我们的贡献是双重的。首先是简单地构建一个端到端验证的系统,证明这种验证工作的每个部分在实践中可以与其他部分组成,并确保没有任何部分依赖于任何过度简化的假设。第二是为核查工作中一些较具挑战性的方面发展新的方法。特别是,经过正式验证的编译器可以自我引导:我们将经过验证的编译器应用于其自身,以生成经过验证的编译器的机器码实现。此外,我们的编译器证明使用基于逻辑超时异常的轻量级方法处理发散的输入程序。整个开发是在HOL4定理证明中进行的。
{"title":"CakeML: a verified implementation of ML","authors":"Ramana Kumar, Magnus O. Myreen, Michael Norrish, Scott Owens","doi":"10.1145/2535838.2535841","DOIUrl":"https://doi.org/10.1145/2535838.2535841","url":null,"abstract":"We have developed and mechanically verified an ML system called CakeML, which supports a substantial subset of Standard ML. CakeML is implemented as an interactive read-eval-print loop (REPL) in x86-64 machine code. Our correctness theorem ensures that this REPL implementation prints only those results permitted by the semantics of CakeML. Our verification effort touches on a breadth of topics including lexing, parsing, type checking, incremental and dynamic compilation, garbage collection, arbitrary-precision arithmetic, and compiler bootstrapping. Our contributions are twofold. The first is simply in building a system that is end-to-end verified, demonstrating that each piece of such a verification effort can in practice be composed with the others, and ensuring that none of the pieces rely on any over-simplifying assumptions. The second is developing novel approaches to some of the more challenging aspects of the verification. In particular, our formally verified compiler can bootstrap itself: we apply the verified compiler to itself to produce a verified machine-code implementation of the compiler. Additionally, our compiler proof handles diverging input programs with a lightweight approach based on logical timeout exceptions. The entire development was carried out in the HOL4 theorem prover.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":"73 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"89812239","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 351
Modular reasoning about concurrent higher-order imperative programs 并发高阶命令式程序的模块化推理
L. Birkedal
Modern mainstream programming languages permit a powerful combination of language features: concurrency, higher-order functions, and mutable shared data structures. These features are all very important for programming in practice. However, it is wellknown that the combination of them makes it difficult to write correct and secure programs, and it is therefore important to develop mathematically-based techniques for formal reasoning about correctness and security of programs with these features. To get scalable methods that apply to realistic programs, it is crucial that the mathematical models and logics support modular reasoning, meaning that (1) specifications and proofs are compositional wrt. the program structure; and (2) specifications and proofs can concentrate on the resources that a program actually acts upon, instead of its entire state. In this talk I will give an overview of some of the central developments that my group has worked on when generalizing reasoning techniques for simpler programming languages to concurrent, higher-order, imperative languages. I will consider both relational models and program logics based on higher-order separation logic.
现代主流编程语言允许强大的语言特性组合:并发性、高阶函数和可变共享数据结构。这些特性在实际编程中都是非常重要的。然而,众所周知,它们的组合使得编写正确和安全的程序变得困难,因此,开发基于数学的技术来对具有这些特征的程序的正确性和安全性进行形式化推理是很重要的。为了获得适用于实际程序的可伸缩方法,数学模型和逻辑支持模块化推理至关重要,这意味着(1)规范和证明是组合的wrt。程序结构;(2)规范和证明可以集中于程序实际作用的资源,而不是它的整个状态。在这次演讲中,我将概述我的团队在将简单编程语言的推理技术推广到并发、高阶、命令式语言时所做的一些核心发展。我将考虑基于高阶分离逻辑的关系模型和程序逻辑。
{"title":"Modular reasoning about concurrent higher-order imperative programs","authors":"L. Birkedal","doi":"10.1145/2535838.2537849","DOIUrl":"https://doi.org/10.1145/2535838.2537849","url":null,"abstract":"Modern mainstream programming languages permit a powerful combination of language features: concurrency, higher-order functions, and mutable shared data structures. These features are all very important for programming in practice. However, it is wellknown that the combination of them makes it difficult to write correct and secure programs, and it is therefore important to develop mathematically-based techniques for formal reasoning about correctness and security of programs with these features. To get scalable methods that apply to realistic programs, it is crucial that the mathematical models and logics support modular reasoning, meaning that (1) specifications and proofs are compositional wrt. the program structure; and (2) specifications and proofs can concentrate on the resources that a program actually acts upon, instead of its entire state. In this talk I will give an overview of some of the central developments that my group has worked on when generalizing reasoning techniques for simpler programming languages to concurrent, higher-order, imperative languages. I will consider both relational models and program logics based on higher-order separation logic.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":"20 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"83328589","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 1
A proof system for separation logic with magic wand 用魔棒证明分离逻辑的系统
Wonyeol Lee, Sungwoo Park
Separation logic is an extension of Hoare logic which is acknowledged as an enabling technology for large-scale program verification. It features two new logical connectives, separating conjunction and separating implication, but most of the applications of separation logic have exploited only separating conjunction without considering separating implication. Nevertheless the power of separating implication has been well recognized and there is a growing interest in its use for program verification. This paper develops a proof system for full separation logic which supports not only separating conjunction but also separating implication. The proof system is developed in the style of sequent calculus and satisfies the admissibility of cut. The key challenge in the development is to devise a set of inference rules for manipulating heap structures that ensure the completeness of the proof system with respect to separation logic. We show that our proof of completeness directly translates to a proof search strategy.
分离逻辑是霍尔逻辑的扩展,被认为是大规模程序验证的使能技术。它有两个新的逻辑连接词:分离连接和分离隐含,但是大多数分离逻辑的应用只利用了分离连接而没有考虑分离隐含。尽管如此,分离隐含的力量已经得到了很好的认识,并且对将其用于程序验证的兴趣越来越大。本文开发了一个既支持分离合又支持分离蕴涵的完全分离逻辑证明系统。该证明系统采用序列演算的形式,满足切的可容许性。开发中的关键挑战是设计一组用于操作堆结构的推理规则,以确保证明系统在分离逻辑方面的完整性。我们证明了我们的完备性证明直接转化为证明搜索策略。
{"title":"A proof system for separation logic with magic wand","authors":"Wonyeol Lee, Sungwoo Park","doi":"10.1145/2535838.2535871","DOIUrl":"https://doi.org/10.1145/2535838.2535871","url":null,"abstract":"Separation logic is an extension of Hoare logic which is acknowledged as an enabling technology for large-scale program verification. It features two new logical connectives, separating conjunction and separating implication, but most of the applications of separation logic have exploited only separating conjunction without considering separating implication. Nevertheless the power of separating implication has been well recognized and there is a growing interest in its use for program verification. This paper develops a proof system for full separation logic which supports not only separating conjunction but also separating implication. The proof system is developed in the style of sequent calculus and satisfies the admissibility of cut. The key challenge in the development is to devise a set of inference rules for manipulating heap structures that ensure the completeness of the proof system with respect to separation logic. We show that our proof of completeness directly translates to a proof search strategy.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":"6 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"88533549","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 29
Sound input filter generation for integer overflow errors 为整数溢出错误生成声音输入滤波器
Fan Long, Stelios Sidiroglou, Deokhwan Kim, M. Rinard
We present a system, SIFT, for generating input filters that nullify integer overflow errors associated with critical program sites such as memory allocation or block copy sites. SIFT uses a static pro- gram analysis to generate filters that discard inputs that may trigger integer overflow errors in the computations of the sizes of allocated memory blocks or the number of copied bytes in block copy operations. Unlike all previous techniques of which we are aware, SIFT is sound -- if an input passes the filter, it will not trigger an integer overflow error at any analyzed site. Our results show that SIFT successfully analyzes (and therefore generates sound input filters for) 56 out of 58 memory allocation and block memory copy sites in analyzed input processing modules from five applications (VLC, Dillo, Swfdec, Swftools, and GIMP). These nullified errors include six known integer overflow vulnerabilities. Our results also show that applying these filters to 62895 real-world inputs produces no false positives. The analysis and filter generation times are all less than a second.
我们提出了一个系统,SIFT,用于生成输入过滤器,该过滤器可以消除与关键程序站点(如内存分配或块复制站点)相关的整数溢出错误。SIFT使用静态程序分析来生成过滤器,这些过滤器丢弃可能在计算分配的内存块的大小或块复制操作中复制的字节数时触发整数溢出错误的输入。与我们所知道的所有以前的技术不同,SIFT是可靠的——如果输入通过过滤器,它不会在任何被分析的站点触发整数溢出错误。我们的结果表明,在分析的来自五个应用程序(VLC、Dillo、Swfdec、Swftools和GIMP)的输入处理模块中,SIFT成功地分析了58个内存分配和块内存复制站点中的56个(并因此生成声音输入过滤器)。这些无效错误包括六个已知的整数溢出漏洞。我们的结果还表明,对62895个实际输入应用这些过滤器不会产生误报。分析和滤波器的生成时间都小于1秒。
{"title":"Sound input filter generation for integer overflow errors","authors":"Fan Long, Stelios Sidiroglou, Deokhwan Kim, M. Rinard","doi":"10.1145/2535838.2535888","DOIUrl":"https://doi.org/10.1145/2535838.2535888","url":null,"abstract":"We present a system, SIFT, for generating input filters that nullify integer overflow errors associated with critical program sites such as memory allocation or block copy sites. SIFT uses a static pro- gram analysis to generate filters that discard inputs that may trigger integer overflow errors in the computations of the sizes of allocated memory blocks or the number of copied bytes in block copy operations. Unlike all previous techniques of which we are aware, SIFT is sound -- if an input passes the filter, it will not trigger an integer overflow error at any analyzed site. Our results show that SIFT successfully analyzes (and therefore generates sound input filters for) 56 out of 58 memory allocation and block memory copy sites in analyzed input processing modules from five applications (VLC, Dillo, Swfdec, Swftools, and GIMP). These nullified errors include six known integer overflow vulnerabilities. Our results also show that applying these filters to 62895 real-world inputs produces no false positives. The analysis and filter generation times are all less than a second.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":"28 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84363301","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 54
Applying quantitative semantics to higher-order quantum computing 定量语义在高阶量子计算中的应用
Michele Pagani, P. Selinger, B. Valiron
Finding a denotational semantics for higher order quantum computation is a long-standing problem in the semantics of quantum programming languages. Most past approaches to this problem fell short in one way or another, either limiting the language to an unusably small finitary fragment, or giving up important features of quantum physics such as entanglement. In this paper, we propose a denotational semantics for a quantum lambda calculus with recursion and an infinite data type, using constructions from quantitative semantics of linear logic.
寻找高阶量子计算的指称语义是量子编程语言语义中一个长期存在的问题。过去大多数解决这个问题的方法都以这样或那样的方式失败了,要么将语言限制在一个不可用的小有限片段上,要么放弃了量子物理的重要特征,比如纠缠。本文利用线性逻辑的定量语义构造,提出了具有无限数据类型的递归量子λ演算的指称语义。
{"title":"Applying quantitative semantics to higher-order quantum computing","authors":"Michele Pagani, P. Selinger, B. Valiron","doi":"10.1145/2535838.2535879","DOIUrl":"https://doi.org/10.1145/2535838.2535879","url":null,"abstract":"Finding a denotational semantics for higher order quantum computation is a long-standing problem in the semantics of quantum programming languages. Most past approaches to this problem fell short in one way or another, either limiting the language to an unusably small finitary fragment, or giving up important features of quantum physics such as entanglement. In this paper, we propose a denotational semantics for a quantum lambda calculus with recursion and an infinite data type, using constructions from quantitative semantics of linear logic.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":"32 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2013-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"87392354","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 73
On coinductive equivalences for higher-order probabilistic functional programs 高阶概率泛函规划的协归纳等价
Ugo Dal Lago, D. Sangiorgi, Michele Alberti
We study bisimulation and context equivalence in a probabilistic lambda-calculus. The contributions of this paper are threefold. Firstly we show a technique for proving congruence of probabilistic applicative bisimilarity. While the technique follows Howe's method, some of the technicalities are quite different, relying on non-trivial "disentangling" properties for sets of real numbers. Secondly we show that, while bisimilarity is in general strictly finer than context equivalence, coincidence between the two relations is attained on pure lambda-terms. The resulting equality is that induced by Levy-Longo trees, generally accepted as the finest extensional equivalence on pure lambda-terms under a lazy regime. Finally, we derive a coinductive characterisation of context equivalence on the whole probabilistic language, via an extension in which terms akin to distributions may appear in redex position. Another motivation for the extension is that its operational semantics allows us to experiment with a different congruence technique, namely that of logical bisimilarity.
我们研究了概率λ演算中的双模拟和上下文等价。本文的贡献有三个方面。首先给出了一种概率应用双相似度的同余证明方法。虽然这项技术沿用了Howe的方法,但一些技术上的差异很大,它依赖于实数集的非平凡“解纠缠”特性。其次,我们表明,虽然双相似性一般严格优于上下文等价,但在纯lambda项上,两种关系之间的重合是可以实现的。所得的等式是由Levy-Longo树推导出来的,通常被认为是惰性状态下纯λ项上最优的扩展等价。最后,我们推导了整个概率语言上上下文等价的协归纳特征,通过一个扩展,其中类似于分布的项可能出现在索引位置。扩展的另一个动机是,它的操作语义允许我们试验不同的同余技术,即逻辑双相似性。
{"title":"On coinductive equivalences for higher-order probabilistic functional programs","authors":"Ugo Dal Lago, D. Sangiorgi, Michele Alberti","doi":"10.1145/2535838.2535872","DOIUrl":"https://doi.org/10.1145/2535838.2535872","url":null,"abstract":"We study bisimulation and context equivalence in a probabilistic lambda-calculus. The contributions of this paper are threefold. Firstly we show a technique for proving congruence of probabilistic applicative bisimilarity. While the technique follows Howe's method, some of the technicalities are quite different, relying on non-trivial \"disentangling\" properties for sets of real numbers. Secondly we show that, while bisimilarity is in general strictly finer than context equivalence, coincidence between the two relations is attained on pure lambda-terms. The resulting equality is that induced by Levy-Longo trees, generally accepted as the finest extensional equivalence on pure lambda-terms under a lazy regime. Finally, we derive a coinductive characterisation of context equivalence on the whole probabilistic language, via an extension in which terms akin to distributions may appear in redex position. Another motivation for the extension is that its operational semantics allows us to experiment with a different congruence technique, namely that of logical bisimilarity.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":"5 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2013-11-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75367699","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 59
Abstract acceleration of general linear loops 一般线性回路的抽象加速度
Bertrand Jeannet, P. Schrammel, S. Sankaranarayanan
We present abstract acceleration techniques for computing loop invariants for numerical programs with linear assignments and conditionals. Whereas abstract interpretation techniques typically over-approximate the set of reachable states iteratively, abstract acceleration captures the effect of the loop with a single, non-iterative transfer function applied to the initial states at the loop head. In contrast to previous acceleration techniques, our approach applies to any linear loop without restrictions. Its novelty lies in the use of the Jordan normal form decomposition of the loop body to derive symbolic expressions for the entries of the matrix modeling the effect of η ≥ Ο iterations of the loop. The entries of such a matrix depend on η through complex polynomial, exponential and trigonometric functions. Therefore, we introduces an abstract domain for matrices that captures the linear inequality relations between these complex expressions. This results in an abstract matrix for describing the fixpoint semantics of the loop. Our approach integrates smoothly into standard abstract interpreters and can handle programs with nested loops and loops containing conditional branches. We evaluate it over small but complex loops that are commonly found in control software, comparing it with other tools for computing linear loop invariants. The loops in our benchmarks typically exhibit polynomial, exponential and oscillatory behaviors that present challenges to existing approaches. Our approach finds non-trivial invariants to prove useful bounds on the values of variables for such loops, clearly outperforming the existing approaches in terms of precision while exhibiting good performance.
提出了一种用于计算具有线性赋值和条件的数值程序的循环不变量的抽象加速技术。抽象解释技术通常会迭代地过度逼近可达状态集,而抽象加速则通过将单个非迭代传递函数应用于环路头部的初始状态来捕获环路的效果。与以前的加速技术相比,我们的方法适用于任何线性环路,没有限制。它的新颖之处在于利用环体的Jordan范式分解,推导出矩阵项的符号表达式,以模拟η≥Ο循环迭代的效果。这种矩阵的项通过复多项式、指数函数和三角函数依赖于η。因此,我们引入了一个抽象的矩阵定义域,它捕捉了这些复杂表达式之间的线性不等式关系。这就产生了一个用于描述循环的不动点语义的抽象矩阵。我们的方法可以顺利地集成到标准的抽象解释器中,并且可以处理带有嵌套循环和包含条件分支的循环的程序。我们对控制软件中常见的小而复杂的循环进行评估,并将其与计算线性循环不变量的其他工具进行比较。我们的基准测试中的循环通常表现出多项式、指数和振荡行为,这对现有方法提出了挑战。我们的方法找到了非平凡的不变量来证明这种循环的变量值的有用界限,在精度方面明显优于现有的方法,同时表现出良好的性能。
{"title":"Abstract acceleration of general linear loops","authors":"Bertrand Jeannet, P. Schrammel, S. Sankaranarayanan","doi":"10.1145/2535838.2535843","DOIUrl":"https://doi.org/10.1145/2535838.2535843","url":null,"abstract":"We present abstract acceleration techniques for computing loop invariants for numerical programs with linear assignments and conditionals. Whereas abstract interpretation techniques typically over-approximate the set of reachable states iteratively, abstract acceleration captures the effect of the loop with a single, non-iterative transfer function applied to the initial states at the loop head. In contrast to previous acceleration techniques, our approach applies to any linear loop without restrictions. Its novelty lies in the use of the Jordan normal form decomposition of the loop body to derive symbolic expressions for the entries of the matrix modeling the effect of η ≥ Ο iterations of the loop. The entries of such a matrix depend on η through complex polynomial, exponential and trigonometric functions. Therefore, we introduces an abstract domain for matrices that captures the linear inequality relations between these complex expressions. This results in an abstract matrix for describing the fixpoint semantics of the loop. Our approach integrates smoothly into standard abstract interpreters and can handle programs with nested loops and loops containing conditional branches. We evaluate it over small but complex loops that are commonly found in control software, comparing it with other tools for computing linear loop invariants. The loops in our benchmarks typically exhibit polynomial, exponential and oscillatory behaviors that present challenges to existing approaches. Our approach finds non-trivial invariants to prove useful bounds on the values of variables for such loops, clearly outperforming the existing approaches in terms of precision while exhibiting good performance.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":"23 1","pages":""},"PeriodicalIF":0.0,"publicationDate":"2013-11-04","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"75998069","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
引用次数: 51
期刊
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
全部 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