Download as pdf or txt
Download as pdf or txt
You are on page 1of 2

COMP 4901X – Homework 1

Formal Reasoning about Programs

Release Date: July 16, 2023


Deadline: July 28, 2023 (23:59 HKT)

This homework accounts for 35% of your total grade. You should submit your solutions
on Canvas as two files: a pdf file for the first exercise and a Coq file (.v) for the second.
Handwritten and scanned solutions will not be accepted since the TAs might be unable to
read your handwriting. However, you can draw your figures, if any, by hand. Your solutions
must be 100% your own work, with no help from other students or tools such as ChatGPT. All
submissions will go through a plagiarism check. The minimum penalty for plagiarism in this
course is a grade of F. The deadline is firm and no extensions will be granted.

Exercise 1
This exercise accounts for 10% of your total grade. The points are not distributed evenly among
the parts.
Recall the lectures on infinite-duration two-player games on graphs. In each case below, either
provide an example game that satisfies the requirements or prove that no such game exists:
1. A determined zero-sum game
2. A non-determined zero-sum game
3. A determined non-zero-sum game
4. A non-determined non-zero-sum game

1
Exercise 2
This exercise accounts for 25% of your total grade. The points are not distributed evenly among
the parts.
The Coq file hw1.v contains five theorems. Complete the file by filling in all the missing parts
and adding proofs for all theorems. You should successfully reach Qed on each of the five
theorems. Then, submit the completed file on canvas.
You are allowed to write your own lemmas and use them as part of the solution, as long as you
provide proofs for all such lemmas. You can also use theorems proven in the class as lemmas,
but you have to include their proofs, too. However, you cannot use lemmas from Coq’s own
libraries. Also, make sure you do not cheat by using Admitted or similar tricks. Finally, you
are only allowed to use non-automatic tactics covered in the class. For example, you cannot
use lia, auto or tauto or properties of natural numbers that are not proven in class.

You might also like