Connecting PLATO and Proof General

I had some discussions in Edinburgh in August 2006 about the possibility of connecting Proof General with the PLATO component of the new version of the OMEGA system.

PLATO was developed by Marc Wagner and Serge Autexier.


From PG's point of view, this connection might give Proof General an appealing document-centred interface using TeXmacs. There might also be the chance to interpret the richer architecture based on OMDoc (or some version of it?) in our setting.

From PLATO/Omega's point of view, there may be the chance to connect to Isabelle and similar theorem provers.


At the moment the architecture of the two systems overlaps somewhat. The ProofGeneralBroker is intended to manage interactive proofs-in-progress in a similar way to the PLATO system itself, although it does not yet implement development graphs.

One difference is that Proof General is designed as a framework for interpreting different many proof languages in a uniform way, and providing facilities for manipulating native proof scripts based on this. By contrast, I think that the Omega architecture would instead fix its notion of proof language and then map that down to (possibly) different provers.

-- DavidAspinall - 05 Sep 2006

First steps

  • Maybe start by looking at a log of PGIP interaction between Broker and Display?
  • Perhaps some use-cases for particular interactions

Second steps

We resumed some discussions at MKM 2007 with ChristophLueth as well. Some notes about the latest things in Plato and compared with PGIP:

  • The PGIP display protocol seems quite close to the interaction managed by Plato, where edits in the document are sent/received as XML updates and other events (e.g. menu invocation) cause action commands to be transmitted.
  • Menus are also treated as documents which can be configured by the system (i.e. not hardwired in the interface) and attached to points in the document by reference. Menus cause action commands to be sent to the prover layers, which take appropriate action (typically triggering document updates).
  • Actions have a flag in the prover to say whether they should be enacted immediately in the interface (it waits for a result), or whether they may be long running
  • There is no locking of the document: if an edit command overlaps with a long-running strategy the theorem prover should cancel the strategy and allow the edit.

This topic: PG > WebHome > ProofGeneralKit > PGKitDevelopment > PGKitProjectIdeas > PlatoAndProofGeneral
Topic revision: r2 - 29 Jun 2007 - 15:34:55 - DavidAspinall
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
This Wiki uses Cookies