- Strange Loop, St. Louis, USA, 14-Sep-2019
- Code Mesh LDN 19, London, UK, 08-Nov-2019

The lecture motivates the use of Isabelle by the very fitting characterization by Dominic Mulligan: **Isabelle is the world’s most complicated video game**.

Later in the talk there is a hands-on demo of the Isabelle Prover IDE, using the standard Isabelle/jEdit front-end: this is not a classic “REPL”, but a semantic document editor with immediate feedback by the prover.

]]>- Title:
- Export of formal theory content in Isabelle/Scala
- Abstract:
- This is an overview of the state of affairs of systematic export of formal theory content. The general motivation is to provide semantically enriched views on the Isabelle/AFP library, without requiring a running Isabelle process. A typical application could be search over a database of digested theories, e.g. for an AFP web service.
- Materials:
- Slides with sources, which include practically relevant links and examples.

**MKM conference track:**Interaction with Formal Mathematical Documents in Isabelle/PIDE (with slides) – Tuesday 09-Jul-2019 9:00–10:00**LML workshop:**Isabelle technology for the Archive of Formal Proofs with application to MMT (with slides) – Wednesday 10-Jul-2019 9:00–10:00

general APIs to operate on OMDoc theories, together with various tools and applications. There are several MMT sub-projects to connect to other systems. This includes Isabelle/MMT, which appeared as preliminary version already in Nov-2018.

The release of Isabelle2019 (June 2019) is an opportunity to distribute MMT version 17.0.0 (May 2019) as Isabelle application. An alternative is to incorporate the underlying Isabelle component manually into Isabelle2019 in `$ISABELLE_HOME_USER/etc/settings`

like this: `init_component ".../mmt-20190611"`

— where the three dots refer to the directory where the component `tar.gz`

has been unpacked.

In either case, the `mmt.jar`

of the MMT distribution is included in the Isabelle/Scala package name space. The component provides Isabelle command-line tools as follows:

`isabelle mmt_build`

to (re)build the MMT project inside the Isabelle system environment (only required after change of the Scala sources)`isabelle mmt_import`

to import the content of a headless Isabelle/PIDE session into MMT (OMDoc and RDF/XML triples)`isabelle mmt_server`

to present imported content using the built-in HTTP server of MMT`isabelle mmt`

to run the interactive MMT shell inside the Isabelle system environment, e.g. for experimentation within the Isabelle + MMT package namespace, using the`scala`

sub-shell.

The main functionality is provided by `isabelle mmt_import`

: that is a medium-sized Scala module (57KB) within the MMT code-base (file `src/mmt-isabelle/src/info/kwarc/mmt/isabelle/Importer.scala`

). It refers to general export facilities of Isabelle/Scala, which are part of the Isabelle2019 distribution (file `src/Pure/Thy/export_theory.scala`

). The latter may be studied independently of MMT in the implementation of the `isabelle dump`

tool (file `src/Pure/Tools/dump.scala`

); see also the Isabelle System Manual, section 2.6.

The following papers provide further explanations on Isabelle/MMT:

- Relational data across mathematical libraries, notably section 3.1 about exported content (OMDoc and RDF/XML).
- Isabelle technology for the Archive of Formal Proofs, notably section 4 about tool integration.

The tool is implemented in Haskell as a plain function from input text to output messages. A file is like a chapter of mathematical text, with a nested tree-structure of elements and sub-elements (for signatures, axiomatizations, statements, proofs). Output messages inform about the translation of mathematical text to problems of first-order logic, and indicate success or failure of external proof checking; the latter is delegated to the *E Prover* by Stephan Schulz and can take several seconds for each proof obligation.

To integrate Naproche-SAD into PIDE, Frerix and Wenzel have reworked the Haskell program over 2 months in 2018, to turn the command-line tool into a service for reactive checking of ForTheL texts. Isabelle integration was done via the new Isabelle/Haskell library and some glue code in Isabelle/Scala to register ForTheL as auxiliary file-format (extension `.ftl`

).

The resulting Isabelle/Naproche application is available as multi-platform download. A running instance is shown in the screenshot: users can directly open ForTheL files (e.g. from `Documentation`

/ `Examples`

) and wait briefly to see output messages attached to the text in the usual IDE manner. Further edits produce a new version of the text, which is sent in total to Naproche-SAD again. The back-end is sufficiently smart to avoid redundant checking of unchanged sub-elements: it keeps a global state with results of old versions: this is easy to implement as the program keeps running until shutdown of Isabelle/PIDE.

(Cited from section 1.2 of the paper Interaction with Formal Mathematical Documents in Isabelle/PIDE.)

]]>- Interaction with Formal Mathematical Documents in Isabelle/PIDE (with slides) – Tuesday 18-Jun-2019, 11:00, Pavillon du Jardin, ENS Cachan.
- Isabelle technology for the Archive of Formal Proofs (with slides) – Thursday 20-Jun-2019, 14:00, LSV library.

See also the official announcement of Deducteam.

**Note:** These talks will be repeated at the Conference on Intelligent Computer Mathematics (CICM 2019), Prague (CZ), 08..12-Jul-2019.

- Title:
- Interaction with Formal Mathematical Documents in Isabelle/PIDE
- Abstract:
- Isabelle/PIDE has emerged over more than 10 years as the standard Prover IDE for interactive theorem proving in Isabelle. The well-established Archive of Formal Proofs (AFP) testifies the success of such applications of formalized mathematics in Isabelle/HOL. More recently, the scope of PIDE has widened towards languages that are not connected to logic and proof in Isabelle, but taken from a broader repertoire of mathematics on the computer. The present paper provides a general overview of the PIDE project and its underlying document model, with built-in parallel evaluation and asynchronous interaction. There is also some discussion of original aims and approaches, successes and failures, later changes to the plan, and ideas for the future.
- Paper:
- Preprint from ArXiv

- Isabelle2019-RC0 (02-Apr-2019): informal snapshot for experimentation, approx. one month before regular RC1. See also AFP/7c585d0056e3.
- Isabelle2019-RC1 (03-May-2019): first official release candidate; everything is ready, except for pending updates of documentation (
**isar-ref**and**jedit**). See also AFP/d50417d0ae64. - Isabelle2019-RC2 (11-May-2019): consolidated release candidate and fork-point of isabelle-release vs. isabelle development repositories; see also AFP/2170a6647f04. Notable changes:
- Update of documentation:
**isar-ref**and**jedit**. - Minor updates of sessions
`HOL-Analysis`

and`HOL-Data_Structures`

. - Simplified main application bundles: back to
`.tar.gz`

for Linux and macOS, auto-installable self-extracting archive for Windows. - Elimination of odd Java warnings on macOS.

- Update of documentation:
- Isabelle2019-RC3 (25-May-2019): refined release candidate, see isabelle-release and afp-2019. Notable changes:
- Isabelle/jEdit: proper update of
*Theories*panel after*Purge*operation. - Windows: back to default path on desktop (more robust); also applies to auto-installable self-extracting archive.
- Windows: update to Cygwin 3.0.7.
- More direct invocation of
`z3`

: potentially more robust on Windows.

- Isabelle/jEdit: proper update of
- Isabelle2019-RC4 (01-Jun-2019): presumably last release candidate, see isabelle-release and afp-2019. Notable changes:
- Windows: slightly more robust invocation of
`z3`

and`cvc4`

. - Windows: note on website about excluding the Isabelle application directory from Virus & threat protection.
- macOS: hint about Isabelle/jEdit action
`isabelle.draft`

for more robust printing via Web browser.

- Windows: slightly more robust invocation of

**Update 10-Jun-2019:** The final release of Isabelle2019 (June 2019) is available from the Isabelle website. The above release candidates will disappear eventually.

This project is notable as an ambitious proof formalization by genuine end-users of Isabelle, without any previous connections to the providers of the tool. Only after the first public appearance, I have occasionally had a chat with some of the authors, either personally or via email; likewise some of my colleagues.

]]>Hier das Ergebnis einer Programmierübung in Gnucash / Guile, zum Export von Konten im aktuellen CSV Format der DATEV. Das README enthält eine Reihe nützlicher Referenzen auf Beschreibungen des Formats und frühere Implementierungen.

**Achtung:** Dies ist im Moment nur für einfache Buchführung zu gebrauchen. Das Gegenkonto (die “Kontra-Rolle”) ist hier stets 1486 nach dem deutschen Standardkontenrahmen 04 (SKR04).