3,922 research outputs found
On the Relative Usefulness of Fireballs
In CSL-LICS 2014, Accattoli and Dal Lago showed that there is an
implementation of the ordinary (i.e. strong, pure, call-by-name)
-calculus into models like RAM machines which is polynomial in the
number of -steps, answering a long-standing question. The key ingredient
was the use of a calculus with useful sharing, a new notion whose complexity
was shown to be polynomial, but whose implementation was not explored. This
paper, meant to be complementary, studies useful sharing in a call-by-value
scenario and from a practical point of view. We introduce the Fireball
Calculus, a natural extension of call-by-value to open terms for which the
problem is as hard as for the ordinary lambda-calculus. We present three
results. First, we adapt the solution of Accattoli and Dal Lago, improving the
meta-theory of useful sharing. Then, we refine the picture by introducing the
GLAMoUr, a simple abstract machine implementing the Fireball Calculus extended
with useful sharing. Its key feature is that usefulness of a step is
tested---surprisingly---in constant time. Third, we provide a further
optimization that leads to an implementation having only a linear overhead with
respect to the number of -steps.Comment: Technical report for the LICS 2015 submission with the same titl
Recommended from our members
Is the party-appointed arbitrator a "pernicious institution"? A reply to Professor Hans Smit
Some readers of the Columbia FDI Perspective No. 33 of December 14, 2010 may have been surprised to read Hans Smit's contribution against party-appointed arbitrators. The opening of his Perspective could not be expressed in more sweeping terms: "In my judgment, party-appointed arbitrators should be banned unless their role as advocates for the party that appointed them is fully disclosed and accepted. Until this is done, arbitration can never meet its aspiration of providing dispassionate adjudication . . . .
A Bi-Directional Refinement Algorithm for the Calculus of (Co)Inductive Constructions
The paper describes the refinement algorithm for the Calculus of
(Co)Inductive Constructions (CIC) implemented in the interactive theorem prover
Matita. The refinement algorithm is in charge of giving a meaning to the terms,
types and proof terms directly written by the user or generated by using
tactics, decision procedures or general automation. The terms are written in an
"external syntax" meant to be user friendly that allows omission of
information, untyped binders and a certain liberal use of user defined
sub-typing. The refiner modifies the terms to obtain related well typed terms
in the internal syntax understood by the kernel of the ITP. In particular, it
acts as a type inference algorithm when all the binders are untyped. The
proposed algorithm is bi-directional: given a term in external syntax and a
type expected for the term, it propagates as much typing information as
possible towards the leaves of the term. Traditional mono-directional
algorithms, instead, proceed in a bottom-up way by inferring the type of a
sub-term and comparing (unifying) it with the type expected by its context only
at the end. We propose some novel bi-directional rules for CIC that are
particularly effective. Among the benefits of bi-directionality we have better
error message reporting and better inference of dependent types. Moreover,
thanks to bi-directionality, the coercion system for sub-typing is more
effective and type inference generates simpler unification problems that are
more likely to be solved by the inherently incomplete higher order unification
algorithms implemented. Finally we introduce in the external syntax the notion
of vector of placeholders that enables to omit at once an arbitrary number of
arguments. Vectors of placeholders allow a trivial implementation of implicit
arguments and greatly simplify the implementation of primitive and simple
tactics
Recommended from our members
单方指定仲裁员是否是一个“缺陷制度”?
一些读过2010年12月14日第33期《国际直接投资展望》的读者想必会对Hans Smit教授关于单方制定仲裁员的观点感到惊讶。他在《展望》中措辞尖锐:"我认为除非单方指定仲裁员作为该方辩护律师的身份充分公开且被各方接受,否则就应禁止当事人指定仲裁员。只有这样才有希望达成公平的裁决......
Panelists, Arbitrators, Judges: A Response to Joost Pauwelyn
I must state from the outset that I am not convinced that an analysis like the one conducted by Joost Pauwelyn, though valuable from a statistical and quantitative point of view, is really apt to explain the different functioning of legal institutions, their efficiency in term of results achieved in relation to objectives, the satisfaction of the various group of users and the reasons for their being subjected to criticism. The different architecture of the trade and investment systems reflects different constituencies, objectives and needs. Praise and criticism come from different groups of users and nonusers, and they change over time due to changing perceptions, objectives, and interests
On the correctness of a branch displacement algorithm
The branch displacement problem is a well-known problem in assembler design. It revolves around the feature, present in several processor families, of having different instructions, of different sizes, for jumps of different displacements. The problem, which is provably NP-hard, is then to select the instructions such that one ends up with the smallest possible program.
During our research with the CerCo project on formally verifying a C compiler, we have implemented and proven correct an algorithm for this problem. In this paper, we discuss the problem, possible solutions, our specific solutions and the proofs
- …