PGIP, the Proof General Interaction Protocol
PGIP is a protocol for conducting interactive proof and a framework for connecting
theorem provers to interfaces and other components. It is being used for
the next generation of Proof General interfaces in the
Proof General Kit
Structure of PGIP
The protocol is based on XML messages which are passed in an RPC-like exchange between different software components.
The protocol has several subsets:
- The prover protocol, for connecting the theorem prover
See AddingPGIPSupportHowTo for hints about adding PGIP support to a new theorem prover.
- Proof script document markup, which used inside the prover protocol.
The markup of a proof script provides surface information about its structure gained by (native) parsing.
Additional "meta-information" can be attached during parsing or at later stages, which describes things like dependency relations.
See PGIPDocumentMarkup for more details.
- The display protocol, for connecting the interfaces.
This presents the marked up proof script to the display and enables editing and state changing on it. It's like a very simple and specific DOM-style API.
See PGIPDisplaysHowTo for hints on implementing a PGIP-enabled interface component.
- A small number of configuration messages, for describing available components.
- PGML, a simple markup language used for annotating concrete output syntax from the prover.
The primary use of PGML is for displaying mathematical symbols accurately.
Symbol names are taken from LaTeX (similarly to Isabelle).
See the PGML page for more details.
Specification of PGIP
of the XML messages and markup is defined by a RELAX NG
schema in compact notation,
or (for the latest version) in the ProofGeneralCVSRepository
of markup and messages
exchanged and the protcol itself is elaborated in the
Implementations of PGIP
Please see ProofGeneralKit
for the wiki page with details of our implementation of the PGIP
and links to some of the available software which uses it.
The protocol is designed to use a fixed middleware component (the ProofGeneralBroker
of Proof General Kit), together with
provers and interfaces which each need to support only their own part of the protocol.
Development of PGIP
We regard this protocol as under development. We hope to keep it as small, simple and lightweight as possible,
while supporting the features that we need. With this concern in mind, we are open
to suggestions for extensions or improvements to the protocol.
According to http://acronymfinder.com
Proof General Interface Protocol
. This was our interpretation
of the protocol in early versions. Now it has been extended to allow more
programmatic usage, we prefer Proof General Interaction Protocol