341 research outputs found
Recommended from our members
Effective Interactive Proofs for Higher-Order Imperative Programs
We present a new approach for constructing and verifying higher-order, imperative programs using the Coq proof assistant. We build on the past work on the Ynot system, which is based on Hoare Type Theory. That original system was a proof of concept, where every program verification was accomplished via laborious manual proofs, with much code devoted to uninteresting low-level details. In this paper, we present a re-implementation of Ynot which makes it possible to implement fully-verified, higher-order imperative programs with reasonable proof burden. At the same time, our new system is implemented entirely in Coq source files, showcasing the versatility of that proof assistant as a platform for research on language design and verification. Both versions of the system have been evaluated with case studies in the verification of imperative data structures, such as hash tables with higher-order iterators. The verification burden in our new system is reduced by at least an order of magnitude compared to the old system, by replacing manual proof with automation. The core of the automation is a simplification procedure for implications in higher-order separation logic, with hooks that allow programmers to add domain-specific simplification rules.
We argue for the effectiveness of our infrastructure by verifying a number of data structures and a packrat parser, and we compare to similar efforts within other projects. Compared to competing approaches to data structure verification, our system includes much less code that must be trusted; namely, about a hundred lines of Coq code defining a program logic. All of our theorems and decision procedures have or build machine-checkable correctness proofs from first principles, removing opportunities for tool bugs to create faulty verifications.Engineering and Applied Science
Spores: A Type-Based Foundation for Closures in the Age of Concurrency and Distribution
Functional programming (FP) is regularly touted as the way forward for bringing parallel, concurrent, and distributed programming to the mainstream. The popularity of the rationale behind this viewpoint (immutable data transformed by function application) has even lead to a number of object-oriented (OO) programming languages adopting functional features such as lambdas (functions) and thereby function closures. However, despite this established viewpoint of FP as an enabler, reliably distributing function closures over a network, or using them in concurrent environments nonetheless remains a challenge across FP and OO languages. This paper takes a step towards more principled distributed and concurrent programming by introducing a new closure-like abstraction and type system, called spores, that can guarantee closures to be serializable, thread-safe, or even have general, custom user-defined properties. Crucially, our system is based on the principle of encoding type information corresponding to captured variables in the type of a spore. We prove our type system sound, implement our approach for Scala, evaluate its practicality through an small empirical study, and show the power of these guarantees through a case analysis of real-world distributed and concurrent frameworks that this safe foundation for migratable closures facilitates
A formally verified compiler back-end
This article describes the development and formal verification (proof of
semantic preservation) of a compiler back-end from Cminor (a simple imperative
intermediate language) to PowerPC assembly code, using the Coq proof assistant
both for programming the compiler and for proving its correctness. Such a
verified compiler is useful in the context of formal methods applied to the
certification of critical software: the verification of the compiler guarantees
that the safety properties proved on the source code hold for the executable
compiled code as well
On the relative expressiveness of higher-order session processes
By integrating constructs from the Ī»-calculus and the Ļ-calculus, in higher-order process calculi exchanged values may contain processes. This paper studies the relative expressiveness of HOĻ, the higher-order Ļ-calculus in which communications are governed by session types. Our main discovery is that HO, a subcalculus of HOĻ which lacks name-passing and recursion, can serve as a new core calculus for session-typed higher-order concurrency. By exploring a new bisimulation for HO, we show that HO can encode HOĻ fully abstractly (upĀ to typed contextual equivalence) more precisely and efficiently than the first-order session Ļ-calculus (Ļ). Overall, under session types, HOĻ, HO, and Ļ are equally expressive; however, HOĻ and HO are more tightly related than HOĻ and Ļ
Hyaluronan turnover and hypoxic brown adipocytic differentiation are co-localized with ossification in calcified human aortic valves
The calcification process in aortic stenosis has garnered considerable interest but only limited investigation into selected signaling pathways. This study investigated mechanisms related to hypoxia, hyaluronan homeostasis, brown adipocytic differentiation, and ossification within calcified valves. Surgically explanted calcified aortic valves (nļ¾ =ļ¾ 14) were immunostained for markers relevant to these mechanisms and evaluated in the center (NodCtr) and edge (NodEdge) of the calcified nodule (NodCtr), tissue directly surrounding nodule (NodSurr); center and tissue surrounding small ļ¾prenodulesļ¾ (PreNod, PreNodSurr); and normal fibrosa layer (CollFibr). Pearson correlations were determined between staining intensities of markers within regions. Ossification markers primarily localized to NodCtr and NodEdge, along with markers related to hyaluronan turnover and hypoxia. Markers of brown adipocytic differentiation were frequently co-localized with markers of hypoxia. In NodCtr and NodSurr, brown fat and ossification markers correlated with hyaluronidase-1, whereas these markers, as well as hypoxia, correlated with hyaluronan synthases in NodEdge. The protein product of tumor necrosis factor-? stimulated gene-6 strongly correlated with ossification markers and hyaluronidase in the regions surrounding the nodules (NodSurr, PreNodSurr). In conclusion, this study suggests roles for hyaluronan homeostasis and the promotion of hypoxia by cells demonstrating brown fat markers in calcific aortic valve disease
- ā¦