# Formalizing the Solution to the Cap Set Problem

This web page collects the auxiliary materials for the paper
Formalizing the Solution to the Cap Set
Problem
by Sander R. Dahmen,
Johannes Hölzl, and
Robert Y. Lewis.

The paper is still a draft and this page is under construction.

## Informal writeup

As the first step in our efforts, Sander Dahmen produced a
detailed paper proof of the theorem, which we followed during the
formalization process. We make this blueprint available here as a reference.

## Current Lean code

The most up-to-date version of our formalization can be found
here. It
compiles with Lean version 3.4.2.

## Lean code at submission

We keep a branch of our formalization frozen in the state it was on March 31, 2019, the date
of submission of our paper to ITP. This can be found
here.
It compiles with Lean version 3.4.2 and mathlib commit
2e7f0099d2e97b370de475f8e7854f5557c265b7.

## Code organization

All theorem numbers correspond to our detailed paper proof.

- The files
`library.lean` and `has_deriv.lean` contain background
definitions and theorems that will be moved to mathlib.
- The file
`section_9.lean` contains the proof of Lemma 9.2, used in section 12.
- The file
`section_10_11_12.lean` corresponds to Section 4 of our paper. It
contains the construction of the cap set bound.
- The file
`section_13a.lean` contains auxiliary proofs used in section 13. It is
independent of the earlier files.
- The file
`section_13b.lean` corresponds to Section 5 of our paper. It verifies
the asymptotic behavior of the bound in section 12.

## Compilation directions

- Install Lean using its version manager elan, following directions
here.
- Clone the desired GitHub repository, e.g.
`add link`.
- In the root of this directory, run
`leanpkg configure` and
`leanpkg build`. (Note: if you do not download precompiled mathlib binaries,
this may take some time.)
- To inspect the files in VSCode, use
`File->Open Folder...` to open the root of
this directory.