Code Monkey home page Code Monkey logo

mathlib's Introduction

Lean mathlib

Bors enabled project chat Gitpod Ready-to-Code

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.

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:

Much of the discussion surrounding mathlib occurs in a Zulip chat room. Since this chatroom is only visible to registered users, we provide an openly accessible archive of the public discussions. This is useful for quick reference; for a better browsing interface, and to participate in the discussions, we strongly suggest joining the chat. Questions from users at all levels of expertise are welcomed.

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.

Guidelines

Mathlib has the following guidelines and conventions that must be followed

Note: the title of a PR should follow the commit naming convention.

Using leanproject to contribute

Running the leanproject get -b mathlib:shiny_lemma command will create a new worktree mathlib_shiny_lemma with a local branch called shiny_lemma which has a copy of mathlib to work on.

leanproject build will check that nothing broke. Be warned that this will take some time if a fundamental file was changed.

Maintainers:

  • Anne Baanen (@Vierkantor): algebra, number theory, tactics
  • 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
  • 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
  • Heather Macbeth (@hrmacbeth): geometry, analysis
  • Patrick Massot (@patrickmassot): documentation, topology, geometry
  • Bhavik Mehta (@b-mehta): category theory, combinatorics
  • Kyle Miller (@kmill): combinatorics, documentation
  • Scott Morrison (@semorrison): category theory, tactics
  • Oliver Nash (@ocfnash): algebra, geometry, topology
  • 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

mathlib's People

Contributors

urkud avatar eric-wieser avatar semorrison avatar yaeldillies avatar leanprover-community-bot avatar vihdzp avatar digama0 avatar tb65536 avatar chrishughes24 avatar sgouezel avatar jcommelin avatar johoelzl avatar vierkantor avatar b-mehta avatar fpvandoorn avatar jsm28 avatar pechersky avatar robertylewis avatar hrmacbeth avatar patrickmassot avatar ocfnash avatar ericrbg avatar adomani avatar erdone avatar awainverse avatar riccardobrasca avatar cipher1024 avatar kbuzzard avatar adedecker avatar remydegenne avatar

Stargazers

Junyan Xu avatar

Watchers

Anand Rao avatar

mathlib's Issues

Groups as geometric objects

From Cornulier & de la Harpe:

Proposition 1.A.1. Let Γ be a group.

  • (ct) Γ is countable if and only if it has a left-invariant metric with finite balls.
    Moreover, if d₁ , d₂ are two such metrics, the identity map (Γ, d₁ ) → (Γ, d₂ ) is a metric coarse equivalence.

Assume from now on that Γ is countable.

  • (fg) Γ is finitely generated if and only if, for one (equivalently for every) metric d as in (ct), the metric space (Γ, d) is coarsely connected.
    Moreover, a finitely generated group has a left-invariant large-scale geodesic metric with finite balls (e.g. a word metric); if d₁, d₂ are two such metrics, the identity map (Γ, d₁) →(Γ, d₂) is a quasi-isometry.
  • (fp) Γ is finitely presented if and only if, for one (equivalently for every) metric d as in (ct), the metric space (Γ, d) is coarsely simply connected.

Easy consequences of these are (quoting Cornulier & de la Harpe still):

The characterizations of Proposition 1.A.1 provide conceptual proofs of some basic and well-known facts. Consider for example a countable group Γ, a subgroup of finite index ∆, a finite normal subgroup N C Γ, and a left-invariant metric d on Γ, with finite balls. Coarse connectedness and coarse simple connectedness are properties invariant by metric coarse equivalence. A straightforward verification shows that the inclusion ∆ ⊂ Γ is a metric coarse equivalence; it follows that ∆ is finitely generated (or finitely presented) if and only if Γ has the same property. It is desirable to have a similar argument for Γ and Γ/N ; for this, it is better to rephrase the characterizations (ct), (fg), and (fp) in terms of pseudo-metrics rather than in terms of metrics. “Pseudo” means that the pseudo-metric evaluated on two distinct points can be 0.


TODO: formalize all this!

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.