The content of this repository is the result of completely refactoring the lean-stacks-project, in which parts of The Stacks Project are formally verified using the Lean Theorem Prover. In particular, some bits of Chapters 6, 10 and 25 are formalized, culminating with the definition of a scheme. Having learnt from the many problems encountered in that first attempt, we present a cleaner and more robust approach. The main improvements are:
is_localization predicate, defined by Prof Neil Strickland here, throughout instead of the concrete construction of a localized ring. Thanks to this, we avoided complicated arguments about canonically isomorphic rings.Note that this is still very much a work in progress. The API needs to be tested with more examples of schemes and constructions involving schemes.
This is a general overview of the maths that you can find in this repository.
In the sheaves directory we have:
Then, in spectrum_of_a_ring, there is:
Finally, a scheme is defined in scheme.lean and two examples (the empty scheme and affine schemes) are provided in instances. There is also a to_mathlib directory with some general results that we found useful.
To get it working, you will need Lean 3.4.2, available here. Clone the repository and type:
cd lean-scheme
leanpkg configure
leanpkg build
The main contributors to this project are:
All the files have been written from scratch by the last author (some of them based on the work in the previous repository) unless stated otherwise.
Lean
100.0%
The content of this repository is the result of completely refactoring the lean-stacks-project, in which parts of The Stacks Project are formally verified using the Lean Theorem Prover. In particular, some bits of Chapters 6, 10 and 25 are formalized, culminating with the definition of a scheme. Having learnt from the many problems encountered in that first attempt, we present a cleaner and more robust approach. The main improvements are:
is_localization predicate, defined by Prof Neil Strickland here, throughout instead of the concrete construction of a localized ring. Thanks to this, we avoided complicated arguments about canonically isomorphic rings.Note that this is still very much a work in progress. The API needs to be tested with more examples of schemes and constructions involving schemes.
This is a general overview of the maths that you can find in this repository.
In the sheaves directory we have:
Then, in spectrum_of_a_ring, there is:
Finally, a scheme is defined in scheme.lean and two examples (the empty scheme and affine schemes) are provided in instances. There is also a to_mathlib directory with some general results that we found useful.
To get it working, you will need Lean 3.4.2, available here. Clone the repository and type:
cd lean-scheme
leanpkg configure
leanpkg build
The main contributors to this project are:
All the files have been written from scratch by the last author (some of them based on the work in the previous repository) unless stated otherwise.
Lean
100.0%