https://github.com/johnwickerson/hsv
https://github.com/johnwickerson/hsv
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/johnwickerson/hsv
- Owner: johnwickerson
- Created: 2021-11-01T06:31:11.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2025-05-15T19:43:04.000Z (about 1 year ago)
- Last Synced: 2025-05-15T20:32:58.716Z (about 1 year ago)
- Language: Isabelle
- Size: 47 MB
- Stars: 29
- Watchers: 2
- Forks: 19
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Hardware & Software Verification
This is the homepage of the above-named module, which is offered to MSc and 4th-year MEng students at Imperial College London.
* The module is run by [Dr John Wickerson](https://johnwickerson.github.io/).
* Worksheets are available for [Dafny](dafny), [Isabelle](isabelle), and [SymbiYosys](yosys).
* All coursework is to be done in pairs. Please use [this spreadsheet from October 2025](https://imperiallondon.sharepoint.com/:x:/r/sites/elec70056-202510/Shared%20Documents/General/pairings.xlsx?d=we69152f13a3b464f9027c023502c868d&csf=1&web=1&e=opwcVl) to support this. The spreadsheet contains two sheets. The first sheet contains students who have already paired up. The second sheet contains students who are still looking for a pair. Please enter yourself initially onto the second sheet, and then once you have found a pair, please move yourselves over to the first sheet.
* All coursework is due at 15:00 on Friday 12 December 2025 (the last day of Autumn term).
* The Isabelle coursework for 2025 is [now available](isabelle/2025).
* The Dafny coursework for 2025 is [now available](dafny/2025).
* The SymbiYosys coursework for 2025 is [now available](yosys/2025).
## Summary of past coursework questions
Click on the links below to access the coursework questions (with model answers) from previous years.
- [Dafny 2019](dafny/2019): bubble sort; selection sort; insertion sort; shellsort; Johnsort.
- [Isabelle 2019](isabelle/2019): irrationality of 2*sqrt(2); L-numbers; pyramidal numbers; `opt-NOT` is effective; `opt-NOT` is idempotent; `opt-DM` is sound; `opt-DM` and `opt-NOT` never increase area; `opt-DM` and `opt-NOT` never increase delay; constant folding; circuits with fan-out.
- [Dafny 2020](dafny/2020): zeroing an array; backwards selection sort; recursive selection sort; early-termination bubble sort; cocktail-shaker sort.
- [Isabelle 2020](isabelle/2020): irrationality of 3/sqrt(2); centred pentagonal numbers; Lucas numbers; balanced circuits; NAND gates.
- [Dafny 2021](dafny/2021): array of multiples of two; exchange sort; Fung sort; odd/even sort; bubble sort with triples.
- [Isabelle 2021](isabelle/2021): factorising circuits; divisibility of powers; binary coded decimal.
- [Dafny 2022](dafny/2022): counting squares in a grid; binary search; quicksort.
- [Isabelle 2022](isabelle/2022): full adders; fifth powers; `opt-ident` is sound and never increases area; `opt-redundancy` is sound and never increases area.
- [Dafny 2023](dafny/2023): integer square roots; analogue-to-digital conversion; stupidsort.
- [Isabelle 2023](isabelle/2023): introducing and eliminating XOR gates; lists of clones; analogue-to-digital conversion; Fermat's Last Theorem.
- [SymbiYosys 2023](yosys/2023): binary-to-BCD conversion; verifying a circular queue.
- [Dafny 2024](dafny/2024): verifying SAT solvers.
- [Isabelle 2024](isabelle/2024): introducing and eliminating NAND gates; conversions between numbers and lists of digits; verifying SAT solvers.
- [SymbiYosys 2024](yosys/2024): verifying a multiplier.
- [Isabelle 2025](isabelle/2025): estimating computational complexity of `opt-NOT` and `factorise`; proving that even-length palindromes are divisible by 11; reducing SAT queries to 3SAT form.
- [Dafny 2025](dafny/2025): doublesort.
- [SymbiYosys 2025](yosys/2025): verifying a divider.