Learn More
We apply the principles of the intersection type discipline to the study of class-based object oriented programs and; our work follows from a similar approach (in the context of Abadi and Cardelli's &sigmaf;-object calculus) taken by van Bakel and de'Liguoro. We define an extension of Featherweight Java, <i>p</i>FJ, and present a <i>predicate</i> system(More)
We consider a semantics for a class-based object-oriented calculus based upon approximation; since in the context of lc such a semantics enjoys a strong correspondence with intersection type assignment systems, we also define such a system for our calculus and show that it is sound and complete. We establish the link with between type (we use the(More)
We investigate the *model checking* problem for symbolic-heap separation logic with user-defined inductive predicates, i.e., the problem of checking that a given stack-heap memory state satisfies a given formula in this language, as arises e.g. in software testing or runtime verification. First, we show that the problem is *decidable*; specifically, we(More)
We consider a semantics for a class-based object-oriented calculus based upon approximation; since in the context of LC such a semantics enjoys a strong correspondence with intersection type assignment systems, we also define such a system for our calculus and show that it is sound and complete. We establish the link with between type (we use the(More)
We consider semantics for the class-based object-oriented calculus Featherweight Java (without casts) based upon approximation. We also define an intersection type assignment system for this calculus and show that it satisfies subject reduction and expansion, i.e. types are preserved under reduction and its converse. We establish a link between type(More)
We describe a formal verification framework and tool implementation, based upon cyclic proofs, for certifying the safe termination of imperative pointer programs with recursive procedures. Our assertions are <em>symbolic heaps</em> in separation logic with user defined inductive predicates; we employ <em>explicit approximations</em> of these predicates as(More)
Jay and Given-Wilson have recently introduced the Factorisation (or SF-) calculus as a minimal fundamental model of intensional computation. It is a combinatory calculus containing a special combinator, F, which is able to examine the internal structure of its first argument. The calculus is significant in that as well as being combinatorially complete it(More)
The factorisation calculus of Jay and Given-Wilson, a fundamental model of pattern matching , introduces the factorisation combinator, whose behaviour is conditional on the structure of its arguments. This combinator is typeable with polymorphic types such as System F types; this system does not have the property of type assignment decidability. We develop(More)
We consider functional type assignment for the class-based object-oriented calculus Feather-weight Java. We start with an intersection type assignment systems for this calculus for which types are preserved under conversion. We then define a variant for which type assignment is decidable, and define a notion of unification as well as a principal typeing(More)