406 research outputs found

    Using Animation in Diagrammatic Theorem Proving

    Get PDF

    Using Diagrammatic Reasoning for Theorem Proving in a Continuous Domain

    Get PDF
    Centre for Intelligent Systems and their ApplicationsThis project looks at using diagrammatic reasoning to prove mathematical theorems. The work is motivated by a need for theorem provers whose reasoning is readily intelligible to human beings. It should also have practical applications in mathematics teaching. We focus on the continuous domain of analysis - a geometric subject, but one which is taught using a dry algebraic formalism which many students find hard. The geometric nature of the domain makes it suitable for a diagram-based approach. However it is a difficult domain, and there are several problems, including handling alternating quantifiers, sequences and generalisation. We developed representations and reasoning methods to solve these. Our diagram logic isn't complete, but does cover a reasonable range of theorems. It utilises computers to extend diagrammatic reasoning in new directions – including using animation. This work is tested for soundness, and evaluated empirically for ease of use. We demonstrate that computerised diagrammatic theorem proving is not only possible in the domain of real analysis, but that students perform better using it than with an equivalent algebraic computer system

    An open extensible tool environment for Event-B

    No full text
    Abstract. We consider modelling indispensable for the development of complex systems. Modelling must be carried out in a formal notation to reason and make meaningful conjectures about a model. But formal modelling of complex systems is a difficult task. Even when theorem provers improve further and get more powerful, modelling will remain difficult. The reason for this that modelling is an exploratory activity that requires ingenuity in order to arrive at a meaningful model. We are aware that automated theorem provers can discharge most of the onerous trivial proof obligations that appear when modelling systems. In this article we present a modelling tool that seamlessly integrates modelling and proving similar to what is offered today in modern integrated development environments for programming. The tool is extensible and configurable so that it can be adapted more easily to different application domains and development methods.

    The Rodin Formal Modelling Tool

    No full text
    We present a software tool, the Rodin tool, for formal modelling in Event-B. Event-B is a notation and method developed from the B-Method and is intended to be used with an incremental style of modelling. The idea of incremental modelling has been taken from programming: modern programming languages come with integrated development environments that make it easy to modify and improve programs. The Rodin tool provides such an environment for Event-B. The two main characteristics of the Rodin tool are its ease of use and its extensibility. The tool focuses on modelling. It is easy to modify models and try out variations of a model. The tool can also be extended easily. This will make it possible to adapt the tool specific needs. So the tool can be adapted to fit into existing development processes instead demanding the opposite. We believe that these two characteristics are major points for industrial uptake

    From Euclidean Geometry to Knots and Nets

    Get PDF
    This document is the Accepted Manuscript of an article accepted for publication in Synthese. Under embargo until 19 September 2018. The final publication is available at Springer via https://doi.org/10.1007/s11229-017-1558-x.This paper assumes the success of arguments against the view that informal mathematical proofs secure rational conviction in virtue of their relations with corresponding formal derivations. This assumption entails a need for an alternative account of the logic of informal mathematical proofs. Following examination of case studies by Manders, De Toffoli and Giardino, Leitgeb, Feferman and others, this paper proposes a framework for analysing those informal proofs that appeal to the perception or modification of diagrams or to the inspection or imaginative manipulation of mental models of mathematical phenomena. Proofs relying on diagrams can be rigorous if (a) it is easy to draw a diagram that shares or otherwise indicates the structure of the mathematical object, (b) the information thus displayed is not metrical and (c) it is possible to put the inferences into systematic mathematical relation with other mathematical inferential practices. Proofs that appeal to mental models can be rigorous if the mental models can be externalised as diagrammatic practice that satisfies these three conditions.Peer reviewe

    Diagrammatic Languages and Formal Verification : A Tool-Based Approach

    Get PDF
    The importance of software correctness has been accentuated as a growing number of safety-critical systems have been developed relying on software operating these systems. One of the more prominent methods targeting the construction of a correct program is formal verification. Formal verification identifies a correct program as a program that satisfies its specification and is free of defects. While in theory formal verification guarantees a correct implementation with respect to the specification, applying formal verification techniques in practice has shown to be difficult and expensive. In response to these challenges, various support methods and tools have been suggested for all phases from program specification to proving the derived verification conditions. This thesis concerns practical verification methods applied to diagrammatic modeling languages. While diagrammatic languages are widely used in communicating system design (e.g., UML) and behavior (e.g., state charts), most formal verification platforms require the specification to be written in a textual specification language or in the mathematical language of an underlying logical framework. One exception is invariant-based programming, in which programs together with their specifications are drawn as invariant diagrams, a type of state transition diagram annotated with intermediate assertions (preconditions, postconditions, invariants). Even though the allowed program states—called situations—are described diagrammatically, the intermediate assertions defining a situation’s meaning in the domain of the program are still written in conventional textual form. To explore the use of diagrams in expressing the intermediate assertions of invariant diagrams, we designed a pictorial language for expressing array properties. We further developed this notation into a diagrammatic domain-specific language (DSL) and implemented it as an extension to the Why3 platform. The DSL supports expression of array properties. The language is based on Reynolds’s interval and partition diagrams and includes a construct for mapping array intervals to logic predicates. Automated verification of a program is attained by generating the verification conditions and proving that they are true. In practice, full proof automation is not possible except for trivial programs and verifying even simple properties can require significant effort both in specification and proof stages. An animation tool which supports run-time evaluation of the program statements and intermediate assertions given any user-defined input can support this process. In particular, an execution trace leading up to a failed assertion constitutes a refutation of a verification condition that requires immediate attention. As an extension to Socos, a verificion tool for invariant diagrams built on top of the PVS proof system, we have developed an execution model where program statements and assertions can be evaluated in a given program state. A program is represented by an abstract datatype encoding the program state, together with a small-step state transition function encoding the evaluation of a single statement. This allows the program’s runtime behavior to be formally inspected during verification. We also implement animation and interactive debugging support for Socos. The thesis also explores visualization of system development in the context of model decomposition in Event-B. Decomposing a software system becomes increasingly critical as the system grows larger, since the workload on the theorem provers must be distributed effectively. Decomposition techniques have been suggested in several verification platforms to split the models into smaller units, each having fewer verification conditions and therefore imposing a lighter load on automatic theorem provers. In this work, we have investigated a refinement-based decomposition technique that makes the development process more resilient to change in specification and allows parallel development of sub-models by a team. As part of the research, we evaluated the technique on a small case study, a simplified version of a landing gear system verification presented by Boniol and Wiels, within the Event-B specification language.Vikten av programvaras korrekthet har accentuerats dĂ„ ett vĂ€xande antal sĂ€kerhetskritiska system, vilka Ă€r beroende av programvaran som styr dessa, har utvecklas. En av de mer framtrĂ€dande metoderna som riktar in sig pĂ„ utveckling av korrekt programvara Ă€r formell verifiering. Inom formell verifiering avses med ett korrekt program ett program som uppfyller sina specifikationer och som Ă€r fritt frĂ„n defekter. Medan formell verifiering teoretiskt sett kan garantera ett korrekt program med avseende pĂ„ specifikationerna, har tillĂ€mpligheten av formella verifieringsmetod visat sig i praktiken vara svĂ„r och dyr. Till svar pĂ„ dessa utmaningar har ett stort antal olika stödmetoder och automatiseringsverktyg föreslagits för samtliga faser frĂ„n specifikationen till bevisningen av de hĂ€rledda korrekthetsvillkoren. Denna avhandling behandlar praktiska verifieringsmetoder applicerade pĂ„ diagrambaserade modelleringssprĂ„k. Medan diagrambaserade sprĂ„k ofta anvĂ€nds för kommunikation av programvarudesign (t.ex. UML) samt beteende (t.ex. tillstĂ„ndsdiagram), krĂ€ver de flesta verifieringsplattformar att specifikationen kodas medelst ett textuellt specifikationsspĂ„k eller i sprĂ„ket hos det underliggande logiska ramverket. Ett undantag Ă€r invariantbaserad programmering, inom vilken ett program tillsammans med dess specifikation ritas upp som sk. invariantdiagram, en typ av tillstĂ„ndstransitionsdiagram annoterade med mellanliggande logiska villkor (förvillkor, eftervillkor, invarianter). Även om de tillĂ„tna programtillstĂ„nden—sk. situationer—beskrivs diagrammatiskt Ă€r de logiska predikaten som beskriver en situations betydelse i programmets domĂ€n fortfarande skriven pĂ„ konventionell textuell form. För att vidare undersöka anvĂ€ndningen av diagram vid beskrivningen av mellanliggande villkor inom invariantbaserad programming, har vi konstruerat ett bildbaserat sprĂ„k för villkor över arrayer. Vi har dĂ€refter vidareutvecklat detta sprĂ„k till ett diagrambaserat domĂ€n-specifikt sprĂ„k (domain-specific language, DSL) och implementerat stöd för det i verifieringsplattformen Why3. SprĂ„ket lĂ„ter anvĂ€ndaren uttrycka egenskaper hos arrayer, och Ă€r baserat pĂ„ Reynolds intevall- och partitionsdiagram samt inbegriper en konstruktion för mappning av array-intervall till logiska predikat. Automatisk verifiering av ett program uppnĂ„s genom generering av korrekthetsvillkor och Ă„tföljande bevisning av dessa. I praktiken kan full automatisering av bevis inte uppnĂ„s utom för trivial program, och Ă€ven bevisning av enkla egenskaper kan krĂ€va betydande anstrĂ€ngningar bĂ„de vid specifikations- och bevisfaserna. Ett animeringsverktyg som stöder exekvering av sĂ„vĂ€l programmets satser som mellanliggande villkor för godtycklig anvĂ€ndarinput kan vara till hjĂ€lp i denna process. SĂ€rskilt ett exekveringspĂ„r som leder upp till ett falskt mellanliggande villkor utgör ett direkt vederlĂ€ggande (refutation) av ett bevisvillkor, vilket krĂ€ver omedelbar uppmĂ€rksamhet frĂ„n programmeraren. Som ett tillĂ€gg till Socos, ett verifieringsverktyg för invariantdiagram baserat pĂ„ bevissystemet PVS, har vi utvecklat en exekveringsmodell dĂ€r programmets satser och villkor kan evalueras i ett givet programtillstĂ„nd. Ett program representeras av en abstrakt datatyp för programmets tillstĂ„nd tillsammans med en small-step transitionsfunktion för evalueringen av en enskild programsats. Detta möjliggör att ett programs exekvering formellt kan analyseras under verifieringen. Vi har ocksĂ„ implementerat animation och interaktiv felsökning i Socos. Avhandlingen undersöker ocksĂ„ visualisering av systemutveckling i samband med modelluppdelning inom Event-B. Uppdelning av en systemmodell blir allt mer kritisk dĂ„ ett systemet vĂ€xer sig större, emedan belastningen pĂ„ underliggande teorembe visare mĂ„ste fördelas effektivt. Uppdelningstekniker har föreslagits inom mĂ„nga olika verifieringsplattformar för att dela in modellerna i mindre enheter, sĂ„ att varje enhet har fĂ€rre verifieringsvillkor och dĂ€rmed innebĂ€r en mindre belastning pĂ„ de automatiska teorembevisarna. I detta arbete har vi undersökt en refinement-baserad uppdelningsteknik som gör utvecklingsprocessen mer kapabel att hantera förĂ€ndringar hos specifikationen och som tillĂ„ter parallell utveckling av delmodellerna inom ett team. Som en del av forskningen har vi utvĂ€rderat tekniken pĂ„ en liten fallstudie: en förenklad modell av automationen hos ett landningsstĂ€ll av Boniol and Wiels, uttryckt i Event-B-specifikationsprĂ„ket

    Using Diagrams to Understand Geometry

    Full text link
    Peer Reviewedhttp://deepblue.lib.umich.edu/bitstream/2027.42/73219/1/0824-7935.00062.pd

    Rodin: an open toolset for modelling and reasoning in Event-B

    No full text
    Event-B is a formal method for system-level modelling and analysis. Key features of Event-B are the use of set theory as a modelling notation, the use of refinement to represent systems at different abstraction levels and the use of mathematical proof to verify consistency between refinement levels. In this article we present the Rodin modelling tool that seamlessly integrates modelling and proving. We outline how the Event-B language was designed to facilitate proof and how the tool has been designed to support changes to models while minimising the impact of changes on existing proofs. We outline the important features of the prover architecture and explain how well-definedness is treated. The tool is extensible and configurable so that it can be adapted more easily to different application domains and development methods

    A cognitive exploration of the “non-visual” nature of geometric proofs

    Get PDF
    Why are Geometric Proofs (Usually) “Non-Visual”? We asked this question as a way to explore the similarities and differences between diagrams and text (visual thinking versus language thinking). Traditional text-based proofs are considered (by many to be) more rigorous than diagrams alone. In this paper we focus on human perceptual-cognitive characteristics that may encourage textual modes for proofs because of the ergonomic affordances of text relative to diagrams. We suggest that visual-spatial perception of physical objects, where an object is perceived with greater acuity through foveal vision rather than peripheral vision, is similar to attention navigating a conceptual visual-spatial structure. We suggest that attention has foveal-like and peripheral-like characteristics and that textual modes appeal to what we refer to here as foveal-focal attention, an extension of prior work in focused attention
    • 

    corecore