All Projects → plt-amy → cubical-1lab

plt-amy / cubical-1lab

Licence: AGPL-3.0 License
A formalised, cross-linked reference resource for mathematics done in Homotopy Type Theory

Programming Languages

Agda
84 projects
haskell
3896 projects
SCSS
7915 projects
Nix
1067 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to cubical-1lab

cat
A formalization of category theory in cubical Agda
Stars: ✭ 50 (-46.24%)
Mutual labels:  agda, homotopy-type-theory
TypeTopology
Logical manifestations of topological concepts, and other things. This version adopts the univalent point of view.
Stars: ✭ 132 (+41.94%)
Mutual labels:  agda, homotopy-type-theory
SymmetryBookFormalization
Univalent mathematics in Agda
Stars: ✭ 117 (+25.81%)
Mutual labels:  agda, homotopy-type-theory
agda-pkg
apkg - package manager for Agda
Stars: ✭ 30 (-67.74%)
Mutual labels:  agda
agda-mode
Accessing Agda's interaction mode via command line & external tactic for Agda.
Stars: ✭ 26 (-72.04%)
Mutual labels:  agda
dicy
A builder for LaTeX, knitr, literate Agda, literate Haskell and Pweave that automatically builds dependencies.
Stars: ✭ 22 (-76.34%)
Mutual labels:  agda
MtacAR
Mtac in Agda
Stars: ✭ 29 (-68.82%)
Mutual labels:  agda
universe-of-syntax
A universe of scope- and type-safe syntaxes (syntices?). Includes generic implementation of type-preserving renaming/substitution with all the proofs you could possibly need.
Stars: ✭ 16 (-82.8%)
Mutual labels:  agda
msla2014
wherein I implement several substructural logics in Agda
Stars: ✭ 24 (-74.19%)
Mutual labels:  agda
formal-topology-in-UF
Formal Topology in Univalent Foundations (WIP).
Stars: ✭ 27 (-70.97%)
Mutual labels:  homotopy-type-theory
agda-presburger
Deciding Presburger arithmetic in agda
Stars: ✭ 26 (-72.04%)
Mutual labels:  agda
Idris-HoTT
Homotopy Type Theory proofs in Idris
Stars: ✭ 19 (-79.57%)
Mutual labels:  homotopy-type-theory
ConsHoTT
Constructive Interpretations of HoTT
Stars: ✭ 33 (-64.52%)
Mutual labels:  agda
agda-mode-vscode
agda-mode on VS Code
Stars: ✭ 112 (+20.43%)
Mutual labels:  agda
AutoInAgda
Proof automation – for Agda, in Agda.
Stars: ✭ 38 (-59.14%)
Mutual labels:  agda
frp agda
Functional Reactive Programming with Agda
Stars: ✭ 22 (-76.34%)
Mutual labels:  agda
tt-in-cubical
Type Theory in Type Theory using Cubical Agda
Stars: ✭ 12 (-87.1%)
Mutual labels:  agda
Isabelle-HoTT
An experimental implementation of homotopy type theory in the interactive proof assistant Isabelle
Stars: ✭ 30 (-67.74%)
Mutual labels:  homotopy-type-theory
gentle-intro-to-reflection
A slow-paced introduction to reflection in Agda. ---Tactics!
Stars: ✭ 58 (-37.63%)
Mutual labels:  agda
cain
Category theory applied to functional programming (undergraduate project)
Stars: ✭ 27 (-70.97%)
Mutual labels:  agda

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

Here's how you can build --- and work on --- the web parts of the 1lab.

Using Docker

An Arch Linux-based Docker container is provided which contains all the dependencies necessary for building the 1lab, including the font files required for a complete deployment. Since this container is on the registry, we can do a one-line build of the 1Lab as follows:

% docker run -it -v $PWD:/workspace docker.io/pltamy/1lab:latest /bin/sh -i
$ 1lab-shake all -j       # build everything
$ sh support/make-site.sh # copy everything into place

After this, the directory _build/site will have everything in place for use as the HTTP root of a static site to serve the 1Lab, for example using the Python distribution that the container ships with:

$ python -m http.server --directory _build/site

Using Nix

If you run NixOS, or have the Nix package manager installed, you can use the provided default.nix file to build a complete, reproducible deployment of the 1Lab. This has the benefit of also providing nix-shell support for immediately setting up an environment for development which supports compilation of the HTML and SVG files, in addition to the Agda.

You can then use Nix to compile the project as usual. 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 css/fonts) to the right locations. The result will be linked as ./result, which can then be used to serve a website:

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

For interactive development, keep in mind that the buildInputs to default.nix don't include Stack or ghc. However, just like the Docker container, a pre-built version of the Shakefile is included as 1lab-shake:

$ 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:

$ export out=_build/site
$ echo "${installPhase}" | bash

Directly

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

  • A Haskell package manager (either cabal or stack);

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

  • Rubber (for rubber);

  • Poppler (for pdftocairo);

  • libsass (for sassc);

  • The KaTeX executable katex in your $PATH;

  • The tools agda-fold-equations and agda-reference-filter, which are Cabal packages and can be installed however you prefer

  • If you're using Stack, that's all. If using cabal-install, you're going to need the following Haskell packages:

    • Agda
    • pandoc
    • shake
    • tagsoup
    • uri-encode

If everything is set up properly, the following command should work to produce the compiled HTML, SVG and CSS files in _build/html. You can then follow either the support/make-site.sh script or the installPhase in default.nix to work out how to acquire & set up the rest of the static assets.

$ ./Shakefile.hs all -j        # (using stack)
$ runghc ./Shakefile.hs all -j # (using cabal-install)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].