INKA - User Interface

A detailed description of the INKA user interface can also be found in

The Representation of Proof Sketches

From a theorem proving point of view, the user is mainly engaged in two activities: building up a specification and proving theorems with respect to this axiomatisation. At each stage of the proof synthesis, the human user can revise the proof sketch specified so far or give advice how to fill in the gaps. On the one hand the user should be able to construct any possible proof within the given calculus and for example even enforce the application of a single deduction step. On the other hand proofs should be found almost automatically and thus, the human interaction necessary to find a proof should be restricted to some strategic advice. Thus, INKA incorporate (human-like) strategic knowledge about proof search in order to facilitate users' hints. Conversely, the intentions of the (machine-like) built-in strategies have to be known by the user in order to efficiently assist the machine in the search for a proof. The essential means by which this contradictory mix of demands of the system are realized in INKA is the notion of a proof sketch. The representation of a proof sketch allows the user to edit them in several ways: he may give more precise hints for a proof sketch, which includes directives to apply a certain rule as the next step if the system gets stuck, or to revise hints, e.g.~by advising the system to use so-called bridge lemmata. He may add or delete subgoals, which includes the use of lemmata within proofs, and the possibility to correct the system's assumptions on intermediate steps. Finally, in extreme cases he may even replace the whole sketch including subgoals and hints.

A Case Analysis

Single Proof Steps

The Representation of Specifications

In INKA specifications are built up incrementally and in a structured way. In order to deal with large and complex specifications appropriately, the specification is distributed among the nodes of a so-called specification graph. Formulas are always proven relative to a node of this directed, acyclic graph. By doing so only the specifications inside reachable nodes are visible to the system. In case of success the user may add the proven formula into the set of theorems of the actual node, thus enlarging the local part of the specification.