Paral-ITP Front-End Technologies

Similar documents
Isabelle/jEdit as IDE for domain-specific formal languages and informal text documents

Document-oriented Prover Interaction with Isabelle/PIDE

Paral-ITP Front-End Technologies

Isabelle Tutorial: System, HOL and Proofs

Programs and Proofs in Isabelle/HOL

jedit Isabelle Isabelle/jEdit Makarius Wenzel 15 August 2018

Front-end Technologies for Formal-Methods Tools

jedit Isabelle Isabelle/jEdit Makarius Wenzel 5 December 2013

Formal editing: jedit-mmt. Narrative editing: LaTeX-MMT. Browsing: MMT web server. Building: MMT scripting language. The MMT API: A Generic MKM System

The Isar Proof Language in 2016

arxiv: v1 [cs.ms] 7 May 2015

Asynchronous Proof Processing with Isabelle/Scala and Isabelle/jEdit

Unit- and Sequence Test Generation with HOL-TestGen

Scaling Isabelle Proof Document Processing

READ-EVAL-PRINT in Parallel and Asynchronous Proof-checking

PIDE as front-end technology for Coq

Verification of an LCF-Style First-Order Prover with Equality

The Fox Project: Advanced Development of Systems Software

Isabelle Tutorial: System, HOL and Proofs

How Efficient Can Fully Verified Functional Programs Be - A Case Study of Graph Traversal Algorithms

Plugins for the Isabelle Platform:

From Types to Sets in Isabelle/HOL

Towards a Tool for Featherweight OCL: A Case Study On Semantic Reection

Context aware Calculation and Deduction

Prototype Environment for Refactoring Clean Programs

The Isabelle/HOL type-class hierarchy

Turning proof assistants into programming assistants

Data-Flow Based Detection of Loop Bounds

CSC313 High Integrity Systems/CSCM13 Critical Systems. CSC313/CSCM13 Chapter 2 1/ 221

Parametricity of Inductive Predicates

\n is used in a string to indicate the newline character. An expression produces data. The simplest expression

Introduction. Chapter The Nuprl 5 Architecture

Proving Properties on Programs From the Coq Tutorial at ITP 2015

Informal Semantics of Data. semantic specification names (identifiers) attributes binding declarations scope rules visibility

idris-mode: Idris interaction with emacs

Formal Methods in Software Design. Markus Roggenbach

ABriefOverviewofAgda A Functional Language with Dependent Types

Lambda Calculus. Gunnar Gotshalks LC-1

Computer-supported Modeling and Reasoning. First-Order Logic. 1 More on Isabelle. 1.1 Isabelle System Architecture

CURIOUS BROWSERS: Automated Gathering of Implicit Interest Indicators by an Instrumented Browser

6.184 Lecture 4. Interpretation. Tweaked by Ben Vandiver Compiled by Mike Phillips Original material by Eric Grimson

Functional Programming. Pure Functional Languages

Defining the Ethereum Virtual Machine for Interactive Theorem Provers

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

The Circus Testing Theory Revisited in Isabelle/HOL

Refactoring via Database Representation

Organisatorials. About us. Binary Search (java.util.arrays) When Tue 9:00 10:30 Thu 9:00 10:30. COMP 4161 NICTA Advanced Course

COMP 4161 Data61 Advanced Course. Advanced Topics in Software Verification. Gerwin Klein, June Andronick, Christine Rizkallah, Miki Tanaka

Software verification using proof assistants

Packaging Theories of Higher Order Logic

Specification and Analysis of Contracts Tutorial

6.037 Lecture 4. Interpretation. What is an interpreter? Why do we need an interpreter? Stages of an interpreter. Role of each part of the interpreter

Directions in ISA Specification

Building Formal Method Tools in the Isabelle/Isar Framework

Beluga: A Framework for Programming and Reasoning with Deductive Systems (System Description)

Content Author's Reference and Cookbook

The Eisbach User Manual

Appendix G: Some questions concerning the representation of theorems

Chapter 1 Summary. Chapter 2 Summary. end of a string, in which case the string can span multiple lines.

COMPUTER SCIENCE TRIPOS

Directions in ISA Specification. Anthony Fox. Computer Laboratory, University of Cambridge, UK

Drupal 7 guide CONTENTS. p. 2 Logging In

Integrating SysML and OWL

Formalization of Incremental Simplex Algorithm by Stepwise Refinement

Functional Programming. Pure Functional Languages

Supplementary Notes on Abstract Syntax

Deductive Program Verification with Why3, Past and Future

Gradual Parametricity, Revisited

Meta programming on the proof level

Lava New Media s CMS. Documentation Page 1

Project 2: Scheme Interpreter

Formal Verification of MIX Programs

Verifying Concurrent ML programs

Enterprise Architect Training Courses

Proof Pearl: The Termination Analysis of Terminator

Lambda Calculus LC-1

Organization of Programming Languages CS3200/5200N. Lecture 11

Functional Programming. Pure Functional Programming

Introducing the new Coqdoc

Content Author's Reference and Cookbook

Development of an Ontology-Based Portal for Digital Archive Services

The reflective Milawa theorem prover is sound

Embedding Cryptol in Higher Order Logic

Ontologies for Agents

The Isabelle/Isar Reference Manual

At the shell prompt, enter idlde

Reading assignment: Reviews and Inspections

Verified Firewall Policy Transformations for Test Case Generation

Front End Nanodegree Syllabus

CS558 Programming Languages. Winter 2013 Lecture 3

38050 Povo Trento (Italy), Via Sommarive 14 IWTRUST: IMPROVING USER TRUST IN ANSWERS FROM THE WEB

Linguistics and Philosophy 23: , Is Compositionality Formally Vacuous? Francis Jeffry Pelletier

G Programming Languages - Fall 2012

Chapter 1. Preliminaries

3.4 Deduction and Evaluation: Tools Conditional-Equational Logic

FMathL Formal Mathematical Language. Arnold Neumaier, Peter Schodl, Kevin Kofler (University of Vienna, Austria)

Page 1. Reading assignment: Reviews and Inspections. Foundations for SE Analysis. Ideally want general models. Formal models

A Refinement Framework for Monadic Programs in Isabelle/HOL

Formal Methods. and its Relevance for Industry and Emmergent Markets. Prof. Burkhart Wolff Univ - Paris-Sud / LRI. Burkhart Wolff

An ACL2 Tutorial. Matt Kaufmann and J Strother Moore

Transcription:

Paral-ITP Front-End Technologies Makarius Wenzel Univ. Paris-Sud, LRI July 2014 Project Paral-ITP meeting ANR-11-INSE-001

Overview

Relevant work packages FT-PIDE: Concrete Prover IDE implementations (integration of prover with editor front-end) FT-Agents: Tools for augmented prover interaction (automated provers and disprovers, add-on tools and languages) Front-end Technology Formal Analysis FT-Agents FT-PIDE FA-GUI DM-Eval Document Model FA-Change DM-Change DM-Content DM-Repos FA-Repos Prover Architecture PA-Coq-Trans PA-Isabelle FA-Kernel PA-Coq-Core Overview 2

Papers and presentations (VSL 2014) Conference papers: M. Wenzel: Asynchronous User Interaction and Tool Integration in Isabelle/PIDE. ITP 2014, Springer LNCS 8558. D. Matichuk, M. Wenzel, T. Murray: An Isabelle Proof Method Language. ITP 2014, Springer LNCS 8558. Workshop presentations: M. Wenzel: Tutorial: Isabelle/jEdit for seasoned Isabelle users. Isabelle Workshop 2014, Vienna, July 2014. M. Wenzel: Isabelle/jEdit NEWS. Isabelle Workshop 2014, Vienna, July 2014. M. Wenzel: System description: Isabelle/jEdit in 2014. UITP 2014, Vienna, July 2014. Overview 3

Releases Isabelle2013-2 (December 2013) Relaunch of Isabelle2013-1 (November 2013). Too little serious testing by actual users! Isabelle2014 (August 2014) http://isabelle.in.tum.de/website-isabelle2014-rc0 final deliverable for Paral-ITP PA/FT PIDE as filthy rich client application syntactic and semantic completion, including spell-checking editor navigation (like web browser) auxiliary files within the document model: Isabelle/ML, SML 97 systematic nesting of sub-languages via text cartouches: funny quotes with arbitrary nesting improved Windows support (MikTeX) Overview 4

Asynchronous print functions

Asynchronous print functions Background: READ-EVAL-PRINT within PIDE document-model Observations: cumulative PRINT operations consume more time than EVAL PRINT depends on user perspective PRINT may diverge or fail PRINT augments results without changing proof state many different PRINTs may be run independently Approach: manage forked PRINT tasks, depending on document perspective optional persistence within document-model optional arguments for PRINT: document overlays Asynchronous print functions 6

Applications in Isabelle/jEdit Implicit print functions: print proof state (printing proof states is slower than most proof steps) automatically tried tools (provers, disprovers, counter-examples) Document overlays: Query panel (find theorems, find constants, print context) Sledgehammer panel (conventional GUI front-end for asynchronous tool integration) Asynchronous print functions 7

Example: automatically tried tools Asynchronous print functions 8

Syntactic and semantic completion

Completion Goal: Do what I mean for the Prover IDE Problems: timing of GUI events: keyboard input, mouse, popups potential loss of events, deadlocks, confusing display need for adequate information from editor and prover asynchronous document-model opens new possibilities, but also challenges: non-determinism Approach: interpretation of GUI events wrt. semantic completion context particular completion information from prover, e.g. failed name lookups Syntactic and semantic completion 10

Applications in Isabelle/jEdit Syntactic completion: built-in templates (quotations, antiquotations) outer syntax keywords Isabelle symbols (--> vs. ) Semantic completion: name-space entries file-system paths spell-checking Syntactic and semantic completion 11

Example: spell-checking and name completion Syntactic and semantic completion 12

Editor navigation

Editor navigation Approach: browsing PIDE document content via tooltips and hyperlinks Editor navigation 14

Auxiliary files within the document model

Document blobs Principle: IDE manages collection of sources and results of processing So far: acyclic graph of document nodes (theories) linear chain of command spans within each node Now also: collection of document blobs (uninterpreted byte vectors) load commands refer to blobs in value-oriented manner: no direct file-system access Auxiliary files within the document model 16

Applications in Isabelle/jEdit Isabelle/ML: load command ML file for.ml files seamless editing of theories together with ML modules special tricks (via asynchronous print functions) to allow editing of Isabelle/HOL with only 4 GB Official Standard ML: load command SML file for.sml and.sig files commands SML import, SML export for exchange of toplevel ML bindings IDE for SML 97, with or without Isabelle/ML library Auxiliary files within the document model 17

Example: editing Isabelle/HOL ML tools Auxiliary files within the document model 18

Conclusions

Conclusions PIDE in 2014: Numerous increments towards full-scale Prover IDE. More and more integration of development in the environment of Isabelle: theories, documents, add-on tools, embedded languages. The more it advances, the higher the ambitions. Ultimate challenge: Introducing genuine interaction into ITP many conceptual problems many technical problems many social problems Conclusions 20