3,869 research outputs found

    A Generalisation of Pre-Logical Predicates and Its Applications

    Get PDF
    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

    No full text
    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

    No full text
    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

    Get PDF
    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
    • ā€¦
    corecore