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 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 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)
A cyclic proof system generalises the standard notion of a proof as a finite tree of locally sound inferences by allowing proof objects to be potentially infinite. Regular infinite proofs can be finitely represented as graphs. To preclude spurious cyclic reasoning, cyclic proof systems come equipped with a well-founded notion of 'size' for the models that(More)
To challenge the distribution of condoms on school campuses with accusations of immorality and "lack of good character" appears shallow at best. Considering the home situation of many young people and their immediate environment, the act of securing a condom could be totally consistent with "good character." Certainly, abstinence up to a certain stage in(More)
The intersection type discipline (ITD) is well-established for the Lambda Calculus (LC) and the functional programming paradigm. It has also been extended to Term Rewriting Systems (TRS) and more recently to object calculi and sequent calculi. We continue this trend by applying the techniques of ITD to the analysis of the (class based) object-oriented (OO)(More)