Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/forked-from-1kasper/ground_zero
Ground Zero: Lean 4 HoTT Library
https://github.com/forked-from-1kasper/ground_zero
ctt cubical-type-theory homotopy-type-theory hott lean lean4 leanprover math
Last synced: about 1 month ago
JSON representation
Ground Zero: Lean 4 HoTT Library
- Host: GitHub
- URL: https://github.com/forked-from-1kasper/ground_zero
- Owner: forked-from-1kasper
- License: apache-2.0
- Created: 2022-03-21T13:32:56.000Z (almost 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-18T11:19:20.000Z (2 months ago)
- Last Synced: 2024-10-19T16:49:55.164Z (2 months ago)
- Topics: ctt, cubical-type-theory, homotopy-type-theory, hott, lean, lean4, leanprover, math
- Language: Lean
- Homepage:
- Size: 3.55 MB
- Stars: 43
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Ground Zero
This is an attempt to develop Homotopy Type Theory in [Lean 4](https://github.com/leanprover/lean4/).
As in [gebner/hott3](https://github.com/gebner/hott3), no modifications to the Lean kernel are made, because library uses [large eliminator checker](https://github.com/forked-from-1kasper/ground_zero/blob/master/GroundZero/Meta/HottTheory.lean) ported [from Lean 3](https://github.com/gebner/hott3/blob/master/src/hott/init/meta/support.lean). So stuff like this will print an error:
```lean
hott example {α : Type u} {a b : α} (p q : a = b) : p = q :=
begin cases p; cases q; apply Id.refl end
```## HITs
[Most HITs in the library](https://github.com/forked-from-1kasper/lean/tree/master/ground_zero/HITs) constructed using [quotients](https://leanprover.github.io/theorem_proving_in_lean/axioms_and_computation.html#quotients). Quotients in Lean have good computational properties (`Quot.ind` computes), so we can define HITs with them without any other changes in Lean’s kernel.
There are:
* [Interval](https://github.com/forked-from-1kasper/ground_zero/blob/master/GroundZero/HITs/Interval.lean) $I$.
* [Pushout](https://github.com/forked-from-1kasper/ground_zero/blob/master/GroundZero/HITs/Pushout.lean) $\alpha \sqcup^\sigma \beta $.
* [Homotopical reals](https://github.com/forked-from-1kasper/ground_zero/blob/master/GroundZero/HITs/Reals.lean) $R$.
* (Sequential) [colimit](https://github.com/forked-from-1kasper/ground_zero/blob/master/GroundZero/HITs/Colimit.lean).
* [Generalized circle](https://github.com/forked-from-1kasper/ground_zero/blob/master/GroundZero/HITs/Generalized.lean) $\{\alpha\}$.
* [Propositional truncation](https://github.com/forked-from-1kasper/ground_zero/blob/master/GroundZero/HITs/Merely.lean) as a colimit of a following sequence:
$` \alpha \rightarrow \{\alpha\} \rightarrow \{\{\alpha\}\} \rightarrow \ldots `$
* [Suspension](https://github.com/forked-from-1kasper/ground_zero/blob/master/GroundZero/HITs/Suspension.lean) $\Sigma \alpha$ is defined as the pushout of the span $\mathbf{1} \leftarrow \alpha \rightarrow \mathbf{1}$.
* [Circle](https://github.com/forked-from-1kasper/ground_zero/blob/master/GroundZero/HITs/Circle.lean) $S^1$ is the suspension of the bool $\mathbf{2}$.
* Sphere $S^2$ is the suspension of the circle $S^1$.
* [Join](https://github.com/forked-from-1kasper/ground_zero/blob/master/GroundZero/HITs/Join.lean) $\alpha \ast \beta$.There are also HITs that cannot be constructed this way. These HITs are defined using standard trick with [private structures](https://github.com/forked-from-1kasper/ground_zero/blob/master/GroundZero/HITs/Trunc.lean).
## Dependency map
![dependency map](pictures/dependency-map.svg "dependency map")
## License
Copyright © 2018–2024 Siegmentation Fault <[email protected]>
Licensed under the Apache License, Version 2.0 (the “License”);
you may not use this project except in compliance with the License.
You may obtain a copy of the License athttp://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.