93 research outputs found
Semantic Types for Class-based Objects
We investigate semantics-based type assignment for class-based object-oriented programming. Our motivation
is developing a theoretical basis for practical, expressive, type-based analysis of the functional
behaviour of object-oriented programs. We focus our research using Featherweight Java, studying two
notions of type assignment:- one using intersection types, the other a ‘logical’ restriction of recursive
types.
We extend to the object-oriented setting some existing results for intersection type systems. In doing
so, we contribute to the study of denotational semantics for object-oriented languages. We define a
model for Featherweight Java based on approximation, which we relate to our intersection type system
via an Approximation Result, proved using a notion of reduction on typing derivations that we show
to be strongly normalising. We consider restrictions of our system for which type assignment is decidable,
observing that the implicit recursion present in the class mechanism is a limiting factor in making
practical use of the expressive power of intersection types.
To overcome this, we consider type assignment based on recursive types. Such types traditionally
suffer from the inability to characterise convergence, a key element of our approach. To obtain a semantic
system of recursive types for Featherweight Java we study Nakano’s systems, whose key feature
is an approximation modality which leads to a ‘logical’ system expressing both functional behaviour
and convergence. For Nakano’s system, we consider the open problem of type inference. We introduce
insertion variables (similar to the expansion variables of Kfoury and Wells), which allow to infer when
the approximation modality is required. We define a type inference procedure, and conjecture its soundness
based on a technique of Cardone and Coppo. Finally, we consider how Nakano’s approach may be
applied to Featherweight Java and discuss how intersection and logical recursive types may be brought
together into a single system
Towards Automated Reasoning in Herbrand Structures
Herbrand structures have the advantage, computationally speaking, of being guided by the definability of all elements in them. A salient feature of the logics induced by them is that they internally
exhibit the induction scheme, thus providing a congenial, computationally-oriented framework for
formal inductive reasoning. Nonetheless, their enhanced expressivity renders any effective proof
system for them incomplete. Furthermore, the fact that they are not compact poses yet another prooftheoretic challenge. This paper offers several layers for coping with the inherent incompleteness and
non-compactness of these logics. First, two types of infinitary proof system are introduced—one
of infinite width and one of infinite height—which manipulate infinite sequents and are sound and
complete for the intended semantics. The restriction of these systems to finite sequents induces a
completeness result for finite entailments. Then, in search of effectiveness, two finite approximations
of these systems are presented and explored. Interestingly, the approximation of the infinite-width
system via an explicit induction scheme turns out to be weaker than the effective cyclic fragment of the
infinite-height system
Semantic Predicate Types and Approximation for Class-based Object Oriented Programming
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 Varsigma-object calculus)
taken by van Bakel and de'Liguoro. We define an extension of Featherweight
Java, FJc and present a predicate system which we show to be sound and
expressive. We also show that our system provides a semantic underpinning for
the object oriented paradigm by generalising the concept of approximant from
the Lambda Calculus and demonstrating an approximation result: all expressions
to which we can assign a predicate have an approximant that satisfies the same
predicate. Crucial to this result is the notion of predicate language, which
associates a family of predicates with a class.Comment: Proceedings of 11th Workshop on Formal Techniques for Java-like
Programs (FTfJP'09), Genova, Italy, July 6 200
Realizability in Cyclic Proof:Extracting Ordering Information for Infinite Descent
In program veri_cation, measures for proving the termination of programs are typically constructed using (notions of size for) the data manipulated by the program. Such data are often described by means of logical formulas. For example, the cyclic proof technique makes use of semantic approximations of inductively de_ned predicates to construct Fermat-style in_nite descent arguments. However, logical formulas must often incorporate explicit size information (e.g. a list length parameter) in order to support inter-procedural analysis. In this paper, we show that information relating the sizes of inductively de_ned data can be automatically extracted from cyclic proofs of logical entailments.We characterise this information in terms of a graph-theoretic condition on proofs, and show that this condition can be encoded as a containment between weighted automata. We also show that under certain conditions this containment falls within known decidability results. Our results can be viewed as a form of realizability for cyclic proof theory
Uniform Inductive Reasoning in Transitive Closure Logic via Infinite Descent
Transitive closure logic is a known extension of first-order logic obtained by introducing a
transitive closure operator. While other extensions of first-order logic with inductive definitions
are a priori parametrized by a set of inductive definitions, the addition of the transitive closure
operator uniformly captures all finitary inductive definitions. In this paper we present an
infinitary proof system for transitive closure logic which is an infinite descent-style counterpart
to the existing (explicit induction) proof system for the logic. We show that, as for similar
systems for first-order logic with inductive definitions, our infinitary system is complete for the
standard semantics and subsumes the explicit system. Moreover, the uniformity of the transitive
closure operator allows semantically meaningful complete restrictions to be defined using simple
syntactic criteria. Consequently, the restriction to regular infinitary (i.e. cyclic) proofs provides
the basis for an effective system for automating inductive reasoning
Infinitary and Cyclic Proof Systems for Transitive Closure Logic
Transitive closure logic is a known extension of first-order logic obtained by introducing a transitive closure operator. While other extensions of first-order logic with inductive definitions are a priori parametrized by a set of inductive definitions, the addition of the transitive closure operator uniformly captures all finitary inductive definitions. In this paper we present an infinitary proof system for transitive closure logic which is an infinite descent-style counterpart to the existing (explicit induction) proof system for the logic. We show that, as for similar systems for first-order logic with inductive definitions, our infinitary system is complete for the standard semantics and subsumes the explicit system. Moreover, the uniformity of the transitive closure operator allows semantically meaningful complete restrictions to be defined using simple syntactic criteria. Consequently, the restriction to regular infinitary (i.e. cyclic) proofs provides the basis for an effective system for automating inductive reasoning
- …