bluuebunny/crossref_metadata_2025_split huggingface dataset:
Higher-order ghost state
Authors: Jung Ralf , Krebbers Robbert , Birkedal Lars , Dreyer Derek 
Published: December 2016

The development of concurrent separation logic (CSL) has sparked a long line of work on modular verification of sophisticated concurrent programs. Two of the most important features supported by several existing extensions to CSL are higher-order quantification and custom ghost state. However, none of the logics that support both of these features reap the full potential of their combination. In particular, none of them provide general support for a feature we dub "higher-order ghost state": the ability to store arbitrary higher-order separation-logic predicates in ghost variables.
In this paper, we propose higher-order ghost state as a interesting and useful extension to CSL, which we formalize in the framework of Jung et al.'s recently developed Iris logic. To justify its soundness, we develop a novel algebraic structure called CMRAs ("cameras"), which can be thought of as "step-indexed partial commutative monoids". Finally, we show that Iris proofs utilizing higher-order ghost state can be effectively formalized in Coq, and discuss the challenges we faced in formalizing them.
Deriving divide-and-conquer dynamic programming algorithms using solver-aided transformations
Authors: Itzhaky Shachar , Singh Rohit , Solar-Lezama Armando , Yessenov Kuat , Lu Yongquan , Leiserson Charles , Chowdhury Rezaul 
Published: December 2016

We introduce a framework allowing domain experts to manipulate computational terms in the interest of deriving better, more efficient implementations.It employs deductive reasoning to generate provably correct efficient implementations from a very high-level specification of an algorithm, and inductive constraint-based synthesis to improve automation. Semantic information is encoded into program terms through the use of refinement types.
In this paper, we develop the technique in the context of a system called Bellmania that uses solver-aided tactics to derive parallel divide-and-conquer implementations of dynamic programming algorithms that have better locality and are significantly more efficient than traditional loop-based implementations. Bellmania includes a high-level language for specifying dynamic programming algorithms and a calculus that facilitates gradual transformation of these specifications into efficient implementations. These transformations formalize the divide-and conquer technique; a visualization interface helps users to interactively guide the process, while an SMT-based back-end verifies each step and takes care of low-level reasoning required for parallelism.
We have used the system to generate provably correct implementations of several algorithms, including some important algorithms from computational biology, and show that the performance is comparable to that of the best manually optimized code.
A practical framework for type inference error explanation
Authors: Loncaric Calvin , Chandra Satish , Schlesinger Cole , Sridharan Manu 
Published: December 2016

Many languages have support for automatic type inference. But when inference fails, the reported error messages can be unhelpful, highlighting a code location far from the source of the problem. Several lines of work have emerged proposing error reports derived from correcting sets: a set of program points that, when fixed, produce a well-typed program. Unfortunately, these approaches are tightly tied to specific languages; targeting a new language requires encoding a type inference algorithm for the language in a custom constraint system specific to the error reporting tool.
We show how to produce correcting set-based error reports by leveraging existing type inference implementations, easing the burden of adoption and, as type inference algorithms tend to be efficient in practice, producing error reports of comparable quality to similar error reporting tools orders of magnitude faster. Many type inference algorithms are already formulated as dual phases of type constraint generation and solving; rather than (re)implementing type inference in an error explanation tool, we isolate the solving phase and treat it as an oracle for solving typing constraints. Given any set of typing constraints, error explanation proceeds by iteratively removing conflicting constraints from the initial constraint set until discovering a subset on which the solver succeeds; the constraints removed form a correcting set. Our approach is agnostic to the semantics of any particular language or type system, instead leveraging the existing type inference engine to give meaning to constraints.
Efficient and thread-safe objects for dynamically-typed languages
Authors: Daloze Benoit , Marr Stefan , Bonetta Daniele , Mössenböck Hanspeter 
Published: December 2016

We are in the multi-core era. Dynamically-typed languages are in widespread use, but their support for multithreading still lags behind. One of the reasons is that the sophisticated techniques they use to efficiently represent their dynamic object models are often unsafe in multithreaded environments.
This paper defines safety requirements for dynamic object models in multithreaded environments. Based on these requirements, a language-agnostic and thread-safe object model is designed that maintains the efficiency of sequential approaches. This is achieved by ensuring that field reads do not require synchronization and field updates only need to synchronize on objects shared between threads.
Basing our work on JRuby+Truffle, we show that our safe object model has zero overhead on peak performance for thread-local objects and only 3% average overhead on parallel benchmarks where field updates require synchronization. Thus, it can be a foundation for safe and efficient multithreaded VMs for a wide range of dynamic languages.
An improved algorithm for slicing machine code
Authors: Srinivasan Venkatesh , Reps Thomas 
Published: December 2016

Machine-code slicing is an important primitive for building binary analysis and rewriting tools, such as taint trackers, fault localizers, and partial evaluators. However, it is not easy to create a machine-code slicer that exhibits a high level of precision. Moreover, the problem of creating such a tool is compounded by the fact that a small amount of local imprecision can be amplified via cascade effects.
Most instructions in instruction sets such as Intel's IA-32 and ARM are multi-assignments: they have several inputs and several outputs (registers, flags, and memory locations). This aspect of the instruction set introduces a granularity issue during slicing: there are often instructions at which we would like the slice to include only a subset of the instruction's semantics, whereas the slice is forced to include the entire instruction. Consequently, the slice computed by state-of-the-art tools is very imprecise, often including essentially the entire program.
This paper presents an algorithm to slice machine code more accurately. To counter the granularity issue, our algorithm performs slicing at the microcode level, instead of the instruction level, and obtains a more precise microcode slice. To reconstitute a machine-code program from a microcode slice, our algorithm uses machine-code synthesis. Our experiments on IA-32 binaries of FreeBSD utilities show that, in comparison to slices computed by a state-of-the-art tool, our algorithm reduces the size of backward slices by 33%, and forward slices by 70%.
Automated reasoning for web page layout
Authors: Panchekha Pavel , Torlak Emina 
Published: December 2016

Web pages define their appearance using Cascading Style Sheets, a modular language for layout of tree-structured documents. In principle, using CSS is easy: the developer specifies declarative constraints on the layout of an HTML document (such as the positioning of nodes in the HTML tree), and the browser solves the constraints to produce a box-based rendering of that document. In practice, however, the subtleties of CSS semantics make it difficult to develop stylesheets that produce the intended layout across different user preferences and browser settings.
This paper presents the first mechanized formalization of a substantial fragment of the CSS semantics. This formalization is equipped with an efficient reduction to the theory of quantifier-free linear real arithmetic, enabling effective automated reasoning about CSS stylesheets and their behavior. We implement this reduction in Cassius, a solver-aided framework for building semantics-aware tools for CSS. To demonstrate the utility of Cassius, we prototype new tools for automated verification, debugging, and synthesis of CSS code. We show that these tools work on fragments of real-world websites, and that Cassius is a practical first step toward solver-aided programming for the web.
Parallel incremental whole-program optimizations for Scala.js
Authors: Doeraene Sébastien , Schlatter Tobias 
Published: December 2016

Whole-program optimizations are powerful tools that can dramatically improve performance, size and other aspects of programs. Because they depend on global knowledge, they must typically be reapplied to the whole program when small changes are made, which makes them too slow for the development cycle. This is an issue for some environments that require, or benefit a lot from, whole-program optimizations, such as compilation to JavaScript or to the Dalvik VM, because their development cycle is slowed down either by the lack of optimizations, or by the time spent on applying them.
We present a new approach to designing incremental whole-program optimizers for object-oriented and functional languages: when part of a program changes, only the portions affected by the changes are reoptimized. An incremental optimizer using this approach for Scala.js, the Scala to JavaScript compiler, demonstrates speedups from 10x to 100x compared to its batch version. As a result, the optimizer's running time becomes insignificant compared to separate compilation, making it fit for use on every compilation run during the development cycle. We also show how to parallelize the incremental algorithm to take advantage of multicore hardware.
Purposes, concepts, misfits, and a redesign of git
Authors: De Rosso Santiago Perez , Jackson Daniel 
Published: December 2016

Git is a widely used version control system that is powerful but complicated. Its complexity may not be an inevitable consequence of its power but rather evidence of flaws in its design. To explore this hypothesis, we analyzed the design of Git using a theory that identifies concepts, purposes, and misfits. Some well-known difficulties with Git are described, and explained as misfits in which underlying concepts fail to meet their intended purpose. Based on this analysis, we designed a reworking of Git (called Gitless) that attempts to remedy these flaws.
To correlate misfits with issues reported by users, we conducted a study of Stack Overflow questions. And to determine whether users experienced fewer complications using Gitless in place of Git, we conducted a small user study. Results suggest our approach can be profitable in identifying, analyzing, and fixing design problems.
FIDEX: filtering spreadsheet data using examples
Authors: Wang Xinyu , Gulwani Sumit , Singh Rishabh 
Published: December 2016

Data filtering in spreadsheets is a common problem faced by millions of end-users. The task of data filtering requires a computational model that can separate intended positive and negative string instances. We present a system, FIDEX, that can efficiently learn desired data filtering expressions from a small set of positive and negative string examples.
There are two key ideas of our approach. First, we design an expressive DSL to represent disjunctive filter expressions needed for several real-world data filtering tasks. Second, we develop an efficient synthesis algorithm for incrementally learning consistent filter expressions in the DSL from very few positive and negative examples. A DAG-based data structure is used to succinctly represent a large number of filter expressions, and two corresponding operators are defined for algorithmically handling positive and negative examples, namely, the intersection and subtraction operators. FIDEX is able to learn data filters for 452 out of 460 real-world data filtering tasks in real time (0.22s), using only 2.2 positive string instances and 2.7 negative string instances on average.
Stateless model checking with data-race preemption points
Authors: Blum Ben , Gibson Garth 
Published: December 2016

Stateless model checking is a powerful technique for testing concurrent programs, but suffers from exponential state space explosion when the test input parameters are too large. Several reduction techniques can mitigate this explosion, but even after pruning equivalent interleavings, the state space size is often intractable. Most prior tools are limited to preempting only on synchronization APIs, which reduces the space further, but can miss unsynchronized thread communication bugs. Data race detection, another concurrency testing approach, focuses on suspicious memory access pairs during a single test execution. It avoids concerns of state space size, but may report races that do not lead to observable failures, which jeopardizes a user’s willingness to use the analysis.
We present Quicksand, a new stateless model checking framework which manages the exploration of many state spaces using different preemption points. It uses state space estimation to prioritize jobs most likely to complete in a fixed CPU budget, and it incorporates data-race analysis to add new preemption points on the fly. Preempting threads during a data race’s instructions can automatically classify the race as buggy or benign, and uncovers new bugs not reachable by prior model checkers. It also enables full verification of all possible schedules when every data race is verified as benign within the CPU budget. In our evaluation, Quicksand found 1.25x as many bugs and verified 4.3x as many tests compared to prior model checking approaches.
LaCasa: lightweight affinity and object capabilities in Scala
Authors: Haller Philipp , Loiko Alex 
Published: December 2016

Aliasing is a known source of challenges in the context of imperative object-oriented languages, which have led to important advances in type systems for aliasing control. However, their large-scale adoption has turned out to be a surprisingly difficult challenge. While new language designs show promise, they do not address the need of aliasing control in existing languages.
This paper presents a new approach to isolation and uniqueness in an existing, widely-used language, Scala. The approach is unique in the way it addresses some of the most important obstacles to the adoption of type system extensions for aliasing control. First, adaptation of existing code requires only a minimal set of annotations. Only a single bit of information is required per class. Surprisingly, the paper shows that this information can be provided by the object-capability discipline, widely-used in program security. We formalize our approach as a type system and prove key soundness theorems. The type system is implemented for the full Scala language, providing, for the first time, a sound integration with Scala's local type inference. Finally, we empirically evaluate the conformity of existing Scala open-source code on a corpus of over 75,000 LOC.
Type of supplemented simple sugar, not merely calorie intake, determines adverse effects on metabolism and aortic function in female rats
Authors: Sangüesa Gemma , Shaligram Sonali , Akther Farjana , Roglans Núria , Laguna Juan C. , Rahimian Roshanak , Alegret Marta 
Published: December 2016

High consumption of simple sugars causes adverse cardiometabolic effects. We investigated the mechanisms underlying the metabolic and vascular effects of glucose or fructose intake and determined whether these effects are exclusively related to increased calorie consumption. Female Sprague-Dawley rats were supplemented with 20% wt/vol glucose or fructose for 2 mo, and plasma analytes and aortic response to vasodilator and vasoconstrictor agents were determined. Expression of molecules associated with lipid metabolism, insulin signaling, and vascular response were evaluated in hepatic and/or aortic tissues. Caloric intake was increased in both sugar-supplemented groups vs. control and in glucose- vs. fructose-supplemented rats. Hepatic lipogenesis was induced in both groups. Plasma triglycerides were increased only in the fructose group, together with decreased expression of carnitine palmitoyltransferase-1A and increased microsomal triglyceride transfer protein expression in the liver. Plasma adiponectin and peroxisome proliferator-activated receptor (PPAR)-α expression was increased only by glucose supplementation. Insulin signaling in liver and aorta was impaired in both sugar-supplemented groups, but the effect was more pronounced in the fructose group. Fructose supplementation attenuated aortic relaxation response to a nitric oxide (NO) donor, whereas glucose potentiated it. Phenylephrine-induced maximal contractions were reduced in the glucose group, which could be related to increased endothelial NO synthase (eNOS) phosphorylation and subsequent elevated basal NO in the glucose group. In conclusion, despite higher caloric intake in glucose-supplemented rats, fructose caused worse metabolic and vascular responses. This may be because of the elevated adiponectin level and the subsequent enhancement of PPARα and eNOS phosphorylation in glucose-supplemented rats. NEW & NOTEWORTHY This is the first study comparing the effects of glucose and fructose consumption on metabolic factors and aortic function in female rats. Our results show that, although total caloric consumption was higher in glucose-supplemented rats, fructose ingestion had a greater impact in inducing metabolic and aortic dysfunction.
Prognostic Impact of the Timing of Recurrence of Infarct-Related Ventricular Tachycardia After Catheter Ablation
Authors: Siontis Konstantinos C. , Kim Hyungjin Myra , Stevenson William G. , Fujii Akira , Della Bella Paolo , Vergara Pasquale , Shivkumar Kalyanam , Tung Roderick , Do Duc H. , Daoud Emile G. , Okabe Toshimasa , Zeppenfeld Katja , de Riva Silva Marta , Hindricks Gerhard , Arya Arash , Weber Alexander , Kuck Karl-Heinz , Metzner Andreas , Mathew Shibu , Riedl Johannes , Yokokawa Miki , Jongnarangsin Krit , Latchamsetty Rakesh , Morady Fred , Bogun Frank M. 
Published: December 2016

Background—
Recurrence of ventricular tachycardia (VT) after ablation in patients with previous myocardial infarction is associated with adverse prognosis. However, the impact of the timing of VT recurrence on outcomes is unclear.

Methods and Results—

We analyzed data from a multicenter collaborative database of patients who underwent catheter ablation for infarct-related VT. Multivariable Cox regression analyses investigated the effect of the timing of VT recurrence on the composite outcome of death or heart transplantation using VT recurrence as a time-varying covariate. A total of 1412 patients were included (92% men; age: 66.7±10.7 years), and 605 patients (42.8%) had a recurrence after median 116 days (188 [31.1%] within 1 month, 239 [39.5%] between 1 and 12 months, and 178 [29.4%] after 12 months). At median follow-up of 670 days, 375 patients (26.6%) experienced death or heart transplantation. The median time from recurrence to death or heart transplantation was 65 and 198.5 days in patients with recurrence ≤30 days and >30 days post ablation, respectively. The adjusted hazard ratio (95% confidence interval) for the effect of VT recurrence occurring immediately post ablation on death or heart transplantation was 3.45 (2.33–5.11) in reference to no recurrence. However, the magnitude of this effect decreased statistically significantly (
P
<0.001) as recurrence occurred later in the follow-up period. The respective risk estimates for VT recurrence at 30 days, 6 months, 1 year, and 2 years were 3.36 (2.29–4.93), 2.94 (2.09–4.14), 2.50 (1.85–3.37), and 1.81 (1.37–2.40).

Conclusions—
VT recurrence post ablation is associated with a mortality risk that is highest soon after the ablation and decreases gradually thereafter.
Religious and Other Experiences of Daoist Priestesses in Tang China
Authors: Jia Jinhua 
Published: December 2016

Most previous studies relating to women in Tang Daoism have relied heavily on Du Guangting’s (850-933) Yongcheng jixian lu, despite the fact that Du’s acknowledged hagiographies are idealized versions of the women’s lives. The present article seeks instead to gather information about historical priestesses from a wide range of contemporary sources, including most importantly epitaphic inscriptions, as well as other materials such as manuscripts from Dunhuang, various poems, essays, anecdotal accounts, and monastic gazetteers. Even while taking account of the possible urge of the authors sometimes to overpraise or exaggerate the merits of their subjects, we discover a surprisingly broad gamut of abilities displayed and activities engaged in by these women. Records relating to fifty-two named individuals are surveyed here, yielding much information of a quotidian nature about the varying roles and religious experiences of Daoist priestesses. La plupart des études existantes concernant les femmes dans le taoïsme des Tang recourent d’abondance au Yongcheng jixian lu de Du Guangting (850-933), alors que cet ouvrage délibérément hagiographique offre une version idéalisée de la vie de ses héroïnes. Le présent article cherche plutôt à rassembler des informations sur des prêtresses ayant historiquement existé en parcourant un vaste ensemble de sources contemporaines: en premier lieu les inscriptions funéraires, mais également les manuscrits de Dunhuang, les poèmes, les essais, les anecdotes, ou les monographies monastiques. Même en admettant une tendance de la part des auteurs à exagérer les mérites de leurs sujets, l’on découvre chez ces femmes un éventail de talents et d’activités étonnamment large. Les sources examinées ici concernent cinquante-deux personnes et livrent quantité d’informations de nature quotidienne sur les différents rôles et sur les expériences religieuses des prêtresses taoïstes.
Buddhist Tales of Lü Dongbin
Authors: Capitanio Joshua 
Published: December 2016

During the early thirteenth century, a story began to appear within texts associated with the Chan 禪 Buddhist movement, which portrays an encounter between the eminent transcendent Lü Dongbin 呂洞賓 and the Chan monk Huanglong Huiji 黃龍誨機 that results in Lü abandoning his alchemical techniques of self-cultivation and taking up the practice of Chan. This article traces the development of this tale across a number of Buddhist sources of the late imperial period, and also examines the ways in which later Buddhist and Daoist authors understood the story and utilized it in advancing their own polemical claims. Au début du treizième siècle apparaît dans les textes du bouddhisme Chan un récit qui met en scène une rencontre entre le célèbre immortel Lü Dongbin et le moine Chan Huanglong Huiji. Au terme de cette rencontre, Lü abandonne ses pratiques alchimiques de perfectionnement de soi et adopte celle de la méditation Chan. Le présent article retrace le développement de ce thème narratif au travers des sources bouddhiques de la fin de l’époque impériale, et examine la manière dont des auteurs bouddhistes et taoïstes ont compris le récit et l’ont manipulé en fonction de leurs propres objectifs polémiques.