27.1 Components of the Proof Visualization System

The lack of previous work in this area is partly due to the fact that proofs often involve hypothetical and abstract objects created for the purpose of the proof. Such objects are difficult to visualize. The proof visualization system therefore tries to provide such objects. It is composed of:

  1. Abstract graph objects, for example graphs, subgraphs and paths that are hypothetical, of indefinite size or structure.
  2. Concrete graph objects, such as vertices and edges of a given graph.
  3. Descriptions of theorems to be proven and invariants examined for validity during the proof.
  4. Dynamic hypertext help providing updatable information about the objects appearing on the screen.
  5. The proof-dialog description.

Though our system could be stand-alone, we suggest that it be used in conjunction with the following parts: (a) a proof orientation (introduction) describing the problem and the algorithm through pseudocode that explains the important steps, and (b) an integrated animation of the algorithm. The term "integrated" refers to an animation that operates on the same pseudocode and uses the same concrete objects as the proof system. Users are urged to examine and understand the animation first, such that they have some intuition of how the algorithm works. As we mentioned, the aim of the proof system is to show why the proof works.

A typical session is composed of the following steps: In the beginning users go through the introduction and the interactive visualization of the algorithm. When they are familiar with the algorithm and the pseudocode that implements the algorithm, they are told the theorem along with a set of invariants that should be satisfied during the run of the algorithm. This means that if the invariants are satisfied during the run of the algorithm, then the theorem is true.

Users are then guided through the proof step-by-step. The proof visualization is controlled by the proof-dialog: A sequence of statements is presented to the users and they can either accept them or ask for more explanation of any of these statements. In the latter case, the system gives further explanation. Moreover, users can at any time jump back into the algorithm animation and examine more examples to improve the understanding of the algorithm, before resuming the proof session. The session ends when a complete set of statements has been presented and has been understood by the users. Of course, users can go through the proof-dialog as many times as they wish. They also have the option of stepping backwards to take a closer look at some concepts presented earlier.

The programmer who implements a proof visualization has to provide the following:

  1. The introduction part, in which the definition of the problem, its significance and other similar information appears.
  2. An animation of the algorithm that solves the problem. This animation can be used as a repository for the concrete and abstract proof objects. In addition the animation also contains an educationally suitable pseudocode description of the algorithm that is employed in the theorem.
  3. The proof-dialog in terms of a text file having a special format. This text file contains:
    • theorem
    • set of invariants
    • set of expandable statements.
  4. The animation of the basic and inductive proof steps.
  5. A help file that contains information about the objects.