1lab

A formalised, cross-linked reference resource for mathematics done in Homotopy Type Theory

https://github.com/the1lab/1lab

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.4%) to scientific vocabulary

Keywords

agda homotopy-type-theory
Last synced: 6 months ago · JSON representation ·

Repository

A formalised, cross-linked reference resource for mathematics done in Homotopy Type Theory

Basic Info
  • Host: GitHub
  • Owner: the1lab
  • License: agpl-3.0
  • Language: Agda
  • Default Branch: main
  • Homepage: https://1lab.dev
  • Size: 9.67 MB
Statistics
  • Stars: 393
  • Watchers: 15
  • Forks: 84
  • Open Issues: 52
  • Releases: 0
Topics
agda homotopy-type-theory
Created about 4 years ago · Last pushed 6 months ago
Metadata Files
Readme Contributing License Code of conduct Citation Support

README.md

Discord Build 1Lab

1Lab

A formalised, cross-linked reference resource for mathematics done in Homotopy Type Theory. Unlike the HoTT book, the 1lab is not a “linear” resource: Concepts are presented as a directed graph, with links indicating dependencies.

Building

Building the 1Lab is a rather complicated task, which has led to a lot of homebrew infrastructure being developed for it. We build against a specific build of Agda (see the rev field in support/nix/dep/Agda/github.json), and there are also quite a few external dependencies (e.g. pdftocairo, katex). The recommended way of building the 1Lab is using Nix.

As a quick point of reference, nix-build will type-check and compile the entire thing, and copy the necessary assets (TeX Gyre Pagella and KaTeX's CSS and fonts) to the right locations. The result will be linked as ./result, which can then be used to serve a website:

bash $ nix-build $ python -m http.server --directory result

Note that using Nix to build the website takes around ~20-30 minutes, since it will type-check the entire codebase from scratch every time. For interactive development, nix-shell will give you a shell with everything you need to hack on the 1Lab, including Agda and the pre-built Shakefile as 1lab-shake:

bash $ 1lab-shake all -j

Since nix-shell will load the derivation steps as environment variables, you can use something like this to copy the static assets into place:

bash $ eval "${installPhase}" $ python -m http.server --directory _build/site

To hack on a file continuously, you can use "watch mode", which will attempt to only check and build the changed file.

$ 1lab-shake all -w

Additionally, since the validity of the Agda code is generally upheld by agda-mode, you can use --skip-agda to only build the prose. Note that this will disable checking the integrity of link targets, the translation of `ref`{.Agda} spans, and the code blocks will be right ugly.

Our build tools are routinely built for x86_64-linux and uploaded to Cachix. If you have the Cachix CLI installed, simply run cachix use 1lab. Otherwise, add the following to your Nix configuration:

substituters = https://1lab.cachix.org trusted-public-keys = 1lab.cachix.org-1:eYjd9F9RfibulS4OSFBYeaTMxWojPYLyMqgJHDvG1fs=

Directly

If you're feeling brave, you can try to replicate one of the build environments above. You will need:

  • The cabal-install package manager. Using stack is no longer supported.

  • A working LaTeX installation (TeXLive, etc) with the packages tikz-cd (depends on pgf), mathpazo, xcolor, preview, and standalone (depends on varwidth and xkeyval);

  • Poppler;

  • libsass;

  • Node + required Node modules. Run npm ci to install those.

You can then use cabal-install to build and run our specific version of Agda and our Shakefile:

```bash $ cabal install Agda -foptimise-heavily

This will take quite a while!

$ cabal v2-run shake -- -j --skip-agda

the double dash separates cabal-install's arguments from our

shakefile's.

```

Owner

  • Name: The 1Lab
  • Login: the1lab
  • Kind: organization

An experiment in discoverable formalisation.

Citation (CITATION.bib)

@online{1lab,
  author = {The {1Lab Development Team}},
  title = {{The 1Lab}},
  url = {https://1lab.dev},
  year = 2024,
}

GitHub Events

Total
  • Create event: 81
  • Commit comment event: 2
  • Issues event: 20
  • Watch event: 46
  • Delete event: 68
  • Issue comment event: 160
  • Push event: 431
  • Pull request review event: 372
  • Pull request review comment event: 407
  • Pull request event: 162
  • Fork event: 13
Last Year
  • Create event: 81
  • Commit comment event: 2
  • Issues event: 20
  • Watch event: 46
  • Delete event: 68
  • Issue comment event: 160
  • Push event: 431
  • Pull request review event: 372
  • Pull request review comment event: 407
  • Pull request event: 162
  • Fork event: 13

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 19
  • Total pull requests: 114
  • Average time to close issues: 5 months
  • Average time to close pull requests: 6 days
  • Total issue authors: 9
  • Total pull request authors: 11
  • Average comments per issue: 0.74
  • Average comments per pull request: 1.03
  • Merged pull requests: 74
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 13
  • Pull requests: 100
  • Average time to close issues: 1 day
  • Average time to close pull requests: 4 days
  • Issue authors: 8
  • Pull request authors: 11
  • Average comments per issue: 1.0
  • Average comments per pull request: 1.04
  • Merged pull requests: 66
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • TOTBWF (7)
  • plt-amy (3)
  • cdo256 (2)
  • 4e554c4c (2)
  • SquidDev (1)
  • carlostome (1)
  • ncfavier (1)
  • AndrasKovacs (1)
  • finegeometer (1)
Pull Request Authors
  • plt-amy (45)
  • TOTBWF (27)
  • ncfavier (24)
  • 4e554c4c (8)
  • jake-87 (3)
  • finegeometer (2)
  • anshwad10 (1)
  • phi16 (1)
  • VojtechStep (1)
  • mmcqd (1)
  • elkcl (1)
Top Labels
Issue Labels
category-theory (3) enhancement (2) web (1)
Pull Request Labels

Dependencies

package-lock.json npm
  • @types/d3 7.4.0 development
  • @types/d3-array 3.0.3 development
  • @types/d3-axis 3.0.1 development
  • @types/d3-brush 3.0.1 development
  • @types/d3-chord 3.0.1 development
  • @types/d3-color 3.1.0 development
  • @types/d3-contour 3.0.1 development
  • @types/d3-delaunay 6.0.1 development
  • @types/d3-dispatch 3.0.1 development
  • @types/d3-drag 3.0.1 development
  • @types/d3-dsv 3.0.0 development
  • @types/d3-ease 3.0.0 development
  • @types/d3-fetch 3.0.1 development
  • @types/d3-force 3.0.3 development
  • @types/d3-format 3.0.1 development
  • @types/d3-geo 3.0.2 development
  • @types/d3-hierarchy 3.1.0 development
  • @types/d3-interpolate 3.0.1 development
  • @types/d3-path 3.0.0 development
  • @types/d3-polygon 3.0.0 development
  • @types/d3-quadtree 3.0.2 development
  • @types/d3-random 3.0.1 development
  • @types/d3-scale 4.0.2 development
  • @types/d3-scale-chromatic 3.0.0 development
  • @types/d3-selection 3.0.2 development
  • @types/d3-shape 3.1.0 development
  • @types/d3-time 3.0.0 development
  • @types/d3-time-format 4.0.0 development
  • @types/d3-timer 3.0.0 development
  • @types/d3-transition 3.0.1 development
  • @types/d3-zoom 3.0.1 development
  • @types/geojson 7946.0.8 development
  • commander 7.2.0 development
  • commander 8.3.0 development
  • d3 7.4.4 development
  • d3-array 3.1.6 development
  • d3-axis 3.0.0 development
  • d3-brush 3.0.0 development
  • d3-chord 3.0.1 development
  • d3-color 3.1.0 development
  • d3-contour 3.0.1 development
  • d3-delaunay 6.0.2 development
  • d3-dispatch 3.0.1 development
  • d3-drag 3.0.0 development
  • d3-dsv 3.0.1 development
  • d3-ease 3.0.1 development
  • d3-fetch 3.0.1 development
  • d3-force 3.0.0 development
  • d3-format 3.1.0 development
  • d3-geo 3.0.1 development
  • d3-hierarchy 3.1.2 development
  • d3-interpolate 3.0.1 development
  • d3-path 3.0.1 development
  • d3-polygon 3.0.1 development
  • d3-quadtree 3.0.1 development
  • d3-random 3.0.1 development
  • d3-scale 4.0.2 development
  • d3-scale-chromatic 3.0.0 development
  • d3-selection 3.0.0 development
  • d3-shape 3.1.0 development
  • d3-time 3.0.0 development
  • d3-time-format 4.1.0 development
  • d3-timer 3.0.1 development
  • d3-transition 3.0.1 development
  • d3-zoom 3.0.0 development
  • delaunator 5.0.0 development
  • esbuild 0.14.42 development
  • esbuild-android-64 0.14.42 development
  • esbuild-android-arm64 0.14.42 development
  • esbuild-darwin-64 0.14.42 development
  • esbuild-darwin-arm64 0.14.42 development
  • esbuild-freebsd-64 0.14.42 development
  • esbuild-freebsd-arm64 0.14.42 development
  • esbuild-linux-32 0.14.42 development
  • esbuild-linux-64 0.14.42 development
  • esbuild-linux-arm 0.14.42 development
  • esbuild-linux-arm64 0.14.42 development
  • esbuild-linux-mips64le 0.14.42 development
  • esbuild-linux-ppc64le 0.14.42 development
  • esbuild-linux-riscv64 0.14.42 development
  • esbuild-linux-s390x 0.14.42 development
  • esbuild-netbsd-64 0.14.42 development
  • esbuild-openbsd-64 0.14.42 development
  • esbuild-sunos-64 0.14.42 development
  • esbuild-windows-32 0.14.42 development
  • esbuild-windows-64 0.14.42 development
  • esbuild-windows-arm64 0.14.42 development
  • iconv-lite 0.6.3 development
  • internmap 2.0.3 development
  • katex 0.15.6 development
  • robust-predicates 3.0.1 development
  • rw 1.3.3 development
  • safer-buffer 2.1.2 development
  • typescript 4.7.2 development
  • fast-fuzzy 1.11.2
  • graphemesplit 2.4.4
  • js-base64 3.7.2
  • pako 0.2.9
  • tiny-inflate 1.0.3
  • unicode-trie 2.0.0
package.json npm
  • @types/d3 ^7.1.0 development
  • d3 ^7.4.4 development
  • esbuild ^0.14.38 development
  • katex ^0.15.3 development
  • typescript ^4.6.4 development
  • fast-fuzzy ^1.11.1
.github/workflows/build.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/deploy-pages v1 composite
  • actions/upload-pages-artifact v1 composite
  • cachix/cachix-action v12 composite
  • cachix/install-nix-action v18 composite
.github/workflows/preview.yml actions
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • cachix/cachix-action v12 composite
  • cachix/install-nix-action v20 composite
  • dmnemec/copy_file_to_another_repo_action main composite
  • marocchino/sticky-pull-request-comment v2 composite
support/shake/1lab-shake.cabal hackage