首页 > 最新文献

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

英文 中文
Freeze after writing: quasi-deterministic parallel programming with LVars 写后冻结:用LVars进行准确定性并行编程
L. Kuper, Aaron Turon, N. Krishnaswami, Ryan Newton
Deterministic-by-construction parallel programming models offer the advantages of parallel speedup while avoiding the nondeterministic, hard-to-reproduce bugs that plague fully concurrent code. A principled approach to deterministic-by-construction parallel programming with shared state is offered by LVars: shared memory locations whose semantics are defined in terms of an application-specific lattice. Writes to an LVar take the least upper bound of the old and new values with respect to the lattice, while reads from an LVar can observe only that its contents have crossed a specified threshold in the lattice. Although it guarantees determinism, this interface is quite limited. We extend LVars in two ways. First, we add the ability to "freeze" and then read the contents of an LVar directly. Second, we add the ability to attach event handlers to an LVar, triggering a callback when the LVar's value changes. Together, handlers and freezing enable an expressive and useful style of parallel programming. We prove that in a language where communication takes place through these extended LVars, programs are at worst quasi-deterministic: on every run, they either produce the same answer or raise an error. We demonstrate the viability of our approach by implementing a library for Haskell supporting a variety of LVar-based data structures, together with a case study that illustrates the programming model and yields promising parallel speedup.
按结构确定的并行编程模型提供了并行加速的优点,同时避免了困扰完全并发代码的不确定的、难以重现的bug。lvar提供了一种具有共享状态的按结构确定并行编程的原则方法:共享内存位置,其语义是根据特定于应用程序的晶格定义的。对LVar的写入取相对于晶格的旧值和新值的最小上界,而从LVar读取只能观察到其内容已超过晶格中的指定阈值。虽然它保证了决定论,但这个接口相当有限。我们以两种方式扩展lvar。首先,我们添加了“冻结”的功能,然后直接读取LVar的内容。其次,我们添加了将事件处理程序附加到LVar的功能,当LVar的值发生变化时触发回调。处理程序和冻结一起实现了一种富有表现力且有用的并行编程风格。我们证明,在通过这些扩展lvar进行通信的语言中,程序在最坏的情况下是准确定性的:每次运行时,它们要么产生相同的答案,要么引发错误。我们通过为Haskell实现一个支持各种基于lvar的数据结构的库,以及一个演示编程模型并产生有希望的并行加速的案例研究,来证明我们方法的可行性。
{"title":"Freeze after writing: quasi-deterministic parallel programming with LVars","authors":"L. Kuper, Aaron Turon, N. Krishnaswami, Ryan Newton","doi":"10.1145/2535838.2535842","DOIUrl":"https://doi.org/10.1145/2535838.2535842","url":null,"abstract":"Deterministic-by-construction parallel programming models offer the advantages of parallel speedup while avoiding the nondeterministic, hard-to-reproduce bugs that plague fully concurrent code. A principled approach to deterministic-by-construction parallel programming with shared state is offered by LVars: shared memory locations whose semantics are defined in terms of an application-specific lattice. Writes to an LVar take the least upper bound of the old and new values with respect to the lattice, while reads from an LVar can observe only that its contents have crossed a specified threshold in the lattice. Although it guarantees determinism, this interface is quite limited. We extend LVars in two ways. First, we add the ability to \"freeze\" and then read the contents of an LVar directly. Second, we add the ability to attach event handlers to an LVar, triggering a callback when the LVar's value changes. Together, handlers and freezing enable an expressive and useful style of parallel programming. We prove that in a language where communication takes place through these extended LVars, programs are at worst quasi-deterministic: on every run, they either produce the same answer or raise an error. We demonstrate the viability of our approach by implementing a library for Haskell supporting a variety of LVar-based data structures, together with a case study that illustrates the programming model and yields promising parallel speedup.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"84264829","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
Probabilistic coherence spaces are fully abstract for probabilistic PCF 概率相干空间对于概率PCF来说是完全抽象的
T. Ehrhard, C. Tasson, Michele Pagani
Probabilistic coherence spaces (PCoh) yield a semantics of higher-order probabilistic computation, interpreting types as convex sets and programs as power series. We prove that the equality of interpretations in Pcoh characterizes the operational indistinguishability of programs in PCF with a random primitive. This is the first result of full abstraction for a semantics of probabilistic PCF. The key ingredient relies on the regularity of power series. Along the way to the theorem, we design a weighted intersection type assignment system giving a logical presentation of PCoh.
概率相干空间(PCoh)产生高阶概率计算的语义,将类型解释为凸集,将程序解释为幂级数。我们证明了Pcoh中解释的相等性表征了具有随机原语的PCF中程序的操作不可区分性。这是对概率PCF语义进行完全抽象的第一个结果。关键因素是幂级数的规律性。在推导定理的过程中,我们设计了一个加权交型分配系统,给出了PCoh的逻辑表示。
{"title":"Probabilistic coherence spaces are fully abstract for probabilistic PCF","authors":"T. Ehrhard, C. Tasson, Michele Pagani","doi":"10.1145/2535838.2535865","DOIUrl":"https://doi.org/10.1145/2535838.2535865","url":null,"abstract":"Probabilistic coherence spaces (PCoh) yield a semantics of higher-order probabilistic computation, interpreting types as convex sets and programs as power series. We prove that the equality of interpretations in Pcoh characterizes the operational indistinguishability of programs in PCF with a random primitive. This is the first result of full abstraction for a semantics of probabilistic PCF. The key ingredient relies on the regularity of power series. Along the way to the theorem, we design a weighted intersection type assignment system giving a logical presentation of PCoh.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"80917412","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}
引用次数: 78
From parametricity to conservation laws, via Noether's theorem 从参数到守恒定律,通过诺特定理
R. Atkey
Invariance is of paramount importance in programming languages and in physics. In programming languages, John Reynolds' theory of relational parametricity demonstrates that parametric polymorphic programs are invariant under change of data representation, a property that yields "free" theorems about programs just from their types. In physics, Emmy Noether showed that if the action of a physical system is invariant under change of coordinates, then the physical system has a conserved quantity: a quantity that remains constant for all time. Knowledge of conserved quantities can reveal deep properties of physical systems. For example, the conservation of energy is by Noether's theorem a consequence of a system's invariance under time-shifting. In this paper, we link Reynolds' relational parametricity with Noether's theorem for deriving conserved quantities. We propose an extension of System F$omega$ with new kinds, types and term constants for writing programs that describe classical mechanical systems in terms of their Lagrangians. We show, by constructing a relationally parametric model of our extension of F$omega$, that relational parametricity is enough to satisfy the hypotheses of Noether's theorem, and so to derive conserved quantities for free, directly from the polymorphic types of Lagrangians expressed in our system.
不变性在编程语言和物理学中是至关重要的。在编程语言中,John Reynolds的关系参数性理论证明了参数多态程序在数据表示的变化下是不变的,这一性质可以从程序的类型中得出关于它们的“自由”定理。在物理学中,埃米·诺特(Emmy Noether)证明,如果一个物理系统的作用在坐标变化下是不变的,那么这个物理系统就有一个守恒量:一个永远保持不变的量。对守恒量的了解可以揭示物理系统的深层特性。例如,根据诺特定理,能量守恒是系统在时移下不变性的结果。本文将雷诺关系参数与诺特定理联系起来,用于推导守恒量。我们提出了系统F$ ω $的扩展,用新的种类、类型和项常数来编写用拉格朗日量描述经典力学系统的程序。通过构造F$ ω $的扩展的关系参数模型,我们证明了关系参数足以满足Noether定理的假设,从而可以直接从系统中表达的拉格朗日的多态类型中免费导出守恒量。
{"title":"From parametricity to conservation laws, via Noether's theorem","authors":"R. Atkey","doi":"10.1145/2535838.2535867","DOIUrl":"https://doi.org/10.1145/2535838.2535867","url":null,"abstract":"Invariance is of paramount importance in programming languages and in physics. In programming languages, John Reynolds' theory of relational parametricity demonstrates that parametric polymorphic programs are invariant under change of data representation, a property that yields \"free\" theorems about programs just from their types. In physics, Emmy Noether showed that if the action of a physical system is invariant under change of coordinates, then the physical system has a conserved quantity: a quantity that remains constant for all time. Knowledge of conserved quantities can reveal deep properties of physical systems. For example, the conservation of energy is by Noether's theorem a consequence of a system's invariance under time-shifting. In this paper, we link Reynolds' relational parametricity with Noether's theorem for deriving conserved quantities. We propose an extension of System F$omega$ with new kinds, types and term constants for writing programs that describe classical mechanical systems in terms of their Lagrangians. We show, by constructing a relationally parametric model of our extension of F$omega$, that relational parametricity is enough to satisfy the hypotheses of Noether's theorem, and so to derive conserved quantities for free, directly from the polymorphic types of Lagrangians expressed in our system.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"77215993","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}
引用次数: 2
Modular reasoning about heap paths via effectively propositional formulas 通过有效的命题公式对堆路径进行模块化推理
Shachar Itzhaky, A. Banerjee, N. Immerman, O. Lahav, Aleksandar Nanevski, Shmuel Sagiv
First order logic with transitive closure, and separation logic enable elegant interactive verification of heap-manipulating programs. However, undecidabilty results and high asymptotic complexity of checking validity preclude complete automatic verification of such programs, even when loop invariants and procedure contracts are specified as formulas in these logics. This paper tackles the problem of procedure-modular verification of reachability properties of heap-manipulating programs using efficient decision procedures that are complete: that is, a SAT solver must generate a counterexample whenever a program does not satisfy its specification. By (a) requiring each procedure modifies a fixed set of heap partitions and creates a bounded amount of heap sharing, and (b) restricting program contracts and loop invariants to use only deterministic paths in the heap, we show that heap reachability updates can be described in a simple manner. The restrictions force program specifications and verification conditions to lie within a fragment of first-order logic with transitive closure that is reducible to effectively propositional logic, and hence facilitate sound, complete and efficient verification. We implemented a tool atop Z3 and report on preliminary experiments that establish the correctness of several programs that manipulate linked data structures.
具有传递闭包的一阶逻辑和分离逻辑使堆操作程序能够进行优雅的交互式验证。然而,不可判定的结果和检查有效性的高渐近复杂性阻碍了这些程序的完全自动验证,即使在这些逻辑中循环不变量和过程契约被指定为公式时也是如此。本文利用高效的完整决策过程解决了堆操作程序可达性特性的过程模块化验证问题:即,每当程序不满足其规范时,SAT求解器必须生成反例。通过(a)要求每个过程修改一组固定的堆分区并创建有限数量的堆共享,以及(b)限制程序契约和循环不变量仅使用堆中的确定性路径,我们表明堆可达性更新可以用一种简单的方式描述。这些限制迫使程序规范和验证条件位于具有传递闭包的一阶逻辑片段中,该片段可简化为有效的命题逻辑,从而促进健全,完整和有效的验证。我们在Z3上实现了一个工具,并报告了初步实验,这些实验建立了几个操作链接数据结构的程序的正确性。
{"title":"Modular reasoning about heap paths via effectively propositional formulas","authors":"Shachar Itzhaky, A. Banerjee, N. Immerman, O. Lahav, Aleksandar Nanevski, Shmuel Sagiv","doi":"10.1145/2535838.2535854","DOIUrl":"https://doi.org/10.1145/2535838.2535854","url":null,"abstract":"First order logic with transitive closure, and separation logic enable elegant interactive verification of heap-manipulating programs. However, undecidabilty results and high asymptotic complexity of checking validity preclude complete automatic verification of such programs, even when loop invariants and procedure contracts are specified as formulas in these logics. This paper tackles the problem of procedure-modular verification of reachability properties of heap-manipulating programs using efficient decision procedures that are complete: that is, a SAT solver must generate a counterexample whenever a program does not satisfy its specification. By (a) requiring each procedure modifies a fixed set of heap partitions and creates a bounded amount of heap sharing, and (b) restricting program contracts and loop invariants to use only deterministic paths in the heap, we show that heap reachability updates can be described in a simple manner. The restrictions force program specifications and verification conditions to lie within a fragment of first-order logic with transitive closure that is reducible to effectively propositional logic, and hence facilitate sound, complete and efficient verification. We implemented a tool atop Z3 and report on preliminary experiments that establish the correctness of several programs that manipulate linked data structures.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"86300743","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}
引用次数: 30
30 years of research and development around Coq 围绕Coq进行了30年的研发
G. Huet, Hugo Herbelin
The Coq Proof Assistant is an interactive software system based on higher-order type theory, designed and implemented by a team of French researchers as a continuous effort over the last 30 years. It implements a logical framework, called the Calculus of Inductive Constructions, endowed with notational facilities and a modular structure, allowing its use as a high-level language fit for the development of compositional mathematical components. Explicit potential proof structures are built by execution of ML tactics and tacticals, along a choice of proof schemes combinators. This allows a wide spectrum of inference granularity, from step-by-step inference, to full decision procedures and reflection principles. The validity of such a potential proof is verified by an independent core proof checker, whose meta-theory has been itself formally justified. Coq proofs may be seen as programs in a high-level functional notation, decorated by correctness assertions, and translators into existing programming languages such as OCaml and Haskell are available. Conversely, specialized subsystems allow the development of algorithms with logical assertions, whose validity is checked by Coq. The Coq Proof Assistant, an open-source software development, is in use by a large community of users. Some notable successes have been achieved, in formalized mathematics (4 color theorem, odd order theorem), as well as in software certification (Java Card processing environment, CompCert verification of C compiling).
Coq Proof Assistant是一个基于高阶类型理论的交互式软件系统,由法国研究人员团队在过去30年中不断努力设计和实现。它实现了一个逻辑框架,称为归纳构造的演算,赋予了符号设施和模块化结构,允许它作为适合开发组合数学组件的高级语言使用。明确的潜在证明结构是通过执行ML战术和战术,以及选择证明方案组合来构建的。这允许广泛的推理粒度,从逐步推理到完整的决策过程和反射原则。这种潜在证明的有效性由一个独立的核心证明检查者验证,其元理论本身已经正式证明。Coq证明可以看作是高级函数表示法中的程序,由正确性断言修饰,并且可以翻译成现有的编程语言,如OCaml和Haskell。相反,专门的子系统允许开发具有逻辑断言的算法,其有效性由Coq检查。Coq Proof Assistant是一个开源软件开发,被大量用户社区所使用。在形式化数学(四色定理、奇阶定理)以及软件认证(Java Card处理环境、C编译的CompCert验证)方面取得了一些显著的成功。
{"title":"30 years of research and development around Coq","authors":"G. Huet, Hugo Herbelin","doi":"10.1145/2578855.2537848","DOIUrl":"https://doi.org/10.1145/2578855.2537848","url":null,"abstract":"The Coq Proof Assistant is an interactive software system based on higher-order type theory, designed and implemented by a team of French researchers as a continuous effort over the last 30 years. It implements a logical framework, called the Calculus of Inductive Constructions, endowed with notational facilities and a modular structure, allowing its use as a high-level language fit for the development of compositional mathematical components. Explicit potential proof structures are built by execution of ML tactics and tacticals, along a choice of proof schemes combinators. This allows a wide spectrum of inference granularity, from step-by-step inference, to full decision procedures and reflection principles. The validity of such a potential proof is verified by an independent core proof checker, whose meta-theory has been itself formally justified. Coq proofs may be seen as programs in a high-level functional notation, decorated by correctness assertions, and translators into existing programming languages such as OCaml and Haskell are available. Conversely, specialized subsystems allow the development of algorithms with logical assertions, whose validity is checked by Coq. The Coq Proof Assistant, an open-source software development, is in use by a large community of users. Some notable successes have been achieved, in formalized mathematics (4 color theorem, odd order theorem), as well as in software certification (Java Card processing environment, CompCert verification of C compiling).","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"78139012","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}
引用次数: 11
Optimal dynamic partial order reduction 最优动态偏序约简
P. Abdulla, Stavros Aronis, B. Jonsson, Konstantinos Sagonas
Stateless model checking is a powerful technique for program verification, which however suffers from an exponential growth in the number of explored executions. A successful technique for reducing this number, while still maintaining complete coverage, is Dynamic Partial Order Reduction (DPOR). We present a new DPOR algorithm, which is the first to be provably optimal in that it always explores the minimal number of executions. It is based on a novel class of sets, called source sets, which replace the role of persistent sets in previous algorithms. First, we show how to modify an existing DPOR algorithm to work with source sets, resulting in an efficient and simple to implement algorithm. Second, we extend this algorithm with a novel mechanism, called wakeup trees, that allows to achieve optimality. We have implemented both algorithms in a stateless model checking tool for Erlang programs. Experiments show that source sets significantly increase the performance and that wakeup trees incur only a small overhead in both time and space.
无状态模型检查是一种强大的程序验证技术,然而,它受到探索执行数量的指数增长的影响。在保持完全覆盖的同时减少这个数字的一种成功技术是动态偏序约简(DPOR)。我们提出了一种新的DPOR算法,它是第一个被证明是最优的算法,因为它总是探索最小的执行次数。它基于一种新的集类,称为源集,它取代了以前算法中持久集的角色。首先,我们将展示如何修改现有的DPOR算法以使用源集,从而生成高效且易于实现的算法。其次,我们用一种叫做唤醒树的新机制扩展了这个算法,它可以实现最优性。我们在Erlang程序的无状态模型检查工具中实现了这两种算法。实验表明,源集显著提高了性能,唤醒树在时间和空间上的开销很小。
{"title":"Optimal dynamic partial order reduction","authors":"P. Abdulla, Stavros Aronis, B. Jonsson, Konstantinos Sagonas","doi":"10.1145/2535838.2535845","DOIUrl":"https://doi.org/10.1145/2535838.2535845","url":null,"abstract":"Stateless model checking is a powerful technique for program verification, which however suffers from an exponential growth in the number of explored executions. A successful technique for reducing this number, while still maintaining complete coverage, is Dynamic Partial Order Reduction (DPOR). We present a new DPOR algorithm, which is the first to be provably optimal in that it always explores the minimal number of executions. It is based on a novel class of sets, called source sets, which replace the role of persistent sets in previous algorithms. First, we show how to modify an existing DPOR algorithm to work with source sets, resulting in an efficient and simple to implement algorithm. Second, we extend this algorithm with a novel mechanism, called wakeup trees, that allows to achieve optimality. We have implemented both algorithms in a stateless model checking tool for Erlang programs. Experiments show that source sets significantly increase the performance and that wakeup trees incur only a small overhead in both time and space.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"79358415","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}
引用次数: 182
Closed type families with overlapping equations 具有重叠方程的闭型族
R. Eisenberg, Dimitrios Vytiniotis, Simon Peyton Jones, Stephanie Weirich
Open, type-level functions are a recent innovation in Haskell that move Haskell towards the expressiveness of dependent types, while retaining the look and feel of a practical programming language. This paper shows how to increase expressiveness still further, by adding closed type functions whose equations may overlap, and may have non-linear patterns over an open type universe. Although practically useful and simple to implement, these features go beyond conventional dependent type theory in some respects, and have a subtle metatheory.
开放的类型级函数是Haskell最近的一项创新,它将Haskell推向依赖类型的表达性,同时保留了实用编程语言的外观和感觉。本文展示了如何进一步增加可表达性,通过添加闭型函数,其方程可以重叠,并且可以在开放型宇宙上具有非线性模式。尽管这些特性在实践中很有用且易于实现,但它们在某些方面超越了传统的依赖类型理论,并且具有微妙的元理论。
{"title":"Closed type families with overlapping equations","authors":"R. Eisenberg, Dimitrios Vytiniotis, Simon Peyton Jones, Stephanie Weirich","doi":"10.1145/2535838.2535856","DOIUrl":"https://doi.org/10.1145/2535838.2535856","url":null,"abstract":"Open, type-level functions are a recent innovation in Haskell that move Haskell towards the expressiveness of dependent types, while retaining the look and feel of a practical programming language. This paper shows how to increase expressiveness still further, by adding closed type functions whose equations may overlap, and may have non-linear patterns over an open type universe. Although practically useful and simple to implement, these features go beyond conventional dependent type theory in some respects, and have a subtle metatheory.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"81935206","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}
引用次数: 85
Bridging boolean and quantitative synthesis using smoothed proof search 用平滑证明搜索桥接布尔和定量综合
Swarat Chaudhuri, Martin Clochard, Armando Solar-Lezama
We present a new technique for parameter synthesis under boolean and quantitative objectives. The input to the technique is a "sketch" --- a program with missing numerical parameters --- and a probabilistic assumption about the program's inputs. The goal is to automatically synthesize values for the parameters such that the resulting program satisfies: (1) a {boolean specification}, which states that the program must meet certain assertions, and (2) a {quantitative specification}, which assigns a real valued rating to every program and which the synthesizer is expected to optimize. Our method --- called smoothed proof search --- reduces this task to a sequence of unconstrained smooth optimization problems that are then solved numerically. By iteratively solving these problems, we obtain parameter values that get closer and closer to meeting the boolean specification; at the limit, we obtain values that provably meet the specification. The approximations are computed using a new notion of smoothing for program abstractions, where an abstract transformer is approximated by a function that is continuous according to a metric over abstract states. We present a prototype implementation of our synthesis procedure, and experimental results on two benchmarks from the embedded control domain. The experiments demonstrate the benefits of smoothed proof search over an approach that does not meet the boolean and quantitative synthesis goals simultaneously.
提出了一种布尔目标和定量目标下参数综合的新方法。该技术的输入是一个“草图”——一个缺少数值参数的程序——以及一个关于程序输入的概率假设。目标是自动合成参数的值,使生成的程序满足:(1){布尔规范},它声明程序必须满足某些断言,以及(2){定量规范},它为合成器期望优化的每个程序分配实值评级。我们的方法——称为平滑证明搜索——将这一任务简化为一系列无约束的平滑优化问题,然后用数值方法求解。通过迭代求解这些问题,我们得到了越来越接近布尔规范的参数值;在极限处,我们得到了可证明满足规范的值。这些近似是使用程序抽象的平滑的新概念来计算的,其中一个抽象的转换器是由一个根据抽象状态上的度量连续的函数来近似的。我们给出了我们的合成过程的原型实现,以及在嵌入式控制领域的两个基准上的实验结果。实验证明了平滑证明搜索优于不能同时满足布尔和定量合成目标的方法。
{"title":"Bridging boolean and quantitative synthesis using smoothed proof search","authors":"Swarat Chaudhuri, Martin Clochard, Armando Solar-Lezama","doi":"10.1145/2535838.2535859","DOIUrl":"https://doi.org/10.1145/2535838.2535859","url":null,"abstract":"We present a new technique for parameter synthesis under boolean and quantitative objectives. The input to the technique is a \"sketch\" --- a program with missing numerical parameters --- and a probabilistic assumption about the program's inputs. The goal is to automatically synthesize values for the parameters such that the resulting program satisfies: (1) a {boolean specification}, which states that the program must meet certain assertions, and (2) a {quantitative specification}, which assigns a real valued rating to every program and which the synthesizer is expected to optimize. Our method --- called smoothed proof search --- reduces this task to a sequence of unconstrained smooth optimization problems that are then solved numerically. By iteratively solving these problems, we obtain parameter values that get closer and closer to meeting the boolean specification; at the limit, we obtain values that provably meet the specification. The approximations are computed using a new notion of smoothing for program abstractions, where an abstract transformer is approximated by a function that is continuous according to a metric over abstract states. We present a prototype implementation of our synthesis procedure, and experimental results on two benchmarks from the embedded control domain. The experiments demonstrate the benefits of smoothed proof search over an approach that does not meet the boolean and quantitative synthesis goals simultaneously.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"90479657","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}
引用次数: 47
Battery transition systems 电池转换系统
Udi Boker, T. Henzinger, Arjun Radhakrishna
The analysis of the energy consumption of software is an important goal for quantitative formal methods. Current methods, using weighted transition systems or energy games, model the energy source as an ideal resource whose status is characterized by one number, namely the amount of remaining energy. Real batteries, however, exhibit behaviors that can deviate substantially from an ideal energy resource. Based on a discretization of a standard continuous battery model, we introduce {em battery transition systems}. In this model, a battery is viewed as consisting of two parts -- the available-charge tank and the bound-charge tank. Any charge or discharge is applied to the available-charge tank. Over time, the energy from each tank diffuses to the other tank. Battery transition systems are infinite state systems that, being not well-structured, fall into no decidable class that is known to us. Nonetheless, we are able to prove that the $omega$-regular model-checking problem is decidable for battery transition systems. We also present a case study on the verification of control programs for energy-constrained semi-autonomous robots.
软件能耗分析是定量形式化方法的一个重要目标。目前的方法使用加权过渡系统或能量博弈,将能源建模为理想资源,其状态由一个数字表征,即剩余能量的数量。然而,真正的电池表现出的行为可能与理想的能源有很大的差异。基于标准连续电池模型的离散化,我们引入了{em电池过渡系统}。在这个模型中,电池被看作是由两部分组成的——可用充电槽和束缚充电槽。任何充电或放电都适用于可用充电槽。随着时间的推移,每个水箱的能量扩散到另一个水箱。电池转换系统是无限状态系统,由于结构不佳,不属于我们所知的可确定类别。尽管如此,我们能够证明$omega$-规则模型检查问题对于电池转换系统是可决定的。我们还提出了一个关于能量受限半自主机器人控制程序验证的案例研究。
{"title":"Battery transition systems","authors":"Udi Boker, T. Henzinger, Arjun Radhakrishna","doi":"10.1145/2535838.2535875","DOIUrl":"https://doi.org/10.1145/2535838.2535875","url":null,"abstract":"The analysis of the energy consumption of software is an important goal for quantitative formal methods. Current methods, using weighted transition systems or energy games, model the energy source as an ideal resource whose status is characterized by one number, namely the amount of remaining energy. Real batteries, however, exhibit behaviors that can deviate substantially from an ideal energy resource. Based on a discretization of a standard continuous battery model, we introduce {em battery transition systems}. In this model, a battery is viewed as consisting of two parts -- the available-charge tank and the bound-charge tank. Any charge or discharge is applied to the available-charge tank. Over time, the energy from each tank diffuses to the other tank. Battery transition systems are infinite state systems that, being not well-structured, fall into no decidable class that is known to us. Nonetheless, we are able to prove that the $omega$-regular model-checking problem is decidable for battery transition systems. We also present a case study on the verification of control programs for energy-constrained semi-autonomous robots.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91016560","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}
引用次数: 17
An operational and axiomatic semantics for non-determinism and sequence points in C C语言中非确定性和序列点的操作和公理语义
R. Krebbers
The C11 standard of the C programming language does not specify the execution order of expressions. Besides, to make more effective optimizations possible (eg. delaying of side-effects and interleaving), it gives compilers in certain cases the freedom to use even more behaviors than just those of all execution orders. Widely used C compilers actually exploit this freedom given by the C standard for optimizations, so it should be taken seriously in formal verification. This paper presents an operational and axiomatic semantics (based on separation logic) for non-determinism and sequence points in C. We prove soundness of our axiomatic semantics with respect to our operational semantics. This proof has been fully formalized using the Coq proof assistant.
C编程语言的C11标准没有指定表达式的执行顺序。此外,为了使更有效的优化成为可能(例如。延迟副作用和交错),它使编译器在某些情况下可以自由地使用比所有执行命令更多的行为。广泛使用的C编译器实际上利用C标准提供的这种自由进行优化,因此在正式验证中应该认真对待它。本文给出了c语言中不确定性和序列点的一个操作和公理语义(基于分离逻辑),并证明了我们的公理语义相对于我们的操作语义的合理性。这个证明已经使用Coq证明助手完全形式化了。
{"title":"An operational and axiomatic semantics for non-determinism and sequence points in C","authors":"R. Krebbers","doi":"10.1145/2535838.2535878","DOIUrl":"https://doi.org/10.1145/2535838.2535878","url":null,"abstract":"The C11 standard of the C programming language does not specify the execution order of expressions. Besides, to make more effective optimizations possible (eg. delaying of side-effects and interleaving), it gives compilers in certain cases the freedom to use even more behaviors than just those of all execution orders. Widely used C compilers actually exploit this freedom given by the C standard for optimizations, so it should be taken seriously in formal verification. This paper presents an operational and axiomatic semantics (based on separation logic) for non-determinism and sequence points in C. We prove soundness of our axiomatic semantics with respect to our operational semantics. This proof has been fully formalized using the Coq proof assistant.","PeriodicalId":20683,"journal":{"name":"Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","volume":null,"pages":null},"PeriodicalIF":0.0,"publicationDate":"2014-01-08","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"91551101","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}
引用次数: 31
期刊
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