790 research outputs found
Steps in modular specifications for concurrent modules
© 2015 Published by Elsevier B.V.The specification of a concurrent program module is a difficult problem. The specifications must be strong enough to enable reasoning about the intended clients without reference to the underlying module implementation. We survey a range of verification techniques for specifying concurrent modules, in particular highlighting four key concepts: auxiliary state, interference abstraction, resource ownership and atomicity. We show how these concepts combine to provide powerful approaches to specifying concurrent modules
TaDA: A logic for time and data abstraction (extended version)
To avoid data races, concurrent operations should either be at distinct times or on distinct data. Atomicity is the abstraction that an operation takes effect at a single, discrete instant in time, with linearisability being a well known correctness condition which asserts that concurrent operations appear to behave atomically. Disjointness is the abstraction that operations act on distinct data resource, with concurrent separation logics enabling reasoning about threads that appear to operate independently on disjoint resources. We present TaDA, a program logic that combines the benefits of abstract atomicity and abstract disjointness. Our key contribution is the introduction of atomic triples, which offer an expressive approach to specifying program modules. By building up examples, we show that TaDA supports elegant modular reasoning in a way that was not previously possible
Locality refinement
We study re nement in the setting of local reasoning. In particular, we explore general translations that preserve and that break locality
Modular termination verification for non-blocking concurrency
© Springer-Verlag Berlin Heidelberg 2016.We present Total-TaDA, a program logic for verifying the total correctness of concurrent programs: that such programs both terminate and produce the correct result. With Total-TaDA, we can specify constraints on a thread’s concurrent environment that are necessary to guarantee termination. This allows us to verify total correctness for nonblocking algorithms, e.g. a counter and a stack. Our specifications can express lock- and wait-freedom. More generally, they can express that one operation cannot impede the progress of another, a new non-blocking property we call non-impedance. Moreover, our approach is modular. We can verify the operations of a module independently, and build up modules on top of each other
Specifying and Verifying Concurrent Algorithms with Histories and Subjectivity
We present a lightweight approach to Hoare-style specifications for
fine-grained concurrency, based on a notion of time-stamped histories that
abstractly capture atomic changes in the program state. Our key observation is
that histories form a partial commutative monoid, a structure fundamental for
representation of concurrent resources. This insight provides us with a
unifying mechanism that allows us to treat histories just like heaps in
separation logic. For example, both are subject to the same assertion logic and
inference rules (e.g., the frame rule). Moreover, the notion of ownership
transfer, which usually applies to heaps, has an equivalent in histories. It
can be used to formally represent helping---an important design pattern for
concurrent algorithms whereby one thread can execute code on behalf of another.
Specifications in terms of histories naturally abstract granularity, in the
sense that sophisticated fine-grained algorithms can be given the same
specifications as their simplified coarse-grained counterparts, making them
equally convenient for client-side reasoning. We illustrate our approach on a
number of examples and validate all of them in Coq.Comment: 17 page
Exploring the Taxonomical and Functional Profile of As Burgas Hot Spring Focusing On Thermostable β-galactosidases
[Abstract] In the present study we investigate the microbial community inhabiting As Burgas geothermal spring, located in Ourense (Galicia, Spain). The approximately 23 Gbp of Illumina sequences generated for each replicate revealed a complex microbial community dominated by Bacteria in which Proteobacteria and Aquificae were the two prevalent phyla. An association between the two most prevalent genera, Thermus and Hydrogenobacter, was suggested by the relationship of their metabolism. The high relative abundance of sequences involved in the Calvin–Benson cycle and the reductive TCA cycle unveils the dominance of an autotrophic population. Important pathways from the nitrogen and sulfur cycle are potentially taking place in As Burgas hot spring. In the assembled reads, two complete ORFs matching GH2 beta-galactosidases were found. To assess their functional characterization, the two ORFs were cloned and overexpressed in E. coli. The pTsbg enzyme had activity towards o-Nitrophenyl-β-D-galactopyranoside (ONPG) and p-Nitrophenyl-β-D-fucopyranoside, with high thermal stability and showing maximal activity at 85 °C and pH 6, nevertheless the enzyme failed to hydrolyze lactose. The other enzyme, Tsbg, was unable to hydrolyze even ONPG or lactose. This finding highlights the challenge of finding novel active enzymes based only on their sequence.Xunta de Galicia; ED431C 2020/08Ministerio de Ciencia, Innovación y Universidades; RTI2018-099249-B-I00Ministerio de Educación Cultura y Deporte; FPU12/0505
Recommended from our members
The Measurement and Estimation of Density for Selected Liquid Alloys
The simulation modelling of metal processes requires realistic; accurate and self-consistent thermophysical properties as input data. In particular, solidification models have been shown to be sensitive to small changes in the density of the liquid alloy. This paper compiles experimental data for the density of some selected liquid aluminium; magnesium and nickel-base alloys. Comparison with ideal mixing calculations for aluminium and magnesium alloys shows agreement between the calculations and the experimental results within the measurement uncertainties. For nickel alloys there is discrepancy between the ideal model and experiment. These differences are interpreted in terms of the measured non-ideality of mixing of Ni-Al binary alloy and other reported binary interactions
A Separation Logic for Fictional Sequential Consistency
To improve performance, modern multiprocessors and pro- gramming languages typically implement relaxed memory models that do not require all processors/threads to observe memory operations in the same order. To relieve programmers from having to reason directly about these relaxed behaviors, languages often provide efficient synchro- nization primitives and concurrent data structures with stronger high- level guarantees about memory reorderings. For instance, locks usually ensure that when a thread acquires a lock, it can observe all memory operations of the releasing thread, prior to the release. When used cor- rectly, these synchronization primitives and data structures allow clients to recover a fiction of a sequentially consistent memory model.
In this paper we propose a new proof system, iCAP-TSO, that captures this fiction formally, for a language with a TSO memory model. The logic supports reasoning about libraries that directly exploit the relaxed memory model to achieve maximum efficiency. When these libraries pro- vide sufficient guarantees, the logic hides the underlying complexity and admits standard separation logic rules for reasoning about their more high-level clients
- …