30 research outputs found

    A Deductive Verification Infrastructure for Probabilistic Programs

    Full text link
    This paper presents a quantitative program verification infrastructure for discrete probabilistic programs. Our infrastructure can be viewed as the probabilistic analogue of Boogie: its central components are an intermediate verification language (IVL) together with a real-valued logic. Our IVL provides a programming-language-style for expressing verification conditions whose validity implies the correctness of a program under investigation. As our focus is on verifying quantitative properties such as bounds on expected outcomes, expected run-times, or termination probabilities, off-the-shelf IVLs based on Boolean first-order logic do not suffice. Instead, a paradigm shift from the standard Boolean to a real-valued domain is required. Our IVL features quantitative generalizations of standard verification constructs such as assume- and assert-statements. Verification conditions are generated by a weakest-precondition-style semantics, based on our real-valued logic. We show that our verification infrastructure supports natural encodings of numerous verification techniques from the literature. With our SMT-based implementation, we automatically verify a variety of benchmarks. To the best of our knowledge, this establishes the first deductive verification infrastructure for expectation-based reasoning about probabilistic programs

    Formalizing probabilistic noninterference

    Get PDF
    We present an Isabelle formalization of probabilistic noninterference for a multi-threaded language with uniform scheduling. Unlike in previous settings from the literature, here probabilistic behavior comes from both the scheduler and the individual threads, making the language more realistic and the mathematics more challenging. We study resumption-based and trace-based notions of probabilistic noninterference and their relationship, and also discuss compositionality w.r.t. the language constructs and type-system-like syntactic criteria. The formalization uses recent development in the Isabelle probability theory library

    A Deductive Verification Infrastructure for Probabilistic Programs

    Get PDF
    This paper presents a quantitative program verification infrastructure for discrete probabilistic programs. Our infrastructure can be viewed as the probabilistic analogue of Boogie: its central components are an intermediate verification language (IVL) together with a real-valued logic. Our IVL provides a programming-language-style for expressing verification conditions whose validity implies the correctness of a program under investigation. As our focus is on verifying quantitative properties such as bounds on expected outcomes, expected run-times, or termination probabilities, off-the-shelf IVLs based on Boolean first-order logic do not suffice. Instead, a paradigm shift from the standard Boolean to a real-valued domain is required. Our IVL features quantitative generalizations of standard verification constructs such as assume- and assert-statements. Verification conditions are generated by a weakest-precondition-style semantics, based on our real-valued logic. We show that our verification infrastructure supports natural encodings of numerous verification techniques from the literature. With our SMT-based implementation, we automatically verify a variety of benchmarks. To the best of our knowledge, this establishes the first deductive verification infrastructure for expectation-based reasoning about probabilistic programs

    Yap: Tool Support for Deriving Safety Controllers from Hazard Analysis and Risk Assessments

    Get PDF
    Safety controllers are system or software components responsible for handling risk in many machine applications. This tool paper describes a use case and a workflow for YAP, a research tool for risk modelling and discrete-event safety controller design. The goal of this use case is to derive a safety controller from hazard analysis and risk assessment, to define a design space for this controller, and to select a verified optimal controller instance from this design space. We represent this design space as a stochastic model and use YAP for risk modelling and generation of parts of this stochastic model. For the controller verification and selection step, we use a stochastic model checker. The approach is illustrated by an example of a collaborative robot operated in a manufacturing work cell

    Herramientas para la exploración y formalización de modelos de programas probabilísticos

    Get PDF
    El objetivo de nuestra investigación es la construcción de herramientas que permitan explorar las propiedades tanto formales como intuitivas de programas probabilísticos. Los programas que tenemos en mente son aquellos expresables en pGCL, una extensión del lenguaje imperativo de “comandos con guardas” de Dijkstra. El significado y conducta de tales programas probabilísticos es bastante difícil de establecer para una persona no experta en el tema, incluso a la hora de entender una simple traza completa de los mismos. Es clara entonces la necesidad de crear herramientas de software que ayuden tanto en la parte formal (demostraciones formalizadas de propiedades de programas) como intuitiva (exploración de modelos) de estos programas. La aplicación de dichas herramientas sería de utilidad tanto en el área de métodos formales como en la de lenguajes de programación modernos. En particular, nos interesa integrar todas las herramientas a desarrollar alrededor del lenguaje de programación funcional Haskell, de modo de aprovechar la riqueza de conexiones con herramientas de formalización (como ser Agda), como así otras librerías y herramientas de desarrollo para el programador de Haskell.Eje: Ingeniería de SoftwareRed de Universidades con Carreras en Informática (RedUNCI

    Aiming Low Is Harder -- Induction for Lower Bounds in Probabilistic Program Verification

    Get PDF
    We present a new inductive rule for verifying lower bounds on expected values of random variables after execution of probabilistic loops as well as on their expected runtimes. Our rule is simple in the sense that loop body semantics need to be applied only finitely often in order to verify that the candidates are indeed lower bounds. In particular, it is not necessary to find the limit of a sequence as in many previous rules

    Understanding Probabilistic Programs

    Get PDF
    We present two views of probabilistic programs and their relationship. An operational interpretation as well as a weakest pre-condition semantics are provided for an elementary probabilistic guarded command language. Our study treats important features such as sampling, conditioning, loop divergence, and non-determinism
    corecore