21 research outputs found

    User-friendly Support for Common Concepts in a Lightweight Verifier

    Full text link
    Machine verification of formal arguments can only increase our confidence in the correctness of those arguments, but the costs of employing machine verification still outweigh the benefits for some common kinds of formal reasoning activities. As a result, usability is becoming increasingly important in the design of formal verification tools. We describe the "aartifact" lightweight verification system, designed for processing formal arguments involving basic, ubiquitous mathematical concepts. The system is a prototype for investigating potential techniques for improving the usability of formal verification systems. It leverages techniques drawn both from existing work and from our own efforts. In addition to a parser for a familiar concrete syntax and a mechanism for automated syntax lookup, the system integrates (1) a basic logical inference algorithm, (2) a database of propositions governing common mathematical concepts, and (3) a data structure that computes congruence closures of expressions involving relations found in this database. Together, these components allow the system to better accommodate the expectations of users interested in verifying formal arguments involving algebraic and logical manipulations of numbers, sets, vectors, and related operators and predicates. We demonstrate the reasonable performance of this system on typical formal arguments and briefly discuss how the system's design contributed to its usability in two case studies

    Lightweight Formal Verification in Classroom Instruction of Reasoning about Functional Code

    Full text link
    In college courses dealing with material that requires mathematical rigor, the adoption of a machine-readable representation for formal arguments can be advantageous. Students can focus on a specific collection of constructs that are represented consistently. Examples and counterexamples can be evaluated. Assignments can be assembled and checked with the help of an automated formal reasoning system. However, usability and accessibility do not have a high priority and are not addressed sufficiently well in the design of many existing machine-readable representations and corresponding formal reasoning systems. In earlier work [Lap09], we attempt to address this broad problem by proposing several specific design criteria organized around the notion of a natural context: the sphere of awareness a working human user maintains of the relevant constructs, arguments, experiences, and background materials necessary to accomplish the task at hand. We report on our attempt to evaluate our proposed design criteria by deploying within the classroom a lightweight formal verification system designed according to these criteria. The lightweight formal verification system was used within the instruction of a common application of formal reasoning: proving by induction formal propositions about functional code. We present all of the formal reasoning examples and assignments considered during this deployment, most of which are drawn directly from an introductory text on functional programming. We demonstrate how the design of the system improves the effectiveness and understandability of the examples, and how it aids in the instruction of basic formal reasoning techniques. We make brief remarks about the practical and administrative implications of the system’s design from the perspectives of the student, the instructor, and the grader

    Background and motivation

    Full text link

    A User-friendly Interface for a Lightweight Verification System

    Full text link
    User-friendly interfaces can play an important role in bringing the benefits of a machine-readable representation of formal arguments to a wider audience. The "aartifact" system is an easy-to-use lightweight verifier for formal arguments that involve logical and algebraic manipulations of common mathematical concepts. The system provides validation capabilities by utilizing a database of propositions governing common mathematical concepts. The "aartifact" system's multi-faceted interactive user interface combines several approaches to user-friendly interface design: (1) a familiar and natural syntax based on existing conventions in mathematical practice, (2) a real-time keyword-based lookup mechanism for interactive, context-sensitive discovery of the syntactic idioms and semantic concepts found in the system's database of propositions, and (3) immediate validation feedback in the form of reformatted raw input. The system's natural syntax and database of propositions allow it to meet a user's expectations in the formal reasoning scenarios for which it is intended. The real-time keyword-based lookup mechanism and validation feedback allow the system to teach the user about its capabilities and limitations in an immediate, interactive, and context-aware manner

    A User-friendly Interface for a Lightweight Verification System

    Full text link
    User-friendly interfaces can play an important role in bringing the benefits of a machine-readable representation of formal arguments to a wider audience. The "aartifact" system is an easy-to-use lightweight verifier for formal arguments that involve logical and algebraic manipulations of common mathematical concepts. The system provides validation capabilities by utilizing a database of propositions governing common mathematical concepts. The "aartifact" system's multi-faceted interactive user interface combines several approaches to user-friendly interface design: (1) a familiar and natural syntax based on existing conventions in mathematical practice, (2) a real-time keyword-based lookup mechanism for interactive, context-sensitive discovery of the syntactic idioms and semantic concepts found in the system's database of propositions, and (3) immediate validation feedback in the form of reformatted raw input. The system's natural syntax and database of propositions allow it to meet a user's expectations in the formal reasoning scenarios for which it is intended. The real-time keyword-based lookup mechanism and validation feedback allow the system to teach the user about its capabilities and limitations in an immediate, interactive, and context-aware manner

    Improving the Accessibility of Lightweight Formal Verification Systems

    Full text link
    In research areas involving mathematical rigor, there are numerous benefits to adopting a formal representation of models and arguments: reusability, automatic evaluation of examples, and verification of consistency and correctness. However, broad accessibility has not been a priority in the design of formal verification tools that can provide these benefits. We propose a few design criteria to address these issues: a simple, familiar, and conventional concrete syntax that is independent of any environment, application, or verification strategy, and the possibility of reducing workload and entry costs by employing features selectively. We demonstrate the feasibility of satisfying such criteria by presenting our own formal representation and verification system. Our system’s concrete syntax overlaps with English, LATEX and MediaWiki markup wherever possible, and its verifier relies on heuristic search techniques that make the formal authoring process more manageable and consistent with prevailing practices. We employ techniques and algorithms that ensure a simple, uniform, and flexible definition and design for the system, so that it easy to augment, extend, and improve

    Em direção à formalização das propriedades de normalização do sistema λex

    Get PDF
    Trabalho de Conclusão de Curso (graduação)—Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2016.O cálculo /\ é um sistema formal, capaz de expressar o processo computacional. Pela sua simplicidade e expressividade, este cálculo é usado como modelo teórico para o paradigma de programação funcional. Em consequência disto, uma grande quantidade de extensões do cálculo foi proposta, com o objetivo de obter um sistema formal intermediário entre o cálculo /\ e suas implementações. O objeto de estudo deste trabalho é uma destas variantes, chamada /\ex, um cálculo com substituições explicitas proposto por Delia Kesner. Este cálculo é um dos primeiros a possuir a preservação da normalização forte enquanto permite composição completa de substituições explícitas. Continuamos o trabalho de formalização deste cálculo, no assistente de prova Coq, iniciado em 2014, e que tem por objetivo fornecer uma prova mecância e construtiva da propriedade de normalização forte para o cálculo /\ex. Mais especificamente, iniciamos a prova da propriedade IE, chave para a prova da preservação da normalização forte do cálculo /\ex. Isto foi feito seguindo a estratégia de prova no artigo da Kesner: estendemos a formalização para marcar alguns termos que não inserem problemas de normalização e definimos regras de redução para lidar com tais termos. Por fim, provamos a equivalência dessas novas regras com a regra original do sistema./\-calculus is a formal system, capable of expressing the computational process. Because of its simplicity and expressiveness, this calculus is used as a theorical model for the paradigm of functional programming. Consequently, a great variety of extensions were proposed, with the goal of obtaining an intermediate formal system between the /\-calculus and its implementations. The object of study of this work is one of these variants, called /\ex, a calculus with explicit subsititutions, proposed by Delia Kesner. This calculus is one of the first to preserve strong normalization of terms while permitting full composition of explicit substitutions. We continued the work in the formalization of this calculus, in the Coq proof assistant, initiated in 2014, with the goal of providing a mechanical and constructive proof of the strong normalization property for the /\ ex calculus. More specifically, we began the proof of the IE property, key to the demonstration of the preservation of strong normalization of the _ex-calculus. This was done following the strategy on Kesner’s paper: we extended the formalization to mark some terms that do not insert normalization issues and define reduction rules to deal with such terms. Finally, we prove the equivalence of these new rules with the original reduction rule of the system
    corecore