23 research outputs found

    Recursive Definitions of Monadic Functions

    Full text link
    Using standard domain-theoretic fixed-points, we present an approach for defining recursive functions that are formulated in monadic style. The method works both in the simple option monad and the state-exception monad of Isabelle/HOL's imperative programming extension, which results in a convenient definition principle for imperative programs, which were previously hard to define. For such monadic functions, the recursion equation can always be derived without preconditions, even if the function is partial. The construction is easy to automate, and convenient induction principles can be derived automatically.Comment: In Proceedings PAR 2010, arXiv:1012.455

    A brief overview of HOL4

    No full text

    A Brief Overview of HOL4

    No full text
    Abstract. The HOL4 proof assistant supports specification and proof in classical higher order logic. It is the latest in a long line of similar systems. In this short overview, we give an outline of the HOL4 system and how it may be applied in formal verification.

    Talk, Inc.: how trusted leaders use conversation to power their organizations

    No full text
    Conversation-powered leadership How can leaders make their big or growing companies feel small again? How can they recapture the magic"the tight strategic alignment, the high level of employee engagementthat drove and animated their organization when it was a start-up? As more and more executives have discovered in recent years, the answer to this conundrum lies in the power of conversation. In Talk, Inc., Boris Groysberg and Michael Slind show how trusted and effective leaders are adapting the principles of face-to-face conversation in order to pursue a new form of organizational conversation. They explore the promise of conversation-powered leadershipfrom the time-tested practice of talking straight (and listening well) to the thoughtful adoption of social media technology. And they offer guidance on how to balance the benefits of open-ended talk with the realities of strategic execution. Drawing on the experience of leaders at diverse companies from around the world, Talk, Inc., offers provocative insights and user-friendly tips on how to make organizational culture more intimate, more interactive, more inclusive, and more intentionalin short, more conversational

    Proof pearl: using combinators to manipulate let-expressions in proof

    No full text
    Abstract. We discuss methods for dealing effectively with let-bindings in proofs. Our contribution is a small set of unconditional rewrite rules, found by the bracket abstraction translation from the λ-calculus to com-binators. This approach copes with the usual HOL encodings of paired abstraction, ensures that bound variable names are preserved, and uses only conventional simplification technology.

    Proof Pearl: Using Combinators to Manipulate let-Expressions in Proof

    No full text
    Abstract. We discuss methods for dealing effectively with let-bindings in proofs. Our contribution is a small set of unconditional rewrite rules, found by the bracket abstraction translation from the λ-calculus to combinators. This approach copes with the usual HOL encodings of paired abstraction, ensures that bound variable names are preserved, and uses only conventional simplification technology.

    The Guardol Language and Verification System

    No full text
    Associated research group: Critical Systems Research GroupGuardol is a domain-specific language designed to facilitate the construction of correct network guards operating over tree-shaped data. The Guardol system generates Ada code from Guardol programs and also provides specification and automated verification support. Guard programs and specifications are translated to higher order logic, deductively transformed to a form suitable for a SMT-style decision procedure for recursive functions over tree-structured data. The result is that difficult properties of Guardol programs can be proved fully automatically

    Machine-code verification for multiple architectures: An application of decompilation into logic

    No full text
    Abstract — Realistic formal specifications of machine languages for commercial processors consist of thousands of lines of definitions. Current methods support trustworthy proofs of the correctness of programs for one such specification. However, these methods provide little or no support for reusing proofs of the same algorithm implemented in different machine languages. We describe an approach, based on proof-producing decompilation, which both makes machine-code verification tractable and supports proof reuse between different languages. We briefly present examples based on detailed models of machine code for ARM, PowerPC and x86. The theories and tools have been implemented in the HOL4 system. I
    corecore