Visualizing Combinatorial Proofs

Project Authors: Phil Kaasa, Callie Wurtz *
Project Director: Dr. Eric Gossett

A well-known proverb says,"Tell me and I'll forget. Show me and I may not remember. Involve me and I'll understand." While this project does a bit of "telling" and "showing," it was created with the user in mind in the hope that your involvement will lead you to a better understanding of combinatorial proofs.

The above button directs the user to a java applet window that allows you to explore VCP. You will need to enable java on your browser in order to use the applet. The java plugin is available at Down load the JRE version (JRE = Java Runtime Environment).

A PDF reader is also required to use VCP. If you do not have an application such as Acrobat Reader, see the help file (located in the help menu of the applet) for directions on how to download this application. That file also answers problems you may have with your PDF viewer. If using pop-up blocking software, note that you must allow pop-ups in order to view PDF files. The first time you open a PDF file, it may take some time for the reader to open.

You will find three active buttons on the left of the VCP main window. The About VCP button takes you to a PDF document of the information on this website. By clicking on the About Combinatorial Proofs button, you will find a PDF file that contains a brief explanation of combinatorial proofs. Those documents can also be accessed through the help menu.
The third button is the Load Module button, which brings up a collection of modules each containing a theorem and its corresponding combinatorial proof. The modules are intended to help undergraduate math students work through a variety of combinatorial proofs using examples. Modules contain two pieces: an exposition and a visualization, which are explained in more detail below. The modules are created at the level of a second year mathematics student, though others may find them interesting and useful.

* The applet help menu contains a file entitled "About the Creators" that gives brief biographies of the project authors.

The Exposition

After choosing a module, the exposition for that module appears as a PDF document. Since it opens in a new window, you can keep the exposition open as you are going through the visualization. Each exposition contains the following sections:


The motivation section presents the background for the identity. It discusses the significance of the identity and the people who were involved in its development. Too often mathematical topics are introduced apart from their historical setting, yet knowing the context for a particular identity gives it more meaning. The motivation section is not only helpful but also intriguing. You may find that the background of the proof is sometimes just as fascinating as the proof itself.

Preliminary Ideas

This section presents and develops definitions necessary for understanding that particular exposition. It also alerts the reader to other more basic definitions that you will need. Reading these definitions carefully will help you understand the rest of the exposition.

The Problem Presented

This section presents the identity in the form of a theorem.

Solution by Counting

The Solution by Counting gives a combinatorial proof of the identity presented. It is important that you actively read the proof (as opposed to speed-reading, skimming, or skipping the proof in favor of the visualization). Unlike many proofs presented in textbooks, the combinatorial proofs within these expositions include a lot of details and intermediate steps. It would be worth your time to take advantage of the step-by-step explanation and critically think about what you are reading.

Visual Example

Lastly, the exposition finishes with a specific example that will be used to illustrate the ideas of the proof. That example is set-up and explained in this section.
After opening the exposition, the user is presented with the option to display the visualization.

The Visualization

The visualization is a critical element of this project. With the exception of Oresme's sequence, the visualization presents a pictorial example and not the actual proof. In most cases, it is nearly impossible to accurately present a proof purely pictorially. Words are necessary in laying out the ideas of a proof. However, it is often a picture or a concrete example that makes the words "click." Viewing the visualization without giving thought to the proof is useless, but using the visualization to complement the exposition will enhance your understanding.

Using the Visualization

The theorem that corresponds to the visualization is shown within the visualization. It is displayed either at the top of the screen or labelled elsewhere.

To begin the visualization, click the Start Visualization button found in the bottom right-hand corner of the visualization screen. Each visualization contains explanatory text that serves to clarify what is happening in the visualization. After you have read the text and understand what is taking place on the screen, you may click Continue to take you to the next piece of the visualization. You also have the option of controlling the speed of the visualization By using the slider on the bottom left of the screen, you can alter the pace of the animation at any time from slow to fast. If you would like to go through the visualization step-by-step, click the Pause button. You can then Step through that piece of the visualization. Note that you can "pause" the visualization before beginning, which allows you to step through from the beginning. To resume animation, click the Play button. Once the visualization is complete, the Continue button says Done, and the other buttons are also greyed out.

The visualizations also contain a toolbar on the left side of the screen that allows the user to easily navigate through the modules. There is an option to view the Common Definitions file should you need it and to bring up the Exposition if you have closed it. You can Restart the current visualization if you so desire or you can Load another module.

Download VCP

VCP can also be downloaded and run locally as an application instead of as an applet. To do this, download the "Binaries" archive below. Extract it to a directory on your hard drive. Double-click on vcp.jar to run VCP.
The source for VCP is freely available to those who would like to modify or extend it. The archive below contains the source code for the VCP project and modules as well as Javadocs and instructions on creating modules for VCP.

The Project Creators

An image of the project creators

Comments can be directed to Dr. Eric Gossett via email:

Created: Summer 2005