6 research outputs found

    Proof rules and transformations dealing with fairness

    Get PDF
    AbstractWe provide proof rules enabling the treatment of two fairness assumptions in the context of Dijkstra's do-od-programs. These proof rules are derived by considering a transformed version of the original program which uses random assignments z≔? and admits only fair computations. Various, increasingly complicated, examples are discussed. In all cases reasonably simple proofs can be given. The proof rules use well-founded structures corresponding to infinite ordinals and deal with the original programs and not their translated versions

    Verificación de Programas no Determinísticos

    Get PDF
    We continue with our series of introductory articles on the axiomatic verification of programs. In this second work, we focus on the nondeterministic sequential paradigm, always within the framework of imperative input/output programs. As nondeterminism is manifested in concurrency, the article also serves as an introduction to the verification of concurrent programs, in which a formal treatment of correctness verification is more justified due to their complexity. We work with a classic programming language, with nondeterministic conditional selections and repetitions, and then incorporating random assignments. For the verification of the programs we propose an adaptation of the verification axiomatic method described in the previous publication, limited to deterministic sequential programming. We present examples of the application of the method and a systematic program development is also included, emphasizing again the approach of using the axioms and rules for programming as well as verifying, in order to obtain correct programs by construction. Finally, we introduce the concept of fairness, which effect is to reduce the degree of nondeterminism of a program based on certain equity criteria in the execution environment, and we describe a couple of adaptations in the verification rules to contemplate this aspect.Continuando con nuestra serie de artículos intoductorios sobre la verificación axiomática de programas, en este segundo trabajo nos enfocamos en el paradigma secuencial no determinístico, siempre en el marco de los programas imperativos de entrada/salida. Como el no determinismo se manifiesta en la concurrencia, el artículo sirve también como introducción a la verificación de programas concurrentes, en los que más se justifica por su complejidad un tratamiento formal de las pruebas de correctitud. Trabajamos con un clásico lenguaje de programación, con selección condicional y repetición no determinísticas, al que luego se incorporan asignaciones aleatorias. Para las pruebas de los programas planteamos una adaptación del método axiomático de verificación descripto en la publicación previa, limitado a la programación secuencial determinística. Presentamos ejemplos de aplicación del método e incluimos un desarrollo sistemático de programa, volviendo a destacar el approach de utilizar los axiomas y reglas para programar al mismo tiempo que verificar, con el objeto de obtener programas correctos por construcción. Finalmente introducimos el concepto de fairness, cuyo efecto es reducir el grado de no determinismo de un programa en base a determinados criterios de equidad en el entorno de ejecución, y describimos un par de adaptaciones en las reglas de prueba para contemplar este aspecto

    Verification of Sequential and Concurrent Programs

    Full text link

    Verification of Sequential and Concurrent Programs

    Full text link
    corecore