3,869 research outputs found
A Generalisation of Pre-Logical Predicates and Its Applications
This thesis proposes a generalisation of pre-logical predicates to
simply typed formal systems and their categorical models. We analyse
the three elements involved in pre-logical predicates --- syntax,
semantics and predicates --- within a categorical framework for typed
binding syntax and semantics. We then formulate generalised
pre-logical predicates and show two distinguishing properties: a)
equivalence with the basic lemma and b) closure of binary pre-logical
relations under relational composition.
To test the adequacy of this generalisation, we derive pre-logical
predicates for various calculi and their categorical models including
variations of lambda calculi and non-lambda calculi such as
many-sorted algebras as well as first-order logic. We then apply
generalised pre-logical predicates to characterising behavioural
equivalence. Examples of constructive data refinement of typed formal
systems are shown, where behavioural equivalence plays a crucial role
in achieving data abstraction
Verification Conditions are Code
This paper presents a new theoretical result concerning Hoare Logic. It is shown here that the verification conditions which support a Hoare Logic program derivation are themselves sufficient to construct a correct implementation of the given pre-, post- condition specification. This property is mainly of theoretical interest, though it is possible that it may have some practical use, for example if predicative programming methodology is adopted. The result is shown to hold for both the original, partial correctness, Hoare logic, and also a variant for total correctness derivations
Supervising Offline Partial Evaluation of Logic Programs using Online Techniques
A major impediment for more widespread use of offline partial evaluation is the difficulty of obtaining and maintaining annotations for larger, realistic programs. Existing automatic binding-time analyses still only have limited applicability and annotations often have to be created or improved and maintained by hand, leading to errors. We present a technique to help overcome this problem by using online control techniques which supervise the specialisation process in order to help the development and maintenance of correct annotations by identifying errors. We discuss an implementation in the Logen system and show on a series of examples that this approach is effective: very few false alarms were raised while infinite loops were detected quickly. We also present the integration of this technique into a web interface, which highlights problematic annotations directly in the source code. A method to automatically fix incorrect annotations is presented, allowing the approach to be also used as a pragmatic binding time analysis. Finally we show how our method can be used for efficiently locating built-in errors in Prolog source code
The Event Calculus Assessed
The range of applicability of the Full Event Calculus is proven to be the Ksp-IA class in the Features and Fluents taxonomy. The proof is given with respect to the original definition of this preference logic, where no adjustments of the language or reasoning method were necessary. The result implies that the claims on the expressiveness and
problem-solving power of this logic were indeed correct
- ā¦