37 research outputs found

    Applying the Cogito Program Development Environment to Real-Time System Design

    No full text
    We show how a formal program development environment, previously used for sequential, non-real-time applications only, can be exploited for parallel, real-time system design. A pragmatic approach is adopted, making best use of existing technologies, in order to quickly achieve useful results.

    Using theory interpretation to mechanise the reals in a theorem prover

    No full text
    AbstractThe mechanisation of the real numbers within theorem provers is of practical benefit for the verification of real-time systems. The real numbers provide a foundation within the theorem prover for classical mathematical analysis such as differentiation and integration. The approach we have taken makes extensive use of the theory interpretation facilities of the interactive theorem prover Ergo to maximise theory reuse and hence minimise theorem redundancy. The theory developed is compared with Harrison's HOL version

    Contextual matching of software library components

    No full text
    Many automated programming environments construct software by integrating predefined components from a software library. A fundamental challenge in this process is to match the programmer's specified requirements against the stated capabilities of the components. We explain how the chances of successfully achieving a match can be increased by taking the program context surrounding each requirement into consideration. Formal rules, based on program refinement theory, are defined for context-based matching. The rules allow properties that can be proven to hold at a particular point in the program to justify matching with components that operate correctly only in such a context

    A Set-Theoretic Model for Real-Time Specification and Reasoning

    No full text
    Abstract. Timed-trace formalisms have emerged as a powerful method for specifying and reasoning about concurrent real-time systems. We present a simple variant which builds methodically on set theory, and is thus suitable for use by programmers with little formal methods experience.

    Formally analysing a security protocol for replay attacks

    No full text
    The Kerberos-One-Time protocol is a key distribution protocol promoted for use with Javacards to provide secure communication over the GSM mobile phone network. From inspection we suspected a replay attack was possible on the protocol. To check this, we formally specified the protocol using Object-Z and then analysed its behaviour in the presence of an attacker using the Symbolic Analysis Laboratory's model checker. To produce accurate results efficiently, our formalism included an abstraction of the protocol's data structures that captured just those characteristics that we believed made the protocol vulnerable. Ultimately, the model checker's analysis confirmed our suspicions about the protocol's weakness

    Compilation of specifications

    No full text

    Refinement rules for real-time multi-tasking programs

    No full text
    We present several formal program refinement rules for designing multi-tasking programs with hard real-time constraints

    Real-time schedulability tests for preemptive multitasking

    No full text
    When developing multitasking real-time systems, schedulability tests are used to formally prove that a given task set will meet its deadlines. A wide range of such tests have appeared in the literature. This tutorial acts as a guide to the major tests available for preemptive multitasking applications.

    Formal definition of priority in CSP

    No full text
    The process models of Ada and occam are formally based on the CSP process algebra. However, for fine-tuning real-time performance, they include “prioritized” constructs that have no counterparts in CSP. These constructs therefore lack any formal definition, a situation that leaves room for misunderstandings. We extend CSP with a formal definition of the notion of priority. The definition is then used to assess the transputer implementation of priority in occam and the definition of priority in Ada
    corecore