Some total languages, like Agda and Coq, allow the use of guarded corecursion to construct infinite values and proofs. Guarded corecursion is a form of recursion in which arbitrary recursive calls are allowed, as long as they are guarded by a coinductive constructor. Guardedness ensures that programs are productive, i.e. that every finite prefix of an infinite value can be computed in finite time. However, many productive programs are not guarded, and it can be nontrivial to put them in guarded form. This paper gives a method for turning a productive program into a guarded program. The method amounts to defining a problem-specific language as a data type, writing the program in the problem-specific language, and writing a guarded interprete...
In this paper, we present an infrastructure for securing distributed computations between hosts, usi...
Several recent security-typed programming languages, such as Aura, PCML5, and Fine, allow programmer...
Like the notion of computation via (strong) monads serves to classify various flavours of impurity, ...
Total functional programming offers the beguiling vision that, just by virtue of the compiler accept...
peer-reviewedProofs involving infinite structures can use corecursive functions as inhabitants of a...
In type theory, programming and reasoning with possibly non-terminating programs and potentially inf...
In total functional (co)programming valid programs are guaranteed to always produce (part of) their ...
AbstractA declarative semantics of a concurrent programming language based on Horn logic such as Fla...
With the ever increase in the demand of building secure systems, recent years are witnessing a pleth...
We present a program-verification approach based on coinduction, which makes it feasible to verify p...
Sound reasoning about the behavior of programs relies on program execution adhering to the language ...
International audienceWe propose a (limited) solution to the problem of constructing stream values d...
Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq...
Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq...
Approximate program transformations such as task skipping [27, 28], loop perforation [20, 21, 32], m...
In this paper, we present an infrastructure for securing distributed computations between hosts, usi...
Several recent security-typed programming languages, such as Aura, PCML5, and Fine, allow programmer...
Like the notion of computation via (strong) monads serves to classify various flavours of impurity, ...
Total functional programming offers the beguiling vision that, just by virtue of the compiler accept...
peer-reviewedProofs involving infinite structures can use corecursive functions as inhabitants of a...
In type theory, programming and reasoning with possibly non-terminating programs and potentially inf...
In total functional (co)programming valid programs are guaranteed to always produce (part of) their ...
AbstractA declarative semantics of a concurrent programming language based on Horn logic such as Fla...
With the ever increase in the demand of building secure systems, recent years are witnessing a pleth...
We present a program-verification approach based on coinduction, which makes it feasible to verify p...
Sound reasoning about the behavior of programs relies on program execution adhering to the language ...
International audienceWe propose a (limited) solution to the problem of constructing stream values d...
Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq...
Most dependently-typed programming languages either require that all expressions terminate (e.g. Coq...
Approximate program transformations such as task skipping [27, 28], loop perforation [20, 21, 32], m...
In this paper, we present an infrastructure for securing distributed computations between hosts, usi...
Several recent security-typed programming languages, such as Aura, PCML5, and Fine, allow programmer...
Like the notion of computation via (strong) monads serves to classify various flavours of impurity, ...