Coder Social home page Coder Social logo

4e554c4c / adjunction-formula-blueprint Goto Github PK

View Code? Open in Web Editor NEW

This project forked from jjgarzella/adjunction-formula-blueprint

1.0 1.0 0.0 1.68 MB

Website and documentation for the Adjunction Formula, including dependency graph.

Home Page: https://leanprover-community.github.io/liquid/

Python 0.82% TeX 99.18%

adjunction-formula-blueprint's Introduction

The liquid tensor experiment blueprint

This repository hosts the Liquid tensor experiment blueprint and website. The Lean code for this project can be found there.

Dependencies

If you simply want to produce the pdf version of the blueprint, you don't need anything beyond your usual TeX installation.

In order to build the html version you need plasTeX and its blueprint plugin. You first need to make sure you have a decent python (at least 3.6). Then you can install:

pip install git+https://github.com/plastex/plastex.git
pip install git+https://github.com/PatrickMassot/leanblueprint.git
pip install invoke

Also installing pdf2svg, pdfcrop, and xelatex may be useful:

apt install pdf2svg
apt install texlive-extra-utils
apt install texlive-xetex

Initial setup

The blueprint needs to know where a compiled version of the Lean source code lives. In the root directory of the blueprint repo, create a symlink project pointing to the root of the lean-liquid repository:

ln -s ../lean-liquid project   # modify as needed

Building

The source for the blueprint is in src. If you only want to build it as a pdf file then you can simply run xelatex blueprint.tex or lualatex blueprint.tex (or even pdflatex blueprint.tex if you are stuck in the past).

More complicated goals are easier to handle using python invoke. You can run inv -l to see the available actions. In particular inv web will build the website and inv serve will serve it locally on port 8000.

Note that the dependency graph using graph-viz won't work if you simply open web/dep_graph.html in a browser because of browser paranoia. It has to be accessed through a web server.

Authoring

The main TeX file to edit is content.tex. It is a normal TeX file except that each definition and statement must have a \label and there are four special LaTeX macros:

  • \lean{name} indicates the fully namespaced Lean declaration that formalizes the current definition or statement.
  • \leanok means the current definition, statement or proof has been fully formalized (in particular a lemma can have \leanok in its statement without having it in its proof environment.
  • \uses{refs} where refs is a comma-separated list of LaTeX label can be put inside a definition, statement or proof environment. It means each of those labels is used by the current environment. This is what creates edges in the dependency graph. This mechanism is completely independent from \ref. With leanok this is the most important command to organize work. Note that \uses in proofs don't need to repeat those in the statement.
  • \proves{label} can be put in a proof environment to indicate which statement is proved if this is not obvious (ie it is not proving the preceding statement).

adjunction-formula-blueprint's People

Contributors

4e554c4c avatar adamtopaz avatar bryangingechen avatar collares avatar faenuccio avatar jcommelin avatar jjgarzella avatar kbuzzard avatar patrickmassot avatar pechersky avatar riccardobrasca avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.