Learn More
White matter disruption is an important determinant of cognitive impairment after brain injury, but conventional neuroimaging underestimates its extent. In contrast, diffusion tensor imaging provides a validated and sensitive way of identifying the impact of axonal injury. The relationship between cognitive impairment after traumatic brain injury and white(More)
Constraint solvers typically maintain a domain of possible values for each variable that may form part of a solution to a constraint satisfaction problem. Historically, it has been thought impractical to represent precisely the domains of certain types of constrained variable, such as finite set variables. For example, the domain of a finite set variable(More)
We describe an approach for synthesizing data representations for concurrent programs. Our compiler takes as input a program written using <i>concurrent relations</i> and synthesizes a representation of the relations as sets of cooperating data structures as well as the placement and acquisition of locks to synchronize concurrent access to those data(More)
We consider the problem of specifying combinations of data structures with complex sharing in a manner that is both declarative and results in provably correct code. In our approach, abstract data types are specified using relational algebra and functional dependencies. We describe a language of decompositions that permit the user to specify different(More)
We present an overview of the Saturn program analysis system, including a rationale for three major design decisions: the use of function-at-a-time, or summary-based, analysis, the use of constraints, and the use of a logic programming language to express program analysis algorithms. We argue that the combination of summaries and constraints allows Saturn(More)
Most propagation-based set constraint solvers approximate the set of possible sets that a variable can take by upper and lower bounds, and perform so-called set bounds propagation. However Lagoon and Stuckey have shown that using reduced ordered binary decision diagrams (ROBDDs) one can create a practical set domain propagator that keeps all information(More)
We consider the problem of specifying data structures with complex sharing in a manner that is both declarative and results in provably correct code. In our approach, abstract data types are specified using relational algebra and functional dependencies; a novel fuse operation on relational indexes specifies where the underlying physical data structure(More)
With huge progress on data processing frameworks, human programmers are frequently the bottleneck when analyzing large repositories of data. We introduce Yedalog, a declarative programming language that allows programmers to mix data-parallel pipelines and computation seamlessly in a single language. By contrast, most existing tools for data-parallel(More)