<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Lean community blog (Posts by The Lean prover community)</title><link>https://leanprover-community.github.io/blog/</link><description></description><atom:link href="https://leanprover-community.github.io/blog/authors/the-lean-prover-community.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:"&gt;The Lean prover community&lt;/a&gt; </copyright><lastBuildDate>Wed, 15 Apr 2026 15:35:44 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>This month in mathlib (Oct and Nov 2022)</title><link>https://leanprover-community.github.io/blog/posts/month-in-mathlib/2022/month-in-mathlib-oct-and-nov-2022/</link><dc:creator>The Lean prover community</dc:creator><description>&lt;div&gt;&lt;p&gt;In October and November 2022 there were 512 and 453 PRs merged into mathlib. We list some of the highlights below.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Measure theory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16830"&gt;PR #16830&lt;/a&gt; improves Vitali families and Lebesgue density theorem.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16762"&gt;PR #16762&lt;/a&gt; adds a version of Lebesgue's density theorem.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16906"&gt;PR #16906&lt;/a&gt; proves Lebesgue differentiation theorem.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16836"&gt;PR #16836&lt;/a&gt; relates integrals over &lt;code&gt;add_circle&lt;/code&gt; with integrals upstairs in &lt;code&gt;ℝ&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Algebra.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/14672"&gt;PR #14672&lt;/a&gt; defines mixed/equal characteristic zero.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17018"&gt;PR #17018&lt;/a&gt;, &lt;a href="https://github.com/leanprover-community/mathlib/pull/16849"&gt;PR #16849&lt;/a&gt; and &lt;a href="https://github.com/leanprover-community/mathlib/pull/17011"&gt;PR #17011&lt;/a&gt; show the Kähler differential module is functorial and that $S/R$ is formally unramified if and only if $\Omega^1_{S/R} = 0$. They also give the standard presentation of the Kähler differential module.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16000"&gt;PR #16000&lt;/a&gt; proves Artin-Rees lemma and Krull's intersection theorems.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16317"&gt;PR #16317&lt;/a&gt; adds the multinomial theorem.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17295"&gt;PR #17295&lt;/a&gt; proves the Jordan-Hölder theorem for modules.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17311"&gt;PR #17311&lt;/a&gt; proves that a group with finitely many commutators has finite commutator subgroup.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17243"&gt;PR #17243&lt;/a&gt; proves the Third Isomorphism theorem for rings.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/13749"&gt;PR #13749&lt;/a&gt; introduces non-unital subsemirings.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Analysis&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16723"&gt;PR #16723&lt;/a&gt; shows that two analytic functions that coincide locally coincide globally.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16683"&gt;PR #16683&lt;/a&gt; and &lt;a href="https://github.com/leanprover-community/mathlib/pull/16680"&gt;PR #16680&lt;/a&gt; introduce functions of bounded variation and prove that they are almost everywhere differentiable. As a corollary, &lt;a href="https://github.com/leanprover-community/mathlib/pull/16549"&gt;PR #16549&lt;/a&gt; shows that a monotone function is differentiable almost everywhere.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17119"&gt;PR #17119&lt;/a&gt; defines and gives basic properties of the complex unit disc.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16780"&gt;PR #16780&lt;/a&gt; proves the open mapping theorem for holomorphic functions.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16487"&gt;PR #16487&lt;/a&gt; constructs the volume form.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16796"&gt;PR #16796&lt;/a&gt; generalizes the Hahn-Banach separation theorem to (locally convex) topological vector spaces.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16835"&gt;PR #16835&lt;/a&gt; proves functoriality of the character space.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16638"&gt;PR #16638&lt;/a&gt; introduces the Dirac delta distribution.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17110"&gt;PR #17110&lt;/a&gt; proves smoothness of series of functions.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16201"&gt;PR #16201&lt;/a&gt; and &lt;a href="https://github.com/leanprover-community/mathlib/pull/17598"&gt;PR #17598&lt;/a&gt; define the additive circle and develop Fourier analysis on it.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17543"&gt;PR #17543&lt;/a&gt; computes $\Gamma(1/2)$.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16053"&gt;PR #16053&lt;/a&gt; introduces the strong operator topology.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Number theory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/15405"&gt;PR #15405&lt;/a&gt; introduces the Selmer group of a Dedekind domain.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17677"&gt;PR #17677&lt;/a&gt; defines slash-invariant forms, a step towards the definition of modular forms.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17203"&gt;PR #17203&lt;/a&gt; defines the absolute ideal norm.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Representation theory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17005"&gt;PR #17005&lt;/a&gt; is about exactness properties of resolutions.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16043"&gt;PR #16043&lt;/a&gt; proves the orthogonality of characters.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/13794"&gt;PR #13794&lt;/a&gt; proves Schur's lemma.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17443"&gt;PR #17443&lt;/a&gt; adds the construction of a projective resolution of a representation.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Topology.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16677"&gt;PR #16677&lt;/a&gt; constructs the Galois correspondence between closed ideals in $C(X, 𝕜)$ and open sets in $X$.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16719"&gt;PR #16719&lt;/a&gt; shows that maximal ideals of $C(X, 𝕜)$ correspond to (complements of) singletons.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16087"&gt;PR #16087&lt;/a&gt; defines covering spaces.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16797"&gt;PR #16797&lt;/a&gt; proves that the stalk functor preserves monomorphism.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17015"&gt;PR #17015&lt;/a&gt; proves that Noetherian spaces have finite irreducible components.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Probability theory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16882"&gt;PR #16882&lt;/a&gt; proves the second Borel-Cantelli lemma.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16648"&gt;PR #16648&lt;/a&gt; shows Kolmogorov's 0-1 law.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Algebraic and differential geometry.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16124"&gt;PR #16124&lt;/a&gt;, &lt;a href="https://github.com/leanprover-community/mathlib/pull/17117"&gt;PR #17117&lt;/a&gt;, &lt;a href="https://github.com/leanprover-community/mathlib/pull/17080"&gt;PR #17080&lt;/a&gt; and &lt;a href="https://github.com/leanprover-community/mathlib/pull/17184"&gt;PR #17184&lt;/a&gt; develop various properties for morphisms of schemes.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Linear algebra.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/11468"&gt;PR #11468&lt;/a&gt; shows that the clifford algebra is isomorphic as a module to the exterior algebra.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16150"&gt;PR #16150&lt;/a&gt; proves that the inverse of a block triangular matrix is block triangular.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Category theory.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16969"&gt;PR #16969&lt;/a&gt; adds basic results about localization of categories.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Combinatorics&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16195"&gt;PR #16195&lt;/a&gt; adds the definition and some basic results about semistandard Young tableaux.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17445"&gt;PR #17445&lt;/a&gt; adds an equivalence between Young diagrams and weakly decreasing lists of positive natural numbers.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/17306"&gt;PR #17306&lt;/a&gt; and &lt;a href="https://github.com/leanprover-community/mathlib/pull/17213"&gt;PR #17213&lt;/a&gt; define bridge edges, acyclic graphs, and trees for simple graphs, and provide some characterizations. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tactics&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16313"&gt;PR #16313&lt;/a&gt; introduces the &lt;code&gt;qify&lt;/code&gt; tactic, to move from $\mathbb{Z}$ to $\mathbb{Q}$.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/13483"&gt;PR #13483&lt;/a&gt; adds a tactic for moving around summands.&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/leanprover-community/mathlib/pull/16911"&gt;PR #16911&lt;/a&gt; adds a tactic to find declarations that use &lt;code&gt;sorry&lt;/code&gt;. This tactic is intended for projects that depend on mathlib.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;During these two months, we got two new versions of Lean. We also started to systematically port mathlib to Lean4, see the &lt;a href="https://github.com/leanprover-community/mathlib4/wiki"&gt;wiki&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;</description><guid>https://leanprover-community.github.io/blog/posts/month-in-mathlib/2022/month-in-mathlib-oct-and-nov-2022/</guid><pubDate>Thu, 01 Dec 2022 13:56:21 GMT</pubDate></item><item><title>Welcome to the Lean community blog!</title><link>https://leanprover-community.github.io/blog/posts/welcome-to-the-lean-community-blog/</link><dc:creator>The Lean prover community</dc:creator><description>&lt;div&gt;&lt;p&gt;This is our brand new blog where you'll be able to find news about what is
happening in the Lean prover community. It will feature:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;posts highlighting some new contributions to mathlib&lt;/li&gt;
&lt;li&gt;news about ongoing projects such as the Liquid tensor experiment or the sphere eversion project&lt;/li&gt;
&lt;li&gt;news about exciting developments in other proofs assistants&lt;/li&gt;
&lt;li&gt;announcements of conferences and talks &lt;/li&gt;
&lt;li&gt;some explanations of specific topics in a less formal context than the documentations&lt;/li&gt;
&lt;li&gt;speculations about future developments or somewhat philosophical discussions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is no predefined list of authors. Everybody can submit a pull-request
with a post. If you are unsure whether your post will be welcome then don't
hesitate to first discuss the topic of your post on Zulip before investing too
much time writing it.&lt;/p&gt;&lt;/div&gt;</description><guid>https://leanprover-community.github.io/blog/posts/welcome-to-the-lean-community-blog/</guid><pubDate>Sat, 07 Aug 2021 19:36:54 GMT</pubDate></item></channel></rss>