Skip to content

Project topics on F*

Catalin Hritcu edited this page Jan 13, 2022 · 15 revisions

A list of hot research topics for MPI-SP (from 2019)

https://catalin-hritcu.github.io/students/topics/2019/fstar-topics.pdf

The rest of the document is quite old

Mechanized Metatheory in F*

We've done [quite a bit of this already] (https://github.com/FStarLang/FStar/tree/master/examples/metatheory), so this would be a rather safe direction. One interesting topic would be to do the POPLMark challenge cleanly in F*. We have already done System F-omega (not very clean though) and STLC with subtyping (it's in a different repo, but I can send the files around if they are not in the repo by then) in F*, so the gap to fill wouldn't be so large. For POPLMark one would of course expect a solution that's as clean as possible, and we've been quite successful so far with a proof style borrowed from Autosubst that uses parallel substitution and deBruijn indices; the largest clean thing we have in this style is a proof of lambda-omega. Other than System-F-sub, other calculi one could try to formalize could include dependently typed languages for instance: starting with LF and CC, and maybe even try to get to CC-omega and CiC. Also a generic formalization of pure type systems would be great

New page on this: Mechanized-Metatheory-in-F*

Verification of purely functional code

  • sorting (we have proved correctness for some sorting algorithms but not stability)
  • AVL or red-black trees (we have insertion but operations like deletion can be really interesting: http://matt.might.net/articles/red-black-delete/)
  • these are all low risk topics

Verification of efficient imperative data structures

  • binary search in sorted arrays (Chantal has functional version)
  • union-find, hash-tables, imperative sorting (I think we now have only quick sort)
  • again, all low risk

Verification competitions/benchmarks

Formalize first-order unification algorithm

Verification of stateful programs: Schorr-Waite

http://sci-hub.bz/10.1007/BF00289068 https://www.cs.cornell.edu/courses/cs312/2007fa/lectures/lec21-schorr-waite.pdf

"The Schorr-Waite algorithm is the first mountain that any formalism for pointer aliasing should climb" (Bornat).

QuickStar

  • QuickStar = QuickChick for F*
  • would be interesting only to the extent we can get better automation using the SMT solver
  • Zoe and Nick had some progress on this in a private repo, but that was still when defining new effects in F* was a big pain. Should try again once we have DM4F working.

Verifying toy compilers

  • It would be nice to formalize parts of simple toy compiers, like Tiger
Clone this wiki locally