C FT is a new co nstraint system providing reco rds as logi cal dat.a st ru cture fo r co nstraint (logi c) programming. It can be seen as a genera lizat io n of th e rational tree system employed in Prolog If, where fin er-g rained constr a ints are used , and where subtrees are id entifi ed by key words rath er than by position. C FT is defined by a first-ord er structure consisting of so-called feature trees. Feature trees generali ze th e ordinary trees co rres ponding to first-ord er terms by hav ing th eir edges labeled with fi eld nam es call ed feat ures. The m at hem at ical semanti cs given by the feature trer st ru cture is com plemented with a log ical se m a nt ics given by five axiolll schemes, wh ich we co nj ect ure to co mprise a co mpl ete axiomatization of th e feat ure tree structure. We present a decision m et hod for CFT, wh ich dec id es entailm ent a nd disentailment betwee n possibly existentially quant.ifi ed constraints. Since C FT satisfies th e independ ence property, our dec ision m ethod can a lso be employed for checking the satisfiability of co njunctions of positive a nd negat ive constraints. This includ es quantifi ed negative co nstraints such as VyVz(x 1: f(y , z)). Th e paper also presents an id ealized abstract machin e process ing negat ive a nd positive co nstra ints in crem entally. We argue that an optimized version of the m achin e can decid e satisfiabi li ty and e ntailm ent in quasi-lillear time.
We introduce a new lambda calculus with futures, λ(fut), that models the operational semantics of concurrent statically typed functional programming languages with mixed eager and lazy threads such as Alice ML, a concurrent extension of Standard ML. λ(fut) is a minimalist extension of the call-by-value λ-calculus that is sufficiently expressive to define and combine a variety of standard concurrency abstractions, such as channels, semaphores, and ports. Despite its minimality, the basic machinery of λ(fut) is sufficiently powerful to support explicit recursion and call-by-need evaluation. We present a static type system for λ(fut) and distinguish a fragment of λ(fut) that we prove to be uniformly confluent. This result confirms our intuition that reference cells are the sole source of indeterminism. This fragment assumes the absence of so called handle errors that violate the single assignment assumption of λ(fut)'s handled future-construct. Finally, we present a linear type system for λ(fut) by which to prove the absence of handle errors. Our system is rich enough to type definitions of the above mentioned concurrency abstractions. Consequently, these cannot be corrupted in any (not necessarily linearly) well-typed context.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.