GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - FormalMathematicsLab/mathlib4: The math library of Lean 4.

BranchesTags
Open more actions menu
 
 

Latest commit

 

History

9,396 Commits
9,396 Commits

Folders and files

NameName
Last commit message
Last commit date
.devcontainer
.devcontainer
 
 
.docker/gitpod
.docker/gitpod
 
 
.github
.github
 
 
.vscode
.vscode
 
 
Archive
Archive
 
 
Cache
Cache
 
 
Counterexamples
Counterexamples
 
 
Mathlib
Mathlib
 
 
MathlibExtras
MathlibExtras
 
 
Shake
Shake
 
 
docs
docs
 
 
scripts
scripts
 
 
test
test
 
 
widget/src/penrose
widget/src/penrose
 
 
.gitignore
.gitignore
 
 
.gitpod.yml
.gitpod.yml
 
 
Archive.lean
Archive.lean
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
Counterexamples.lean
Counterexamples.lean
 
 
GNUmakefile
GNUmakefile
 
 
LICENSE
LICENSE
 
 
Mathlib.lean
Mathlib.lean
 
 
MathlibExtras.lean
MathlibExtras.lean
 
 
README.md
README.md
 
 
bors.toml
bors.toml
 
 
docs.lean
docs.lean
 
 
lake-manifest.json
lake-manifest.json
 
 
lakefile.lean
lakefile.lean
 
 
lean-toolchain
lean-toolchain
 
 

Repository files navigation

mathlib4

GitHub CI Bors enabled project chat

This is a complete port of mathlib to Lean 4. Development of mathlib now takes place in this repository.

Mathlib is a user maintained library for the Lean theorem prover. It contains both programming infrastructure and mathematics, as well as tactics that use the former and allow to develop the latter.

Installation

You can find detailed instructions to install Lean, mathlib, and supporting tools on our website.

Using mathlib4 as a dependency

Please refer to https://github.com/leanprover-community/mathlib4/wiki/Using-mathlib4-as-a-dependency

Experimenting

Got everything installed? Why not start with the tutorial project?

For more pointers, see Learning Lean.

Documentation

Besides the installation guides above and Lean's general documentation, the documentation of mathlib consists of:

  • The mathlib4 docs: documentation generated automatically from the source .lean files.
  • A description of currently covered theories, as well as an overview for mathematicians.
  • Some extra Lean documentation not specific to mathlib (see "Miscellaneous topics")
  • Documentation for people who would like to contribute to mathlib

Much of the discussion surrounding mathlib occurs in a Zulip chat room, and you are welcome to join, or read along without signing up. Questions from users at all levels of expertise are welcome! We also provide an archive of the public discussions, which is useful for quick reference.

Transitioning from Lean 3

For users familiar with Lean 3 who want to get up to speed in Lean 4 and migrate their existing Lean 3 code we have:

  • A survival guide for Lean 3 users
  • Instructions to run mathport on a project other than mathlib. mathport is the tool the community used to port the entirety of mathlib from Lean 3 to Lean 4.

Contributing

The complete documentation for contributing to mathlib is located on the community guide contribute to mathlib

The process is different from other projects where one should not fork the repository. Instead write permission for non-master branches should be requested on Zulip by introducing yourself, providing your GitHub handle and what contribution you are planning on doing. You may want to subscribe to the mathlib4 stream

  • To obtain precompiled olean files, run lake exe cache get. (Skipping this step means the next step will be very slow.)

  • To build mathlib4 run lake build.

  • To build and run all tests, run make.

  • You can use lake build Mathlib.Import.Path to build a particular file, e.g. lake build Mathlib.Algebra.Group.Defs.

  • If you added a new file, run the following command to update Mathlib.lean

    find Mathlib -name "*.lean" | env LC_ALL=C sort | sed 's/\.lean//;s,/,.,g;s/^/import /' > Mathlib.lean

Guidelines

Mathlib has the following guidelines and conventions that must be followed

  • The style guide
  • A guide on the naming convention
  • The documentation style

Downloading cached build files

You can run lake exe cache get to download cached build files that are computed by mathlib4's automated workflow. If tar terminates with an error, it means that you might have ended up with corrupted files. In this case, run lake exe cache get! to overwrite them (get won't try to download the same file again).

Call lake exe cache to see its help menu.

Building HTML documentation

Building HTML documentation locally is straightforward, but it may take a while:

lake -Kdoc=on build Mathlib:docs

The HTML files can then be found in build/doc.

Dependencies

If you are a mathlib contributor and want to update dependencies, use lake update -Kdoc=on. This will update the lake-manifest.json file correctly. You will need to make a PR after committing the changes to this file.

Maintainers:

For a list containing more detailed information, see https://leanprover-community.github.io/teams/maintainers.html

  • Anne Baanen (@Vierkantor): algebra, number theory, tactics
  • Matthew Robert Ballard (@mattrobball): algebra, algebraic geometry, category theory, performance
  • Reid Barton (@rwbarton): category theory, topology
  • Riccardo Brasca (@riccardobrasca): algebra, number theory, algebraic geometry, category theory
  • Mario Carneiro (@digama0): lean formalization, tactics, type theory, proof engineering
  • Bryan Gin-ge Chen (@bryangingechen): documentation, infrastructure
  • Johan Commelin (@jcommelin): algebra, number theory, category theory, algebraic geometry
  • Anatole Dedecker (@ADedecker): topology, functional analysis, calculus
  • Rémy Degenne (@RemyDegenne): probability, measure theory, analysis
  • Floris van Doorn (@fpvandoorn): measure theory, model theory, tactics
  • Frédéric Dupuis (@dupuisf): linear algebra, functional analysis
  • Gabriel Ebner (@gebner): tactics, infrastructure, core, formal languages
  • Sébastien Gouëzel (@sgouezel): topology, calculus, geometry, analysis, measure theory
  • Markus Himmel (@TwoFX): category theory
  • Chris Hughes (@ChrisHughes24): algebra
  • Yury G. Kudryashov (@urkud): analysis, topology, measure theory
  • Robert Y. Lewis (@robertylewis): tactics, documentation
  • Jireh Loreaux (@j-loreaux): analysis, topology, operator algebras
  • Heather Macbeth (@hrmacbeth): geometry, analysis
  • Patrick Massot (@patrickmassot): documentation, topology, geometry
  • Bhavik Mehta (@b-mehta): category theory, combinatorics
  • Kyle Miller (@kmill): combinatorics, tactics, metaprogramming
  • Scott Morrison (@semorrison): category theory, tactics
  • Oliver Nash (@ocfnash): algebra, geometry, topology
  • Joël Riou (@joelriou): category theory, homology, algebraic geometry
  • Adam Topaz (@adamtopaz): algebra, category theory, algebraic geometry
  • Eric Wieser (@eric-wieser): algebra, infrastructure

Emeritus maintainers:

  • Jeremy Avigad (@avigad): analysis
  • Johannes Hölzl (@johoelzl): measure theory, topology
  • Simon Hudon (@cipher1024): tactics

About

The math library of Lean 4.

leanprover-community.github.io/mathlib4_docs

Resources

Readme
License

Code of conduct

Code of conduct

Contributing

Contributing
Activity
Custom properties

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.