We propose a novel approach to proving the termination of heapmanipulating programs, which combines separation logic with cyclic proof within a Hoare-style proof system. Judgement...
James Brotherston, Richard Bornat, Cristiano Calca...
Abstract. A strong (L) logic programming language ([14, 15]) is given by two subclasses of formulas (programs and goals) of the underlying logic L, provided that: firstly, any pro...
Partial functions and operators are used extensively in the formal development of programs and thus development methods have to clarify how to reason about them. There are a numbe...
Lax logical relations are a categorical generalisation of logical relations; though they preserve product types, they need not preserve exponential types. But, like logical relatio...
Gordon D. Plotkin, John Power, Donald Sannella, Ro...
We show how to reason, in the proof assistant Coq, about realistic programming languages using a combination of separation logic and heterogeneous multimodal logic. A heterogeneou...