Learn More
We show how to efficiently obtain linear a priori bounds on the heap space consumption of first-order functional programs.The analysis takes space reuse by explicit deallocation into account and also furnishes an upper bound on the heap usage in the presence of garbage collection. It covers a wide variety of examples including, for instance, the familiar(More)
We study the problem of automatically analyzing the worst-case resource usage of procedures with several arguments. Existing automatic analyses based on amortization or sized types bound the resource usage or result size of such a procedure by a sum of unary functions of the sizes of the arguments. In this article we generalize this to arbitrary(More)
We show that the category FinVect k of finite dimensional vector spaces and linear maps over any field k is (collectively) complete for the traced symmetric monoidal category freely generated from a signature , provided that the field has characteristic 0; this means that for any two different arrows in the free traced category there always exists a strong(More)
We describe a new <i>automatic </i> static analysis for determining upper-bound functions on the use of quantitative resources for strict, higher-order, polymorphic, recursive programs dealing with possibly-aliased data. Our analysis is a variant of Tarjan's manual <i>amortised cost analysis </i> technique. We use a type-based approach, exploiting linearity(More)
This paper introduces a simply-typed lambda calculus with both modal and linear function types. Through the use of subtyping extra term formers associated with modality and linearity are avoided. We study the basic metatheory of this system including existence and inference of principal types. The system serves as a platform for certain higher-order(More)
The linear time µ-calculus extends LTL with arbitrary least and greatest fixpoint operators. This gives it the power to express all ω-regular languages, i.e. strictly more than LTL. The validity problem is PSPACE-complete for both LTL and the linear time µ-calculus. In practice it is more difficult for the latter because of nestings of fixpoint operators(More)