We present a new approach for specifying and verifying resource utilization of higher-order functional programs that use lazy evaluation and memoization. In our approach, users can specify the desired resource bound as templates with numerical holes e.g. as steps <= ? not asymptotic to size(l) + ? in the contracts of functions. They can also express invariants necessary for establishing the bounds that may depend on the state of memoization. Our approach operates in two phases: first generating an instrumented first-order program that accurately models the higher-order control flow and the effects of memoization on resources using sets, algebraic datatypes and mutual recursion, and then verifying the contracts of the first-order program by ...
We study the problem of proving termination of open, higher-order programs with recursive functions ...
This article introduces a technique to accurately perform static prediction of resource usage for ML...
In this thesis, we are interested in semantical proof of correctness results for complex programming...
Static estimation of resource utilisation of programs is a challenging and important problem with nu...
We present the foundations of a verifier for higher-order functional programs with generics and recu...
We present a generic analysis that infers both upper and lower bounds on the usage that a program ma...
Program properties that are automatically inferred by static analysis tools are generally not consid...
AbstractIn this paper we use a program logic and automatic theorem provers to certify resource usage...
This paper describes the first successful attempt, of which we are aware, to define an automatic, ty...
Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018Interna...
We present a framework for (static) verification of general resource usage program properties. The f...
We present Leon, a system for developing functional Scala programs annotated with contracts. Contrac...
We describe a new automatic static analysis for determining upper-bound functions on the use of quan...
This paper presents a novel type-and-effect analysis for pre-dicting upper-bounds on memory allocati...
In an increasing number of applications (e.g., in embedded, real-time, or mobile systems) it is imp...
We study the problem of proving termination of open, higher-order programs with recursive functions ...
This article introduces a technique to accurately perform static prediction of resource usage for ML...
In this thesis, we are interested in semantical proof of correctness results for complex programming...
Static estimation of resource utilisation of programs is a challenging and important problem with nu...
We present the foundations of a verifier for higher-order functional programs with generics and recu...
We present a generic analysis that infers both upper and lower bounds on the usage that a program ma...
Program properties that are automatically inferred by static analysis tools are generally not consid...
AbstractIn this paper we use a program logic and automatic theorem provers to certify resource usage...
This paper describes the first successful attempt, of which we are aware, to define an automatic, ty...
Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2018Interna...
We present a framework for (static) verification of general resource usage program properties. The f...
We present Leon, a system for developing functional Scala programs annotated with contracts. Contrac...
We describe a new automatic static analysis for determining upper-bound functions on the use of quan...
This paper presents a novel type-and-effect analysis for pre-dicting upper-bounds on memory allocati...
In an increasing number of applications (e.g., in embedded, real-time, or mobile systems) it is imp...
We study the problem of proving termination of open, higher-order programs with recursive functions ...
This article introduces a technique to accurately perform static prediction of resource usage for ML...
In this thesis, we are interested in semantical proof of correctness results for complex programming...