Problem Sets for MIT 6.822 Formal Reasoning About Programs (Spring 2018)
Instructions for completing problem set #X
- Run
make
in the directorypsetX/
. - Read the module signature for the problem set in the file
psetX/PsetXSig.v
. These are the instructions! - Complete
psetX/PsetX.v
, which implements the module signature inpsetX/PsetXSig.v
. In your completePsetX.v
, there should be no uses ofAdmitted
oradmit
(or similar holes). - Run
make
in thepsetX/
directory and ensure it builds without error. - Upload your
psetX/PsetX.v
file to the class website.
Tips for building problem sets
Setting PATH for coqc
$ PATH=(your bin directory where coqc resides):$PATH
$ export PATH
- Where is my bin directory?
- CoqIDE users
- CoqIDE bundle already includes binaries, so we can use them.
- Windows: the directory where
coqide.exe
is located. Make surecoqc.exe
is also in there. - Mac:
(Your CoqIDE app path)/Contents/Resources/bin
- Users who installed Coq with Homebrew
- The typical path is
/usr/local/bin
, but it may differ by Homebrew configuration.
- The typical path is
- All other users who manually installed Coq: just the location you gave during
./configure
- CoqIDE users
- I recommend to embed above commands in your
~/.bashrc
or~/.zshrc
.
Building problem sets
$ source configure_coqbin.sh # optional
$ git submodule init
$ git submodule update
$ make -C frap lib
$ make -C pset1
- Above procedure assumes PATH is set for detecting
coqc
(check withwhich coqc
!). - You should execute
configure_coqbin.sh
withsource
(or just.
) in order to export the variable to the parent process. - If you already set the COQBIN variable, you don't need to execute the script.