Homework 0

REMINDER: Lab is in Stocker 192 this Friday, 31 Aug., 11:50-12:45pm.

Due: Monday, 3 Sep.

Step 1: Install Coq.

Go to the Coq download page, download the version of Coq 8.8 appropriate for you system (e.g., the .exe file for Windows machines, the Mac .dmg disk image, or -- if you're brave -- the Coq sources). Install Coq on your machine.

Step 2: Download and Process Basics.v and Induction.v.

Once you've downloaded Basics.v, open the file in CoqIDE (installed automatically together with Coq, in Step 1). Your CoqIDE window should now look like:



Click the orange down-arrow a few times. Each time you click down-arrow, CoqIDE processes the next command in the Basics.v buffer. Progress through the buffer is marked in green.



The keyboard shortcut for down-arrow is Ctl+Alt+Down. It's often more convenient to change this just to Ctl+Down. You can do so by changing the Navigation Shortcut modifier to Ctl in the Edit->Preferences->Shortcuts menu.

In addition to processing files incrementally, you can also compile them to Coq's object .vo format. Try this out, by doing either

In addition to compiling in CoqIDE, you should be able to compile on the command line, using:
> make Basics.vo
on the command-line.

To test whether your compile worked, download and open Induction.v and process it through the line Require Export Basics.

Step 3: Read and complete Basics.v and Induction.v. You may skip exercises marked "Optional".

Please submit files individually, NOT packaged as a single .zip or .tar file.

Following the instructions in the files, fill in the proofs and definitions for all exercises in Basics.v and Induction.v, at every spot marked FILL IN HERE.

To check that you've successfully completed a proof, change the Admitted directly after FILL IN HERE to Qed and process the buffer through the Qed.

You can check your overall progress by running:

> make BasicsTest.vo
and
> make InductionTest.vo
respectively.

Once you're done, submit the following four individual files in Blackboard:

before 11:59pm on Monday, 3 September.