Changes
36 changed files (+250/-315)
-
-
@@ -105,7 +105,7 @@ def odds : Set ℕ :=example : evens ∪ odds = univ := by rw [evens, odds] ext n simp simp [-Nat.not_even_iff_odd] apply Classical.em example (x : ℕ) (h : x ∈ (∅ : Set ℕ)) : False :=
-
-
-
@@ -79,13 +79,11 @@ example : s \ t ∪ t \ s = (s ∪ t) \ (s ∩ t) := byexample : { n | Nat.Prime n } ∩ { n | n > 2 } ⊆ { n | ¬Even n } := by intro n simp intro nprime intro nprime n_gt rcases Nat.Prime.eq_two_or_odd nprime with h | h · rw [h] intro linarith rw [Nat.even_iff, h] norm_num · rw [Nat.odd_iff, h] end
-
-
-
@@ -97,7 +97,7 @@ instance instCommRing : CommRing GaussInt whereadd_zero := by intro ext <;> simp add_left_neg := by neg_add_cancel := by intro ext <;> simp add_comm := by
-
-
-
@@ -97,7 +97,7 @@ instance instCommRing : CommRing GaussInt whereadd_zero := by intro ext <;> simp add_left_neg := by neg_add_cancel := by intro ext <;> simp add_comm := by
-
-
-
@@ -91,7 +91,7 @@ class MonoidHomClass₃ (F : Type) (M N : outParam Type) [Monoid M] [Monoid N] einstance (M N : Type) [Monoid M] [Monoid N] : MonoidHomClass₃ (MonoidHom₁ M N) M N where coe := MonoidHom₁.toFun coe_injective' := MonoidHom₁.ext coe_injective' _ _ := MonoidHom₁.ext map_one := MonoidHom₁.map_one map_mul := MonoidHom₁.map_mul
-
-
-
@@ -1,5 +1,5 @@import MIL.Common import Mathlib.GroupTheory.QuotientGroup import Mathlib.GroupTheory.QuotientGroup.Basic set_option autoImplicit true
-
@@ -16,7 +16,7 @@ structure Submonoid₁ (M : Type) [Monoid M] where/-- Submonoids in `M` can be seen as sets in `M`. -/ instance [Monoid M] : SetLike (Submonoid₁ M) M where coe := Submonoid₁.carrier coe_injective' := Submonoid₁.ext coe_injective' _ _ := Submonoid₁.ext
-
-
-
@@ -91,7 +91,7 @@ class MonoidHomClass₃ (F : Type) (M N : outParam Type) [Monoid M] [Monoid N] einstance (M N : Type) [Monoid M] [Monoid N] : MonoidHomClass₃ (MonoidHom₁ M N) M N where coe := MonoidHom₁.toFun coe_injective' := MonoidHom₁.ext coe_injective' _ _ := MonoidHom₁.ext map_one := MonoidHom₁.map_one map_mul := MonoidHom₁.map_mul
-
@@ -111,19 +111,19 @@ extends DFunLike F α (fun _ ↦ β) whereinstance (α β : Type) [LE α] [LE β] : OrderPresHomClass (OrderPresHom α β) α β where coe := OrderPresHom.toFun coe_injective' := OrderPresHom.ext coe_injective' _ _ := OrderPresHom.ext le_of_le := OrderPresHom.le_of_le instance (α β : Type) [LE α] [Monoid α] [LE β] [Monoid β] : OrderPresHomClass (OrderPresMonoidHom α β) α β where coe := fun f ↦ f.toOrderPresHom.toFun coe_injective' := OrderPresMonoidHom.ext coe_injective' _ _ := OrderPresMonoidHom.ext le_of_le := fun f ↦ f.toOrderPresHom.le_of_le instance (α β : Type) [LE α] [Monoid α] [LE β] [Monoid β] : MonoidHomClass₃ (OrderPresMonoidHom α β) α β where coe := fun f ↦ f.toOrderPresHom.toFun coe_injective' := OrderPresMonoidHom.ext coe_injective' _ _ := OrderPresMonoidHom.ext map_one := fun f ↦ f.toMonoidHom₁.map_one map_mul := fun f ↦ f.toMonoidHom₁.map_mul
-
-
-
@@ -1,5 +1,5 @@import MIL.Common import Mathlib.GroupTheory.QuotientGroup import Mathlib.GroupTheory.QuotientGroup.Basic set_option autoImplicit true
-
@@ -16,7 +16,7 @@ structure Submonoid₁ (M : Type) [Monoid M] where/-- Submonoids in `M` can be seen as sets in `M`. -/ instance [Monoid M] : SetLike (Submonoid₁ M) M where coe := Submonoid₁.carrier coe_injective' := Submonoid₁.ext coe_injective' _ _ := Submonoid₁.ext
-
@@ -61,12 +61,12 @@ structure Subgroup₁ (G : Type) [Group G] extends Submonoid₁ G where/-- Subgroups in `M` can be seen as sets in `M`. -/ instance [Group G] : SetLike (Subgroup₁ G) G where coe := fun H ↦ H.toSubmonoid₁.carrier coe_injective' := Subgroup₁.ext coe_injective' _ _ := Subgroup₁.ext instance [Group G] (H : Subgroup₁ G) : Group H := { SubMonoid₁Monoid H.toSubmonoid₁ with inv := fun x ↦ ⟨x⁻¹, H.inv_mem x.property⟩ mul_left_inv := fun x ↦ SetCoe.ext (mul_left_inv (x : G)) } inv_mul_cancel := fun x ↦ SetCoe.ext (inv_mul_cancel (x : G)) } class SubgroupClass₁ (S : Type) (G : Type) [Group G] [SetLike S G] extends SubmonoidClass₁ S G : Prop where
-
-
-
@@ -198,8 +198,9 @@ open Complex Polynomialexample : aroots (X ^ 2 + 1 : ℝ[X]) ℂ = {Complex.I, -I} := by suffices roots (X ^ 2 + 1 : ℂ[X]) = {I, -I} by simpa [aroots_def] have factored : (X ^ 2 + 1 : ℂ[X]) = (X - C I) * (X - C (-I)) := by have key : (C I * C I : ℂ[X]) = -1 := by simp [← C_mul] rw [C_neg] linear_combination show (C I * C I : ℂ[X]) = -1 by simp [← C_mul] linear_combination key have p_ne_zero : (X - C I) * (X - C (-I)) ≠ 0 := by intro H apply_fun eval 0 at H
-
-
-
@@ -153,7 +153,7 @@ example {X : Type*} [MetricSpace X] [CompactSpace X] {Y : Type*} [MetricSpace Y]intro x y _ have : (x, y) ∉ K := by simp [hK] simpa [K] using this · rcases K_cpct.exists_forall_le hK continuous_dist.continuousOn with ⟨⟨x₀, x₁⟩, xx_in, H⟩ · rcases K_cpct.exists_isMinOn hK continuous_dist.continuousOn with ⟨⟨x₀, x₁⟩, xx_in, H⟩ use dist x₀ x₁ constructor · change _ < _
-
@@ -163,8 +163,8 @@ example {X : Type*} [MetricSpace X] [CompactSpace X] {Y : Type*} [MetricSpace Y]linarith · intro x x' contrapose! intro hxx' exact H (x, x') hxx' intro (hxx' : (x, x') ∈ K) exact H hxx' example (u : ℕ → X) : CauchySeq u ↔ ∀ ε > 0, ∃ N : ℕ, ∀ m ≥ N, ∀ n ≥ N, dist (u m) (u n) < ε :=
-
-
-
@@ -1,4 +1,4 @@# Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. config: 641199866dfd7d43f34ecf960cb67cbc config: dfa3c760a9c309561b2de03685612f6b tags: 645f666f9bcd5a90fca523b33c5a78b7
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" />
-
@@ -92,9 +92,9 @@<div itemprop="articleBody"> <section id="introduction"> <span id="id1"></span><h1><span class="section-number">1. </span>Introduction<a class="headerlink" href="#introduction" title="Link to this heading"></a></h1> <span id="id1"></span><h1><span class="section-number">1. </span>Introduction<a class="headerlink" href="#introduction" title="Permalink to this heading"></a></h1> <section id="getting-started"> <h2><span class="section-number">1.1. </span>Getting Started<a class="headerlink" href="#getting-started" title="Link to this heading"></a></h2> <h2><span class="section-number">1.1. </span>Getting Started<a class="headerlink" href="#getting-started" title="Permalink to this heading"></a></h2> <p>The goal of this book is to teach you to formalize mathematics using the Lean 4 interactive proof assistant. It assumes that you know some mathematics, but it does not require much.
-
@@ -181,7 +181,7 @@ You can always compare your solutions to the ones in the <code class="docutils lfolder associated with each section.</p> </section> <section id="overview"> <h2><span class="section-number">1.2. </span>Overview<a class="headerlink" href="#overview" title="Link to this heading"></a></h2> <h2><span class="section-number">1.2. </span>Overview<a class="headerlink" href="#overview" title="Permalink to this heading"></a></h2> <p>Put simply, Lean is a tool for building complex expressions in a formal language known as <em>dependent type theory</em>.</p> <p id="index-0">Every expression has a <em>type</em>, and you can use the <cite>#check</cite> command to
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" />
-
@@ -96,13 +96,13 @@<div itemprop="articleBody"> <section id="basics"> <span id="id1"></span><h1><span class="section-number">2. </span>Basics<a class="headerlink" href="#basics" title="Link to this heading"></a></h1> <span id="id1"></span><h1><span class="section-number">2. </span>Basics<a class="headerlink" href="#basics" title="Permalink to this heading"></a></h1> <p>This chapter is designed to introduce you to the nuts and bolts of mathematical reasoning in Lean: calculating, applying lemmas and theorems, and reasoning about generic structures.</p> <section id="calculating"> <h2><span class="section-number">2.1. </span>Calculating<a class="headerlink" href="#calculating" title="Link to this heading"></a></h2> <h2><span class="section-number">2.1. </span>Calculating<a class="headerlink" href="#calculating" title="Permalink to this heading"></a></h2> <p>We generally learn to carry out mathematical calculations without thinking of them as proofs. But when we justify each step in a calculation,
-
@@ -393,7 +393,7 @@ occurrence of <code class="docutils literal notranslate"><span class="pre">a</sp</div> </section> <section id="proving-identities-in-algebraic-structures"> <span id="id2"></span><h2><span class="section-number">2.2. </span>Proving Identities in Algebraic Structures<a class="headerlink" href="#proving-identities-in-algebraic-structures" title="Link to this heading"></a></h2> <span id="id2"></span><h2><span class="section-number">2.2. </span>Proving Identities in Algebraic Structures<a class="headerlink" href="#proving-identities-in-algebraic-structures" title="Permalink to this heading"></a></h2> <p id="index-7">Mathematically, a ring consists of a collection of objects, <span class="math notranslate nohighlight">\(R\)</span>, operations <span class="math notranslate nohighlight">\(+\)</span> <span class="math notranslate nohighlight">\(\times\)</span>, and constants <span class="math notranslate nohighlight">\(0\)</span> and <span class="math notranslate nohighlight">\(1\)</span>, and an operation <span class="math notranslate nohighlight">\(x \mapsto -x\)</span> such that:</p>
-
@@ -713,7 +713,7 @@ but also for the convenience of using a shorter name for thetactic that deals with commutative rings, since it is used more often.</p> </section> <section id="using-theorems-and-lemmas"> <span id="id3"></span><h2><span class="section-number">2.3. </span>Using Theorems and Lemmas<a class="headerlink" href="#using-theorems-and-lemmas" title="Link to this heading"></a></h2> <span id="id3"></span><h2><span class="section-number">2.3. </span>Using Theorems and Lemmas<a class="headerlink" href="#using-theorems-and-lemmas" title="Permalink to this heading"></a></h2> <p id="index-16">Rewriting is great for proving equations, but what about other sorts of theorems? For example, how can we prove an inequality,
-
@@ -980,7 +980,7 @@ to two goals; see <a class="reference internal" href="C03_Logic.html#conjunctionYou are well on your way to becoming a master formalizer.</p> </section> <section id="more-examples-using-apply-and-rw"> <span id="more-on-order-and-divisibility"></span><h2><span class="section-number">2.4. </span>More examples using apply and rw<a class="headerlink" href="#more-examples-using-apply-and-rw" title="Link to this heading"></a></h2> <span id="more-on-order-and-divisibility"></span><h2><span class="section-number">2.4. </span>More examples using apply and rw<a class="headerlink" href="#more-examples-using-apply-and-rw" title="Permalink to this heading"></a></h2> <p id="index-21">The <code class="docutils literal notranslate"><span class="pre">min</span></code> function on the real numbers is uniquely characterized by the following three facts:</p> <div class="highlight-lean notranslate"><div class="highlight"><pre><span></span><span class="k">#check</span><span class="w"> </span><span class="o">(</span><span class="n">min_le_left</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">min</span><span class="w"> </span><span class="n">a</span><span class="w"> </span><span class="n">b</span><span class="w"> </span><span class="bp">≤</span><span class="w"> </span><span class="n">a</span><span class="o">)</span>
-
@@ -1181,7 +1181,7 @@ You can use <code class="docutils literal notranslate"><span class="pre">_root_.either one will work.</p> </section> <section id="proving-facts-about-algebraic-structures"> <span id="id4"></span><h2><span class="section-number">2.5. </span>Proving Facts about Algebraic Structures<a class="headerlink" href="#proving-facts-about-algebraic-structures" title="Link to this heading"></a></h2> <span id="id4"></span><h2><span class="section-number">2.5. </span>Proving Facts about Algebraic Structures<a class="headerlink" href="#proving-facts-about-algebraic-structures" title="Permalink to this heading"></a></h2> <p id="index-27">In <a class="reference internal" href="#proving-identities-in-algebraic-structures"><span class="std std-numref">Section 2.2</span></a>, we saw that many common identities governing the real numbers hold in more general classes of algebraic structures,
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" />
-
@@ -97,7 +97,7 @@<div itemprop="articleBody"> <section id="logic"> <span id="id1"></span><h1><span class="section-number">3. </span>Logic<a class="headerlink" href="#logic" title="Link to this heading"></a></h1> <span id="id1"></span><h1><span class="section-number">3. </span>Logic<a class="headerlink" href="#logic" title="Permalink to this heading"></a></h1> <p>In the last chapter, we dealt with equations, inequalities, and basic mathematical statements like “<span class="math notranslate nohighlight">\(x\)</span> divides <span class="math notranslate nohighlight">\(y\)</span>.”
-
@@ -108,7 +108,7 @@ using logical terms like “and,” “or,” “not,”In this chapter, we show you how to work with statements that are built up in this way.</p> <section id="implication-and-the-universal-quantifier"> <span id="id2"></span><h2><span class="section-number">3.1. </span>Implication and the Universal Quantifier<a class="headerlink" href="#implication-and-the-universal-quantifier" title="Link to this heading"></a></h2> <span id="id2"></span><h2><span class="section-number">3.1. </span>Implication and the Universal Quantifier<a class="headerlink" href="#implication-and-the-universal-quantifier" title="Permalink to this heading"></a></h2> <p>Consider the statement after the <code class="docutils literal notranslate"><span class="pre">#check</span></code>:</p> <div class="highlight-lean notranslate"><div class="highlight"><pre><span></span><span class="k">#check</span><span class="w"> </span><span class="bp">∀</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">ℝ</span><span class="o">,</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="bp">≤</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="bp">→</span><span class="w"> </span><span class="bp">|</span><span class="n">x</span><span class="bp">|</span><span class="w"> </span><span class="bp">=</span><span class="w"> </span><span class="n">x</span> </pre></div>
-
@@ -498,7 +498,7 @@ a lemma name.</p></div> </section> <section id="the-existential-quantifier"> <span id="id3"></span><h2><span class="section-number">3.2. </span>The Existential Quantifier<a class="headerlink" href="#the-existential-quantifier" title="Link to this heading"></a></h2> <span id="id3"></span><h2><span class="section-number">3.2. </span>The Existential Quantifier<a class="headerlink" href="#the-existential-quantifier" title="Permalink to this heading"></a></h2> <p>The existential quantifier, which can be entered as <code class="docutils literal notranslate"><span class="pre">\ex</span></code> in VS Code, is used to represent the phrase “there exists.” The formal expression <code class="docutils literal notranslate"><span class="pre">∃</span> <span class="pre">x</span> <span class="pre">:</span> <span class="pre">ℝ,</span> <span class="pre">2</span> <span class="pre"><</span> <span class="pre">x</span> <span class="pre">∧</span> <span class="pre">x</span> <span class="pre"><</span> <span class="pre">3</span></code> in Lean says
-
@@ -819,7 +819,7 @@ the composition of surjective functions is surjective.</p></div> </section> <section id="negation"> <span id="id4"></span><h2><span class="section-number">3.3. </span>Negation<a class="headerlink" href="#negation" title="Link to this heading"></a></h2> <span id="id4"></span><h2><span class="section-number">3.3. </span>Negation<a class="headerlink" href="#negation" title="Permalink to this heading"></a></h2> <p>The symbol <code class="docutils literal notranslate"><span class="pre">¬</span></code> is meant to express negation, so <code class="docutils literal notranslate"><span class="pre">¬</span> <span class="pre">x</span> <span class="pre"><</span> <span class="pre">y</span></code> says that <code class="docutils literal notranslate"><span class="pre">x</span></code> is not less than <code class="docutils literal notranslate"><span class="pre">y</span></code>, <code class="docutils literal notranslate"><span class="pre">¬</span> <span class="pre">x</span> <span class="pre">=</span> <span class="pre">y</span></code> (or, equivalently, <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">≠</span> <span class="pre">y</span></code>) says that
-
@@ -1084,7 +1084,7 @@ such as a pair of the form <code class="docutils literal notranslate"><span clasOf course, in this example, <code class="docutils literal notranslate"><span class="pre">linarith</span></code> also works.</p> </section> <section id="conjunction-and-iff"> <span id="conjunction-and-biimplication"></span><h2><span class="section-number">3.4. </span>Conjunction and Iff<a class="headerlink" href="#conjunction-and-iff" title="Link to this heading"></a></h2> <span id="conjunction-and-biimplication"></span><h2><span class="section-number">3.4. </span>Conjunction and Iff<a class="headerlink" href="#conjunction-and-iff" title="Permalink to this heading"></a></h2> <p id="index-18">You have already seen that the conjunction symbol, <code class="docutils literal notranslate"><span class="pre">∧</span></code>, is used to express “and.” The <code class="docutils literal notranslate"><span class="pre">constructor</span></code> tactic allows you to prove a statement of
-
@@ -1343,7 +1343,7 @@ to be instantiated to different values.</p></div> </section> <section id="disjunction"> <span id="id5"></span><h2><span class="section-number">3.5. </span>Disjunction<a class="headerlink" href="#disjunction" title="Link to this heading"></a></h2> <span id="id5"></span><h2><span class="section-number">3.5. </span>Disjunction<a class="headerlink" href="#disjunction" title="Permalink to this heading"></a></h2> <p id="index-21">The canonical way to prove a disjunction <code class="docutils literal notranslate"><span class="pre">A</span> <span class="pre">∨</span> <span class="pre">B</span></code> is to prove <code class="docutils literal notranslate"><span class="pre">A</span></code> or to prove <code class="docutils literal notranslate"><span class="pre">B</span></code>. The <code class="docutils literal notranslate"><span class="pre">left</span></code> tactic chooses <code class="docutils literal notranslate"><span class="pre">A</span></code>,
-
@@ -1585,7 +1585,7 @@ using <code class="docutils literal notranslate"><span class="pre">by_cases</spa</div> </section> <section id="sequences-and-convergence"> <span id="id6"></span><h2><span class="section-number">3.6. </span>Sequences and Convergence<a class="headerlink" href="#sequences-and-convergence" title="Link to this heading"></a></h2> <span id="id6"></span><h2><span class="section-number">3.6. </span>Sequences and Convergence<a class="headerlink" href="#sequences-and-convergence" title="Permalink to this heading"></a></h2> <p>We now have enough skills at our disposal to do some real mathematics. In Lean, we can represent a sequence <span class="math notranslate nohighlight">\(s_0, s_1, s_2, \ldots\)</span> of real numbers as a function <code class="docutils literal notranslate"><span class="pre">s</span> <span class="pre">:</span> <span class="pre">ℕ</span> <span class="pre">→</span> <span class="pre">ℝ</span></code>.
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" />
-
@@ -94,7 +94,7 @@<div itemprop="articleBody"> <section id="sets-and-functions"> <span id="id1"></span><h1><span class="section-number">4. </span>Sets and Functions<a class="headerlink" href="#sets-and-functions" title="Link to this heading"></a></h1> <span id="id1"></span><h1><span class="section-number">4. </span>Sets and Functions<a class="headerlink" href="#sets-and-functions" title="Permalink to this heading"></a></h1> <p>The vocabulary of sets, relations, and functions provides a uniform language for carrying out constructions in all the branches of mathematics.
-
@@ -127,7 +127,7 @@ from real numbers to real numbers.The distinction between types and sets takes some getting used to, but this chapter will take you through the essentials.</p> <section id="sets"> <span id="id2"></span><h2><span class="section-number">4.1. </span>Sets<a class="headerlink" href="#sets" title="Link to this heading"></a></h2> <span id="id2"></span><h2><span class="section-number">4.1. </span>Sets<a class="headerlink" href="#sets" title="Permalink to this heading"></a></h2> <p id="index-0">If <code class="docutils literal notranslate"><span class="pre">α</span></code> is any type, the type <code class="docutils literal notranslate"><span class="pre">Set</span> <span class="pre">α</span></code> consists of sets of elements of <code class="docutils literal notranslate"><span class="pre">α</span></code>. This type supports the usual set-theoretic operations and relations.
-
@@ -338,12 +338,15 @@ So we can turn the property of being even into the set of even numbers:</p><span class="kd">example</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">evens</span><span class="w"> </span><span class="bp">∪</span><span class="w"> </span><span class="n">odds</span><span class="w"> </span><span class="bp">=</span><span class="w"> </span><span class="n">univ</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">by</span> <span class="w"> </span><span class="n">rw</span><span class="w"> </span><span class="o">[</span><span class="n">evens</span><span class="o">,</span><span class="w"> </span><span class="n">odds</span><span class="o">]</span> <span class="w"> </span><span class="n">ext</span><span class="w"> </span><span class="n">n</span> <span class="w"> </span><span class="n">simp</span> <span class="w"> </span><span class="n">simp</span><span class="w"> </span><span class="o">[</span><span class="bp">-</span><span class="n">Nat.not_even_iff_odd</span><span class="o">]</span> <span class="w"> </span><span class="n">apply</span><span class="w"> </span><span class="n">Classical.em</span> </pre></div> </div> <p>You should step through this proof and make sure you understand what is going on. Note we tell the simplifier to <em>not</em> use the lemma <code class="docutils literal notranslate"><span class="pre">Nat.not_even_iff</span></code> because we want to keep <code class="docutils literal notranslate"><span class="pre">¬</span> <span class="pre">Even</span> <span class="pre">n</span></code> in our goal. Try deleting the line <code class="docutils literal notranslate"><span class="pre">rw</span> <span class="pre">[evens,</span> <span class="pre">odds]</span></code> and confirm that the proof still works.</p> <p>In fact, set-builder notation is used to define</p>
-
@@ -371,7 +374,7 @@ Use <code class="docutils literal notranslate"><span class="pre">intro</span> <sand use the simplifier to reduce the set-theoretic constructions to logic. We also recommend using the theorems <code class="docutils literal notranslate"><span class="pre">Nat.Prime.eq_two_or_odd</span></code> and <code class="docutils literal notranslate"><span class="pre">Nat.even_iff</span></code>.</p> <code class="docutils literal notranslate"><span class="pre">Nat.Prime.eq_two_or_odd</span></code> and <code class="docutils literal notranslate"><span class="pre">Nat.odd_iff</span></code>.</p> <div class="highlight-lean notranslate"><div class="highlight"><pre><span></span><span class="kd">example</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="bp">|</span><span class="w"> </span><span class="n">Nat.Prime</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">}</span><span class="w"> </span><span class="bp">∩</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="bp">|</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="bp">></span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">}</span><span class="w"> </span><span class="bp">⊆</span><span class="w"> </span><span class="o">{</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="bp">|</span><span class="w"> </span><span class="bp">¬</span><span class="n">Even</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">}</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">by</span> <span class="w"> </span><span class="gr">sorry</span> </pre></div>
-
@@ -556,7 +559,7 @@ and intersection.</p><code class="docutils literal notranslate"><span class="pre">sUnion_eq_biUnion</span></code> and <code class="docutils literal notranslate"><span class="pre">sInter_eq_biInter</span></code>.</p> </section> <section id="functions"> <span id="id3"></span><h2><span class="section-number">4.2. </span>Functions<a class="headerlink" href="#functions" title="Link to this heading"></a></h2> <span id="id3"></span><h2><span class="section-number">4.2. </span>Functions<a class="headerlink" href="#functions" title="Permalink to this heading"></a></h2> <p>If <code class="docutils literal notranslate"><span class="pre">f</span> <span class="pre">:</span> <span class="pre">α</span> <span class="pre">→</span> <span class="pre">β</span></code> is a function and <code class="docutils literal notranslate"><span class="pre">p</span></code> is a set of elements of type <code class="docutils literal notranslate"><span class="pre">β</span></code>, the library defines <code class="docutils literal notranslate"><span class="pre">preimage</span> <span class="pre">f</span> <span class="pre">p</span></code>, written <code class="docutils literal notranslate"><span class="pre">f</span> <span class="pre">⁻¹'</span> <span class="pre">p</span></code>,
-
@@ -864,7 +867,7 @@ and then fill in the two lines that are missing.</p></div> </section> <section id="the-schroder-bernstein-theorem"> <span id="the-schroeder-bernstein-theorem"></span><h2><span class="section-number">4.3. </span>The Schröder-Bernstein Theorem<a class="headerlink" href="#the-schroder-bernstein-theorem" title="Link to this heading"></a></h2> <span id="the-schroeder-bernstein-theorem"></span><h2><span class="section-number">4.3. </span>The Schröder-Bernstein Theorem<a class="headerlink" href="#the-schroder-bernstein-theorem" title="Permalink to this heading"></a></h2> <p>We close this chapter with an elementary but nontrivial theorem of set theory. Let <span class="math notranslate nohighlight">\(\alpha\)</span> and <span class="math notranslate nohighlight">\(\beta\)</span> be sets. (In our formalization, they will actually be types.)
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" />
-
@@ -94,14 +94,14 @@<div itemprop="articleBody"> <section id="elementary-number-theory"> <span id="number-theory"></span><h1><span class="section-number">5. </span>Elementary Number Theory<a class="headerlink" href="#elementary-number-theory" title="Link to this heading"></a></h1> <span id="number-theory"></span><h1><span class="section-number">5. </span>Elementary Number Theory<a class="headerlink" href="#elementary-number-theory" title="Permalink to this heading"></a></h1> <p>In this chapter, we show you how to formalize some elementary results in number theory. As we deal with more substantive mathematical content, the proofs will get longer and more involved, building on the skills you have already mastered.</p> <section id="irrational-roots"> <span id="section-irrational-roots"></span><h2><span class="section-number">5.1. </span>Irrational Roots<a class="headerlink" href="#irrational-roots" title="Link to this heading"></a></h2> <span id="section-irrational-roots"></span><h2><span class="section-number">5.1. </span>Irrational Roots<a class="headerlink" href="#irrational-roots" title="Permalink to this heading"></a></h2> <p>Let’s start with a fact known to the ancient Greeks, namely, that the square root of 2 is irrational. If we suppose otherwise,
-
@@ -404,7 +404,7 @@ In the next chapter, we will begin to develop the means toappreciate the way that Lean supports this sort of generality.</p> </section> <section id="induction-and-recursion"> <span id="section-induction-and-recursion"></span><h2><span class="section-number">5.2. </span>Induction and Recursion<a class="headerlink" href="#induction-and-recursion" title="Link to this heading"></a></h2> <span id="section-induction-and-recursion"></span><h2><span class="section-number">5.2. </span>Induction and Recursion<a class="headerlink" href="#induction-and-recursion" title="Permalink to this heading"></a></h2> <p>The set of natural numbers <span class="math notranslate nohighlight">\(\mathbb{N} = \{ 0, 1, 2, \ldots \}\)</span> is not only fundamentally important in its own right, but also a plays a central role in the construction of new mathematical objects.
-
@@ -710,7 +710,7 @@ The function <code class="docutils literal notranslate"><span class="pre">pred</</div> </section> <section id="infinitely-many-primes"> <span id="section-infinitely-many-primes"></span><h2><span class="section-number">5.3. </span>Infinitely Many Primes<a class="headerlink" href="#infinitely-many-primes" title="Link to this heading"></a></h2> <span id="section-infinitely-many-primes"></span><h2><span class="section-number">5.3. </span>Infinitely Many Primes<a class="headerlink" href="#infinitely-many-primes" title="Permalink to this heading"></a></h2> <p>Let us continue our exploration of induction and recursion with another mathematical standard: a proof that there are infinitely many primes. One way to formulate this is as the statement that
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" />
-
@@ -94,7 +94,7 @@<div itemprop="articleBody"> <section id="structures"> <span id="id1"></span><h1><span class="section-number">6. </span>Structures<a class="headerlink" href="#structures" title="Link to this heading"></a></h1> <span id="id1"></span><h1><span class="section-number">6. </span>Structures<a class="headerlink" href="#structures" title="Permalink to this heading"></a></h1> <p>Modern mathematics makes essential use of algebraic structures, which encapsulate patterns that can be instantiated in
-
@@ -114,7 +114,7 @@ algebraic structures on your own.</p><p>For more technical detail, you can consult <a class="reference external" href="https://leanprover.github.io/theorem_proving_in_lean/">Theorem Proving in Lean</a>, and a paper by Anne Baanen, <a class="reference external" href="https://arxiv.org/abs/2202.01629">Use and abuse of instance parameters in the Lean mathematical library</a>.</p> <section id="defining-structures"> <span id="section-structures"></span><h2><span class="section-number">6.1. </span>Defining structures<a class="headerlink" href="#defining-structures" title="Link to this heading"></a></h2> <span id="section-structures"></span><h2><span class="section-number">6.1. </span>Defining structures<a class="headerlink" href="#defining-structures" title="Permalink to this heading"></a></h2> <p>In the broadest sense of the term, a <em>structure</em> is a specification of a collection of data, possibly with constraints that the data is required to satisfy.
-
@@ -475,7 +475,7 @@ weaving structures together into a rich, interconnected hierarchy,and for managing the interactions between them.</p> </section> <section id="algebraic-structures"> <span id="section-algebraic-structures"></span><h2><span class="section-number">6.2. </span>Algebraic Structures<a class="headerlink" href="#algebraic-structures" title="Link to this heading"></a></h2> <span id="section-algebraic-structures"></span><h2><span class="section-number">6.2. </span>Algebraic Structures<a class="headerlink" href="#algebraic-structures" title="Permalink to this heading"></a></h2> <p>To clarify what we mean by the phrase <em>algebraic structure</em>, it will help to consider some examples.</p> <ol class="arabic simple">
-
@@ -1024,7 +1024,7 @@ When used wisely, however, class inference is a powerful tool.It is what makes algebraic reasoning possible in Lean.</p> </section> <section id="building-the-gaussian-integers"> <span id="section-building-the-gaussian-integers"></span><h2><span class="section-number">6.3. </span>Building the Gaussian Integers<a class="headerlink" href="#building-the-gaussian-integers" title="Link to this heading"></a></h2> <span id="section-building-the-gaussian-integers"></span><h2><span class="section-number">6.3. </span>Building the Gaussian Integers<a class="headerlink" href="#building-the-gaussian-integers" title="Permalink to this heading"></a></h2> <p>We will now illustrate the use of the algebraic hierarchy in Lean by building an important mathematical object, the <em>Gaussian integers</em>, and showing that it is a Euclidean domain. In other words, according to
-
@@ -1174,7 +1174,7 @@ this is not the topic of the current discussion.</p><span class="w"> </span><span class="n">add_zero</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">by</span> <span class="w"> </span><span class="n">intro</span> <span class="w"> </span><span class="n">ext</span><span class="w"> </span><span class="bp"><;></span><span class="w"> </span><span class="n">simp</span> <span class="w"> </span><span class="n">add_left_neg</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">by</span> <span class="w"> </span><span class="n">neg_add_cancel</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">by</span> <span class="w"> </span><span class="n">intro</span> <span class="w"> </span><span class="n">ext</span><span class="w"> </span><span class="bp"><;></span><span class="w"> </span><span class="n">simp</span> <span class="w"> </span><span class="n">add_comm</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">by</span>
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" />
-
@@ -93,7 +93,7 @@<div itemprop="articleBody"> <section id="hierarchies"> <span id="id1"></span><h1><span class="section-number">7. </span>Hierarchies<a class="headerlink" href="#hierarchies" title="Link to this heading"></a></h1> <span id="id1"></span><h1><span class="section-number">7. </span>Hierarchies<a class="headerlink" href="#hierarchies" title="Permalink to this heading"></a></h1> <p>We have seen in <a class="reference internal" href="C06_Structures.html#structures"><span class="std std-numref">Chapter 6</span></a> how to define the class of groups and build instances of this class, and then how to build an instance of the commutative ring class. But of course there is a hierarchy here: a
-
@@ -110,7 +110,7 @@ so we will used indices to distinguish our version. For instance we will have <cas our version of <code class="docutils literal notranslate"><span class="pre">Ring</span></code>. Since we will gradually explain more powerful ways of formalizing structures, those indices will sometimes grow beyond one.</p> <section id="basics"> <span id="section-hierarchies-basics"></span><h2><span class="section-number">7.1. </span>Basics<a class="headerlink" href="#basics" title="Link to this heading"></a></h2> <span id="section-hierarchies-basics"></span><h2><span class="section-number">7.1. </span>Basics<a class="headerlink" href="#basics" title="Permalink to this heading"></a></h2> <p>At the very bottom of all hierarchies in Lean, we find data-carrying classes. The following class records that the given type <code class="docutils literal notranslate"><span class="pre">α</span></code> is endowed with a distinguished element called <code class="docutils literal notranslate"><span class="pre">one</span></code>. At this stage, it has no property at all.</p>
-
@@ -637,7 +637,7 @@ that every preorder comes with a <code class="docutils literal notranslate"><spa-/</p> </section> <section id="morphisms"> <span id="section-hierarchies-morphisms"></span><h2><span class="section-number">7.2. </span>Morphisms<a class="headerlink" href="#morphisms" title="Link to this heading"></a></h2> <span id="section-hierarchies-morphisms"></span><h2><span class="section-number">7.2. </span>Morphisms<a class="headerlink" href="#morphisms" title="Permalink to this heading"></a></h2> <p>So far in this chapter, we discussed how to create a hierarchy of mathematical structures. But defining structures is not really completed until we have morphisms. There are two main approaches here. The most obvious one is to define a predicate on functions.</p>
-
@@ -804,7 +804,7 @@ Let us redefine our <code class="docutils literal notranslate"><span class="pre"<span class="kd">instance</span><span class="w"> </span><span class="o">(</span><span class="n">M</span><span class="w"> </span><span class="n">N</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="kt">Type</span><span class="o">)</span><span class="w"> </span><span class="o">[</span><span class="n">Monoid</span><span class="w"> </span><span class="n">M</span><span class="o">]</span><span class="w"> </span><span class="o">[</span><span class="n">Monoid</span><span class="w"> </span><span class="n">N</span><span class="o">]</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">MonoidHomClass₃</span><span class="w"> </span><span class="o">(</span><span class="n">MonoidHom₁</span><span class="w"> </span><span class="n">M</span><span class="w"> </span><span class="n">N</span><span class="o">)</span><span class="w"> </span><span class="n">M</span><span class="w"> </span><span class="n">N</span><span class="w"> </span><span class="n">where</span> <span class="w"> </span><span class="n">coe</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">MonoidHom₁.toFun</span> <span class="w"> </span><span class="n">coe_injective'</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">MonoidHom₁.ext</span> <span class="w"> </span><span class="n">coe_injective'</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">MonoidHom₁.ext</span> <span class="w"> </span><span class="n">map_one</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">MonoidHom₁.map_one</span> <span class="w"> </span><span class="n">map_mul</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">MonoidHom₁.map_mul</span> </pre></div>
-
@@ -842,7 +842,7 @@ definitions below.</p></div> </section> <section id="sub-objects"> <span id="section-hierarchies-subobjects"></span><h2><span class="section-number">7.3. </span>Sub-objects<a class="headerlink" href="#sub-objects" title="Link to this heading"></a></h2> <span id="section-hierarchies-subobjects"></span><h2><span class="section-number">7.3. </span>Sub-objects<a class="headerlink" href="#sub-objects" title="Permalink to this heading"></a></h2> <p>After defining some algebraic structure and its morphisms, the next step is to consider sets that inherit this algebraic structure, for instance subgroups or subrings. This largely overlaps with our previous topic. Indeed a set in <code class="docutils literal notranslate"><span class="pre">X</span></code> is implemented as a function from
-
@@ -864,7 +864,7 @@ coercion and <code class="docutils literal notranslate"><span class="pre">Member<span class="sd">/-- Submonoids in `M` can be seen as sets in `M`. -/</span> <span class="kd">instance</span><span class="w"> </span><span class="o">[</span><span class="n">Monoid</span><span class="w"> </span><span class="n">M</span><span class="o">]</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">SetLike</span><span class="w"> </span><span class="o">(</span><span class="n">Submonoid₁</span><span class="w"> </span><span class="n">M</span><span class="o">)</span><span class="w"> </span><span class="n">M</span><span class="w"> </span><span class="n">where</span> <span class="w"> </span><span class="n">coe</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">Submonoid₁.carrier</span> <span class="w"> </span><span class="n">coe_injective'</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">Submonoid₁.ext</span> <span class="w"> </span><span class="n">coe_injective'</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="n">_</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">Submonoid₁.ext</span> </pre></div> </div> <p>Equipped with the above <code class="docutils literal notranslate"><span class="pre">SetLike</span></code> instance, we can already state naturally that
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" />
-
@@ -106,7 +106,7 @@<div itemprop="articleBody"> <section id="groups-and-rings"> <span id="groups-and-ring"></span><h1><span class="section-number">8. </span>Groups and Rings<a class="headerlink" href="#groups-and-rings" title="Link to this heading"></a></h1> <span id="groups-and-ring"></span><h1><span class="section-number">8. </span>Groups and Rings<a class="headerlink" href="#groups-and-rings" title="Permalink to this heading"></a></h1> <p>We saw in <a class="reference internal" href="C02_Basics.html#proving-identities-in-algebraic-structures"><span class="std std-numref">Section 2.2</span></a> how to reason about operations in groups and rings. Later, in <a class="reference internal" href="C06_Structures.html#section-algebraic-structures"><span class="std std-numref">Section 6.2</span></a>, we saw how to define abstract algebraic structures, such as group structures, as well as concrete instances
-
@@ -121,9 +121,9 @@ decisions behind the way the topics are treated.So making sense of some of the examples may require reviewing the background from <a class="reference internal" href="C07_Hierarchies.html#hierarchies"><span class="std std-numref">Chapter 7</span></a>.</p> <section id="monoids-and-groups"> <span id="groups"></span><h2><span class="section-number">8.1. </span>Monoids and Groups<a class="headerlink" href="#monoids-and-groups" title="Link to this heading"></a></h2> <section id="monoids-and-their-morphisms"> <span id="index-1"></span><span id="index-0"></span><h3><span class="section-number">8.1.1. </span>Monoids and their morphisms<a class="headerlink" href="#monoids-and-their-morphisms" title="Link to this heading"></a></h3> <span id="groups"></span><h2><span class="section-number">8.1. </span>Monoids and Groups<a class="headerlink" href="#monoids-and-groups" title="Permalink to this heading"></a></h2> <span class="target" id="index-0"></span><section id="monoids-and-their-morphisms"> <span id="index-1"></span><h3><span class="section-number">8.1.1. </span>Monoids and their morphisms<a class="headerlink" href="#monoids-and-their-morphisms" title="Permalink to this heading"></a></h3> <p>Courses in abstract algebra often start with groups and then progress to rings, fields, and vector spaces. This involves some contortions when discussing multiplication on rings since the multiplication operation does not come from a group structure
-
@@ -173,7 +173,7 @@ composition to compose maps. Instead, we need to use <code class="docutils liter</div> </section> <section id="groups-and-their-morphisms"> <h3><span class="section-number">8.1.2. </span>Groups and their morphisms<a class="headerlink" href="#groups-and-their-morphisms" title="Link to this heading"></a></h3> <h3><span class="section-number">8.1.2. </span>Groups and their morphisms<a class="headerlink" href="#groups-and-their-morphisms" title="Permalink to this heading"></a></h3> <p>We will have much more to say about groups, which are monoids with the extra property that every element has an inverse.</p> <div class="highlight-lean notranslate"><div class="highlight"><pre><span></span><span class="kd">example</span><span class="w"> </span><span class="o">{</span><span class="n">G</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="kt">Type</span><span class="bp">*</span><span class="o">}</span><span class="w"> </span><span class="o">[</span><span class="n">Group</span><span class="w"> </span><span class="n">G</span><span class="o">]</span><span class="w"> </span><span class="o">(</span><span class="n">x</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">G</span><span class="o">)</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="bp">*</span><span class="w"> </span><span class="n">x</span><span class="bp">⁻¹</span><span class="w"> </span><span class="bp">=</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="n">mul_inv_self</span><span class="w"> </span><span class="n">x</span>
-
@@ -236,7 +236,7 @@ Doing so makes the inverse function noncomputable.</p></div> </section> <section id="subgroups"> <h3><span class="section-number">8.1.3. </span>Subgroups<a class="headerlink" href="#subgroups" title="Link to this heading"></a></h3> <h3><span class="section-number">8.1.3. </span>Subgroups<a class="headerlink" href="#subgroups" title="Permalink to this heading"></a></h3> <p>Just as group morphisms are bundled, a subgroup of <code class="docutils literal notranslate"><span class="pre">G</span></code> is also a bundled structure consisting of a set in <code class="docutils literal notranslate"><span class="pre">G</span></code> with the relevant closure properties.</p> <div class="highlight-lean notranslate"><div class="highlight"><pre><span></span><span class="kd">example</span><span class="w"> </span><span class="o">{</span><span class="n">G</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="kt">Type</span><span class="bp">*</span><span class="o">}</span><span class="w"> </span><span class="o">[</span><span class="n">Group</span><span class="w"> </span><span class="n">G</span><span class="o">]</span><span class="w"> </span><span class="o">(</span><span class="n">H</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">Subgroup</span><span class="w"> </span><span class="n">G</span><span class="o">)</span><span class="w"> </span><span class="o">{</span><span class="n">x</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">G</span><span class="o">}</span><span class="w"> </span><span class="o">(</span><span class="n">hx</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="bp">∈</span><span class="w"> </span><span class="n">H</span><span class="o">)</span><span class="w"> </span><span class="o">(</span><span class="n">hy</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="bp">∈</span><span class="w"> </span><span class="n">H</span><span class="o">)</span><span class="w"> </span><span class="o">:</span>
-
@@ -424,7 +424,7 @@ so do not use <code class="docutils literal notranslate"><span class="pre">exact</div> </section> <section id="concrete-groups"> <h3><span class="section-number">8.1.4. </span>Concrete groups<a class="headerlink" href="#concrete-groups" title="Link to this heading"></a></h3> <h3><span class="section-number">8.1.4. </span>Concrete groups<a class="headerlink" href="#concrete-groups" title="Permalink to this heading"></a></h3> <p>One can also manipulate concrete groups in Mathlib, although this is typically more complicated than working with the abstract theory. For instance, given any type <code class="docutils literal notranslate"><span class="pre">X</span></code>, the group of permutations of <code class="docutils literal notranslate"><span class="pre">X</span></code> is <code class="docutils literal notranslate"><span class="pre">Equiv.Perm</span> <span class="pre">X</span></code>.
-
@@ -501,7 +501,7 @@ to <code class="docutils literal notranslate"><span class="pre">PresentedGroup.t</div> </section> <section id="group-actions"> <h3><span class="section-number">8.1.5. </span>Group actions<a class="headerlink" href="#group-actions" title="Link to this heading"></a></h3> <h3><span class="section-number">8.1.5. </span>Group actions<a class="headerlink" href="#group-actions" title="Permalink to this heading"></a></h3> <p>One important way that group theory interacts with the rest of mathematics is through the use of group actions. An action of a group <code class="docutils literal notranslate"><span class="pre">G</span></code> on some type <code class="docutils literal notranslate"><span class="pre">X</span></code> is nothing more than a morphism from <code class="docutils literal notranslate"><span class="pre">G</span></code> to
-
@@ -599,7 +599,7 @@ conjugation, using our definition of <code class="docutils literal notranslate"></div> </section> <section id="quotient-groups"> <span id="id1"></span><h3><span class="section-number">8.1.6. </span>Quotient groups<a class="headerlink" href="#quotient-groups" title="Link to this heading"></a></h3> <span id="id1"></span><h3><span class="section-number">8.1.6. </span>Quotient groups<a class="headerlink" href="#quotient-groups" title="Permalink to this heading"></a></h3> <p>In the above discussion of subgroups acting on groups, we saw the quotient <code class="docutils literal notranslate"><span class="pre">G</span> <span class="pre">⧸</span> <span class="pre">H</span></code> appear. In general this is only a type. It can be endowed with a group structure such that the quotient map is a group morphism if and only if <code class="docutils literal notranslate"><span class="pre">H</span></code> is a normal subgroup (and this group structure is
-
@@ -635,7 +635,7 @@ the first isomorphism theorem.</p>with a quotient group projection <code class="docutils literal notranslate"><span class="pre">Quotient.mk'</span> <span class="pre">N'</span></code>, we can also aim for a morphism from <code class="docutils literal notranslate"><span class="pre">G</span> <span class="pre">⧸</span> <span class="pre">N</span></code> to <code class="docutils literal notranslate"><span class="pre">G'</span> <span class="pre">⧸</span> <span class="pre">N'</span></code>. The condition required on <code class="docutils literal notranslate"><span class="pre">φ</span></code> is usually formulated by saying “<code class="docutils literal notranslate"><span class="pre">φ</span></code> should send <code class="docutils literal notranslate"><span class="pre">N</span></code> inside <code class="docutils literal notranslate"><span class="pre">N'</span></code>.” But this is equivalent to asking that <code class="docutils literal notranslate"><span class="pre">φ</span></code> should pull <code class="docutils literal notranslate"><span class="pre">N'</span></code> back inside <code class="docutils literal notranslate"><span class="pre">N'</span></code>.” But this is equivalent to asking that <code class="docutils literal notranslate"><span class="pre">φ</span></code> should pull <code class="docutils literal notranslate"><span class="pre">N'</span></code> back over <code class="docutils literal notranslate"><span class="pre">N</span></code>, and the latter condition is nicer to work with since the definition of pullback does not involve an existential quantifier.</p> <div class="highlight-lean notranslate"><div class="highlight"><pre><span></span><span class="kd">example</span><span class="w"> </span><span class="o">{</span><span class="n">G</span><span class="w"> </span><span class="n">G'</span><span class="o">:</span><span class="w"> </span><span class="kt">Type</span><span class="bp">*</span><span class="o">}</span><span class="w"> </span><span class="o">[</span><span class="n">Group</span><span class="w"> </span><span class="n">G</span><span class="o">]</span><span class="w"> </span><span class="o">[</span><span class="n">Group</span><span class="w"> </span><span class="n">G'</span><span class="o">]</span>
-
@@ -704,9 +704,9 @@ morphisms from <code class="docutils literal notranslate"><span class="pre">G</section> </section> <section id="rings"> <span id="id2"></span><h2><span class="section-number">8.2. </span>Rings<a class="headerlink" href="#rings" title="Link to this heading"></a></h2> <span id="id2"></span><h2><span class="section-number">8.2. </span>Rings<a class="headerlink" href="#rings" title="Permalink to this heading"></a></h2> <section id="rings-their-units-morphisms-and-subrings"> <span id="index-4"></span><h3><span class="section-number">8.2.1. </span>Rings, their units, morphisms and subrings<a class="headerlink" href="#rings-their-units-morphisms-and-subrings" title="Link to this heading"></a></h3> <span id="index-4"></span><h3><span class="section-number">8.2.1. </span>Rings, their units, morphisms and subrings<a class="headerlink" href="#rings-their-units-morphisms-and-subrings" title="Permalink to this heading"></a></h3> <p>The type of ring structures on a type <code class="docutils literal notranslate"><span class="pre">R</span></code> is <code class="docutils literal notranslate"><span class="pre">Ring</span> <span class="pre">R</span></code>. The variant where multiplication is assumed to be commutative is <code class="docutils literal notranslate"><span class="pre">CommRing</span> <span class="pre">R</span></code>. We have already seen that the <code class="docutils literal notranslate"><span class="pre">ring</span></code> tactic will prove any equality that follows from the axioms of a commutative ring.</p>
-
@@ -763,7 +763,7 @@ a subring.</p><p>Also notice that <code class="docutils literal notranslate"><span class="pre">RingHom.range</span></code> produces a subring.</p> </section> <section id="ideals-and-quotients"> <h3><span class="section-number">8.2.2. </span>Ideals and quotients<a class="headerlink" href="#ideals-and-quotients" title="Link to this heading"></a></h3> <h3><span class="section-number">8.2.2. </span>Ideals and quotients<a class="headerlink" href="#ideals-and-quotients" title="Permalink to this heading"></a></h3> <p>For historical reasons, Mathlib only has a theory of ideals for commutative rings. (The ring library was originally developed to make quick progress toward the foundations of modern algebraic geometry.) So in this section we will work with commutative (semi)rings.
-
@@ -936,7 +936,7 @@ Remember that the <code class="docutils literal notranslate"><span class="pre">r</div> </section> <section id="algebras-and-polynomials"> <h3><span class="section-number">8.2.3. </span>Algebras and polynomials<a class="headerlink" href="#algebras-and-polynomials" title="Link to this heading"></a></h3> <h3><span class="section-number">8.2.3. </span>Algebras and polynomials<a class="headerlink" href="#algebras-and-polynomials" title="Permalink to this heading"></a></h3> <p>Given a commutative (semi)ring <code class="docutils literal notranslate"><span class="pre">R</span></code>, an <em>algebra over</em> <code class="docutils literal notranslate"><span class="pre">R</span></code> is a semiring <code class="docutils literal notranslate"><span class="pre">A</span></code> equipped with a ring morphism whose image commutes with every element of <code class="docutils literal notranslate"><span class="pre">A</span></code>. This is encoded as a type class <code class="docutils literal notranslate"><span class="pre">Algebra</span> <span class="pre">R</span> <span class="pre">A</span></code>.
-
@@ -1068,8 +1068,9 @@ for <code class="docutils literal notranslate"><span class="pre">roots</span></c<span class="kd">example</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">aroots</span><span class="w"> </span><span class="o">(</span><span class="n">X</span><span class="w"> </span><span class="bp">^</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="bp">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">ℝ</span><span class="o">[</span><span class="n">X</span><span class="o">])</span><span class="w"> </span><span class="n">ℂ</span><span class="w"> </span><span class="bp">=</span><span class="w"> </span><span class="o">{</span><span class="n">Complex.I</span><span class="o">,</span><span class="w"> </span><span class="bp">-</span><span class="n">I</span><span class="o">}</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">by</span> <span class="w"> </span><span class="k">suffices</span><span class="w"> </span><span class="n">roots</span><span class="w"> </span><span class="o">(</span><span class="n">X</span><span class="w"> </span><span class="bp">^</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="bp">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">ℂ</span><span class="o">[</span><span class="n">X</span><span class="o">])</span><span class="w"> </span><span class="bp">=</span><span class="w"> </span><span class="o">{</span><span class="n">I</span><span class="o">,</span><span class="w"> </span><span class="bp">-</span><span class="n">I</span><span class="o">}</span><span class="w"> </span><span class="kd">by</span><span class="w"> </span><span class="n">simpa</span><span class="w"> </span><span class="o">[</span><span class="n">aroots_def</span><span class="o">]</span> <span class="w"> </span><span class="k">have</span><span class="w"> </span><span class="n">factored</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="o">(</span><span class="n">X</span><span class="w"> </span><span class="bp">^</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="bp">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">ℂ</span><span class="o">[</span><span class="n">X</span><span class="o">])</span><span class="w"> </span><span class="bp">=</span><span class="w"> </span><span class="o">(</span><span class="n">X</span><span class="w"> </span><span class="bp">-</span><span class="w"> </span><span class="n">C</span><span class="w"> </span><span class="n">I</span><span class="o">)</span><span class="w"> </span><span class="bp">*</span><span class="w"> </span><span class="o">(</span><span class="n">X</span><span class="w"> </span><span class="bp">-</span><span class="w"> </span><span class="n">C</span><span class="w"> </span><span class="o">(</span><span class="bp">-</span><span class="n">I</span><span class="o">))</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">by</span> <span class="w"> </span><span class="k">have</span><span class="w"> </span><span class="n">key</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="o">(</span><span class="n">C</span><span class="w"> </span><span class="n">I</span><span class="w"> </span><span class="bp">*</span><span class="w"> </span><span class="n">C</span><span class="w"> </span><span class="n">I</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">ℂ</span><span class="o">[</span><span class="n">X</span><span class="o">])</span><span class="w"> </span><span class="bp">=</span><span class="w"> </span><span class="bp">-</span><span class="mi">1</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">by</span><span class="w"> </span><span class="n">simp</span><span class="w"> </span><span class="o">[</span><span class="bp">←</span><span class="w"> </span><span class="n">C_mul</span><span class="o">]</span> <span class="w"> </span><span class="n">rw</span><span class="w"> </span><span class="o">[</span><span class="n">C_neg</span><span class="o">]</span> <span class="w"> </span><span class="n">linear_combination</span><span class="w"> </span><span class="k">show</span><span class="w"> </span><span class="o">(</span><span class="n">C</span><span class="w"> </span><span class="n">I</span><span class="w"> </span><span class="bp">*</span><span class="w"> </span><span class="n">C</span><span class="w"> </span><span class="n">I</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">ℂ</span><span class="o">[</span><span class="n">X</span><span class="o">])</span><span class="w"> </span><span class="bp">=</span><span class="w"> </span><span class="bp">-</span><span class="mi">1</span><span class="w"> </span><span class="kd">by</span><span class="w"> </span><span class="n">simp</span><span class="w"> </span><span class="o">[</span><span class="bp">←</span><span class="w"> </span><span class="n">C_mul</span><span class="o">]</span> <span class="w"> </span><span class="n">linear_combination</span><span class="w"> </span><span class="n">key</span> <span class="w"> </span><span class="k">have</span><span class="w"> </span><span class="n">p_ne_zero</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="o">(</span><span class="n">X</span><span class="w"> </span><span class="bp">-</span><span class="w"> </span><span class="n">C</span><span class="w"> </span><span class="n">I</span><span class="o">)</span><span class="w"> </span><span class="bp">*</span><span class="w"> </span><span class="o">(</span><span class="n">X</span><span class="w"> </span><span class="bp">-</span><span class="w"> </span><span class="n">C</span><span class="w"> </span><span class="o">(</span><span class="bp">-</span><span class="n">I</span><span class="o">))</span><span class="w"> </span><span class="bp">≠</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="kd">by</span> <span class="w"> </span><span class="n">intro</span><span class="w"> </span><span class="n">H</span> <span class="w"> </span><span class="n">apply_fun</span><span class="w"> </span><span class="n">eval</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="n">at</span><span class="w"> </span><span class="n">H</span>
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" />
-
@@ -105,8 +105,8 @@<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <section id="index-0"> <span id="topology"></span><span id="id1"></span><h1><span class="section-number">9. </span>Topology<a class="headerlink" href="#index-0" title="Link to this heading"></a></h1> <span class="target" id="topology"></span><section id="index-0"> <span id="id1"></span><h1><span class="section-number">9. </span>Topology<a class="headerlink" href="#index-0" title="Permalink to this heading"></a></h1> <p>Calculus is based on the concept of a function, which is used to model quantities that depend on one another. For example, it is common to study quantities that change over time.
-
@@ -174,7 +174,7 @@ Formalizing mathematics requires making the relevant notion of “sameness&#fully explicit, and that is exactly what Bourbaki’s theory of filters manages to do.</p> <section id="filters"> <span id="index-1"></span><span id="id2"></span><h2><span class="section-number">9.1. </span>Filters<a class="headerlink" href="#filters" title="Link to this heading"></a></h2> <span id="index-1"></span><span id="id2"></span><h2><span class="section-number">9.1. </span>Filters<a class="headerlink" href="#filters" title="Permalink to this heading"></a></h2> <p>A <em>filter</em> on a type <code class="docutils literal notranslate"><span class="pre">X</span></code> is a collection of sets of <code class="docutils literal notranslate"><span class="pre">X</span></code> that satisfies three conditions that we will spell out below. The notion supports two related ideas:</p>
-
@@ -528,7 +528,7 @@ by definition, the assumption <code class="docutils literal notranslate"><span c</div> </section> <section id="metric-spaces"> <span id="index-2"></span><span id="id3"></span><h2><span class="section-number">9.2. </span>Metric spaces<a class="headerlink" href="#metric-spaces" title="Link to this heading"></a></h2> <span id="index-2"></span><span id="id3"></span><h2><span class="section-number">9.2. </span>Metric spaces<a class="headerlink" href="#metric-spaces" title="Permalink to this heading"></a></h2> <p>Examples in the previous section focus on sequences of real numbers. In this section we will go up a bit in generality and focus on metric spaces. A metric space is a type <code class="docutils literal notranslate"><span class="pre">X</span></code> equipped with a distance function <code class="docutils literal notranslate"><span class="pre">dist</span> <span class="pre">:</span> <span class="pre">X</span> <span class="pre">→</span> <span class="pre">X</span> <span class="pre">→</span> <span class="pre">ℝ</span></code> which is a generalization of the function <code class="docutils literal notranslate"><span class="pre">fun</span> <span class="pre">x</span> <span class="pre">y</span> <span class="pre">↦</span> <span class="pre">|x</span> <span class="pre">-</span> <span class="pre">y|</span></code> from the case where <code class="docutils literal notranslate"><span class="pre">X</span> <span class="pre">=</span> <span class="pre">ℝ</span></code>.</p>
-
@@ -547,7 +547,7 @@ They are called <code class="docutils literal notranslate"><span class="pre">EMe<p>Note that our journey from <code class="docutils literal notranslate"><span class="pre">ℝ</span></code> to metric spaces jumped over the special case of normed spaces that also require linear algebra and will be explained as part of the calculus chapter.</p> <section id="convergence-and-continuity"> <h3><span class="section-number">9.2.1. </span>Convergence and continuity<a class="headerlink" href="#convergence-and-continuity" title="Link to this heading"></a></h3> <h3><span class="section-number">9.2.1. </span>Convergence and continuity<a class="headerlink" href="#convergence-and-continuity" title="Permalink to this heading"></a></h3> <p>Using distance functions, we can already define convergent sequences and continuous functions between metric spaces. They are actually defined in a more general setting covered in the next section, but we have lemmas recasting the definition in terms of distances.</p>
-
@@ -636,7 +636,7 @@ and get our final proof, now bordering obfuscation.</p></div> </section> <section id="balls-open-sets-and-closed-sets"> <h3><span class="section-number">9.2.2. </span>Balls, open sets and closed sets<a class="headerlink" href="#balls-open-sets-and-closed-sets" title="Link to this heading"></a></h3> <h3><span class="section-number">9.2.2. </span>Balls, open sets and closed sets<a class="headerlink" href="#balls-open-sets-and-closed-sets" title="Permalink to this heading"></a></h3> <p>Once we have a distance function, the most important geometric definitions are (open) balls and closed balls.</p> <div class="highlight-lean notranslate"><div class="highlight"><pre><span></span><span class="kd">variable</span><span class="w"> </span><span class="o">(</span><span class="n">r</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="n">ℝ</span><span class="o">)</span>
-
@@ -693,7 +693,7 @@ argument so we can invoke <code class="docutils literal notranslate"><span class</div> </section> <section id="compactness"> <h3><span class="section-number">9.2.3. </span>Compactness<a class="headerlink" href="#compactness" title="Link to this heading"></a></h3> <h3><span class="section-number">9.2.3. </span>Compactness<a class="headerlink" href="#compactness" title="Permalink to this heading"></a></h3> <p>Compactness is an important topological notion. It distinguishes subsets of a metric space that enjoy the same kind of properties as segments in reals compared to other intervals:</p> <ul class="simple">
-
@@ -736,7 +736,7 @@ are deduced from more general versions, some of which will be discussed in later<p>In a compact metric space any closed set is compact, this is <code class="docutils literal notranslate"><span class="pre">IsClosed.isCompact</span></code>.</p> </section> <section id="uniformly-continuous-functions"> <h3><span class="section-number">9.2.4. </span>Uniformly continuous functions<a class="headerlink" href="#uniformly-continuous-functions" title="Link to this heading"></a></h3> <h3><span class="section-number">9.2.4. </span>Uniformly continuous functions<a class="headerlink" href="#uniformly-continuous-functions" title="Permalink to this heading"></a></h3> <p>We now turn to uniformity notions on metric spaces : uniformly continuous functions, Cauchy sequences and completeness. Again those are defined in a more general context but we have lemmas in the metric name space to access their elementary definitions. We start with uniform continuity.</p>
-
@@ -767,7 +767,7 @@ of the distance function on <code class="docutils literal notranslate"><span cla</div> </section> <section id="completeness"> <h3><span class="section-number">9.2.5. </span>Completeness<a class="headerlink" href="#completeness" title="Link to this heading"></a></h3> <h3><span class="section-number">9.2.5. </span>Completeness<a class="headerlink" href="#completeness" title="Permalink to this heading"></a></h3> <p>A Cauchy sequence in a metric space is a sequence whose terms get closer and closer to each other. There are a couple of equivalent ways to state that idea. In particular converging sequences are Cauchy. The converse is true only in so-called <em>complete</em>
-
@@ -859,9 +859,9 @@ define something inductively in the middle of a proof using <code class="docutil</section> </section> <section id="topological-spaces"> <span id="index-4"></span><span id="id4"></span><h2><span class="section-number">9.3. </span>Topological spaces<a class="headerlink" href="#topological-spaces" title="Link to this heading"></a></h2> <span id="index-4"></span><span id="id4"></span><h2><span class="section-number">9.3. </span>Topological spaces<a class="headerlink" href="#topological-spaces" title="Permalink to this heading"></a></h2> <section id="fundamentals"> <h3><span class="section-number">9.3.1. </span>Fundamentals<a class="headerlink" href="#fundamentals" title="Link to this heading"></a></h3> <h3><span class="section-number">9.3.1. </span>Fundamentals<a class="headerlink" href="#fundamentals" title="Permalink to this heading"></a></h3> <p>We now go up in generality and introduce topological spaces. We will review the two main ways to define topological spaces and then explain how the category of topological spaces is much better behaved than the category of metric spaces. Note that we won’t be using Mathlib category theory here, only having
-
@@ -1051,7 +1051,7 @@ Let us explore that constraint “on paper” using notation <span classby being a more functorial theory and having a complete lattice structure for any fixed type.</p> </section> <section id="separation-and-countability"> <h3><span class="section-number">9.3.2. </span>Separation and countability<a class="headerlink" href="#separation-and-countability" title="Link to this heading"></a></h3> <h3><span class="section-number">9.3.2. </span>Separation and countability<a class="headerlink" href="#separation-and-countability" title="Permalink to this heading"></a></h3> <p>We saw that the category of topological spaces have very nice properties. The price to pay for this is existence of rather pathological topological spaces. There are a number of assumptions you can make on a topological space to ensure its behavior
-
@@ -1140,7 +1140,7 @@ of sets can be understood using sequences.</p></div> </section> <section id="id5"> <h3><span class="section-number">9.3.3. </span>Compactness<a class="headerlink" href="#id5" title="Link to this heading"></a></h3> <h3><span class="section-number">9.3.3. </span>Compactness<a class="headerlink" href="#id5" title="Permalink to this heading"></a></h3> <p>Let us now discuss how compactness is defined for topological spaces. As usual there are several ways to think about it and Mathlib goes for the filter version.</p> <p>We first need to define cluster points of filters. Given a filter <code class="docutils literal notranslate"><span class="pre">F</span></code> on a topological space <code class="docutils literal notranslate"><span class="pre">X</span></code>,
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" />
-
@@ -98,8 +98,8 @@<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <section id="index-0"> <span id="differential-calculus"></span><span id="id1"></span><h1><span class="section-number">10. </span>Differential Calculus<a class="headerlink" href="#index-0" title="Link to this heading"></a></h1> <span class="target" id="differential-calculus"></span><section id="index-0"> <span id="id1"></span><h1><span class="section-number">10. </span>Differential Calculus<a class="headerlink" href="#index-0" title="Permalink to this heading"></a></h1> <p>We now consider the formalization of notions from <em>analysis</em>, starting with differentiation in this chapter and turning integration and measure theory in the next.
-
@@ -109,7 +109,7 @@ which is familiar from any introductory calculus class.In <a class="reference internal" href="#normed-spaces"><span class="std std-numref">Section 10.2</span></a>, we then consider the notion of a derivative in a much broader setting.</p> <section id="elementary-differential-calculus"> <span id="index-1"></span><span id="id2"></span><h2><span class="section-number">10.1. </span>Elementary Differential Calculus<a class="headerlink" href="#elementary-differential-calculus" title="Link to this heading"></a></h2> <span id="index-1"></span><span id="id2"></span><h2><span class="section-number">10.1. </span>Elementary Differential Calculus<a class="headerlink" href="#elementary-differential-calculus" title="Permalink to this heading"></a></h2> <p>Let <code class="docutils literal notranslate"><span class="pre">f</span></code> be a function from the reals to the reals. There is a difference between talking about the derivative of <code class="docutils literal notranslate"><span class="pre">f</span></code> at a single point and talking about the derivative function.
-
@@ -184,9 +184,9 @@ seems even weirder.</p></div> </section> <section id="differential-calculus-in-normed-spaces"> <span id="normed-spaces"></span><span id="index-2"></span><h2><span class="section-number">10.2. </span>Differential Calculus in Normed Spaces<a class="headerlink" href="#differential-calculus-in-normed-spaces" title="Link to this heading"></a></h2> <span id="normed-spaces"></span><span id="index-2"></span><h2><span class="section-number">10.2. </span>Differential Calculus in Normed Spaces<a class="headerlink" href="#differential-calculus-in-normed-spaces" title="Permalink to this heading"></a></h2> <section id="id3"> <h3><span class="section-number">10.2.1. </span>Normed spaces<a class="headerlink" href="#id3" title="Link to this heading"></a></h3> <h3><span class="section-number">10.2.1. </span>Normed spaces<a class="headerlink" href="#id3" title="Permalink to this heading"></a></h3> <p>Differentiation can be generalized beyond <code class="docutils literal notranslate"><span class="pre">ℝ</span></code> using the notion of a <em>normed vector space</em>, which encapsulates both direction and distance. We start with the notion of a <em>normed group</em>, which is an additive commutative
-
@@ -251,7 +251,7 @@ complete as long as the field itself is complete.</p></div> </section> <section id="continuous-linear-maps"> <h3><span class="section-number">10.2.2. </span>Continuous linear maps<a class="headerlink" href="#continuous-linear-maps" title="Link to this heading"></a></h3> <h3><span class="section-number">10.2.2. </span>Continuous linear maps<a class="headerlink" href="#continuous-linear-maps" title="Permalink to this heading"></a></h3> <p>We now turn to the morphisms in the category of normed spaces, namely, continuous linear maps. In Mathlib, the type of <code class="docutils literal notranslate"><span class="pre">𝕜</span></code>-linear continuous maps between normed spaces
-
@@ -333,7 +333,7 @@ Minor ingredients include <code class="docutils literal notranslate"><span class</div> </section> <section id="asymptotic-comparisons"> <h3><span class="section-number">10.2.3. </span>Asymptotic comparisons<a class="headerlink" href="#asymptotic-comparisons" title="Link to this heading"></a></h3> <h3><span class="section-number">10.2.3. </span>Asymptotic comparisons<a class="headerlink" href="#asymptotic-comparisons" title="Permalink to this heading"></a></h3> <p>Defining differentiability also requires asymptotic comparisons. Mathlib has an extensive library covering the big O and little o relations, whose definitions are shown below.
-
@@ -361,7 +361,7 @@ Here we will only use little o to define differentiability.</p></div> </section> <section id="differentiability"> <h3><span class="section-number">10.2.4. </span>Differentiability<a class="headerlink" href="#differentiability" title="Link to this heading"></a></h3> <h3><span class="section-number">10.2.4. </span>Differentiability<a class="headerlink" href="#differentiability" title="Permalink to this heading"></a></h3> <p>We are now ready to discuss differentiable functions between normed spaces. In analogy the elementary one-dimensional, Mathlib defines a predicate <code class="docutils literal notranslate"><span class="pre">HasFDerivAt</span></code> and a function <code class="docutils literal notranslate"><span class="pre">fderiv</span></code>.
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" />
-
@@ -93,10 +93,10 @@<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> <div itemprop="articleBody"> <section id="index-0"> <span id="integration-and-measure-theory"></span><span id="id1"></span><h1><span class="section-number">11. </span>Integration and Measure Theory<a class="headerlink" href="#index-0" title="Link to this heading"></a></h1> <span class="target" id="integration-and-measure-theory"></span><section id="index-0"> <span id="id1"></span><h1><span class="section-number">11. </span>Integration and Measure Theory<a class="headerlink" href="#index-0" title="Permalink to this heading"></a></h1> <section id="elementary-integration"> <span id="index-1"></span><span id="id2"></span><h2><span class="section-number">11.1. </span>Elementary Integration<a class="headerlink" href="#elementary-integration" title="Link to this heading"></a></h2> <span id="index-1"></span><span id="id2"></span><h2><span class="section-number">11.1. </span>Elementary Integration<a class="headerlink" href="#elementary-integration" title="Permalink to this heading"></a></h2> <p>We first focus on integration of functions on finite intervals in <code class="docutils literal notranslate"><span class="pre">ℝ</span></code>. We can integrate elementary functions.</p> <div class="highlight-lean notranslate"><div class="highlight"><pre><span></span><span class="kn">open</span><span class="w"> </span><span class="n">MeasureTheory</span><span class="w"> </span><span class="n">intervalIntegral</span>
-
@@ -135,7 +135,7 @@ which are not shown here, are not equivalent.)</p></div> </section> <section id="measure-theory"> <span id="index-2"></span><span id="id3"></span><h2><span class="section-number">11.2. </span>Measure Theory<a class="headerlink" href="#measure-theory" title="Link to this heading"></a></h2> <span id="index-2"></span><span id="id3"></span><h2><span class="section-number">11.2. </span>Measure Theory<a class="headerlink" href="#measure-theory" title="Permalink to this heading"></a></h2> <p>The general context for integration in Mathlib is measure theory. Even the elementary integrals of the previous section are in fact Bochner integrals. Bochner integration is a generalization of Lebesgue integration where the target space can be any Banach space,
-
@@ -212,7 +212,7 @@ almost everywhere.</p></div> </section> <section id="integration"> <span id="id4"></span><h2><span class="section-number">11.3. </span>Integration<a class="headerlink" href="#integration" title="Link to this heading"></a></h2> <span id="id4"></span><h2><span class="section-number">11.3. </span>Integration<a class="headerlink" href="#integration" title="Permalink to this heading"></a></h2> <p>Now that we have measurable spaces and measures we can consider integrals. As explained above, Mathlib uses a very general notion of integration that allows any Banach space as the target.
-
-
-
@@ -4,7 +4,7 @@* * Sphinx stylesheet -- basic theme. * * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */
-
@@ -237,10 +237,6 @@ a.headerlink {visibility: hidden; } a:visited { color: #551A8B; } h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink,
-
-
-
@@ -4,7 +4,7 @@* * Base JavaScript utilities for all Sphinx HTML documentation. * * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */
-
-
-
@@ -1,4 +1,5 @@const DOCUMENTATION_OPTIONS = { var DOCUMENTATION_OPTIONS = { URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), VERSION: '0.1', LANGUAGE: 'en', COLLAPSE_INDEX: false,
-
-
-
@@ -5,7 +5,7 @@* This script contains the language-specific data used by searchtools.js, * namely the list of stopwords, stemmer, scorer and splitter. * * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */
-
@@ -13,7 +13,7 @@var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; /* Non-minified version is copied as a separate JS file, if available */ /* Non-minified version is copied as a separate JS file, is available */ /** * Porter Stemmer
-
-
-
@@ -4,7 +4,7 @@* * Sphinx JavaScript utilities for the full-text search. * * :copyright: Copyright 2007-2024 by the Sphinx team, see AUTHORS. * :copyright: Copyright 2007-2023 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */
-
@@ -57,12 +57,12 @@ const _removeChildren = (element) => {const _escapeRegExp = (string) => string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string const _displayItem = (item, searchTerms, highlightTerms) => { const _displayItem = (item, searchTerms) => { const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; const docUrlRoot = DOCUMENTATION_OPTIONS.URL_ROOT; const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; const contentRoot = document.documentElement.dataset.content_root; const [docName, title, anchor, descr, score, _filename] = item;
-
@@ -75,35 +75,28 @@ const _displayItem = (item, searchTerms, highlightTerms) => {if (dirname.match(/\/index\/$/)) dirname = dirname.substring(0, dirname.length - 6); else if (dirname === "index/") dirname = ""; requestUrl = contentRoot + dirname; requestUrl = docUrlRoot + dirname; linkUrl = requestUrl; } else { // normal html builders requestUrl = contentRoot + docName + docFileSuffix; requestUrl = docUrlRoot + docName + docFileSuffix; linkUrl = docName + docLinkSuffix; } let linkEl = listItem.appendChild(document.createElement("a")); linkEl.href = linkUrl + anchor; linkEl.dataset.score = score; linkEl.innerHTML = title; if (descr) { if (descr) listItem.appendChild(document.createElement("span")).innerHTML = " (" + descr + ")"; // highlight search terms in the description if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); } else if (showSearchSummary) fetch(requestUrl) .then((responseData) => responseData.text()) .then((data) => { if (data) listItem.appendChild( Search.makeSearchSummary(data, searchTerms, anchor) Search.makeSearchSummary(data, searchTerms) ); // highlight search terms in the summary if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); }); Search.output.appendChild(listItem); };
-
@@ -116,43 +109,26 @@ const _finishSearch = (resultCount) => {); else Search.status.innerText = _( "Search finished, found ${resultCount} page(s) matching the search query." ).replace('${resultCount}', resultCount); `Search finished, found ${resultCount} page(s) matching the search query.` ); }; const _displayNextItem = ( results, resultCount, searchTerms, highlightTerms, searchTerms ) => { // results left, load the summary and display it // this is intended to be dynamic (don't sub resultsCount) if (results.length) { _displayItem(results.pop(), searchTerms, highlightTerms); _displayItem(results.pop(), searchTerms); setTimeout( () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), () => _displayNextItem(results, resultCount, searchTerms), 5 ); } // search finished, update title and status message else _finishSearch(resultCount); }; // Helper function used by query() to order search results. // Each input is an array of [docname, title, anchor, descr, score, filename]. // Order the results by score (in opposite order of appearance, since the // `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. const _orderResultsByScoreThenName = (a, b) => { const leftScore = a[4]; const rightScore = b[4]; if (leftScore === rightScore) { // same score: sort alphabetically const leftTitle = a[1].toLowerCase(); const rightTitle = b[1].toLowerCase(); if (leftTitle === rightTitle) return 0; return leftTitle > rightTitle ? -1 : 1; // inverted is intentional } return leftScore > rightScore ? 1 : -1; }; /** * Default splitQuery function. Can be overridden in ``sphinx.search`` with a
-
@@ -176,26 +152,13 @@ const Search = {_queued_query: null, _pulse_status: -1, htmlToText: (htmlString, anchor) => { htmlToText: (htmlString) => { const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); for (const removalQuery of [".headerlink", "script", "style"]) { htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); } if (anchor) { const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); if (anchorContent) return anchorContent.textContent; console.warn( `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` ); } // if anchor not specified or not found, fall back to main content htmlElement.querySelectorAll(".headerlink").forEach((el) => { el.remove() }); const docContent = htmlElement.querySelector('[role="main"]'); if (docContent) return docContent.textContent; if (docContent !== undefined) return docContent.textContent; console.warn( "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." "Content block not found. Sphinx search tries to obtain it via '[role=main]'. Could you check your theme or template." ); return ""; },
-
@@ -268,7 +231,16 @@ const Search = {else Search.deferQuery(query); }, _parseQuery: (query) => { /** * execute search (requires search index to be loaded) */ query: (query) => { const filenames = Search._index.filenames; const docNames = Search._index.docnames; const titles = Search._index.titles; const allTitles = Search._index.alltitles; const indexEntries = Search._index.indexentries; // stem the search terms and add them to the correct list const stemmer = new Stemmer(); const searchTerms = new Set();
-
@@ -304,38 +276,21 @@ const Search = {// console.info("required: ", [...searchTerms]); // console.info("excluded: ", [...excludedTerms]); return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; }, /** * execute search (requires search index to be loaded) */ _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { const filenames = Search._index.filenames; const docNames = Search._index.docnames; const titles = Search._index.titles; const allTitles = Search._index.alltitles; const indexEntries = Search._index.indexentries; // Collect multiple result groups to be sorted separately and then ordered. // Each is an array of [docname, title, anchor, descr, score, filename]. const normalResults = []; const nonMainIndexResults = []; // array of [docname, title, anchor, descr, score, filename] let results = []; _removeChildren(document.getElementById("search-progress")); const queryLower = query.toLowerCase().trim(); const queryLower = query.toLowerCase(); for (const [title, foundTitles] of Object.entries(allTitles)) { if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { if (title.toLowerCase().includes(queryLower) && (queryLower.length >= title.length/2)) { for (const [file, id] of foundTitles) { const score = Math.round(Scorer.title * queryLower.length / title.length); const boost = titles[file] === title ? 1 : 0; // add a boost for document titles normalResults.push([ let score = Math.round(100 * queryLower.length / title.length) results.push([ docNames[file], titles[file] !== title ? `${titles[file]} > ${title}` : title, id !== null ? "#" + id : "", null, score + boost, score, filenames[file], ]); }
-
@@ -345,47 +300,46 @@ const Search = {// search for explicit entries in index directives for (const [entry, foundEntries] of Object.entries(indexEntries)) { if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { for (const [file, id, isMain] of foundEntries) { const score = Math.round(100 * queryLower.length / entry.length); const result = [ for (const [file, id] of foundEntries) { let score = Math.round(100 * queryLower.length / entry.length) results.push([ docNames[file], titles[file], id ? "#" + id : "", null, score, filenames[file], ]; if (isMain) { normalResults.push(result); } else { nonMainIndexResults.push(result); } ]); } } } // lookup as object objectTerms.forEach((term) => normalResults.push(...Search.performObjectSearch(term, objectTerms)) results.push(...Search.performObjectSearch(term, objectTerms)) ); // lookup as search terms in fulltext normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); results.push(...Search.performTermsSearch(searchTerms, excludedTerms)); // let the scorer override scores with a custom scoring function if (Scorer.score) { normalResults.forEach((item) => (item[4] = Scorer.score(item))); nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); } // Sort each group of results by score and then alphabetically by name. normalResults.sort(_orderResultsByScoreThenName); nonMainIndexResults.sort(_orderResultsByScoreThenName); // Combine the result groups in (reverse) order. // Non-main index entries are typically arbitrary cross-references, // so display them after other results. let results = [...nonMainIndexResults, ...normalResults]; if (Scorer.score) results.forEach((item) => (item[4] = Scorer.score(item))); // now sort the results by score (in opposite order of appearance, since the // display function below uses pop() to retrieve items) and then // alphabetically results.sort((a, b) => { const leftScore = a[4]; const rightScore = b[4]; if (leftScore === rightScore) { // same score: sort alphabetically const leftTitle = a[1].toLowerCase(); const rightTitle = b[1].toLowerCase(); if (leftTitle === rightTitle) return 0; return leftTitle > rightTitle ? -1 : 1; // inverted is intentional } return leftScore > rightScore ? 1 : -1; }); // remove duplicate search results // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept
-
@@ -399,19 +353,14 @@ const Search = {return acc; }, []); return results.reverse(); }, query: (query) => { const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); results = results.reverse(); // for debugging //Search.lastresults = results.slice(); // a copy // console.info("search results:", Search.lastresults); // print the results _displayNextItem(results, results.length, searchTerms, highlightTerms); _displayNextItem(results, results.length, searchTerms); }, /**
-
@@ -509,18 +458,14 @@ const Search = {// add support for partial matches if (word.length > 2) { const escapedWord = _escapeRegExp(word); if (!terms.hasOwnProperty(word)) { Object.keys(terms).forEach((term) => { if (term.match(escapedWord)) arr.push({ files: terms[term], score: Scorer.partialTerm }); }); } if (!titleTerms.hasOwnProperty(word)) { Object.keys(titleTerms).forEach((term) => { if (term.match(escapedWord)) arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); }); } Object.keys(terms).forEach((term) => { if (term.match(escapedWord) && !terms[word]) arr.push({ files: terms[term], score: Scorer.partialTerm }); }); Object.keys(titleTerms).forEach((term) => { if (term.match(escapedWord) && !titleTerms[word]) arr.push({ files: titleTerms[word], score: Scorer.partialTitle }); }); } // no match but word was a required one
-
@@ -543,8 +488,9 @@ const Search = {// create the mapping files.forEach((file) => { if (!fileMap.has(file)) fileMap.set(file, [word]); else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); if (fileMap.has(file) && fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); else fileMap.set(file, [word]); }); });
-
@@ -595,8 +541,8 @@ const Search = {* search summary for a given text. keywords is a list * of stemmed words. */ makeSearchSummary: (htmlText, keywords, anchor) => { const text = Search.htmlToText(htmlText, anchor); makeSearchSummary: (htmlText, keywords) => { const text = Search.htmlToText(htmlText); if (text === "") return null; const textLower = text.toLowerCase();
-
-
-
@@ -29,19 +29,14 @@ const _highlight = (node, addItems, text, className) => {} span.appendChild(document.createTextNode(val.substr(pos, text.length))); const rest = document.createTextNode(val.substr(pos + text.length)); parent.insertBefore( span, parent.insertBefore( rest, document.createTextNode(val.substr(pos + text.length)), node.nextSibling ) ); node.nodeValue = val.substr(0, pos); /* There may be more occurrences of search term in this node. So call this * function recursively on the remaining fragment. */ _highlight(rest, addItems, text, className); if (isInSVG) { const rect = document.createElementNS(
-
@@ -145,10 +140,5 @@ const SphinxHighlight = {}, }; _ready(() => { /* Do not call highlightSearchWords() when we are on the search page. * It will highlight words from the *previous* search query. */ if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); SphinxHighlight.initEscapeListener(); }); _ready(SphinxHighlight.highlightSearchWords); _ready(SphinxHighlight.initEscapeListener);
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-
@@ -16,9 +16,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="#" /> <link rel="search" title="Search" href="search.html" />
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1" />
-
@@ -17,10 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script async="async" src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script src="_static/js/theme.js"></script> <link rel="index" title="Index" href="genindex.html" /> <link rel="search" title="Search" href="search.html" />
-
@@ -88,7 +87,7 @@<div itemprop="articleBody"> <section id="mathematics-in-lean"> <h1>Mathematics in Lean<a class="headerlink" href="#mathematics-in-lean" title="Link to this heading"></a></h1> <h1>Mathematics in Lean<a class="headerlink" href="#mathematics-in-lean" title="Permalink to this heading"></a></h1> <div class="toctree-wrapper compound"> <ul> <li class="toctree-l1"><a class="reference internal" href="C01_Introduction.html">1. Introduction</a><ul>
-
-
-
-
@@ -1,5 +1,5 @@<!DOCTYPE html> <html class="writer-html5" lang="en" data-content_root="./"> <html class="writer-html5" lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
-
@@ -17,9 +17,9 @@<script src="_static/jquery.js?v=5d32c60e"></script> <script src="_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script> <script src="_static/documentation_options.js?v=2709fde1"></script> <script src="_static/doctools.js?v=9a2dae69"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js?v=e031e9a9"></script> <script src="_static/doctools.js?v=888ff710"></script> <script src="_static/sphinx_highlight.js?v=4825356b"></script> <script src="_static/js/theme.js"></script> <script src="_static/searchtools.js"></script> <script src="_static/language_data.js"></script>
-
-
-
@@ -1,1 +1,1 @@Search.setIndex({"alltitles": {"Algebraic Structures": [[5, "algebraic-structures"]], "Algebras and polynomials": [[7, "algebras-and-polynomials"]], "Asymptotic comparisons": [[9, "asymptotic-comparisons"]], "Balls, open sets and closed sets": [[8, "balls-open-sets-and-closed-sets"]], "Basics": [[1, null], [6, "basics"]], "Building the Gaussian Integers": [[5, "building-the-gaussian-integers"]], "Calculating": [[1, "calculating"]], "Compactness": [[8, "compactness"], [8, "id5"]], "Completeness": [[8, "completeness"]], "Concrete groups": [[7, "concrete-groups"]], "Conjunction and Iff": [[2, "conjunction-and-iff"]], "Continuous linear maps": [[9, "continuous-linear-maps"]], "Convergence and continuity": [[8, "convergence-and-continuity"]], "Defining structures": [[5, "defining-structures"]], "Differentiability": [[9, "differentiability"]], "Differential Calculus": [[9, null]], "Differential Calculus in Normed Spaces": [[9, "differential-calculus-in-normed-spaces"]], "Disjunction": [[2, "disjunction"]], "Elementary Differential Calculus": [[9, "elementary-differential-calculus"]], "Elementary Integration": [[10, "elementary-integration"]], "Elementary Number Theory": [[4, null]], "Filters": [[8, "filters"]], "Functions": [[3, "functions"]], "Fundamentals": [[8, "fundamentals"]], "Getting Started": [[0, "getting-started"]], "Group actions": [[7, "group-actions"]], "Groups and Rings": [[7, null]], "Groups and their morphisms": [[7, "groups-and-their-morphisms"]], "Hierarchies": [[6, null]], "Ideals and quotients": [[7, "ideals-and-quotients"]], "Implication and the Universal Quantifier": [[2, "implication-and-the-universal-quantifier"]], "Index": [[11, null]], "Induction and Recursion": [[4, "induction-and-recursion"]], "Infinitely Many Primes": [[4, "infinitely-many-primes"]], "Integration": [[10, "integration"]], "Integration and Measure Theory": [[10, null]], "Introduction": [[0, null]], "Irrational Roots": [[4, "irrational-roots"]], "Logic": [[2, null]], "Mathematics in Lean": [[12, null]], "Measure Theory": [[10, "measure-theory"]], "Metric spaces": [[8, "metric-spaces"]], "Monoids and Groups": [[7, "monoids-and-groups"]], "Monoids and their morphisms": [[7, "monoids-and-their-morphisms"]], "More examples using apply and rw": [[1, "more-examples-using-apply-and-rw"]], "Morphisms": [[6, "morphisms"]], "Negation": [[2, "negation"]], "Normed spaces": [[9, "id3"]], "Overview": [[0, "overview"]], "Proving Facts about Algebraic Structures": [[1, "proving-facts-about-algebraic-structures"]], "Proving Identities in Algebraic Structures": [[1, "proving-identities-in-algebraic-structures"]], "Quotient groups": [[7, "quotient-groups"]], "Rings": [[7, "rings"]], "Rings, their units, morphisms and subrings": [[7, "rings-their-units-morphisms-and-subrings"]], "Separation and countability": [[8, "separation-and-countability"]], "Sequences and Convergence": [[2, "sequences-and-convergence"]], "Sets": [[3, "sets"]], "Sets and Functions": [[3, null]], "Structures": [[5, null]], "Sub-objects": [[6, "sub-objects"]], "Subgroups": [[7, "subgroups"]], "The Existential Quantifier": [[2, "the-existential-quantifier"]], "The Schr\u00f6der-Bernstein Theorem": [[3, "the-schroder-bernstein-theorem"]], "Topological spaces": [[8, "topological-spaces"]], "Topology": [[8, null]], "Uniformly continuous functions": [[8, "uniformly-continuous-functions"]], "Using Theorems and Lemmas": [[1, "using-theorems-and-lemmas"]]}, "docnames": ["C01_Introduction", "C02_Basics", "C03_Logic", "C04_Sets_and_Functions", "C05_Elementary_Number_Theory", "C06_Structures", "C07_Hierarchies", "C08_Groups_and_Rings", "C09_Topology", "C10_Differential_Calculus", "C11_Integration_and_Measure_Theory", "genindex", "index"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2}, "filenames": ["C01_Introduction.rst", "C02_Basics.rst", "C03_Logic.rst", "C04_Sets_and_Functions.rst", "C05_Elementary_Number_Theory.rst", "C06_Structures.rst", "C07_Hierarchies.rst", "C08_Groups_and_Rings.rst", "C09_Topology.rst", "C10_Differential_Calculus.rst", "C11_Integration_and_Measure_Theory.rst", "genindex.rst", "index.rst"], "indexentries": {"abel": [[1, "index-15", false], [7, "index-3", false]], "absolute value": [[1, "index-24", false]], "absurd": [[2, "index-17", false]], "anonymous constructor": [[2, "index-7", false]], "apply": [[1, "index-12", false], [1, "index-17", false]], "assumption": [[2, "index-19", false]], "bounded quantifiers": [[3, "index-3", false]], "by_cases": [[2, "index-23", false]], "by_contra": [[2, "index-14", false]], "by_contra and by_contradiction": [[2, "index-14", false]], "calc": [[1, "index-3", false]], "cases": [[2, "index-8", false]], "change": [[2, "index-2", false]], "check": [[0, "index-0", false]], "command": [[1, "index-9", false]], "commands": [[0, "index-0", false]], "commutative ring": [[1, "index-8", false]], "congr": [[2, "index-25", false]], "constructor": [[2, "index-18", false]], "continuity": [[8, "index-3", false]], "contradiction": [[2, "index-17", false]], "contrapose": [[2, "index-16", false]], "convert": [[2, "index-26", false]], "decide": [[4, "index-0", false]], "definitional equality": [[1, "index-13", false]], "differential calculus": [[9, "index-0", false]], "divisibility": [[1, "index-25", false]], "dsimp": [[2, "index-2", false]], "elementary calculus": [[9, "index-1", false]], "erw": [[2, "index-4", false]], "exact": [[1, "index-12", false], [1, "index-17", false], [1, "index-5", false]], "excluded middle": [[2, "index-22", false]], "exfalso": [[2, "index-17", false]], "exponential": [[1, "index-19", false]], "ext": [[2, "index-24", false]], "extensionality": [[2, "index-24", false]], "field_simp": [[2, "index-11", false]], "filter": [[8, "index-1", false]], "from": [[2, "index-12", false]], "gcd": [[1, "index-26", false]], "goal": [[1, "index-2", false]], "group": [[1, "index-15", false], [7, "index-2", false]], "group (algebraic structure)": [[1, "index-14", false], [7, "index-1", false]], "group (tactic)": [[1, "index-15", false], [7, "index-2", false]], "have": [[1, "index-11", false], [2, "index-12", false]], "implicit argument": [[1, "index-10", false]], "inequalities": [[1, "index-16", false]], "injective function": [[2, "index-5", false]], "integration": [[10, "index-0", false], [10, "index-1", false]], "intro": [[2, "index-0", false]], "lambda abstraction": [[2, "index-1", false]], "lattice": [[1, "index-28", false]], "lcm": [[1, "index-26", false]], "left": [[2, "index-21", false]], "let": [[2, "index-13", false]], "linarith": [[1, "index-18", false]], "local context": [[1, "index-2", false]], "logarithm": [[1, "index-19", false]], "max": [[1, "index-21", false]], "measure theory": [[10, "index-2", false]], "metric space": [[1, "index-30", false], [8, "index-2", false]], "min": [[1, "index-21", false]], "monoid": [[7, "index-0", false]], "monotone function": [[2, "index-3", false]], "namespace": [[1, "index-9", false]], "noncomm_ring": [[1, "index-15", false]], "norm_num": [[1, "index-20", false]], "normed space": [[9, "index-2", false]], "open": [[1, "index-9", false]], "order relation": [[1, "index-27", false]], "partial order": [[1, "index-27", false]], "proof state": [[1, "index-2", false]], "push_neg": [[2, "index-15", false]], "rcases": [[2, "index-9", false]], "real numbers": [[1, "index-1", false]], "refl and reflexivity": [[1, "index-13", false]], "reflexivity": [[1, "index-13", false]], "repeat": [[1, "index-23", false]], "rewrite": [[1, "index-0", false]], "rfl": [[1, "index-13", false]], "right": [[2, "index-21", false]], "ring": [[1, "index-6", false]], "ring (algebraic structure)": [[1, "index-7", false], [7, "index-4", false]], "ring (tactic)": [[1, "index-6", false]], "rintro": [[2, "index-9", false]], "rw": [[1, "index-0", false], [1, "index-4", false]], "rw and rewrite": [[1, "index-0", false], [1, "index-4", false]], "rwa": [[3, "index-2", false]], "set operations": [[3, "index-0", false]], "show": [[1, "index-22", false]], "simp": [[2, "index-20", false], [3, "index-1", false]], "surjective function": [[2, "index-10", false]], "tactics": [[1, "index-0", false], [1, "index-11", false], [1, "index-12", false], [1, "index-13", false], [1, "index-15", false], [1, "index-17", false], [1, "index-18", false], [1, "index-20", false], [1, "index-22", false], [1, "index-23", false], [1, "index-29", false], [1, "index-3", false], [1, "index-4", false], [1, "index-5", false], [1, "index-6", false], [2, "index-0", false], [2, "index-11", false], [2, "index-12", false], [2, "index-13", false], [2, "index-14", false], [2, "index-15", false], [2, "index-16", false], [2, "index-17", false], [2, "index-18", false], [2, "index-19", false], [2, "index-2", false], [2, "index-20", false], [2, "index-21", false], [2, "index-23", false], [2, "index-24", false], [2, "index-25", false], [2, "index-26", false], [2, "index-4", false], [2, "index-6", false], [2, "index-8", false], [2, "index-9", false], [3, "index-1", false], [3, "index-2", false], [4, "index-0", false], [7, "index-2", false], [7, "index-3", false], [8, "index-3", false]], "this": [[2, "index-12", false]], "topological space": [[8, "index-4", false]], "topology": [[8, "index-0", false]], "trans": [[1, "index-29", false]], "use": [[2, "index-6", false]]}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "0": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "02463336": 6, "1": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "10": [2, 9], "12": 4, "15": 2, "17": 4, "2": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "256": 8, "263": 6, "27": 4, "2c": 4, "3": [0, 1, 2, 3, 4, 5, 6, 7, 8], "37": 2, "4": [0, 1, 2, 4, 5, 7, 8, 9], "4c": 4, "5": [1, 2, 5, 7, 8, 9], "50": 6, "512": 8, "6": [2, 4, 5, 6, 7, 8, 9], "64": 8, "7": [2, 4, 5, 7], "70": 6, "73": 6, "8": [2, 4, 7, 8], "9": [2, 8], "A": [1, 2, 3, 4, 5, 6, 7, 8, 9], "And": [2, 4, 6, 8], "As": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "At": [0, 1, 2, 4, 5, 6], "Be": [1, 3], "But": [0, 1, 2, 3, 4, 5, 6, 7, 8], "By": [1, 3, 5, 6, 7], "For": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "If": [0, 1, 2, 3, 4, 5, 6, 8], "In": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "It": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "Its": [5, 6], "Not": [1, 5, 8], "Of": [1, 2, 4, 6, 7, 8, 9, 10], "On": [1, 2, 3, 5, 6, 8, 10], "One": [1, 2, 3, 4, 5, 6, 7, 8], "Or": [2, 3], "Such": [0, 1, 2, 6], "That": [0, 4, 5, 6], "The": [0, 1, 4, 5, 6, 7, 8, 9, 10, 12], "Their": [8, 9], "Then": [2, 3, 5, 6, 7, 8, 10], "There": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10], "These": [0, 1, 3, 4, 5, 7, 9, 10], "To": [0, 1, 2, 3, 4, 5, 6, 7, 8], "With": [1, 3, 4, 6, 8], "_": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "_add_mod": 5, "_def": 4, "_eq": 5, "_in": 8, "_inst_1": 5, "_le": 5, "_n": 7, "_root_": [1, 3, 4], "a_0": 3, "a_1": 3, "a_2": 3, "a_def": 3, "a_of_b_of_c": 1, "ab": [0, 2, 5, 7], "abandon": 4, "abbrevi": [1, 2, 3, 5], "abel": [1, 7], "abelian": [1, 5, 6], "abgrpmodul": 6, "abil": 0, "abl": [0, 1, 2, 3, 4, 5, 6, 7, 9], "abn": 2, "about": [0, 2, 3, 4, 5, 6, 7, 8, 9, 12], "abov": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "abs_add": [1, 2], "abs_l": [1, 5], "abs_lt": 2, "abs_mod": 5, "abs_mul": 2, "abs_nonneg": 2, "abs_of_neg": 2, "abs_of_nonneg": [2, 5], "abs_po": 2, "abs_zero": 2, "absa": 2, "absb": 2, "absolut": 2, "absorb": 7, "absorb1": 1, "absorb2": 1, "absorpt": 1, "abstract": [1, 2, 5, 6, 7, 8], "abstractli": 8, "absurd": [2, 4], "abus": 5, "ac": 5, "accept": [0, 1, 2, 8], "access": [1, 3, 5, 6, 7, 8, 10], "accessor": 5, "accommod": [5, 7], "accompani": 5, "accord": 5, "achiev": [5, 6, 8], "acknowledg": 0, "acpo": 2, "across": 6, "act": [1, 7], "activ": 0, "actual": [2, 3, 4, 6, 7, 8], "ad": [1, 2, 3, 4, 5, 6, 8], "adapt": 5, "add": [2, 4, 5, 6, 7, 8, 9], "add_assoc": [1, 4, 5, 6], "add_assoc\u2083": 6, "add_comm": [1, 4, 5, 6, 7], "add_def": 5, "add_im": 5, "add_l": 1, "add_le_add": [1, 2], "add_le_add_left": 1, "add_le_add_right": 1, "add_left_cancel": 1, "add_left_inj": 2, "add_left_neg": [1, 5], "add_lt_add_left": 1, "add_lt_add_of_le_of_lt": 1, "add_lt_add_of_lt_of_l": 1, "add_lt_add_right": 1, "add_mem": 7, "add_mul": [1, 6], "add_mul_mod_self_left": 4, "add_neg_cancel_right": 1, "add_nonneg": [1, 5], "add_one_le_of_lt": 5, "add_po": 1, "add_pos_of_pos_of_nonneg": 1, "add_r": 5, "add_right_cancel": 1, "add_right_neg": 1, "add_smul": [6, 7], "add_sub": 1, "add_sub_cancel": 4, "add_sub_cancel_right": 1, "add_vadd": 7, "add_x": 5, "add_zero": [1, 5, 6], "addact": 7, "addalt": 5, "addalt_comm": 5, "addalt_x": 5, "addcommgroup": [1, 7], "addcommgroup\u2083": 6, "addcommmonoid": 7, "addcommmonoid\u2083": 6, "addcommsemigroup\u2083": 6, "addequiv": 7, "addgroup": [1, 5, 7], "addgrouppoint": 5, "addgroup\u2081": 5, "addgroup\u2082": 5, "addgroup\u2083": 6, "addit": [1, 2, 4, 5, 6, 7, 8, 9, 10], "addmonoid": [6, 7], "addmonoidhom": 7, "addmonoidhom\u2081": 6, "addmonoid\u2083": 6, "addmonoid\u2084": 6, "addsemigroup\u2083": 6, "addsubgroup": 7, "addzeroclass": 6, "adi": 5, "adject": 6, "adopt": 1, "advantag": [2, 3, 4, 5, 7, 9], "ae": [8, 10], "aestronglymeasur": 10, "aeval": 7, "affect": 6, "affin": 7, "aforement": 8, "after": [1, 2, 4, 6, 8, 9], "again": [1, 2, 3, 4, 5, 6, 7, 8], "against": 2, "agre": 3, "aim": [4, 7], "aka": 8, "aleb": 2, "alembert": 7, "alex": 0, "alexandru": 0, "algebra": [4, 6, 8, 9, 10, 12], "algebrahom": 6, "algebramap": 7, "alghom": 7, "algorithm": 5, "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "allow": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "almost": [5, 6, 7, 8, 10], "alon": 3, "along": [1, 4, 7, 8], "alpha": [2, 3], "alreadi": [0, 1, 2, 3, 4, 5, 6, 7, 8], "also": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "altern": [0, 1, 2, 3, 4, 5, 6, 8], "although": [0, 3, 4, 5, 6, 7, 8], "alwai": [0, 1, 2, 3, 5, 6, 7], "ambient": 7, "ambigu": [1, 5], "among": 4, "amount": 7, "an": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "analog": [1, 2, 3, 4, 8], "analogi": [2, 5, 8, 9], "analysi": [0, 5, 9], "ancient": 4, "and_comm": 3, "anecdot": 6, "angl": 2, "ani": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "ann": 5, "annoi": [4, 6], "annot": [1, 2, 3, 4, 5, 6], "anonym": [2, 3, 4, 5, 7], "anoth": [0, 1, 2, 3, 4, 5, 6, 7, 8], "answer": [0, 5, 8], "antisymm": 3, "antisymmetr": [1, 2], "anyhow": 2, "anyth": [2, 5, 8], "anywai": [4, 7], "apart": [5, 6], "api": 1, "appeal": [3, 6], "appear": [0, 1, 2, 5, 6, 7, 8], "appli": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "applic": [1, 2, 5, 7, 10], "apply_fun": 7, "appreci": 4, "approach": [4, 5, 6, 8], "appropri": [1, 2, 3, 5, 6], "approxim": 1, "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "arbitrari": [1, 2, 3, 4, 5, 7], "arbitrarili": [2, 8], "archetyp": 5, "argu": 6, "argument": [1, 2, 3, 4, 5, 6, 7, 8], "aris": 2, "arithmet": 1, "aroot": 7, "aroots_def": 7, "around": [1, 3, 6, 7, 8, 10], "arrang": 5, "arrow": [1, 2, 6, 8], "artifici": 5, "ascii": 6, "ascript": [6, 7], "asid": 3, "ask": [2, 4, 5, 6, 7, 8], "aspect": [0, 5, 7], "assembl": 8, "assert": [2, 3, 6, 7], "assign": [2, 3, 5, 6, 7], "assist": [0, 2, 5], "associ": [0, 1, 2, 4, 5, 6, 7, 8, 10], "assum": [0, 1, 2, 3, 4, 6, 7, 8], "assumpt": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10], "assur": 5, "asymmetri": 2, "attach": 8, "attain": 8, "attempt": 6, "attent": [1, 2, 4, 6, 7, 8], "attop": [8, 10], "attop_basi": 8, "attr": 6, "attract": 2, "attribut": 6, "auto": [1, 6], "autom": [0, 1, 5], "automat": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "aux": [1, 2, 4, 8], "aux_card_eq": 7, "auxiliari": [2, 8], "avail": [0, 1, 2, 4, 5, 6, 7], "averag": 5, "avoid": [1, 2, 3, 4, 5, 6, 7, 9], "awai": [2, 5], "axiom": [1, 2, 3, 5, 6, 7, 8, 10], "axiomat": [1, 2, 3, 5], "b": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "baanen": 5, "back": [0, 1, 2, 5, 6, 7, 8], "background": [0, 7], "backslash": [1, 3], "backward": [2, 8], "bad": [5, 6, 8], "badinst": 6, "bair": [8, 9], "balanc": 1, "ball": [3, 9], "banach": [9, 10], "bar": [0, 1, 2], "bare": 6, "barrier": 6, "bartosz": 0, "base": [0, 2, 3, 4, 6, 7, 8, 9], "basi": [5, 8], "basic": [0, 2, 4, 5, 8, 10, 12], "baz": 1, "bbb": [2, 5], "bc": 5, "bci": 5, "bd": 5, "becaus": [1, 2, 3, 4, 5, 6, 7, 8, 9], "becom": [1, 4, 5, 6, 8], "been": [0, 1, 2, 4, 5, 6, 9], "befor": [0, 1, 2, 3, 4, 5, 6, 7], "begin": [1, 2, 3, 4, 5, 6], "begun": 8, "behav": [2, 3, 6, 8], "behavior": [3, 6, 8], "behind": [3, 7], "being": [1, 3, 5, 7, 8, 9], "belong": [5, 6, 8], "below": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "benefit": 7, "beq": 2, "berman": 0, "bernstein": 12, "besid": 6, "bespok": 5, "best": 0, "beta": [2, 3], "better": [3, 4, 5, 6, 8], "between": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "bewar": 6, "bex": 3, "bex_def": 3, "beyond": [2, 6, 9], "bi": [1, 2, 5], "big": [0, 5, 7, 8, 9], "bigcup_": 3, "bigger": [0, 3, 9], "bigoper": [4, 5, 7], "biject": [3, 5, 7], "bijective_iff_injective_and_card": 7, "bilinear": 10, "binari": [1, 2, 4, 5, 6], "bind": [1, 3], "binder": 6, "bipartit": 5, "bit": [1, 2, 4, 6, 7, 8], "black": [4, 6], "block": [1, 4, 7], "blur": 8, "bochner": 10, "bodi": 7, "boil": 6, "bold": 2, "bolt": 1, "book": [0, 2, 8], "boolean": 1, "border": 8, "borelspac": 10, "boss": 8, "both": [1, 2, 3, 4, 5, 6, 7, 8, 9], "bother": [1, 3], "bottom": [6, 7, 8], "bound": [1, 2, 3, 4, 5, 8, 9, 10], "bounded": 9, "bounded_of_ex_finset": 4, "bourbaki": 8, "box": 4, "bpo": [2, 8], "bq": 5, "brace": 1, "bracket": [1, 2, 5, 6, 7], "branch": [2, 3, 6], "break": 6, "breviti": [1, 5], "briefli": 7, "bring": [3, 4, 8], "broader": [4, 9], "broadest": 5, "brown": 0, "brows": [0, 1, 4, 7], "bryan": 0, "build": [0, 2, 4, 6, 7, 8, 12], "builder": 3, "built": [0, 2, 6, 7], "builtin": 6, "bulb": 5, "bulwi": 0, "bundl": [5, 6, 7, 8, 9], "button": 0, "by_cas": [2, 3, 4], "by_contra": [2, 4], "c": [0, 1, 2, 4, 5, 6, 7, 8, 9, 10], "c_mul": 7, "c_neg": 7, "cach": 0, "calc": [1, 2, 3, 5, 7, 8], "calcul": [0, 2, 4, 5, 12], "calculu": [8, 10, 12], "call": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "candid": 5, "cannot": [2, 3, 4, 5, 6, 7, 8], "canon": [2, 3, 4, 5], "cantor": 3, "cap": 3, "capabl": 5, "capit": 5, "card": 7, "card_congr": 7, "card_dvd_of_l": 7, "card_eq_one_iff_exist": 7, "card_po": 7, "card_sigma": 7, "cardin": [3, 7], "care": [1, 2, 3, 5], "carneiro": 0, "carri": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "carrier": [1, 5, 6, 7], "case": [1, 2, 3, 4, 5, 6, 7, 8, 10], "categor": 8, "categori": [5, 8, 9], "cauchi": 8, "cauchyseq": 8, "cauchyseq_iff": 8, "cauchyseq_of_le_geometric_two": 8, "cauchyseq_tendsto_of_complet": 8, "caveat": 7, "caylei": 7, "cayleyisomorph": 7, "cdist": 8, "cdot": 5, "center": [0, 8], "central": [0, 4], "centuri": 3, "ceq": 2, "certain": [2, 6, 8], "certifi": 0, "cha": 0, "chain": 5, "challeng": [0, 1, 2, 3, 5, 9], "chanc": 2, "chang": [0, 1, 2, 4, 5, 8, 10], "chapter": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "char": 0, "charact": [1, 3, 6], "character": [1, 3, 4, 8, 9], "chat": 0, "cheat": [0, 1], "check": [0, 1, 2, 3, 4, 5, 6, 7, 8], "checksynthord": 6, "chen": 0, "chestnut": 2, "chines": 7, "chineseiso": 7, "chinesemap": 7, "chinesemap_inj": 7, "chinesemap_mk": 7, "chinesemap_surj": 7, "choic": [1, 2, 3, 5, 8], "choos": [0, 2, 3, 4, 5, 6, 7, 8], "choose_spec": 3, "chose": 6, "chosen": [2, 5], "circ": [3, 5], "circl": 7, "circleequ": 7, "claim": 8, "clarifi": 5, "clash": 1, "class": [1, 4, 5, 6, 7, 8, 9, 10], "classic": [2, 3, 4, 7], "claus": 6, "clean": [2, 8], "clear": [1, 2, 4, 5, 6], "clearer": [1, 3, 5], "clearli": 8, "clever": 1, "click": [0, 1, 3, 4, 5, 6], "clock": 0, "clontz": 0, "close": [1, 2, 3, 6, 7, 9, 10], "closed_nhds_basi": 8, "closedbal": 8, "closer": [2, 8], "closur": [7, 8], "closure_iscycl": 7, "cloud": 0, "clue": 7, "clunki": 8, "cluster": 8, "clusterpt": 8, "cmd": [1, 2], "co": [2, 7], "cocki": 1, "code": [0, 1, 2, 3, 5, 6], "codomain": [2, 4, 8], "coe": 6, "coe_inject": 6, "coe_natabs_norm": 5, "coeff": 7, "coeffici": [5, 7], "coefun": 6, "coerc": [6, 7], "coercion": [5, 6, 7, 8, 9], "coincid": [4, 5, 8], "coinduc": 8, "coinduced_compos": 8, "coinduced_le_iff_le_induc": 8, "collari": 0, "collect": [1, 2, 3, 5, 8, 10], "collis": 6, "colon": 2, "comap": [7, 8], "comap_comap": 8, "combin": [1, 2, 5, 6, 7, 8], "come": [0, 1, 2, 3, 4, 5, 6, 7, 8], "comfort": 0, "comm": 7, "comma": 1, "command": [0, 1, 2, 3, 4, 5, 6, 7], "commelin": 0, "comment": [0, 4], "commgroup": 1, "commgroup\u2083": 6, "commmonoid": 6, "commmonoid\u2083": 6, "common": [1, 2, 3, 4, 5, 7, 8], "commonli": [4, 5], "commr": [1, 2, 5, 7], "commsemigroup\u2083": 6, "commsemir": 7, "commun": [0, 4], "commut": [1, 2, 3, 4, 5, 6, 7, 9], "comp": [7, 8], "compact": 10, "compactspac": 8, "compani": 2, "companion": [0, 1], "compar": [0, 5, 6, 8], "comparison": 6, "compat": [1, 7, 8], "compat_mymap": 7, "compl": 10, "complain": 1, "complement": [3, 8, 10], "complementari": 0, "complet": [0, 1, 2, 3, 4, 6, 7, 9], "completespac": [8, 9, 10], "complex": [0, 1, 2, 4, 5, 7, 9, 10], "complic": [1, 2, 6, 7], "compon": [2, 3, 5, 8, 10], "compos": [3, 5, 7, 8], "composit": [2, 3, 5, 6, 7, 8], "compound": [1, 2, 8], "compress": [0, 1, 8], "comput": [0, 2, 3, 4, 5, 7, 9, 10], "computation": 4, "concentr": 3, "concept": [5, 7, 8, 9], "conceptu": [3, 7], "concis": [1, 5, 7], "conclud": [2, 9], "conclus": [1, 2, 4], "concret": [1, 2, 4, 5, 6, 8], "condens": 3, "condit": [3, 4, 6, 7, 8, 9], "confid": 3, "configur": 5, "confirm": [1, 2, 3, 4], "confus": [3, 4, 6, 7, 8], "congr": 2, "congratul": [1, 2, 4], "congruent": 4, "conj": 5, "conj_im": 5, "conj_r": 5, "conjug": [5, 7], "conjugate_on": 7, "conjunct": [1, 6, 12], "connect": [1, 3, 5, 8], "consequ": 7, "consid": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "consist": [1, 3, 5, 6, 7, 8, 9], "constant": [1, 2, 7, 10], "constantli": 7, "constitut": 1, "constraint": [5, 8], "construct": [0, 2, 3, 4, 5, 6, 7, 8], "constructor": [1, 2, 3, 4, 5, 6], "consult": 5, "cont": 9, "contain": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "contdiff": 9, "contdiff_iff_continuous_differenti": 9, "contdiffat": 9, "contend": 4, "content": [0, 1, 2, 4, 8], "context": [1, 2, 4, 5, 6, 7, 8, 9, 10], "contextu": 5, "continu": [0, 1, 4, 5, 6, 10], "continuous_def": 8, "continuous_dist": 8, "continuous_fst": 8, "continuous_id": [6, 8], "continuous_iff": 8, "continuous_iff_coinduced_l": 8, "continuous_linear_map": 9, "continuous_pow": 8, "continuous_snd": 8, "continuousat": [8, 10], "continuousat_extend": 8, "continuousat_iff": 8, "continuouslinearmap": 9, "continuouson": [8, 9], "continuum": 2, "contort": 7, "contract": 2, "contradict": [2, 3, 4], "contradictori": 2, "contrapos": [2, 3, 4], "contrari": 2, "contrast": [2, 3, 5, 6, 8], "contravari": 8, "contribut": [0, 3], "control": 2, "conveni": [1, 2, 3, 5, 6, 7, 8], "convent": [1, 5, 7, 10], "convention": 8, "converg": [10, 12], "convergesto": 2, "convergesto_add": 2, "convergesto_const": 2, "convergesto_mul": 2, "convergesto_mul_const": 2, "convergesto_uniqu": 2, "convers": [0, 2, 4, 7, 8], "convert": [2, 4, 7], "convinc": 5, "convolut": 10, "coordin": 7, "copi": [0, 3, 4, 6, 7, 8], "coprim": [4, 7], "coprime_mn": 4, "core": [0, 4, 5], "corner": 7, "corollari": 7, "correct": [0, 1, 7], "correctli": 3, "correspond": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "could": [0, 1, 2, 4, 5, 6, 7, 8], "count": 7, "count_factors_mul_of_po": 4, "countabl": 10, "counterexampl": [2, 9], "counterpart": 5, "coupl": [1, 2, 6, 8], "cours": [1, 2, 4, 6, 7, 8, 9, 10], "covari": 8, "cover": [0, 1, 3, 6, 7, 8, 9], "creat": [0, 1, 4, 6], "creation": 7, "creativ": 5, "criterion": 8, "crucial": [7, 8], "crude": 4, "cryptic": 2, "ct": 2, "ctrl": [0, 1, 2, 4, 5], "cube": 7, "cue": 5, "cup": 3, "curiou": [1, 6], "curli": [1, 2], "current": [1, 2, 5, 6], "curri": 1, "cursor": [0, 1, 2], "curv": 0, "custom": 5, "cut": 4, "cycl": 7, "cyclic": 7, "czubin": 0, "d": [1, 2, 4, 5, 7, 9], "dai": 3, "danger": [4, 5], "data": [1, 2, 4, 5, 6, 8], "databas": [3, 4, 6, 8], "datatyp": 4, "de": 0, "deal": [1, 2, 3, 4, 5, 8], "dealt": 2, "decid": [4, 7, 8], "decidableeq": 4, "decidablepr": 4, "decis": [4, 7], "declar": [0, 1, 4, 5, 6, 7], "decompos": [0, 3], "decreas": [1, 5], "dedekind": 3, "deduc": [6, 7, 8], "def": [0, 2, 3, 4, 5, 6, 7, 8], "default": [1, 2, 3, 4, 5, 6, 7, 9], "defect": [2, 6, 8], "defin": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12], "definit": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "definition": [1, 4, 5, 6, 8], "degre": 7, "degree_mul": 7, "delet": [1, 2, 3], "delic": 3, "delimit": 1, "demonstr": [6, 8], "deni": 0, "denomin": [2, 4, 5], "denot": [1, 3, 4, 6, 7, 8], "dens": 8, "denseinduc": 8, "densiti": 8, "depend": [0, 2, 3, 4, 5, 6, 7, 8], "deriv": [1, 2, 4, 7, 9, 10], "deriv_add": 9, "deriv_eq_zero": 9, "deriv_zero_of_not_differentiableat": 9, "descend": [6, 7], "describ": [0, 1, 2, 3, 4, 5, 6, 8], "descript": [0, 1, 2, 4, 8], "deserv": 4, "design": [0, 1, 2, 3, 5, 7, 8], "desir": [1, 3, 6, 7, 8], "destruct": 2, "destructur": 6, "det": 10, "detail": [1, 2, 3, 4, 5, 6, 7], "detect": 2, "determin": [1, 5, 7, 8], "develop": [0, 1, 4, 7, 10], "devic": 6, "devot": 8, "dfun": 6, "dfunlik": 6, "di": [2, 5], "dia": 6, "dia_assoc": 6, "dia_inv": 6, "dia_on": 6, "diagram": 3, "diamond": 6, "diaoneclass\u2081": 6, "dia\u2081": 6, "dictionari": 1, "did": [0, 2, 6, 8], "dif_neg": 3, "dif_po": 3, "diff_eq": 3, "differ": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "differenti": [10, 12], "differentiableat": 9, "differentiableon": 9, "difficult": [2, 6], "digress": 8, "dimension": [9, 10], "direct": [1, 2, 3, 6, 7, 8, 9], "directli": [1, 2, 4, 5, 6, 8], "discret": 5, "discuss": [1, 2, 4, 5, 6, 7, 8, 9], "dishwash": 0, "disjoint": [3, 7, 10], "disjunct": [1, 3, 12], "dispens": 4, "displai": [0, 1, 2, 6], "dispos": 2, "dist": [1, 8], "dist_comm": [1, 8], "dist_eq_zero": 8, "dist_le_range_sum_dist": 8, "dist_nonneg": [1, 8], "dist_self": 1, "dist_triangl": [1, 8], "distanc": [1, 2, 8, 9], "distinct": [0, 2, 3, 4, 5, 8], "distinguish": [0, 5, 6, 7, 8, 9], "distract": 6, "distriblattic": 1, "distribut": [1, 4, 5, 6], "div": 5, "div_def": 5, "div_dvd_of_dvd": 4, "div_eq_mul_inv": 5, "div_eq_of_eq_mul_right": 4, "div_lt_self": 4, "div_nonneg": 5, "div_po": 2, "divab": 2, "divac": 2, "divbc": 2, "dive": 0, "divid": [1, 2, 4, 5, 7], "divis": [1, 2, 4, 5, 6], "divisor": [1, 2, 4, 5, 7], "do": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "doc": 0, "document": [0, 1, 3, 4, 6], "doe": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "doesn": [1, 2, 7, 8], "domain": [1, 2, 3, 4, 5, 7, 8], "domin": 10, "don": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "done": [0, 2, 3, 4, 6, 7, 8], "doorn": 0, "dot": [1, 7, 8], "doubl": [2, 3], "doubli": 7, "doubt": 0, "down": [0, 3, 4, 6, 8], "downsid": 7, "dozen": 3, "draw": [1, 5, 6], "drop": 2, "dsimp": [2, 3, 5, 7], "dual": [5, 8], "dualli": 8, "duca": 0, "due": [1, 6], "duplic": 6, "dvd": 1, "dvd_add_iff_left": 4, "dvd_antisymm": 1, "dvd_fac": 4, "dvd_factori": 4, "dvd_gcd": 4, "dvd_gcd_iff": 2, "dvd_iff_exists_eq_mul_left": 4, "dvd_mul": 4, "dvd_mul_left": 1, "dvd_mul_of_dvd_left": 1, "dvd_mul_of_dvd_right": 4, "dvd_mul_right": [2, 4], "dvd_of_dvd_pow": 4, "dvd_prod_of_mem": 4, "dvd_sub": 4, "dvd_tran": 1, "dwell": 3, "e": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "each": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "earlier": [1, 7], "easi": [0, 4, 5, 6, 7, 8], "easier": [0, 1, 3, 4, 6, 8], "easiest": [2, 4], "easili": [1, 4, 5, 6, 7], "ebner": 0, "edit": 0, "editor": [0, 1], "ediv_add_emod": 5, "ediv_lt_of_lt_mul": 5, "ediv_mul_l": 5, "ef": 2, "effect": [1, 3, 6, 8], "effici": [5, 7, 8], "effort": [1, 4], "eg": 2, "eight": 8, "either": [1, 2, 3, 5, 6, 8], "elabor": 8, "ele1": 2, "eleg": 5, "element": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "elementari": [0, 3, 5, 7, 8, 12], "elim": 2, "elim_finite_subcov": 8, "elimin": 1, "els": [2, 3, 4], "em": [2, 3], "emanuel": 0, "emb": 5, "embark": 6, "embed": 7, "embodi": 7, "emetricspac": 8, "emod_lt": 5, "emod_lt_of_po": 5, "emod_nonneg": 5, "emphas": [6, 7], "emphasi": [0, 6], "empti": [3, 4, 5, 7, 8, 10], "enabl": [2, 3, 4, 5], "enat": 4, "encapsul": [3, 5, 9], "encod": [7, 10], "encount": [4, 6], "encourag": [0, 1, 2, 3, 4, 5], "end": [1, 2, 3, 4, 5, 6, 7, 8, 9], "endomorph": 7, "endow": [6, 7], "enforc": 7, "engin": 4, "enjoi": [2, 3, 4, 8], "ennreal": 10, "enough": [0, 1, 2, 3, 4, 6, 7, 8], "ensur": [6, 7, 8], "enter": [0, 1, 2, 3, 7, 8], "enthusiast": 0, "entir": [1, 3, 5, 8, 9], "entourag": 8, "entri": [0, 5, 7], "enumer": [1, 2], "epo": 2, "eq": 5, "eq1": 4, "eq2": 4, "eq_bot_iff_card": 7, "eq_bot_iff_foral": 7, "eq_empty_or_nonempti": 8, "eq_neg_of_add_eq_zero": 1, "eq_of_dvd_of_prim": 4, "eq_of_mul_eq_mul_right": 7, "eq_one_or_self_of_dvd": 4, "eq_top_iff": 7, "eq_two_or_odd": 3, "eq_univ": 3, "eq_univ_of_foral": 3, "eq_zero_iff_mem": 7, "eq_zero_or_eq_zero_of_mul_eq_zero": 2, "equal": [1, 2, 3, 4, 5, 6, 7, 8, 10], "equat": [1, 2, 3, 4, 5], "equilater": 5, "equip": [1, 3, 5, 6, 7, 8, 9, 10], "equiv": [5, 7], "equival": [1, 2, 3, 4, 5, 7, 8, 9, 10], "eras": 4, "eric": 0, "error": [1, 2, 3, 6], "erw": 2, "especi": [1, 2, 5, 6, 7, 8], "essenti": [2, 3, 5, 7, 8], "establish": [0, 1, 2, 3, 4, 5], "eta": 5, "etc": 8, "euclidean": 5, "euclideandomain": 5, "eval": [0, 7], "evalu": 7, "eval\u2082": 7, "even": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10], "even_iff": 3, "even_of_even_sqr": 4, "eventu": [2, 3, 8], "eventually_eventually_nhd": 8, "eventually_left_invers": 9, "eventually_of_foral": 8, "eventually_right_invers": 9, "eventuallyeq": 8, "ever": [0, 8], "everi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "everyth": [1, 2, 6, 8], "everywher": [2, 3, 6, 8, 10], "evid": 5, "evolv": 1, "ex": [0, 2], "ex_finset_of_bound": 4, "exact": [1, 2, 3, 4, 5, 7, 8], "exactli": [1, 2, 3, 5, 6, 7, 8], "exampl": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "except": [1, 2, 5, 7], "exclam": 8, "exclud": [2, 4], "exercis": [0, 1, 2, 3, 5, 6, 7, 8, 9], "exfalso": 2, "exhibit": [2, 8], "exist": [1, 2, 3, 6, 7, 8], "existenti": [3, 7, 12], "exists_abs_le_of_convergesto": 2, "exists_deriv_eq_slop": 9, "exists_deriv_eq_zero": 9, "exists_infinite_prim": 3, "exists_ismaxon": 8, "exists_isminon": 8, "exists_one_lt_norm": 9, "exists_prime_and_dvd": 3, "exists_prime_factor": 4, "exists_prime_factor_mod_4_eq_3": 4, "exists_subgroup_card_pow_prim": 7, "exot": [7, 8], "exp": [1, 3], "exp_le_exp": 1, "exp_log": 3, "exp_lt_exp": 1, "exp_po": [1, 3], "expand": [1, 2, 3, 4, 5, 6], "expect": [1, 2, 3, 4, 5, 6, 7, 8], "experi": [0, 1, 8], "explain": [1, 2, 3, 4, 5, 6, 7, 8, 10], "explan": [0, 7, 8], "explicit": [1, 2, 5, 6, 8], "explicitli": [1, 2, 3, 5, 6, 7, 8, 9], "explor": [4, 8], "expon": 1, "exponenti": 4, "export": 6, "expos": [2, 8], "express": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "ext": [2, 3, 4, 5, 6, 7], "ext_iff": 5, "extend": [1, 3, 4, 5, 6, 8, 10], "extens": [0, 1, 6, 8, 9], "extension": [3, 5], "extra": [1, 2, 3, 5, 6, 7, 8], "extract": [2, 8], "extrem": [0, 6, 8], "f": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "f_": 8, "f_cont": 8, "f_le": 8, "f_ne": 8, "fac": 4, "fac_po": 4, "face": [5, 6, 8], "facilit": [2, 8], "fact": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "factor": [4, 5, 7], "factori": 4, "factorial_po": 4, "factorization_mul": 4, "factorization_pow": 4, "fail": [1, 2, 4, 5, 6, 8, 10], "failur": 6, "fairli": 2, "fals": [1, 2, 3, 4, 6], "falso": 2, "famili": [7, 8, 9], "familiar": [0, 1, 4, 5, 8, 9], "famou": [3, 7], "far": [2, 3, 6, 8], "favor": [1, 5], "fderiv": 9, "fear": 6, "feat": 4, "featur": [0, 2, 4, 7], "feed": 7, "feedback": 0, "feel": [0, 1, 2, 6, 8], "fermatlasttheorem": 0, "fetch": 0, "few": [1, 2, 3, 4, 8], "field": [0, 1, 5, 6, 7, 9], "field_simp": [2, 5], "figur": [0, 1, 2, 5], "file": [0, 1, 4, 5, 6, 7, 8], "fill": [2, 3, 4, 5], "filter": [4, 9, 10, 12], "filter_upward": 8, "filteri": 8, "fin": [5, 7, 10], "final": [1, 2, 3, 5, 7, 8, 10], "finaliso": 7, "find": [0, 1, 2, 4, 5, 6, 8], "finicki": 1, "finish": [1, 2, 3, 4, 7], "finit": [1, 3, 4, 5, 7, 8, 9, 10], "finitedimension": [9, 10], "finset": [4, 5, 7, 8], "fintyp": [7, 8], "first": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "firstcountabletopologi": 8, "fix": [4, 6, 7, 8], "fixm": 5, "flag": [2, 3], "flexibl": 8, "flori": 0, "fn_ub_add": 2, "fneven": 2, "fnhaslb": 2, "fnhasub": 2, "fnlb": 2, "fnodd": 2, "fnub": 2, "fnub_add": 2, "fnuba": 2, "focu": [0, 1, 7, 8, 10], "focus": 8, "folder": 0, "follow": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "font": 7, "foo": [1, 5], "forc": [1, 2, 3, 7], "foreshadow": 1, "forewarn": 0, "forget": 6, "form": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "formal": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "format": 1, "former": 5, "formul": [4, 7, 8], "formula": [7, 10], "forth": 5, "fortiori": 8, "fortun": 3, "forward": [1, 2, 5, 7, 8], "found": [1, 5, 7, 9], "foundat": [2, 3, 4, 5, 7], "four": [2, 5], "fourth": [1, 2], "frac": 5, "fraction": 4, "fraenkel": 2, "framework": 0, "frasa": 0, "free": [0, 1, 7, 8], "freegroup": 7, "freeli": 4, "frequent": 8, "friend": [2, 5], "friendli": 7, "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "front": 2, "frustrat": [0, 6], "fr\u00e9chet": 9, "fst": [5, 8], "fubini": 10, "full": [1, 2, 3, 4, 5, 6, 7, 8], "fulli": [3, 7, 8], "fun": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "function": [1, 2, 4, 5, 6, 7, 9, 10, 12], "functori": 8, "fundament": [0, 4, 5, 6, 10], "funni": 8, "further": [1, 8], "furthermor": 7, "g": [1, 2, 3, 5, 6, 7, 8, 9, 10], "g_": 8, "g_1": 5, "g_2": 5, "g_3": 5, "gabriel": 0, "gadget": [2, 8], "gain": 6, "galoi": [3, 5, 8], "game": [0, 6], "gauss": 7, "gaussian": [2, 7, 12], "gaussianint": 5, "gaussint": 5, "gave": [7, 8], "gcd": [1, 2, 4], "gcd_zero_left": 1, "gcd_zero_right": 1, "gcongr": 5, "ge": [0, 2, 5], "gener": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "genuin": 2, "geometr": 8, "geometri": 7, "get": [1, 2, 3, 4, 6, 7, 8, 9, 12], "gin": 0, "giovanni": 0, "git": 0, "github": [0, 1], "gitpod": 0, "give": [1, 2, 3, 4, 6, 7, 8, 10], "given": [0, 1, 2, 3, 4, 5, 6, 7, 8], "glb": 1, "global": [7, 8], "go": [0, 1, 2, 3, 4, 6, 8], "goal": [0, 1, 2, 3, 4, 5, 8], "goe": [3, 4, 5, 6, 8], "good": [1, 2, 3, 4, 5, 6, 7, 8], "gorbachev": 0, "got": 6, "govern": [1, 5], "gradual": [6, 8], "graph": 5, "grate": [0, 5], "great": [1, 5], "greater": [0, 1, 2, 3, 4, 8], "greatest": [1, 5, 8], "greef": 0, "greek": [1, 4], "group": [0, 1, 2, 3, 4, 5, 6, 8, 9, 12], "groupact": 7, "groupcat": 5, "groupequivquotientprodsubgroup": 7, "grouptheori": 5, "group\u2081": [5, 6], "group\u2081cat": 5, "group\u2082": 5, "group\u2083": 6, "grow": [0, 6, 7], "grp": 5, "guai": 0, "guarante": [0, 3, 5], "guess": [1, 2, 3, 4, 5], "guilherm": 0, "gya": 3, "g\u2080": 7, "g\u2081": 7, "g\u2082": 7, "h": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "h0": 4, "h1": [1, 2, 3, 4, 5], "h2": [1, 2, 3, 5], "h3": 1, "h_def": 3, "h_inj": 10, "ha": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "hab": 9, "habit": 6, "hac": 6, "hack": 3, "had": [1, 6], "hal": 6, "half": [3, 7], "hand": [1, 2, 3, 4, 5, 6, 8], "handi": 4, "handl": [1, 3, 4, 6, 7], "hanson": 0, "happen": [1, 6, 8], "happi": 0, "hard": [0, 1, 3, 5, 6, 7], "harder": [2, 5], "harm": 3, "hasbasi": 8, "hasderivat": [9, 10], "hasderivat_sin": 9, "hasfderivat": 9, "hasfderivatfilt": 9, "hasfderivatfilter_iff_islittleo": 9, "hasfderivwithinat": [9, 10], "hasinvgroup\u2082": 5, "haskel": 1, "hasmulgroup\u2082": 5, "hasonegroup\u2082": 5, "hasquoti": 6, "hasstrictfderivat": 9, "hausdorff": 8, "have": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "haven": [0, 2, 6, 8], "hb": [2, 8], "hba": 6, "hball": 8, "hbound": 10, "hc": 9, "hd": 8, "hdi": 10, "hdvd": 7, "he": 7, "headach": 4, "headi": 5, "heart": [4, 7], "heather": 5, "heaven": 5, "heavier": 6, "heavili": 8, "hello": 0, "help": [0, 1, 2, 3, 4, 5, 6, 8], "helper": 1, "henc": [0, 2, 3, 4, 5, 6, 8, 9], "here": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "hesit": 4, "hf": [3, 7, 8, 9, 10], "hfa": 2, "hfc": 9, "hff": 9, "hfi": 9, "hfx": 8, "hg": [3, 8, 9, 10], "hgb": 2, "hi": 7, "hidden": 2, "hide": [6, 7, 8], "hierarchi": [5, 7, 12], "high": [2, 7], "higher": 6, "highlight": [0, 2], "hint": [0, 1, 2, 10], "histor": [1, 7], "hit": [0, 1], "hk": [0, 9], "hle": 8, "hlim": 10, "hm": 9, "hmea": 10, "hmn": 0, "hmp": 9, "hn": [3, 4, 8, 9], "hna": 2, "hnb": 2, "hne": 8, "ho": 8, "hold": [1, 2, 3, 4, 5, 7, 8, 10], "home": [4, 5], "homomorph": 7, "hood": [3, 5], "hope": [0, 1], "hopelessli": 6, "hoskinson": 0, "hover": [0, 1, 2, 3, 4, 5], "how": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "howev": [1, 2, 5, 6, 7, 8, 9], "hp": [7, 8], "hpo": 8, "hq": [7, 8], "hr": 8, "hst": 7, "hsu": 8, "ht": 2, "html": 0, "http": 6, "hu": [8, 9], "huge": 6, "huisinga": 0, "hum": 8, "human": 1, "hunt": 6, "hunter": 0, "huo": 8, "hurdl": 6, "hurt": 2, "hux": 8, "hw": 6, "hx": [2, 3, 5, 6, 7, 9], "hxeq": 3, "hy": [5, 6, 7], "hyp": 1, "hypothes": [1, 2, 3, 4, 5], "hypothesi": [0, 1, 2, 3, 4], "hz": [5, 6], "h\u03b5": 9, "h\u2080": [1, 2, 3, 4, 8], "h\u2081": [1, 2, 3, 4], "h\u2082": [1, 3, 4], "h\u2083": [1, 3], "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "icc": [8, 9], "ici": 8, "id": [4, 6, 8, 9], "idea": [1, 2, 3, 5, 6, 8], "ident": [3, 4, 5, 6, 7, 8, 12], "identifi": [1, 2, 4], "ie": [6, 8], "if_neg": 3, "if_po": 3, "iff": [1, 3, 7, 8, 9, 10, 12], "ignor": [0, 5, 7, 8], "ih": 4, "iinf_insert": 7, "iinter": 10, "il": 4, "illustr": [1, 2, 3, 4, 5, 7], "im": 5, "imag": [3, 4, 6, 7, 8], "image_subset_iff": 3, "imagin": 1, "imaginari": 5, "immedi": [2, 3, 5, 6], "implement": [2, 5, 6, 7, 9], "impli": [1, 2, 3, 4, 5, 8], "implic": [1, 8, 12], "implicit": [1, 2, 5, 6, 7, 8, 9], "implicitli": [1, 2], "import": [1, 2, 3, 4, 5, 6, 7, 8, 10], "importantli": [6, 7], "imposs": 1, "impress": 0, "improv": [3, 4], "incl": 8, "includ": [0, 1, 2, 3, 4, 6, 7, 8, 9], "inclus": [1, 3, 7, 8], "inconsist": 1, "inconveni": 9, "incorpor": 6, "increas": 1, "increment": [0, 1], "inde": [1, 5, 6, 7, 8, 9], "indefinit": 4, "indent": 1, "independ": [2, 3, 5], "indetermin": 7, "index": [3, 6, 7, 8], "index_eq_card": 7, "index_mul_card": 7, "indic": [1, 2, 3, 5, 6], "indirect": 6, "indirectli": 1, "individu": 1, "induc": 8, "induced_compos": 8, "induct": [7, 8, 12], "induction_on": 4, "inequ": [1, 2, 6, 8], "inf": [1, 6, 8], "inf_assoc": 1, "inf_bot_of_coprim": 7, "inf_comm": [1, 7], "inf_le_left": [1, 8], "inf_le_right": 1, "inf_sup_left": 1, "inf_sup_right": 1, "inf_sup_self": 1, "infer": [1, 2, 3, 5, 6, 7], "infer_inst": [9, 10], "inferenti": 0, "inferinst": 7, "inferr": 6, "infimum": [1, 6, 7, 8, 10], "infin": [4, 8, 10], "infinit": [3, 8, 12], "infix": [1, 6], "infixl": 6, "infixr": 6, "inform": [0, 1, 2, 3, 5, 6, 8], "infoview": [1, 6], "infrastructur": 0, "infti": 9, "ingredi": [3, 5, 8, 9], "inhabit": [3, 5, 8], "inherit": [5, 6, 7], "inherit_doc": 6, "inj": 4, "inject": [2, 3, 4, 6, 7, 8], "injective_lift_iff": 7, "injf": [2, 3], "injg": 2, "injon": [3, 10], "inl": [2, 3], "inner": 3, "input": [1, 3, 8], "inr": [2, 3], "inria": 6, "inscrut": [2, 3], "insert": [0, 2, 4, 5, 7, 8, 9], "insid": [0, 1, 2, 3, 7], "insight": 2, "insist": [1, 6], "inspect": 1, "inspir": 2, "inst": 6, "inst_1": 6, "instal": [0, 6], "instanc": [1, 2, 3, 4, 5, 6, 7, 8, 9], "instanti": [2, 5, 6, 8], "instcommr": 5, "instead": [0, 1, 2, 3, 4, 5, 6, 7, 8], "instruct": [0, 1, 2, 8], "int": [5, 6, 7], "intact": 0, "integ": [1, 2, 4, 6, 7, 12], "integr": [2, 9, 12], "integral_add": 10, "integral_eq_sub_of_hasderivat": 10, "integral_hasstrictderivat_right": 10, "integral_id": 10, "integral_image_eq_integral_abs_det_fderiv_smul": 10, "integral_one_div": 10, "integral_prod": 10, "intend": [0, 1, 2, 5], "inter_def": 3, "inter_set": 8, "interact": [0, 5, 6, 7, 10], "interchang": 1, "interconnect": 5, "interest": [1, 2, 3, 5, 6, 8], "interestingli": [5, 7, 9], "interfac": 5, "interior": [5, 9], "interior_iinter_subset": 9, "interior_subset": 9, "intermedi": [1, 6, 8], "intern": [2, 5, 7], "interpret": [0, 1, 4, 5, 7, 8], "intersect": [1, 3, 5, 6, 7, 8, 10], "interv": [4, 8, 10], "interval_cas": 4, "intervalintegr": 10, "intro": [0, 1, 2, 3, 4, 5, 6, 7, 8], "introduc": [0, 1, 2, 3, 4, 8, 10], "introduct": [1, 2, 7, 8, 12], "introductori": 9, "intuit": [3, 8], "inv": [5, 6], "inv_dia": 6, "inv_eq_of_dia": 6, "inv_eq_of_mul": 6, "inv_mem": 7, "inv_mul": 6, "invari": 10, "invers": [1, 3, 5, 6, 7, 9, 10], "inverse_spec": 3, "invert": [6, 7], "invest": 5, "invfun": [3, 5], "invfun_eq": 3, "invisibli": [5, 6], "invok": [0, 1, 8], "involv": [1, 2, 4, 5, 6, 7, 8], "inv\u2081": 6, "inward": 2, "ioo": [8, 9], "ipo": 4, "irrat": 12, "irration": 4, "irreduc": [4, 5], "irreducible_iff_prim": 5, "irreflex": 2, "is_addit": 5, "isaddhaarmeasur": 10, "isaiah": 0, "isalgclos": 7, "isbigo_iff_isbigowith": 9, "isbigowith": 9, "isbigowith_iff": 9, "isclos": [8, 9], "isclosed_l": [8, 9], "iscompact": 8, "iscompact_icc": 8, "iscompact_univ": 8, "iscoprim": 7, "iscoprime_iff_add": 7, "iscoprime_iff_codisjoint": 7, "iscoprime_iff_exist": 7, "iscoprime_iff_sup_eq": 7, "iscoprime_inf": 7, "iscycl": 7, "isdomain": [2, 7], "iseqv": 6, "islinear": 5, "islittleo_iff_forall_isbigowith": 9, "islocalmin": 9, "ismonoidhom\u2081": 6, "ismonoidhom\u2082": 6, "isn": [0, 2, 3, 4, 6], "isomorph": [5, 7, 9], "isopen": 8, "isopen_compl_iff": 8, "isopen_empti": 8, "isopen_iff": 8, "isopen_iinter_of_finit": 8, "isopen_iunion": 8, "isopen_univ": 8, "iso\u2081": 7, "iso\u2082": 7, "isroot": 7, "issu": [1, 4, 5, 6, 8], "issubgroup": 7, "isunit": 7, "item": 8, "iter": 9, "iteratedfderiv": 9, "its": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "itself": [0, 2, 3, 5, 6, 7, 8, 9], "iunion": 10, "j": [3, 7], "jimmi": 0, "job": 1, "johan": 0, "john": 0, "join": [0, 1, 5], "journei": 8, "juggl": 6, "julian": 0, "jump": [1, 4, 5, 8], "just": [0, 1, 2, 3, 4, 5, 6, 7, 8], "justif": [1, 2], "justifi": [0, 1, 2, 8], "k": [0, 2, 4, 5, 7, 8, 9], "keep": [1, 5, 6, 7], "kei": [1, 4, 5, 7, 8], "keith": 0, "ker": 7, "ker_eq_bot_iff": 7, "ker_pi_quotient_mk": 7, "ker_restrict": 7, "kernel": 7, "keyboard": 1, "keyword": [1, 2, 4, 5], "kind": [0, 1, 6, 8], "knew": 8, "know": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "known": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "k\u00fclshammer": 0, "l": [0, 1, 9, 10], "label": [1, 2], "lagrang": 7, "lake": 0, "lambda": [2, 5], "lambda_l": 5, "lambda_nonneg": 5, "languag": [0, 1, 2, 3], "larg": [0, 6, 8], "larger": [1, 8], "last": [1, 2, 3, 4, 5, 6, 7, 8], "later": [0, 1, 2, 4, 5, 6, 7, 8], "latter": [5, 7, 8], "lattic": [1, 5, 6, 7, 8], "law": [1, 7], "layer": [6, 8], "lbf": 2, "lbg": 2, "lcm": 1, "lcm_zero_left": 1, "lcm_zero_right": 1, "ldot": [2, 3, 4], "le": [1, 5, 6], "le_abs_self": 2, "le_antisymm": [1, 2], "le_iff_exists_add": 8, "le_inf": 1, "le_inf_iff": 8, "le_min": 1, "le_mul_of_one_le_right": 5, "le_of_dvd": 4, "le_of_l": 6, "le_of_max_le_left": 2, "le_of_max_le_right": 2, "le_of_mul_le_mul_right": 5, "le_of_not_gt": 2, "le_opnorm": 9, "le_or_gt": 2, "le_principal_iff": 8, "le_refl": [1, 2], "le_sup": 4, "le_sup_left": 1, "le_sup_right": 1, "le_tran": [1, 2], "lead": [1, 2, 4, 5, 6, 7, 8], "leader": 1, "lean": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "lean4": 1, "learn": [0, 1, 4, 5], "least": [1, 5, 6, 8], "leav": [0, 1, 2, 3, 5, 6, 7], "lebesgu": 10, "led": 6, "left": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "left_distrib": [5, 6], "left_inv": 5, "left_inv_eq_right_inv": 6, "left_inv_eq_right_inv\u2081": 6, "left_neg_eq_right_neg": 6, "leftinvers": 3, "leftinverse_invfun": 3, "legal": 1, "lemma": [2, 4, 5, 6, 7, 8, 9, 10, 12], "less": [1, 2, 3, 4, 5, 6, 7, 8], "let": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "letter": [1, 5, 9], "level": [1, 2, 6], "leverag": 8, "le\u2081": 6, "librari": [0, 1, 2, 3, 4, 5, 7, 8, 9], "life": [0, 2], "lift": 7, "light": 5, "like": [0, 1, 2, 3, 4, 5, 6, 7, 8], "lim_": 8, "limit": [2, 6, 8], "linarith": [1, 2, 4, 5], "line": [0, 1, 2, 3, 4, 6, 7], "linear": [1, 2, 5, 7, 8], "linear_combin": 7, "linearord": 2, "linearorderedr": 5, "liner": 0, "linf": 5, "link": [5, 6], "list": [1, 2, 3, 4, 5], "littl": [1, 2, 8, 9], "liu": 0, "live": [0, 5], "ll": [0, 2, 4, 6, 8], "local": [1, 2, 6, 8, 9], "localinvers": 9, "log": [1, 3, 10], "log_le_log": 1, "log_lt_log": 1, "logic": [0, 1, 3, 4, 5, 7, 12], "logician": 1, "long": [1, 2, 3, 5, 6, 7, 9], "longer": [0, 4, 5], "look": [1, 2, 3, 4, 6, 7, 8], "loop": 4, "loss": 4, "lot": [0, 1, 3, 5, 6, 7, 8], "loud": 1, "lower": [1, 2, 4], "lowest": 4, "lr": 1, "lt_ab": 2, "lt_asymm": 2, "lt_iff_le_and_n": 1, "lt_iff_le_not_l": 2, "lt_irrefl": [1, 2], "lt_of_le_of_lt": [1, 2], "lt_of_lt_of_l": 1, "lt_of_not_g": 2, "lt_succ_iff": 4, "lt_succ_of_l": 4, "lt_tran": [1, 2], "lt_trichotomi": 2, "lt\u2081": 6, "lu": 0, "lub": 1, "m": [0, 1, 2, 4, 6, 7, 8, 9], "m_iunion": 10, "mac": [1, 2], "macbeth": 5, "machineri": [5, 6, 8], "maco": 0, "made": [1, 2, 3, 5, 8], "magic": [2, 5, 6], "mai": [0, 1, 2, 3, 5, 6, 7, 8, 9], "main": [2, 6, 8, 9], "mainli": 7, "maintain": 1, "make": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "manag": [0, 1, 4, 5, 8], "mani": [1, 2, 3, 5, 6, 7, 8, 9, 10, 12], "manifest": [1, 8], "manipul": [2, 5, 7, 8], "manner": [2, 5], "manual": [0, 3, 4], "map": [1, 2, 3, 5, 6, 7, 8], "map_add": [6, 7, 9], "map_eq": 8, "map_inv": 7, "map_inv_of_inv": 6, "map_le_iff_le_comap": 8, "map_map": 8, "map_mono": 8, "map_mul": [6, 7], "map_on": [6, 7], "map_pow": 7, "map_smul": 9, "map_zero": [6, 7], "mapsto": [1, 5], "map\u2082": 6, "marc": 0, "mario": 0, "mark": [0, 1, 2, 6, 8], "marker": 2, "marriag": 5, "martin": 0, "mascellani": 0, "mass": 10, "master": [0, 1, 4], "match": [1, 2, 5], "mathbb": [3, 4, 5, 7], "mathcal": [5, 9], "mathemat": [0, 1, 2, 3, 4, 5, 6, 7, 8], "mathematician": [4, 8], "mathematics_in_lean": 0, "mathfrak": 7, "mathieu": 0, "mathlib": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "matric": [1, 5, 7], "matter": [1, 2], "matthew": 0, "mauricio": 0, "max": [1, 2, 6, 8, 10], "maxim": 7, "maximum": [2, 4, 8], "mayb": 6, "mcdowel": 0, "mdvdn": 4, "mean": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "meaningless": 2, "meant": [0, 2, 6], "meanwhil": [1, 4], "measur": [0, 5, 8, 9, 12], "measurableset": 10, "measurablespac": 10, "measure_eq_iinf": 10, "measure_iunion_l": 10, "measuretheori": 10, "mechan": [1, 2, 5], "mediat": 4, "meet": [1, 2, 3, 5], "mem": 3, "mem_": 4, "mem_ball_self": 8, "mem_bot": 7, "mem_closedball_self": 8, "mem_closure_iff": 8, "mem_closure_iff_clusterpt": 8, "mem_closure_iff_nhds_basi": 8, "mem_closure_iff_seq_limit": 8, "mem_closure_of_tendsto": 8, "mem_comap": 7, "mem_diff": 3, "mem_eras": 4, "mem_filt": 4, "mem_iff": 8, "mem_iint": 3, "mem_iinter\u2082": 3, "mem_image_of_mem": 3, "mem_insert": 4, "mem_insert_of_mem": 7, "mem_insert_self": 7, "mem_int": 4, "mem_inter_iff": 3, "mem_iunion": 3, "mem_iunion\u2082": 3, "mem_ker": 7, "mem_map": 7, "mem_nhds_iff": 8, "mem_of_dvd_prod_prim": 4, "mem_of_tendsto": 8, "mem_rang": 7, "mem_sdiff": 4, "mem_setof": 3, "mem_sup": 7, "mem_union": [3, 4], "member": [3, 8], "membership": [3, 4, 6, 7], "mention": [2, 3, 5, 6, 7, 8], "menu": [0, 1], "meq": 4, "messag": 6, "messi": 5, "messier": 5, "meta": [2, 6], "metavari": 6, "method": [0, 2, 3, 4, 5], "metric": [1, 5, 9, 12], "metricspac": [1, 8, 9], "mf": 2, "mg": 2, "mge2": 4, "mgt2": 4, "mid": 5, "middl": [0, 1, 2, 8], "midpoint": 5, "might": [1, 2, 3, 4, 5, 7], "mil": 0, "min": [1, 2, 8, 10], "min_le_left": 1, "min_le_right": 1, "mind": [1, 2, 5, 6, 7], "mindich": 0, "minfac": 4, "minimum": 8, "minor": [6, 9], "mislead": 7, "miss": [1, 3, 4], "mission": 0, "mk": [5, 6, 7, 8], "mk_surject": 7, "mkofmuleqon": 7, "mkofnhd": 8, "mltn": 4, "mne1": 4, "mnez": 4, "mod": 5, "mod_4_eq_3_or_mod_4_eq_3": 4, "mod_def": 5, "mod_lt": 4, "mode": [1, 2, 5], "model": [3, 8], "modern": [5, 7], "modifi": 6, "modu": 1, "modul": [6, 7], "modular": 1, "module\u2081": 6, "module\u2083": 6, "modulo": [1, 4, 5], "moment": [1, 2, 5], "mono": 8, "monof": 2, "monoid": [2, 3, 4, 6, 12], "monoidhom": 7, "monoidhomclass": 6, "monoidhomclass\u2081": 6, "monoidhomclass\u2082": 6, "monoidhomclass\u2083": 6, "monoidhom\u2081": 6, "monoid\u2081": 6, "monoid\u2082": 6, "monoid\u2083": 6, "monoton": [2, 6, 8], "monro": 0, "monticon": 0, "moral": [0, 5, 7], "more": [0, 2, 3, 4, 5, 6, 7, 8, 9, 12], "moreov": [0, 1, 4, 5, 8], "morphism": [5, 9, 12], "morrison": 0, "most": [1, 2, 3, 4, 5, 6, 7, 8, 10], "mostli": 7, "motiv": 2, "move": [0, 1, 2, 6, 8], "mp": [1, 2, 3, 4, 8], "mpr": [1, 2, 5, 8], "much": [0, 2, 4, 6, 7, 8, 9], "mul": [4, 5, 6, 8], "mul_add": [0, 1, 4, 6], "mul_assoc": [1, 2, 4, 5, 6, 7], "mul_assoc\u2083": 6, "mul_comm": [1, 2, 4, 5, 6, 7], "mul_def": 5, "mul_div_cancel": 4, "mul_div_cancel\u2080": 2, "mul_im": 5, "mul_inv": [6, 7], "mul_inv_cancel_right": 5, "mul_inv_rev": 1, "mul_inv_self": 7, "mul_le_inf": 7, "mul_le_left": 7, "mul_le_mul": 2, "mul_le_right": 7, "mul_left_cancel\u2083": 6, "mul_left_comm": 4, "mul_left_inv": [1, 5], "mul_left_not_lt": 5, "mul_lt_mul_right": 2, "mul_mem": [6, 7], "mul_mod": 4, "mul_mod_mod": 4, "mul_mod_right": 4, "mul_nonneg": 1, "mul_on": [1, 5, 6, 7], "mul_po": [1, 4], "mul_r": 5, "mul_right_cancel\u2083": 6, "mul_right_inj": 4, "mul_right_inv": [1, 5], "mul_smul": [6, 7], "mul_sub": 1, "mul_sum": 5, "mul_zero": [1, 5, 6], "mulact": 7, "mulequiv": 7, "muloneclass": 6, "multilinear": 9, "multipl": [1, 2, 3, 4, 5, 6, 7, 9], "multipli": 5, "multiset": 7, "multivari": 7, "mulzeroclass": 6, "mundan": 2, "must": [1, 5, 6, 8], "mvpolynomi": 7, "my_fil": 0, "my_lemma": 2, "my_lemma2": 2, "my_lemma3": 2, "my_lemma4": 2, "my_squar": 5, "myab": 2, "myelement": 7, "mygroup": 7, "mymap": 7, "mymorph": 7, "mynat": 4, "mynewmorph": 7, "mypoint1": 5, "mypoint2": 5, "mypoint3": 5, "myre": 1, "mysmul": 6, "mysquar": 5, "mysteri": [1, 5, 6], "mz": 4, "m\u02e3": 7, "n": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "n_p": 8, "n_q": 8, "na": 2, "naiv": [6, 8], "name": [1, 2, 3, 4, 5, 6, 7, 8, 9], "namespac": [1, 2, 3, 4, 5, 7, 8], "nash": 0, "nat": [0, 1, 2, 3, 4, 5, 7, 8], "natab": 5, "natabs_mul": 5, "natabs_norm_mod_lt": 5, "natabs_of_nonneg": 5, "natal": 0, "natcast_natab": 5, "natdegre": 7, "natdegree_comp": 7, "natdegree_mul": 7, "natur": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "nb": 2, "ne": [4, 5], "nearbi": [1, 4], "nearest": 5, "nebot": 8, "nebot_of_l": 8, "necessari": [0, 2, 4, 5, 7], "necessarili": [1, 10], "need": [0, 1, 2, 3, 4, 5, 6, 7, 8], "neg": [5, 6, 8, 10], "neg_add": 6, "neg_add_cancel_left": 1, "neg_def": 5, "neg_eq_of_add_eq_zero": 1, "neg_im": 5, "neg_le_abs_self": 2, "neg_mem": 7, "neg_neg": 1, "neg_r": 5, "neg_zero": 1, "negat": [1, 5, 12], "negsucc": 6, "neighborhood": 8, "neither": [3, 5, 6], "neq": 4, "nest": [1, 2], "net": 1, "neutral": [6, 7], "never": [0, 6], "new": [0, 1, 2, 3, 4, 5, 6, 7, 8], "newcom": 0, "next": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "nge": 2, "nhd": 8, "nhds_basis_bal": 8, "nhds_basis_closedbal": 8, "nhds_basis_ioo_po": 8, "nhds_basis_open": 8, "nhds_induc": 8, "nhds_mkofnhd": 8, "nhds_prod_eq": 8, "nice": [1, 2, 4, 6, 7, 8], "nicer": [5, 7, 8], "nicola": 0, "nineteenth": 3, "nna": 2, "nnc": 2, "nnez": 4, "nnf": 2, "nng": 2, "nnz": 4, "non": [1, 3, 6, 7, 8, 10], "noncomm_r": 1, "noncomput": [3, 5, 7], "nonconstruct": 7, "nondecreas": [2, 4], "nondistribut": 1, "nonempti": [3, 7, 8], "nonempty_interior_of_iunion_of_clos": 9, "nonexist": 2, "nonneg": [1, 5], "nonneg_of_mul_nonneg_left": 1, "nontrivi": [2, 3, 4, 5, 8, 9], "nontriviallynormedfield": [9, 10], "nonzero": [2, 4, 5, 10], "nor": [3, 5], "norm": [2, 5, 8, 12], "norm_add_l": 9, "norm_conj": 5, "norm_eq_zero": [5, 9], "norm_mod_lt": 5, "norm_mul": [5, 9], "norm_nonneg": [5, 9], "norm_num": [1, 2, 4, 5], "norm_po": 5, "norm_smul": 9, "norm_y_po": 5, "normal": 7, "normedaddcommgroup": [9, 10], "normedaddgroup": 9, "normedfield": 9, "normedgroup": 9, "normedspac": [9, 10], "not_imp_self": 3, "not_le_of_gt": 2, "not_lt_of_g": [2, 4, 5], "not_monotone_iff": 2, "not_norm_mul_left_lt_norm": 5, "not_not": 2, "notat": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "note": [1, 2, 4, 5, 6, 7, 8, 10], "noth": [1, 2, 3, 4, 5, 6, 7], "notic": [1, 2, 3, 4, 5, 7, 8], "notin": 3, "notion": [1, 2, 3, 4, 5, 7, 8, 9, 10], "noun": 6, "now": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "nozerodivisor": 7, "np": 4, "npow_nz": 4, "npowz": 4, "nsmul": [5, 6], "nsmul_succ": 6, "nsmul_zero": 6, "nsmulrec": 5, "nsmul\u2081": 6, "nsqr_nez": 4, "nt": 2, "nth_rw": 1, "number": [0, 1, 2, 3, 5, 6, 7, 8, 9, 12], "numer": [1, 4, 5], "nut": 1, "n\u2080": 2, "n\u2081": 2, "o": 9, "obfusc": 8, "object": [0, 1, 2, 3, 4, 5, 7, 12], "observ": [2, 4, 8], "obtain": [1, 2, 4, 5, 8, 9], "obviou": [0, 4, 5, 6], "occasion": 8, "occur": 4, "occurr": 1, "odd": [1, 2, 3, 4], "of_le_succ": 4, "of_map": 8, "ofbiject": 7, "off": [2, 3, 4], "offend": 6, "offer": [0, 2, 5, 8], "ofnat": 6, "ofnat_l": 5, "ofnat_lt": 5, "ofreal": 7, "often": [0, 1, 2, 3, 4, 5, 6, 7, 8], "og": 2, "old": [2, 5, 6], "oliv": 0, "omit": 5, "onc": [1, 2, 3, 4, 5, 6, 7, 8, 10], "one": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "one_add_one_eq_two": 1, "one_def": 5, "one_dia": 6, "one_eq_top": 7, "one_im": 5, "one_mem": [6, 7], "one_mul": [1, 2, 5, 6], "one_r": 5, "one_smul": [6, 7], "oner": 1, "ones": [0, 1, 2, 3, 5, 10], "one\u2081": 6, "one\u2082": 6, "onli": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "onlin": 0, "onto": 7, "open": [0, 1, 2, 3, 4, 5, 7, 9, 10], "oper": [1, 2, 3, 4, 5, 6, 7, 8, 9], "opnorm_le_bound": 9, "opnorm_le_of_shel": 9, "opportun": [7, 8], "opposit": [6, 8], "optim": [6, 10], "option": [1, 2, 4, 5, 6, 8], "orbit": 7, "orbitequivquotientstabil": 7, "orbitrel": 7, "order": [1, 2, 3, 4, 5, 6, 8, 9], "orderedcanceladdcommmonoid": 2, "orderedcommmonoid\u2081": 6, "orderpreshom": 6, "orderpreshomclass": 6, "orderpresmonoidhom": 6, "ordinari": [1, 2, 4, 5, 7, 8], "ordinarili": [4, 5], "organ": 0, "organiz": 1, "orient": 5, "origin": [0, 1, 5, 7], "other": [0, 1, 2, 3, 4, 5, 6, 7, 8], "otherwis": [1, 2, 3, 4, 5, 7], "ott": 0, "our": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "ourselv": [4, 6], "out": [0, 1, 2, 3, 4, 5, 6, 7, 8], "outer": 1, "outermost": 3, "outlin": [1, 2, 4, 8], "outparam": 6, "output": [1, 7], "outsid": [1, 4], "over": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "overlap": [6, 7], "overload": 3, "overview": 12, "own": [0, 1, 4, 5, 6], "p": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "p4": 4, "p4eq": 4, "p_1": 4, "p_i": [4, 8], "p_k": 4, "p_n": 4, "p_ne_zero": 7, "packag": 7, "page": [0, 1, 4], "pai": [1, 2, 6, 7, 8], "pain": 7, "pair": [1, 2, 4, 5, 7, 8], "pairwis": 10, "panel": 0, "paper": [2, 3, 5, 7, 8, 10], "paquet": 0, "paradox": 8, "paragraph": 8, "paramet": [5, 6], "parent": 6, "parenthes": [1, 2, 3, 4], "pariti": 0, "parity_simp": 0, "pars": [1, 3, 7], "part": [1, 2, 3, 4, 5, 6, 8, 10], "partial": [0, 1, 2, 3, 5, 6, 7], "partialord": [1, 2], "partialorder\u2081": 6, "particular": [1, 2, 5, 6, 7, 8], "partit": 7, "partli": [1, 6, 7], "pass": [1, 5], "past": [0, 1, 7], "path": 6, "patholog": 8, "pattern": [1, 2, 3, 5, 6], "payoff": 5, "pdf": 0, "pdvd": 4, "pedro": 0, "peel": 2, "pen": [2, 7], "peopl": [0, 1], "perform": [1, 2, 3], "perm": [5, 7], "permgroup": 5, "permiss": 1, "permut": [4, 7], "person": 0, "perspicu": 2, "phenomenon": 3, "phrase": [0, 1, 2, 4, 5], "pi": [7, 8], "pick": [0, 6], "pictur": [4, 5, 7], "piec": [1, 4, 5, 6, 7, 8], "pierpaolo": 0, "pietro": 0, "pim": 0, "pinot": 7, "piotrowski": 0, "place": [0, 1, 2, 5, 8], "placehold": 2, "placement": 4, "plai": [1, 3, 4, 6, 7, 8], "plan": [1, 6, 8], "plane": 8, "plausibl": 3, "ple": 4, "pltn": 4, "pne3": 4, "point": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "pointwis": [5, 8, 9], "polynomi": 5, "ponen": 1, "poor": 6, "pop": 0, "port": 0, "posit": [1, 3, 4, 5, 8, 10], "possibl": [1, 2, 3, 4, 5, 7, 8], "possibli": 5, "postfix": 6, "pos\u2080": 2, "potscrubb": 0, "pow_eq": 4, "pow_eq_zero": [2, 4], "pow_succ": 4, "pow_two": [1, 4], "pow_two_le_fac": 4, "pow_two_nonneg": [1, 2], "power": [0, 1, 3, 4, 5, 6], "pp": 4, "practic": [1, 2, 3, 6, 7, 8], "pragmat": 5, "pre": 2, "preal": 5, "preced": [4, 7], "precis": [1, 3, 7, 8, 9], "precondit": 8, "pred": 4, "predecessor": 4, "predic": [2, 3, 4, 6, 7, 8, 9], "prefer": [0, 1, 2, 3], "prefix": [4, 6, 7], "preimag": [3, 7, 8], "preliminari": 6, "prematur": 6, "preorder": [2, 6, 8], "preorder\u2081": 6, "presenc": 6, "present": [1, 2, 4, 7, 8], "presentedgroup": 7, "preserv": [4, 6, 8], "preserves_mul": 5, "press": 0, "presuppos": 0, "pretend": 6, "pretti": [2, 6, 7, 8], "previou": [1, 2, 3, 5, 6, 7, 8, 9, 10], "previous": 6, "price": 8, "primari": 6, "primarili": [6, 7, 8], "prime": [1, 2, 3, 5, 6, 7, 12], "prime_def_lt": 4, "prime_iff": 3, "prime_of_mem_primefactorslist": 4, "prime_p": 4, "prime_q": 4, "prime_thre": 4, "prime_two": 4, "prime_x": 3, "primefactorslist": 4, "primefactorslist_uniqu": 4, "primes_infinit": 4, "primes_mod_4_eq_3_infinit": 4, "primit": [2, 3], "princip": 8, "principl": [1, 2, 3, 4, 6, 9], "print": [0, 3, 4, 5, 10], "priori": 6, "prioriti": 5, "probabl": [1, 5, 6, 8], "problem": [3, 4, 5, 6, 8], "proce": [4, 6], "procedur": [4, 6], "proceed": 7, "prod": [4, 7, 8, 10], "prod_": 4, "prod_empti": 4, "prod_insert": 4, "prod_map": 8, "prod_mk": 8, "prod_po": 4, "prod_primefactorslist": 4, "prod_range_succ": 4, "prod_range_zero": 4, "prodcongr": 7, "prodequivpi": 7, "produc": [1, 2, 7, 9], "product": [2, 4, 5, 6, 7, 8, 10], "profici": 4, "program": [0, 1, 2], "progress": [0, 1, 5, 7], "prohibit": 8, "project": [0, 4, 5, 7, 8], "projector": 7, "promin": 7, "promis": [6, 8], "promot": 1, "proof": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "prop": [0, 2, 3, 4, 5, 6, 7, 8, 10], "propag": 6, "properti": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "proposit": [0, 2, 3, 4, 5], "protect": 5, "provabl": [1, 3, 6, 8], "prove": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "proven": 7, "provid": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "proxi": 5, "pseudoemetricspac": 8, "pseudometricspac": 8, "psycholog": 6, "pull": [0, 7, 8], "pullback": [7, 8], "pun": 2, "pure": [1, 8], "pure_le_nhd": 8, "purpos": [1, 2, 3, 4, 5, 6, 8], "push": [2, 4, 7, 8], "push_neg": [2, 3, 4], "push_pul": 8, "pushforward": [7, 8], "put": [0, 1, 2, 3, 4, 5, 6, 7, 8], "q": [2, 4, 5, 6, 7, 8], "qk": 4, "quad": 5, "quadrat": 5, "quantifi": [1, 3, 4, 5, 7, 8, 12], "quantiti": 8, "quest": 6, "question": [0, 4, 6, 8, 10], "quick": [4, 7, 9], "quicker": 0, "quickli": [3, 7, 10], "quirki": 4, "quit": [2, 6, 8], "quot": [5, 8], "quotequivofeq": 7, "quotient": [4, 5, 6, 8], "quotient_mul_add_remainder_eq": 5, "quotient_zero": 5, "quotientgroup": 7, "quotientinfringequivpiquoti": 7, "quotientkerequivrang": 7, "quotientmap": 7, "quotientmonoid": 6, "quotientmulequivofeq": 7, "r": [1, 2, 4, 5, 6, 7, 8], "r_wellfound": 5, "radiu": 8, "raini": 3, "rais": [1, 4], "random": 6, "rang": [0, 2, 3, 4, 7, 8], "rare": 6, "rather": [0, 1, 2, 4, 5, 6, 7, 8], "ration": [1, 2, 4, 8], "rb": 8, "rcase": [2, 3, 4, 8], "rclike": 9, "re": [4, 5], "reach": [2, 6], "read": [0, 1, 4, 5, 6, 7, 8], "readabl": [1, 2, 3, 8], "reader": [1, 8], "readi": [4, 6, 7, 8, 9], "real": [1, 2, 3, 4, 5, 6, 8, 9, 10], "real_norm_l": 9, "realli": [1, 2, 3, 4, 6, 7, 8], "reason": [0, 1, 2, 4, 5, 6, 7, 8], "rec_on": 8, "recal": [1, 2, 4, 5, 7, 8, 10], "recaptur": 8, "recast": 8, "recent": 5, "recogn": [1, 2, 4, 5, 6, 8], "recommend": [0, 1, 3], "recon": 8, "reconcil": 2, "record": [5, 6], "recov": 8, "recurs": [2, 3, 5, 12], "redefin": [5, 6], "reduc": [0, 2, 3, 4, 5], "reduct": [2, 3, 5], "redund": [1, 5, 8, 10], "refer": [0, 1, 2, 4, 5, 6, 8, 9], "refin": [4, 9], "refl": [2, 3, 5, 6, 7], "refl_tran": 5, "reflect": 2, "reflex": [1, 2, 5], "reformul": 8, "refus": [6, 8], "regiment": 0, "region": 3, "regist": [5, 6, 7], "regular": [6, 8], "regularspac": 8, "rel": [3, 5], "relat": [1, 2, 3, 5, 6, 7, 8, 9, 10], "relatedli": 8, "relationship": [3, 4], "relativ": 3, "relev": [0, 1, 2, 4, 5, 6, 7, 8], "reli": [1, 2, 5, 8], "remain": [0, 1, 2, 3, 5, 6, 8], "remaind": [4, 5, 7], "remainder_lt": 5, "remark": [5, 6], "rememb": [1, 2, 3, 4, 5, 6, 7, 8], "remov": [4, 8], "renam": 0, "render": [2, 4], "repeat": [1, 4, 5, 6], "repeatedli": [2, 8], "repetit": [1, 6], "replac": [0, 1, 2, 3, 4, 6, 7], "replai": 0, "report": 1, "repositori": [0, 1], "repres": [0, 1, 2, 3, 4, 5, 6, 9], "represent": [3, 4, 5], "reproduc": 5, "reprov": [1, 7], "requir": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "resolut": 6, "resolve_left": 3, "resourc": 0, "respect": [1, 2, 3, 4, 5, 7, 8], "respons": [0, 1], "rest": [2, 3, 5, 7, 8], "restat": [2, 6, 7], "restor": 6, "restrict": [3, 4, 7, 8], "result": [0, 1, 2, 3, 4, 5, 6, 7, 8], "retri": 6, "return": [0, 2, 3, 4, 5, 7, 8], "reus": 6, "reusabl": 6, "reveal": 1, "revers": [1, 2, 3, 5, 8], "revert": [4, 5], "review": [7, 8], "rewrit": [0, 1, 2, 3, 4, 5, 6, 8], "rewritten": 3, "rfl": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "rich": [5, 6], "rid": 2, "right": [1, 2, 3, 4, 5, 6, 8, 9], "right_distrib": [5, 6], "right_inv": 5, "rightinvers": 3, "ring": [0, 1, 2, 3, 4, 5, 6, 12], "ringequiv": 7, "ringhom": [6, 7], "ringhomclass\u2083": 6, "ringhom\u2081": 6, "ring\u2081": 6, "ring\u2083": 6, "rintro": [0, 2, 3, 4, 7, 8], "rise": [4, 6, 7], "road": 5, "robust": [5, 6], "role": [4, 5, 8], "roll": 9, "rolland": 0, "roman": 5, "root": [5, 6, 7, 12], "roots_mul": 7, "roots_x_sub_c": 7, "roughli": [2, 3, 4], "round": [0, 1, 5], "routin": 2, "rpo": 8, "rule": [0, 2, 4, 5, 6, 8], "run": 0, "rush": 0, "rw": [0, 2, 3, 4, 5, 6, 7, 8, 12], "rwa": [3, 4, 5], "r\u02e3": 7, "s_": 3, "s_0": [2, 3], "s_1": 2, "s_2": 2, "s_n": [2, 3], "sa": 2, "sad": 8, "safe": [6, 7], "safer": 7, "sai": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "said": [0, 2, 4, 5], "sake": [1, 4], "salient": 8, "same": [0, 1, 2, 3, 4, 5, 6, 7, 8], "satisfi": [1, 3, 4, 5, 6, 8, 9], "save": 2, "saw": [1, 5, 6, 7, 8], "sb": 2, "sb_fun": 3, "sb_inject": 3, "sb_right_inv": 3, "sb_surject": 3, "sbaux": 3, "sbfun": 3, "sbset": 3, "scalar": [5, 6, 7, 9], "scale": 3, "scari": 5, "scheme": 5, "schroeder_bernstein": 3, "schr\u00f6der": 12, "scienc": 6, "scientist": 2, "scope": [1, 2, 3, 5, 7], "scott": 0, "scratch": 2, "script": 1, "search": [4, 5, 6], "second": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "section": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "see": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "seek": 5, "seem": [1, 2, 4, 6, 8, 9], "seen": [0, 1, 2, 4, 5, 6, 7, 8], "segment": [8, 10], "select": [0, 8], "self": 6, "self_of_nhd": 8, "self_sub": 1, "self_trans_symm": [5, 7], "selfequivsigmaorbit": 7, "selfmodul": 6, "semi": [6, 7], "semicolon": [2, 4], "semigroup": 6, "semigroup\u2081": 6, "semigroup\u2082": 6, "semigroup\u2083": 6, "semir": [6, 7], "send": [7, 10], "sens": [0, 2, 3, 4, 5, 6, 7, 8, 9], "sensibl": 8, "sent": [7, 8], "separ": [0, 1, 2, 4, 5], "sequenc": [3, 6, 8, 9, 12], "seri": 7, "seriou": [4, 6, 8], "serv": [1, 3, 4, 5, 10], "set": [0, 1, 2, 4, 5, 6, 7, 9, 10, 12], "set_opt": 6, "setco": 6, "setintegral_const": 10, "setlik": 6, "setminu": 3, "setoid": [6, 7], "sets_of_superset": 8, "setub": 2, "setup": 7, "seurin": 0, "sever": [6, 8, 10], "shade": 3, "shame": 6, "sharp": 0, "shift": [0, 1, 6, 8], "short": [0, 1, 2, 3, 4, 5], "shorten": [1, 2, 7], "shorter": [1, 3, 4, 7, 8], "shot": 8, "should": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "shouldn": 8, "show": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "shown": [1, 5, 9, 10], "side": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "sight": [2, 6], "sigma": [5, 10], "sigmafinit": 10, "sign": 8, "signatur": 6, "signific": 3, "silent": [5, 6], "silli": 6, "silva": 0, "similar": [1, 2, 3, 5, 6, 7, 8], "similarli": [2, 3, 4, 5, 7], "simp": [0, 2, 3, 4, 5, 6, 7, 8, 9], "simp_rw": 7, "simpa": [4, 7, 9], "simpl": [2, 4, 5, 6, 9], "simpler": 6, "simplex": 5, "simpli": [0, 1, 2, 3, 4, 5, 6, 7, 8], "simplif": [2, 3, 4], "simplifi": [0, 2, 3, 4, 5, 8, 10], "sin": [2, 9], "sinc": [0, 1, 2, 3, 4, 5, 6, 7, 8], "singl": [0, 1, 2, 3, 4, 5, 6, 7, 9], "singleton": 4, "sinter": 3, "sinter_eq_biint": 3, "situat": [1, 3, 6, 7, 8], "skeleton": [5, 8], "sketch": [2, 3, 4, 8], "skill": [0, 1, 2, 3, 4], "slick": 2, "slight": 3, "slightli": [1, 6, 7, 8, 9], "slow": 8, "small": [0, 2, 4, 5, 8], "smaller": [3, 4, 8], "smallest": [4, 6, 8], "smart": 4, "smul": [5, 6, 7], "smul_add": 6, "smul_distrib": 5, "smul\u2083": 6, "snd": [5, 8], "snippet": [2, 4, 5, 7], "so": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "solut": [0, 1, 4, 6], "solv": [0, 1, 2, 3, 4, 5, 6, 8], "some": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "somehow": 7, "someth": [0, 1, 2, 4, 6, 8], "sometim": [1, 2, 3, 4, 5, 6, 7, 8], "somewhat": [1, 3, 8], "somewher": 8, "soon": [0, 2, 6, 7, 8], "sophist": 8, "sorri": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "sort": [1, 3, 4], "sosi": 2, "sosx": 2, "sound": [3, 5, 6], "sourc": [2, 8], "space": [1, 2, 3, 5, 6, 7, 10, 12], "speak": [2, 5, 7, 8], "special": [3, 4, 5, 6, 7, 8, 10], "specif": [0, 1, 3, 4, 5, 6], "specifi": [1, 2, 3, 4, 5, 8, 9, 10], "spell": 8, "split": [1, 2, 3, 4], "spot": 2, "sq_ab": 5, "sq_add_sq_eq_zero": 5, "sq_nonneg": 1, "sqr_eq": 4, "sqrt": [2, 3, 4, 5], "squar": [1, 2, 4, 5, 6, 7], "squiggli": 2, "ss": 3, "ssubt": 3, "stabil": 7, "stage": [2, 5, 6], "stai": 5, "stand": [1, 2, 4, 5, 6, 7, 8, 9], "standard": [4, 5, 6, 8], "standardsimplex": 5, "standardtwosimplex": 5, "start": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12], "state": [0, 1, 2, 3, 4, 6, 7, 8, 9], "statement": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "stdsimplex": 5, "steep": 0, "steinhau": 9, "step": [0, 1, 2, 3, 4, 5, 6], "steven": 0, "stick": [1, 2, 8, 9], "still": [0, 1, 2, 3, 4, 5, 6, 8, 10], "stipul": 9, "stop": 6, "store": 5, "stori": 6, "str": 5, "straightforward": [2, 6], "strang": [2, 4, 7], "strategi": [1, 2, 4], "strength": 1, "strengthen": [1, 2, 4], "stretch": [4, 5], "strict": [1, 2], "stricter": 9, "strictli": [1, 2, 9], "strictmono": 8, "strictorderedr": 1, "strike": [1, 2], "strong": [2, 4], "strong_induction_on": 4, "stronger": 8, "strongli": 0, "stronglymeasurableatfilt": 10, "struc": 5, "structur": [2, 4, 6, 7, 8, 9, 10, 12], "stuck": 6, "studi": [6, 8], "style": [0, 1], "sub": [3, 8, 10, 12], "sub_add_cancel": 1, "sub_eq_add_neg": 1, "sub_self": [1, 2], "sub_sub": 1, "subgoal": 2, "subgroup": 6, "subgroupclass\u2081": 6, "subgroupofmulact": 7, "subgroup\u2081": 6, "subject": 5, "submodul": 7, "submonoid": [6, 7], "submonoidclass\u2081": 6, "submonoid\u2081": 6, "submonoid\u2081monoid": 6, "subobject": 6, "subproof": 1, "subr": 6, "subscript": 1, "subsequ": [2, 4, 8], "subset": [1, 2, 3, 5, 8, 9], "subset_def": 3, "subset_iff": 4, "subspac": [1, 6], "substant": 4, "substanti": 0, "substitut": [0, 2], "subsum": 4, "subtl": [5, 7, 8], "subtleti": [6, 7], "subtract": [1, 4, 5], "subtyp": [5, 6, 7, 8], "succ": [4, 6], "succ_add": 4, "succ_le_succ": 4, "succ_mul": 4, "succ_ne_zero": 4, "succ_po": 4, "succe": 6, "success": 6, "successor": 4, "suffic": [1, 2, 3, 7, 8], "suffici": [4, 8], "suggest": [0, 2, 4, 5, 8], "suitabl": [0, 1, 2, 5, 8], "sum": [1, 2, 4, 5, 6, 7, 8], "sum_add_distrib": 5, "sum_eq": 5, "sum_eq_on": 5, "sum_id": 4, "sum_mul": 5, "sum_range_succ": 4, "sum_range_zero": 4, "sum_sqr": 4, "summat": 4, "sumofsquar": 2, "sumofsquares_mul": 2, "sunion": 3, "sunion_eq_biunion": 3, "sup": [1, 4, 8], "sup_assoc": 1, "sup_comm": 1, "sup_eq_closur": 7, "sup_inf_left": 1, "sup_inf_right": 1, "sup_inf_self": 1, "sup_l": 1, "superfici": 8, "superscript": 8, "suppli": 5, "support": [0, 1, 2, 3, 4, 5, 6, 8], "suppos": [1, 2, 3, 4, 5, 8], "suppress": 1, "supremum": [1, 4, 6, 7], "sure": [0, 1, 2, 3, 5, 6, 7], "surject": [2, 3, 7, 8], "surjf": [2, 3], "surjg": 2, "surpris": 6, "surprisingli": [5, 6], "swap": 5, "swapxi": 5, "sweet": 3, "switch": [1, 6], "sylow": 7, "symbol": [1, 2, 5, 6, 7], "symm": [3, 4, 5, 6, 7, 8, 9], "symmetr": [2, 3, 7], "symmetri": [3, 6], "synonym": 7, "syntact": 2, "syntax": [0, 1, 2, 4, 6], "synth": 6, "synthes": [5, 6], "synthinst": 6, "system": [3, 4, 5, 6], "s\u00e1nchez": 0, "s\u02e3": 7, "s\u1d9c": [8, 10], "s\u2081": 6, "s\u2082": 6, "t": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "t2space": 8, "t3space": 8, "t_": 8, "t_3": 8, "t_x": 8, "t_y": 8, "t_z": 8, "tab": [1, 3, 4], "tackl": 6, "tactic": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "tag": [2, 3, 6], "take": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "taken": [1, 2], "takeshi": 0, "talk": [4, 7, 8, 9], "tantamount": [1, 3], "target": [1, 6, 7, 8, 10], "task": [0, 2, 4, 5, 6, 8], "taught": 7, "tauto": 4, "tautologi": 4, "teach": 0, "tear": 6, "technic": [1, 5, 6], "techniqu": [2, 8], "technologi": 6, "tediou": [1, 2, 6], "tell": [0, 2, 3, 4, 5, 6, 7], "temporarili": [1, 2], "tempt": 6, "tend": [1, 8], "tendsto": [8, 10], "tendsto_attop": 8, "tendsto_congr": 8, "tendsto_iff": 8, "tendsto_integral_of_dominated_converg": 10, "tendsto_nhds_uniqu": 8, "tendsto_pow_attop_nhds_zero_of_lt_on": 8, "tendsto_right_iff": 8, "tendsto_subseq": 8, "tendsto\u2081": 8, "tendsto\u2082": 8, "term": [0, 1, 2, 3, 4, 5, 7, 8], "terminologi": 5, "terraf": 0, "ters": 6, "test": 4, "text": [0, 3, 5, 8], "textbook": [0, 1, 2], "th": 4, "than": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "thank": 6, "thei": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "them": [0, 1, 2, 3, 4, 5, 6, 7, 8], "theme": 3, "themselv": [0, 4, 5], "theorem": [0, 2, 4, 5, 7, 8, 9, 10, 12], "theoret": [2, 3, 8], "theori": [0, 1, 2, 3, 6, 7, 8, 9, 12], "therefor": [1, 4, 5, 8], "thereof": 0, "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "thing": [0, 1, 2, 3, 4, 5, 6, 8], "think": [0, 1, 2, 3, 4, 5, 6, 8, 9], "third": [1, 2, 3, 5, 8], "thoma": 0, "thorough": 0, "those": [0, 1, 2, 3, 5, 6, 7, 8, 9], "though": [2, 3, 4, 5], "three": [1, 2, 4, 5, 7, 8], "through": [0, 1, 3, 4, 5, 6, 7, 8], "thu": [1, 3, 4, 5, 8], "thumb": 4, "tighter": [1, 3], "tightli": 5, "time": [1, 4, 5, 6, 8, 9, 10], "timesav": 1, "tiresom": 8, "to_addit": 6, "to_localinvers": 9, "toaddcommgroup\u2083": 6, "toaddgroup\u2083": 6, "todiaoneclass\u2081": 6, "todia\u2081": 6, "tofun": [5, 6], "togeth": [1, 2, 3, 4, 5, 7, 8], "togroup": 7, "tomonoidhom\u2081": 6, "tomuloneclass": 6, "too": [0, 1, 3, 5, 6, 7, 8], "toohei": 0, "tool": [0, 1, 5, 6], "toone\u2081": 6, "top": [0, 6, 7, 8, 9], "topermhom": 7, "topic": [4, 5, 6, 7], "topolog": [5, 6, 9, 12], "topologi": [1, 5, 6, 9, 12], "topologicalspac": [8, 9], "toreal": 10, "tosemigroup\u2081": 6, "tosmul\u2083": 6, "total": 1, "tour": [8, 9], "toward": 7, "trace": 6, "tradeoff": 3, "tradition": 7, "train": [1, 6], "tran": [1, 2, 4, 5, 6, 7], "trans_assoc": 5, "trans_refl": 5, "transform": [2, 3], "transit": [1, 2, 5, 8], "translat": [4, 6, 7, 8], "trap": 6, "treat": [2, 3, 5, 6, 7, 8, 9], "treatment": 7, "tri": [1, 2, 4, 6], "triangl": [1, 2, 5], "trick": [1, 2, 4, 6, 9], "tricki": [2, 3, 4, 6, 7], "trigger": 6, "tripl": 3, "trivial": [3, 4, 7, 8], "troubl": [2, 3, 5], "true": [1, 2, 3, 6, 8], "truncat": 4, "truth": [1, 4], "try": [0, 1, 2, 3, 4, 5, 6, 8], "tupl": 5, "turn": [2, 3, 4, 5, 6, 8, 9], "tutori": 0, "twice": [0, 1, 8], "two": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "two_l": 4, "two_le_of_mod_4_eq_3": 4, "two_mul": 1, "ty": 7, "type": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "typeclass": 6, "typic": [1, 7], "u": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "ubf": 2, "ubfa": 2, "ubg": 2, "ubgb": 2, "ulequiv": 7, "ultim": 0, "un": 3, "unapp": 1, "unbundl": 6, "unchang": [1, 2], "uncom": 1, "uncount": 8, "uncurri": 8, "under": [5, 6, 7, 8], "underli": [0, 1, 5, 6, 7], "underneath": [1, 3], "underscor": [1, 2, 3], "understand": [0, 2, 3, 4, 5, 6, 7, 8], "understood": [4, 8], "unfold": [1, 2, 3, 4, 5, 8], "unfortun": 7, "unicod": [1, 3, 6], "unif": 6, "uniform": [3, 8, 9], "uniformcontinu": 8, "uniformcontinuous_iff": 8, "uniformli": 9, "union": [1, 3, 4, 5, 6, 7, 9, 10], "union_def": 3, "uniqu": [1, 2, 3, 4, 5, 7, 8], "unit": [5, 6, 8], "units_eq_one_or": 7, "univ": [3, 8, 9, 10], "univ_set": 8, "univari": 7, "univers": [1, 3, 5, 7, 8, 12], "unknown": 6, "unless": [1, 2, 5], "unlik": [3, 4], "unnecessari": [3, 7], "unpack": [2, 3], "unpleas": [6, 8], "unrel": 6, "unshad": 3, "unspecifi": 6, "unsurprisingli": 3, "until": [1, 4, 6, 8], "up": [0, 2, 3, 4, 5, 6, 7, 8], "updat": 0, "upper": [1, 2], "us": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "usabl": 6, "usag": 1, "user": [0, 6], "usual": [1, 2, 3, 4, 5, 7, 8, 10], "v": [0, 1, 2, 3, 5, 8], "val": 5, "valid": 2, "valu": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "van": 0, "vanish": 7, "varepsilon": [2, 8], "variabl": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "variant": [1, 2, 7, 8], "variat": [1, 3, 4, 5, 8, 9], "varieti": 8, "variou": [2, 3, 5, 6, 10], "vastli": 2, "ve": [6, 8], "vector": [1, 3, 6, 7, 9], "verbatim": 7, "verbos": 3, "veri": [0, 2, 4, 6, 7, 8, 10], "verifi": 2, "versa": [1, 3], "version": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "vertic": [2, 5], "vi": 5, "via": 8, "vice": [1, 3], "victor": 0, "view": [5, 6, 7, 8], "visibl": 1, "vocabulari": 3, "volum": 10, "w": [1, 6], "wa": [1, 3, 7], "wai": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "want": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "wasn": 8, "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "weak": 6, "weaker": [1, 2], "weav": 5, "web": [0, 1, 4], "weight": 5, "weightedaverag": 5, "weird": [6, 8], "weirder": 9, "welcom": [0, 1], "well": [0, 1, 2, 3, 4, 5, 6, 7, 8], "were": [2, 4, 5, 8], "what": [0, 1, 2, 3, 4, 5, 6, 7, 8], "whatev": [0, 2, 4], "whatsnew": 6, "when": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "whenev": [1, 2, 4, 5], "where": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "wherea": [0, 1, 2, 3, 5, 7, 8], "wherebi": [5, 8], "whether": [2, 3, 4, 6, 8], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "while": [0, 1, 2, 6, 7, 8], "who": [0, 8], "whole": 5, "whose": [1, 2, 4, 5, 6, 7, 8, 9], "why": [0, 2, 4, 6, 7, 8], "wieser": 0, "window": [0, 1, 2, 5], "winston": 0, "wise": 5, "wish": 8, "withbot": 7, "within": [1, 2, 8], "without": [1, 2, 4, 5, 6, 7, 8, 9], "withtop": 9, "wlog": 3, "won": [2, 4, 6, 7, 8], "word": [1, 2, 3, 4, 5, 7, 8], "work": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "world": 0, "worri": [1, 3, 4, 5, 7], "worth": [1, 2, 5], "would": [1, 2, 3, 4, 5, 6, 7, 8, 9], "wouldn": 6, "wrap": [6, 8], "write": [0, 1, 2, 4, 5, 6, 7, 8, 9, 10], "written": [1, 2, 3, 4, 5, 6, 7, 8, 9], "wrong": 3, "wrote": 4, "x": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "x_0": 8, "x_1": [2, 3], "x_2": [2, 3], "x_i": 8, "x_nonneg": 5, "xa": 3, "xai": 3, "xeq": [2, 3], "xgt": 2, "xlt": 2, "xltz": 2, "xmem": 3, "xnt": 3, "xnu": 3, "xpo": 3, "xstu": 3, "xsu": 3, "xt": 3, "xtu": 3, "xu": 3, "xy": [2, 5], "x\u2080": [8, 9], "x\u2081": [2, 3, 5, 8], "x\u2081a": 3, "x\u2082": [2, 3, 5], "x\u2082a": 3, "x\u2082eq": 3, "x\u2082na": 3, "y": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "y_nonneg": 5, "yannick": 0, "yball": 8, "yeq": 2, "yet": [2, 3, 4, 5, 6, 8], "yield": [1, 2, 3, 4, 5, 8], "ylim": 8, "ylt": 2, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "your": [0, 1, 2, 3, 5, 6, 7, 8], "yourself": [2, 5], "ypo": 3, "y\u2080": 8, "y\u2081": 5, "y\u2082": 5, "z": [0, 1, 2, 5, 6, 7, 8, 9, 10], "z_nonneg": 5, "zermelo": 2, "zero": [2, 3, 4, 5, 6, 7, 8, 9, 10], "zero_add": [1, 4, 5, 6], "zero_def": 5, "zero_dvd_iff": 4, "zero_im": 5, "zero_l": [4, 5], "zero_lt_on": [2, 4], "zero_lt_two": 5, "zero_mem": 7, "zero_mul": [1, 4, 5, 6], "zero_r": 5, "zero_smul": 6, "zf": 2, "zlty": 2, "zmod": 7, "zsmul": [5, 6], "zsmulrec": 5, "zsmul\u2081": 6, "zulip": [0, 4], "z\u2080": 8, "z\u2081": 5, "z\u2082": 5, "\u00b9": [1, 3, 5, 6, 7, 8], "\u02e2": 8, "\u03b1": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "\u03b2": [1, 2, 3, 5, 6, 8, 10], "\u03b3": [1, 2, 5, 8], "\u03b4": [2, 8], "\u03b4po": 8, "\u03b5": [2, 8, 9], "\u03b52po": 2, "\u03b5_po": [8, 9], "\u03b5k_po": 9, "\u03b5po": [2, 8], "\u03b9": [7, 8, 9, 10], "\u03bc": [8, 10], "\u03bd": 10, "\u03c0": [7, 8, 9], "\u03c3": [5, 7], "\u03c6": [7, 8], "\u03c8": 7, "\u03c9": 7, "\u1d50": 10, "\u1d65": 7, "\u1d9c": 7, "\u1da0": [8, 9, 10], "\u2080": 3, "\u2081": 6, "\u2090": 7, "\u2102": [1, 5, 7, 9], "\u2115": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "\u211a": [1, 4, 7, 8], "\u211d": [1, 2, 3, 5, 6, 7, 8, 9, 10], "\u2124": [1, 4, 5, 6, 7], "\u2124\u02e3": 7, "\ud835\udcdd": [8, 9, 10], "\ud835\udcdf": 8, "\ud835\udce4": 8, "\ud835\udd42": 9, "\ud835\udd5c": [9, 10], "\ud835\udfd9": 6}, "titles": ["<span class=\"section-number\">1. </span>Introduction", "<span class=\"section-number\">2. </span>Basics", "<span class=\"section-number\">3. </span>Logic", "<span class=\"section-number\">4. </span>Sets and Functions", "<span class=\"section-number\">5. </span>Elementary Number Theory", "<span class=\"section-number\">6. </span>Structures", "<span class=\"section-number\">7. </span>Hierarchies", "<span class=\"section-number\">8. </span>Groups and Rings", "<span class=\"section-number\">9. </span>Topology", "<span class=\"section-number\">10. </span>Differential Calculus", "<span class=\"section-number\">11. </span>Integration and Measure Theory", "Index", "Mathematics in Lean"], "titleterms": {"The": [2, 3], "about": 1, "action": 7, "algebra": [1, 5, 7], "appli": 1, "asymptot": 9, "ball": 8, "basic": [1, 6], "bernstein": 3, "build": 5, "calcul": 1, "calculu": 9, "close": 8, "compact": 8, "comparison": 9, "complet": 8, "concret": 7, "conjunct": 2, "continu": [8, 9], "converg": [2, 8], "countabl": 8, "defin": 5, "differenti": 9, "disjunct": 2, "elementari": [4, 9, 10], "exampl": 1, "existenti": 2, "fact": 1, "filter": 8, "function": [3, 8], "fundament": 8, "gaussian": 5, "get": 0, "group": 7, "hierarchi": 6, "ideal": 7, "ident": 1, "iff": 2, "implic": 2, "index": 11, "induct": 4, "infinit": 4, "integ": 5, "integr": 10, "introduct": 0, "irrat": 4, "lean": 12, "lemma": 1, "linear": 9, "logic": 2, "mani": 4, "map": 9, "mathemat": 12, "measur": 10, "metric": 8, "monoid": 7, "more": 1, "morphism": [6, 7], "negat": 2, "norm": 9, "number": 4, "object": 6, "open": 8, "overview": 0, "polynomi": 7, "prime": 4, "prove": 1, "quantifi": 2, "quotient": 7, "recurs": 4, "ring": 7, "root": 4, "rw": 1, "schr\u00f6der": 3, "separ": 8, "sequenc": 2, "set": [3, 8], "space": [8, 9], "start": 0, "structur": [1, 5], "sub": 6, "subgroup": 7, "subr": 7, "theorem": [1, 3], "theori": [4, 10], "topolog": 8, "topologi": 8, "uniformli": 8, "unit": 7, "univers": 2, "us": 1}}) Search.setIndex({"docnames": ["C01_Introduction", "C02_Basics", "C03_Logic", "C04_Sets_and_Functions", "C05_Elementary_Number_Theory", "C06_Structures", "C07_Hierarchies", "C08_Groups_and_Rings", "C09_Topology", "C10_Differential_Calculus", "C11_Integration_and_Measure_Theory", "genindex", "index"], "filenames": ["C01_Introduction.rst", "C02_Basics.rst", "C03_Logic.rst", "C04_Sets_and_Functions.rst", "C05_Elementary_Number_Theory.rst", "C06_Structures.rst", "C07_Hierarchies.rst", "C08_Groups_and_Rings.rst", "C09_Topology.rst", "C10_Differential_Calculus.rst", "C11_Integration_and_Measure_Theory.rst", "genindex.rst", "index.rst"], "titles": ["<span class=\"section-number\">1. </span>Introduction", "<span class=\"section-number\">2. </span>Basics", "<span class=\"section-number\">3. </span>Logic", "<span class=\"section-number\">4. </span>Sets and Functions", "<span class=\"section-number\">5. </span>Elementary Number Theory", "<span class=\"section-number\">6. </span>Structures", "<span class=\"section-number\">7. </span>Hierarchies", "<span class=\"section-number\">8. </span>Groups and Rings", "<span class=\"section-number\">9. </span>Topology", "<span class=\"section-number\">10. </span>Differential Calculus", "<span class=\"section-number\">11. </span>Integration and Measure Theory", "Index", "Mathematics in Lean"], "terms": {"The": [0, 1, 4, 5, 6, 7, 8, 9, 10, 12], "goal": [0, 1, 2, 3, 4, 5, 8], "thi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "book": [0, 2, 8], "i": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "teach": 0, "you": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "formal": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "mathemat": [0, 1, 2, 3, 4, 5, 6, 7, 8], "us": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "lean": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "4": [0, 1, 2, 4, 5, 7, 8, 9], "interact": [0, 5, 6, 7, 10], "proof": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "assist": [0, 2, 5], "It": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "assum": [0, 1, 2, 3, 4, 6, 7, 8], "know": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "some": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "doe": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "requir": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "much": [0, 2, 4, 6, 7, 8, 9], "although": [0, 3, 4, 5, 6, 7, 8], "we": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "cover": [0, 1, 3, 6, 7, 8, 9], "exampl": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "rang": [0, 2, 3, 4, 7, 8], "from": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "number": [0, 1, 2, 3, 5, 6, 7, 8, 9, 12], "theori": [0, 1, 2, 3, 6, 7, 8, 9, 12], "measur": [0, 5, 8, 9, 12], "analysi": [0, 5, 9], "focu": [0, 1, 7, 8, 10], "elementari": [0, 3, 5, 7, 8, 12], "aspect": [0, 5, 7], "those": [0, 1, 2, 3, 5, 6, 7, 8, 9], "field": [0, 1, 5, 6, 7, 9], "hope": [0, 1], "thei": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "ar": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "familiar": [0, 1, 4, 5, 8, 9], "can": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "pick": [0, 6], "them": [0, 1, 2, 3, 4, 5, 6, 7, 8], "up": [0, 2, 3, 4, 5, 6, 7, 8], "go": [0, 1, 2, 3, 4, 6, 8], "also": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "don": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "t": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "presuppos": 0, "ani": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "background": [0, 7], "method": [0, 2, 3, 4, 5], "seen": [0, 1, 2, 4, 5, 6, 7, 8], "kind": [0, 1, 6, 8], "comput": [0, 2, 3, 4, 5, 7, 9, 10], "program": [0, 1, 2], "write": [0, 1, 2, 4, 5, 6, 7, 8, 9, 10], "definit": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "theorem": [0, 2, 4, 5, 7, 8, 9, 10, 12], "regiment": 0, "languag": [0, 1, 2, 3], "like": [0, 1, 2, 3, 4, 5, 6, 7, 8], "understand": [0, 2, 3, 4, 5, 6, 7, 8], "In": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "return": [0, 2, 3, 4, 5, 7, 8], "provid": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "feedback": 0, "inform": [0, 1, 2, 3, 5, 6, 8], "interpret": [0, 1, 4, 5, 7, 8], "express": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "guarante": [0, 3, 5], "well": [0, 1, 2, 3, 4, 5, 6, 7, 8], "form": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "ultim": 0, "certifi": 0, "correct": [0, 1, 7], "our": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "learn": [0, 1, 4, 5], "more": [0, 2, 3, 4, 5, 6, 7, 8, 9, 12], "about": [0, 2, 3, 4, 5, 6, 7, 8, 9, 12], "project": [0, 4, 5, 7, 8], "page": [0, 1, 4], "commun": [0, 4], "web": [0, 1, 4], "tutori": 0, "base": [0, 2, 3, 4, 6, 7, 8, 9], "": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "larg": [0, 6, 8], "ever": [0, 8], "grow": [0, 6, 7], "librari": [0, 1, 2, 3, 4, 5, 7, 8, 9], "mathlib": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "strongli": 0, "recommend": [0, 1, 3], "join": [0, 1, 5], "zulip": [0, 4], "onlin": 0, "chat": 0, "group": [0, 1, 2, 3, 4, 5, 6, 8, 9, 12], "haven": [0, 2, 6, 8], "alreadi": [0, 1, 2, 3, 4, 5, 6, 7, 8], "ll": [0, 2, 4, 6, 8], "find": [0, 1, 2, 4, 5, 6, 8], "live": [0, 5], "welcom": [0, 1], "enthusiast": 0, "happi": 0, "answer": [0, 5, 8], "question": [0, 4, 6, 8, 10], "offer": [0, 2, 5, 8], "moral": [0, 5, 7], "support": [0, 1, 2, 3, 4, 5, 6, 8], "read": [0, 1, 4, 5, 6, 7, 8], "pdf": 0, "html": 0, "version": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "design": [0, 1, 2, 3, 5, 7, 8], "run": 0, "insid": [0, 1, 2, 3, 7], "v": [0, 1, 2, 3, 5, 8], "code": [0, 1, 2, 3, 5, 6], "editor": [0, 1], "To": [0, 1, 2, 3, 4, 5, 6, 7, 8], "instal": [0, 6], "follow": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "instruct": [0, 1, 2, 8], "make": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "sure": [0, 1, 2, 3, 5, 6, 7], "have": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "git": 0, "fetch": 0, "mathematics_in_lean": 0, "repositori": [0, 1], "open": [0, 1, 2, 3, 4, 5, 7, 9, 10], "each": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "section": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "ha": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "an": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "associ": [0, 1, 2, 4, 5, 6, 7, 8, 10], "file": [0, 1, 4, 5, 6, 7, 8], "exercis": [0, 1, 2, 3, 5, 6, 7, 8, 9], "folder": 0, "mil": 0, "organ": 0, "chapter": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "copi": [0, 3, 4, 6, 7, 8], "experi": [0, 1, 8], "do": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "leav": [0, 1, 2, 3, 5, 6, 7], "origin": [0, 1, 5, 7], "intact": 0, "easier": [0, 1, 3, 4, 6, 8], "updat": 0, "chang": [0, 1, 2, 4, 5, 8, 10], "see": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "below": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "call": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "my_fil": 0, "whatev": [0, 2, 4], "want": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "creat": [0, 1, 4, 6], "your": [0, 1, 2, 3, 5, 6, 7, 8], "own": [0, 1, 4, 5, 6], "At": [0, 1, 2, 4, 5, 6], "point": [0, 1, 2, 3, 5, 6, 7, 8, 9, 10], "textbook": [0, 1, 2], "side": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "panel": 0, "type": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "ctrl": [0, 1, 2, 4, 5], "shift": [0, 1, 6, 8], "p": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "command": [0, 1, 2, 3, 4, 5, 6, 7], "maco": 0, "doc": 0, "show": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "document": [0, 1, 3, 4, 6], "resourc": 0, "bar": [0, 1, 2], "appear": [0, 1, 2, 5, 6, 7, 8], "press": 0, "select": [0, 8], "soon": [0, 2, 6, 7, 8], "highlight": [0, 2], "menu": [0, 1], "window": [0, 1, 2, 5], "click": [0, 1, 3, 4, 5, 6], "altern": [0, 1, 2, 3, 4, 5, 6, 8], "cloud": 0, "gitpod": 0, "how": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "github": [0, 1], "still": [0, 1, 2, 3, 4, 5, 6, 8, 10], "work": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "describ": [0, 1, 2, 3, 4, 5, 6, 8], "abov": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "progress": [0, 1, 5, 7], "pull": [0, 7, 8], "lake": 0, "ex": [0, 2], "cach": 0, "content": [0, 1, 2, 4, 8], "which": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "why": [0, 2, 4, 6, 7, 8], "suggest": [0, 2, 4, 5, 8], "intend": [0, 1, 2, 5], "while": [0, 1, 2, 6, 7, 8], "contain": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "explan": [0, 7, 8], "hint": [0, 1, 2, 10], "text": [0, 3, 5, 8], "often": [0, 1, 2, 3, 4, 5, 6, 7, 8], "includ": [0, 1, 2, 3, 4, 6, 7, 8, 9], "one": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "eval": [0, 7], "hello": 0, "world": 0, "should": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "abl": [0, 1, 2, 3, 4, 5, 6, 7, 9], "correspond": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "If": [0, 1, 2, 3, 4, 5, 6, 8], "line": [0, 1, 2, 3, 4, 6, 7], "hover": [0, 1, 2, 3, 4, 5], "cursor": [0, 1, 2], "over": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "respons": [0, 1], "pop": 0, "encourag": [0, 1, 2, 3, 4, 5], "edit": 0, "try": [0, 1, 2, 3, 4, 5, 6, 8], "moreov": [0, 1, 4, 5, 8], "lot": [0, 1, 3, 5, 6, 7, 8], "challeng": [0, 1, 2, 3, 5, 9], "rush": 0, "past": [0, 1, 7], "just": [0, 1, 2, 3, 4, 5, 6, 7, 8], "through": [0, 1, 3, 4, 5, 6, 7, 8], "central": [0, 4], "all": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "when": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "feel": [0, 1, 2, 6, 8], "comfort": 0, "master": [0, 1, 4], "relev": [0, 1, 2, 4, 5, 6, 7, 8], "skill": [0, 1, 2, 3, 4], "free": [0, 1, 7, 8], "move": [0, 1, 2, 6, 8], "alwai": [0, 1, 2, 3, 5, 6, 7], "compar": [0, 5, 6, 8], "solut": [0, 1, 4, 6], "ones": [0, 1, 2, 3, 5, 10], "put": [0, 1, 2, 3, 4, 5, 6, 7, 8], "simpli": [0, 1, 2, 3, 4, 5, 6, 7, 8], "tool": [0, 1, 5, 6], "build": [0, 2, 4, 6, 7, 8, 12], "complex": [0, 1, 2, 4, 5, 7, 9, 10], "known": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "depend": [0, 2, 3, 4, 5, 6, 7, 8], "everi": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "check": [0, 1, 2, 3, 4, 5, 6, 7, 8], "print": [0, 3, 4, 5, 10], "\u2115": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "These": [0, 1, 3, 4, 5, 7, 9, 10], "object": [0, 1, 2, 3, 4, 5, 7, 12], "2": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "def": [0, 2, 3, 4, 5, 6, 7, 8], "f": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "x": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "3": [0, 1, 2, 3, 4, 5, 6, 7, 8], "prop": [0, 2, 3, 4, 5, 6, 7, 8, 10], "statement": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "fermatlasttheorem": 0, "y": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "z": [0, 1, 2, 5, 6, 7, 8, 9, 10], "n": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "0": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "where": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "itself": [0, 2, 3, 5, 6, 7, 8, 9], "Such": [0, 1, 2, 6], "proposit": [0, 2, 3, 4, 5], "easi": [0, 4, 5, 6, 7, 8], "rfl": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "hard": [0, 1, 3, 5, 6, 7], "sorri": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "manag": [0, 1, 4, 5, 8], "construct": [0, 2, 3, 4, 5, 6, 7, 8], "accept": [0, 1, 2, 8], "term": [0, 1, 2, 3, 4, 5, 7, 8], "done": [0, 2, 3, 4, 6, 7, 8], "someth": [0, 1, 2, 4, 6, 8], "veri": [0, 2, 4, 6, 7, 8, 10], "impress": 0, "cheat": [0, 1], "so": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "now": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "game": [0, 6], "left": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "rule": [0, 2, 4, 5, 6, 8], "complementari": 0, "companion": [0, 1], "prove": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "thorough": 0, "underli": [0, 1, 5, 6, 7], "logic": [0, 1, 3, 4, 5, 7, 12], "framework": 0, "core": [0, 4, 5], "syntax": [0, 1, 2, 4, 6], "peopl": [0, 1], "who": [0, 8], "prefer": [0, 1, 2, 3], "user": [0, 6], "manual": [0, 3, 4], "befor": [0, 1, 2, 3, 4, 5, 6, 7], "new": [0, 1, 2, 3, 4, 5, 6, 7, 8], "dishwash": 0, "person": 0, "hit": [0, 1], "button": 0, "figur": [0, 1, 2, 5], "out": [0, 1, 2, 3, 4, 5, 6, 7, 8], "activ": 0, "potscrubb": 0, "featur": [0, 2, 4, 7], "later": [0, 1, 2, 4, 5, 6, 7, 8], "sens": [0, 2, 3, 4, 5, 6, 7, 8, 9], "here": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "refer": [0, 1, 2, 4, 5, 6, 8, 9], "back": [0, 1, 2, 5, 6, 7, 8], "necessari": [0, 2, 4, 5, 7], "anoth": [0, 1, 2, 3, 4, 5, 6, 7, 8], "thing": [0, 1, 2, 3, 4, 5, 6, 8], "distinguish": [0, 5, 6, 7, 8, 9], "place": [0, 1, 2, 5, 8], "greater": [0, 1, 2, 3, 4, 8], "emphasi": [0, 6], "tactic": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "given": [0, 1, 2, 3, 4, 5, 6, 7, 8], "two": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "wai": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "down": [0, 3, 4, 6, 8], "themselv": [0, 4, 5], "suitabl": [0, 1, 2, 5, 8], "descript": [0, 1, 2, 4, 8], "thereof": 0, "For": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "repres": [0, 1, 2, 3, 4, 5, 6, 9], "fact": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "even": [0, 1, 2, 3, 4, 5, 6, 8, 9, 10], "m": [0, 1, 2, 4, 6, 7, 8, 9], "nat": [0, 1, 2, 3, 4, 5, 7, 8], "fun": [0, 2, 3, 4, 5, 6, 7, 8, 9, 10], "k": [0, 2, 4, 5, 7, 8, 9], "hk": [0, 9], "hmn": 0, "rw": [0, 2, 3, 4, 5, 6, 7, 8, 12], "mul_add": [0, 1, 4, 6], "l": [0, 1, 9, 10], "_": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "compress": [0, 1, 8], "singl": [0, 1, 2, 3, 4, 5, 6, 7, 9], "instead": [0, 1, 2, 3, 4, 5, 6, 7, 8], "style": [0, 1], "same": [0, 1, 2, 3, 4, 5, 6, 7, 8], "comment": [0, 4], "henc": [0, 2, 3, 4, 5, 6, 8, 9], "ignor": [0, 5, 7, 8], "sai": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "natur": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "rintro": [0, 2, 3, 4, 7, 8], "need": [0, 1, 2, 3, 4, 5, 6, 7, 8], "twice": [0, 1, 8], "let": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "substitut": [0, 2], "obviou": [0, 4, 5, 6], "ring": [0, 1, 2, 3, 4, 5, 6, 12], "As": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "enter": [0, 1, 2, 3, 7, 8], "displai": [0, 1, 2, 6], "state": [0, 1, 2, 3, 4, 6, 7, 8, 9], "separ": [0, 1, 2, 4, 5], "tell": [0, 2, 3, 4, 5, 6, 7], "what": [0, 1, 2, 3, 4, 5, 6, 7, 8], "establish": [0, 1, 2, 3, 4, 5], "task": [0, 2, 4, 5, 6, 8], "remain": [0, 1, 2, 3, 5, 6, 8], "replai": 0, "step": [0, 1, 2, 3, 4, 5, 6], "sinc": [0, 1, 2, 3, 4, 5, 6, 7, 8], "continu": [0, 1, 4, 5, 6, 10], "first": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "introduc": [0, 1, 2, 3, 4, 8, 10], "could": [0, 1, 2, 4, 5, 6, 7, 8], "renam": 0, "decompos": [0, 3], "hypothesi": [0, 1, 2, 3, 4], "assumpt": [0, 1, 2, 3, 4, 5, 7, 8, 9, 10], "second": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "declar": [0, 1, 4, 5, 6, 7], "next": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "rewrit": [0, 1, 2, 3, 4, 5, 6, 8], "replac": [0, 1, 2, 3, 4, 6, 7], "solv": [0, 1, 2, 3, 4, 5, 6, 8], "result": [0, 1, 2, 3, 4, 5, 6, 7, 8], "abil": 0, "small": [0, 2, 4, 5, 8], "increment": [0, 1], "extrem": [0, 6, 8], "power": [0, 1, 3, 4, 5, 6], "reason": [0, 1, 2, 4, 5, 6, 7, 8], "quicker": 0, "than": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "There": [0, 1, 2, 3, 4, 6, 7, 8, 9, 10], "isn": [0, 2, 3, 4, 6], "sharp": 0, "distinct": [0, 2, 3, 4, 5, 8], "between": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "insert": [0, 2, 4, 5, 7, 8, 9], "did": [0, 2, 6, 8], "phrase": [0, 1, 2, 4, 5], "convers": [0, 2, 4, 7, 8], "short": [0, 1, 2, 3, 4, 5], "middl": [0, 1, 2, 8], "That": [0, 4, 5, 6], "said": [0, 2, 4, 5], "reduc": [0, 2, 3, 4, 5], "liner": 0, "carri": [0, 1, 2, 3, 4, 5, 6, 7, 8, 10], "But": [0, 1, 2, 3, 4, 5, 6, 7, 8], "substanti": 0, "autom": [0, 1, 5], "justifi": [0, 1, 2, 8], "longer": [0, 4, 5], "calcul": [0, 2, 4, 5, 12], "bigger": [0, 3, 9], "inferenti": 0, "invok": [0, 1, 8], "simplifi": [0, 2, 3, 4, 5, 8, 10], "specif": [0, 1, 3, 4, 5, 6], "pariti": 0, "automat": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "intro": [0, 1, 2, 3, 4, 5, 6, 7, 8], "simp": [0, 2, 3, 4, 5, 6, 7, 8, 9], "parity_simp": 0, "big": [0, 5, 7, 8, 9], "differ": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], "onli": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "its": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "built": [0, 2, 6, 7], "wherea": [0, 1, 2, 3, 5, 7, 8], "top": [0, 6, 7, 8, 9], "meant": [0, 2, 6], "complet": [0, 1, 2, 3, 4, 6, 7, 9], "extens": [0, 1, 6, 8, 9], "rather": [0, 1, 2, 4, 5, 6, 7, 8], "think": [0, 1, 2, 3, 4, 5, 6, 8, 9], "basic": [0, 2, 4, 5, 8, 10, 12], "entri": [0, 5, 7], "brows": [0, 1, 4, 7], "frustrat": [0, 6], "curv": 0, "steep": 0, "newcom": 0, "avail": [0, 1, 2, 4, 5, 6, 7], "round": [0, 1, 5], "clock": 0, "doubt": 0, "enough": [0, 1, 2, 3, 4, 6, 7, 8], "too": [0, 1, 3, 5, 6, 7, 8], "contribut": [0, 3], "develop": [0, 1, 4, 7, 10], "mission": 0, "choos": [0, 2, 3, 4, 5, 6, 7, 8], "dive": 0, "come": [0, 1, 2, 3, 4, 5, 6, 7, 8], "forewarn": 0, "fundament": [0, 4, 5, 6, 10], "life": [0, 2], "mai": [0, 1, 2, 3, 5, 6, 7, 8, 9], "never": [0, 6], "acknowledg": 0, "grate": [0, 5], "gabriel": 0, "ebner": 0, "set": [0, 1, 2, 4, 5, 6, 7, 9, 10, 12], "infrastructur": 0, "scott": 0, "morrison": 0, "mario": 0, "carneiro": 0, "help": [0, 1, 2, 3, 4, 5, 6, 8], "port": 0, "takeshi": 0, "ab": [0, 2, 5, 7], "julian": 0, "berman": 0, "alex": 0, "best": 0, "thoma": 0, "brown": 0, "bulwi": 0, "cha": 0, "hanson": 0, "char": 0, "bryan": 0, "gin": 0, "ge": [0, 2, 5], "chen": 0, "steven": 0, "clontz": 0, "mauricio": 0, "collari": 0, "johan": 0, "commelin": 0, "mark": [0, 1, 2, 6, 8], "czubin": 0, "alexandru": 0, "duca": 0, "pierpaolo": 0, "frasa": 0, "deni": 0, "gorbachev": 0, "winston": 0, "de": 0, "greef": 0, "marc": 0, "huisinga": 0, "mathieu": 0, "guai": 0, "paquet": 0, "k\u00fclshammer": 0, "victor": 0, "liu": 0, "jimmi": 0, "lu": 0, "martin": 0, "c": [0, 1, 2, 4, 5, 6, 7, 8, 9, 10], "giovanni": 0, "mascellani": 0, "john": 0, "mcdowel": 0, "isaiah": 0, "mindich": 0, "hunter": 0, "monro": 0, "pietro": 0, "monticon": 0, "oliv": 0, "nash": 0, "emanuel": 0, "natal": 0, "pim": 0, "ott": 0, "bartosz": 0, "piotrowski": 0, "nicola": 0, "rolland": 0, "keith": 0, "yannick": 0, "seurin": 0, "guilherm": 0, "silva": 0, "pedro": 0, "s\u00e1nchez": 0, "terraf": 0, "matthew": 0, "toohei": 0, "flori": 0, "van": 0, "doorn": 0, "eric": 0, "wieser": 0, "other": [0, 1, 2, 3, 4, 5, 6, 7, 8], "been": [0, 1, 2, 4, 5, 6, 9], "partial": [0, 1, 2, 3, 5, 6, 7], "hoskinson": 0, "center": [0, 8], "nut": 1, "bolt": 1, "gener": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "without": [1, 2, 4, 5, 6, 7, 8, 9], "u": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "net": 1, "hand": [1, 2, 3, 4, 5, 6, 8], "equal": [1, 2, 3, 4, 5, 6, 7, 8, 10], "right": [1, 2, 3, 4, 5, 6, 8, 9], "tantamount": [1, 3], "name": [1, 2, 3, 4, 5, 6, 7, 8, 9], "b": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "real": [1, 2, 3, 4, 5, 6, 8, 9, 10], "mul_assoc": [1, 2, 4, 5, 6, 7], "mul_comm": [1, 2, 4, 5, 6, 7], "elimin": 1, "explicitli": [1, 2, 3, 5, 6, 7, 8, 9], "purpos": [1, 2, 3, 4, 5, 6, 8], "illustr": [1, 2, 3, 4, 5, 7], "multipl": [1, 2, 3, 4, 5, 6, 7, 9], "written": [1, 2, 3, 4, 5, 6, 7, 8, 9], "howev": [1, 2, 5, 6, 7, 8, 9], "good": [1, 2, 3, 4, 5, 6, 7, 8], "mind": [1, 2, 5, 6, 7], "notat": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "convent": [1, 5, 7, 10], "parenthes": [1, 2, 3, 4], "\u211d": [1, 2, 3, 5, 6, 7, 8, 9, 10], "import": [1, 2, 3, 4, 5, 6, 7, 8, 10], "begin": [1, 2, 3, 4, 5, 6], "sake": [1, 4], "breviti": [1, 5], "suppress": 1, "happen": [1, 6, 8], "charact": [1, 3, 6], "r": [1, 2, 4, 5, 6, 7, 8], "symbol": [1, 2, 5, 6, 7], "doesn": [1, 2, 7, 8], "until": [1, 4, 6, 8], "space": [1, 2, 3, 5, 6, 7, 10, 12], "tab": [1, 3, 4], "kei": [1, 4, 5, 7, 8], "curiou": [1, 6], "abbrevi": [1, 2, 3, 5], "get": [1, 2, 3, 4, 6, 7, 8, 9, 12], "access": [1, 3, 5, 6, 7, 8, 10], "keyboard": 1, "easili": [1, 4, 5, 6, 7], "backslash": [1, 3], "lead": [1, 2, 4, 5, 6, 7, 8], "lean4": 1, "input": [1, 3, 8], "leader": 1, "report": 1, "current": [1, 2, 5, 6], "infoview": [1, 6], "A": [1, 2, 3, 4, 5, 6, 7, 8, 9], "typic": [1, 7], "might": [1, 2, 3, 4, 5, 7], "look": [1, 2, 3, 4, 6, 7, 8], "1": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "h\u2081": [1, 2, 3, 4], "prime": [1, 2, 3, 5, 6, 7, 12], "h\u2082": [1, 3, 4], "h\u2083": [1, 3], "denot": [1, 3, 4, 6, 7, 8], "context": [1, 2, 4, 5, 6, 7, 8, 9, 10], "plai": [1, 3, 4, 6, 7, 8], "three": [1, 2, 4, 5, 7, 8], "label": [1, 2], "everyth": [1, 2, 6, 8], "identifi": [1, 2, 4], "subscript": 1, "h": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "legal": 1, "would": [1, 2, 3, 4, 5, 6, 7, 8, 9], "h1": [1, 2, 3, 4, 5], "h2": [1, 2, 3, 5], "h3": 1, "foo": [1, 5], "baz": 1, "last": [1, 2, 3, 4, 5, 6, 7, 8], "sometim": [1, 2, 3, 4, 5, 6, 7, 8], "target": [1, 6, 7, 8, 10], "combin": [1, 2, 5, 6, 7, 8], "practic": [1, 2, 3, 6, 7, 8], "mean": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "usual": [1, 2, 3, 4, 5, 7, 8, 10], "clear": [1, 2, 4, 5, 6], "case": [1, 2, 3, 4, 5, 6, 7, 8, 10], "With": [1, 3, 4, 6, 8], "arrow": [1, 2, 6, 8], "revers": [1, 2, 3, 5, 8], "note": [1, 2, 3, 4, 5, 6, 7, 8, 10], "noth": [1, 2, 3, 4, 5, 6, 7], "argument": [1, 2, 3, 4, 5, 6, 7, 8], "tri": [1, 2, 4, 6], "match": [1, 2, 5], "pattern": [1, 2, 3, 5, 6], "local": [1, 2, 6, 8, 9], "d": [1, 2, 4, 5, 7, 9], "e": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "sub_self": [1, 2], "hyp": 1, "list": [1, 2, 3, 4, 5], "comma": 1, "squar": [1, 2, 4, 5, 6, 7], "bracket": [1, 2, 5, 6, 7], "after": [1, 2, 4, 6, 8, 9], "trick": [1, 2, 4, 6, 9], "variabl": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "onc": [1, 2, 3, 4, 5, 6, 7, 8, 10], "outsid": [1, 4], "inspect": 1, "reveal": 1, "inde": [1, 5, 6, 7, 8, 9], "delimit": 1, "scope": [1, 2, 3, 5, 7], "end": [1, 2, 3, 4, 5, 6, 7, 8, 9], "block": [1, 4, 7], "final": [1, 2, 3, 5, 7, 8, 10], "recal": [1, 2, 4, 5, 7, 8, 10], "introduct": [1, 2, 7, 8, 12], "determin": [1, 5, 7, 8], "both": [1, 2, 3, 4, 5, 6, 7, 8, 9], "expect": [1, 2, 3, 4, 5, 6, 7, 8], "rais": [1, 4], "error": [1, 2, 3, 6], "explain": [1, 2, 3, 4, 5, 6, 7, 8, 10], "output": [1, 7], "meanwhil": [1, 4], "take": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "two_mul": 1, "add_mul": [1, 6], "distribut": [1, 4, 5, 6], "addit": [1, 2, 4, 5, 6, 7, 8, 9, 10], "add_assoc": [1, 4, 5, 6], "precis": [1, 3, 7, 8, 9], "possibl": [1, 2, 3, 4, 5, 7, 8], "calc": [1, 2, 3, 5, 7, 8], "keyword": [1, 2, 4, 5], "notic": [1, 2, 3, 4, 5, 7, 8], "finicki": 1, "underscor": [1, 2, 3], "justif": [1, 2], "format": 1, "indic": [1, 2, 3, 5, 6], "indent": 1, "One": [1, 2, 3, 4, 5, 6, 7, 8], "outlin": [1, 2, 4, 8], "modulo": [1, 4, 5], "individu": 1, "pure": [1, 8], "littl": [1, 2, 8, 9], "underneath": [1, 3], "pow_two": [1, 4], "mul_sub": 1, "add_sub": 1, "sub_sub": 1, "add_zero": [1, 5, 6], "perform": [1, 2, 3], "exact": [1, 2, 3, 4, 5, 7, 8], "becaus": [1, 2, 3, 4, 5, 6, 7, 8, 9], "exactli": [1, 2, 3, 5, 6, 7, 8], "close": [1, 2, 3, 6, 7, 9, 10], "bit": [1, 2, 4, 6, 7, 8], "commut": [1, 2, 3, 4, 5, 6, 7, 9], "long": [1, 2, 3, 5, 6, 7, 9], "axiom": [1, 2, 3, 5, 6, 7, 8, 10], "indirectli": 1, "data": [1, 2, 4, 5, 6, 8], "similar": [1, 2, 3, 5, 6, 7, 8], "common": [1, 2, 3, 4, 5, 7, 8], "variat": [1, 3, 4, 5, 8, 9], "nth_rw": 1, "allow": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "particular": [1, 2, 5, 6, 7, 8], "instanc": [1, 2, 3, 4, 5, 6, 7, 8, 9], "enumer": [1, 2], "start": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12], "occurr": 1, "consist": [1, 3, 5, 6, 7, 8, 9], "collect": [1, 2, 3, 5, 8, 10], "oper": [1, 2, 3, 4, 5, 6, 7, 8, 9], "time": [1, 4, 5, 6, 8, 9, 10], "constant": [1, 2, 7, 10], "mapsto": [1, 5], "abelian": [1, 5, 6], "negat": [1, 5, 12], "invers": [1, 3, 5, 6, 7, 9, 10], "add_comm": [1, 4, 5, 6, 7], "zero_add": [1, 4, 5, 6], "add_left_neg": 1, "mul_on": [1, 5, 6, 7], "one_mul": [1, 2, 5, 6], "being": [1, 3, 5, 7, 8, 9], "suffic": [1, 2, 3, 7, 8], "give": [1, 2, 3, 4, 6, 7, 8, 10], "element": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "concret": [1, 2, 4, 5, 6, 8], "integ": [1, 2, 4, 6, 7, 12], "abstract": [1, 2, 5, 6, 7, 8], "character": [1, 3, 4, 8, 9], "axiomat": [1, 2, 3, 5], "train": [1, 6], "recogn": [1, 2, 4, 5, 6, 8], "appropri": [1, 2, 3, 5, 6], "\u2124": [1, 4, 5, 6, 7], "ration": [1, 2, 4, 8], "\u211a": [1, 4, 7, 8], "\u2102": [1, 5, 7, 9], "extend": [1, 3, 4, 5, 6, 8, 10], "order": [1, 2, 3, 4, 5, 6, 8, 9], "Not": [1, 5, 8], "properti": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "hold": [1, 2, 3, 4, 5, 7, 8, 10], "arbitrari": [1, 2, 3, 4, 5, 7], "taken": [1, 2], "cours": [1, 2, 4, 6, 7, 8, 9, 10], "linear": [1, 2, 5, 7, 8], "matric": [1, 5, 7], "fail": [1, 2, 4, 5, 6, 8, 10], "commr": [1, 2, 5, 7], "unchang": [1, 2], "linarith": [1, 2, 4, 5], "permiss": 1, "strike": [1, 2], "balanc": 1, "concis": [1, 5, 7], "readabl": [1, 2, 3, 8], "strengthen": [1, 2, 4], "deriv": [1, 2, 4, 7, 9, 10], "most": [1, 2, 3, 4, 5, 6, 7, 8, 10], "organiz": 1, "mechan": [1, 2, 5], "namespac": [1, 2, 3, 4, 5, 7, 8], "full": [1, 2, 3, 4, 5, 6, 7, 8], "shorter": [1, 3, 4, 7, 8], "avoid": [1, 2, 3, 4, 5, 6, 7, 9], "due": [1, 6], "clash": 1, "myre": 1, "add_right_neg": 1, "effect": [1, 3, 6, 8], "temporarili": [1, 2], "reprov": [1, 7], "care": [1, 2, 3, 5], "earlier": [1, 7], "pai": [1, 2, 6, 7, 8], "attent": [1, 2, 4, 6, 7, 8], "curli": [1, 2], "implicit": [1, 2, 5, 6, 7, 8, 9], "moment": [1, 2, 5], "worri": [1, 3, 4, 5, 7], "neg_add_cancel_left": 1, "add_neg_cancel_right": 1, "add_left_cancel": 1, "add_right_cancel": 1, "plan": [1, 6, 8], "brace": 1, "imagin": 1, "situat": [1, 3, 6, 7, 8], "draw": [1, 5, 6], "conclus": [1, 2, 4], "hypothes": [1, 2, 3, 4, 5], "redund": [1, 5, 8, 10], "few": [1, 2, 3, 4, 8], "extra": [1, 2, 3, 5, 6, 7, 8], "oner": 1, "complic": [1, 2, 6, 7], "tediou": [1, 2, 6], "suppos": [1, 2, 3, 4, 5, 8], "infer": [1, 2, 3, 5, 6, 7], "mul_zero": [1, 5, 6], "serv": [1, 3, 4, 5, 10], "therefor": [1, 4, 5, 8], "promot": 1, "modular": 1, "subproof": 1, "wa": [1, 3, 7], "except": [1, 2, 5, 7], "ad": [1, 2, 3, 4, 5, 6, 8], "variant": [1, 2, 7, 8], "whose": [1, 2, 4, 5, 6, 7, 8, 9], "necessarili": [1, 10], "miss": [1, 3, 4], "piec": [1, 4, 5, 6, 7, 8], "either": [1, 2, 3, 5, 6, 8], "becom": [1, 4, 5, 6, 8], "technic": [1, 5, 6], "strictli": [1, 2, 9], "less": [1, 2, 3, 4, 5, 6, 7, 8], "script": 1, "slightli": [1, 6, 7, 8, 9], "clearer": [1, 3, 5], "human": 1, "reader": [1, 8], "maintain": 1, "evolv": 1, "rememb": [1, 2, 3, 4, 5, 6, 7, 8], "zero_mul": [1, 4, 5, 6], "By": [1, 3, 5, 6, 7], "neg_eq_of_add_eq_zero": 1, "eq_neg_of_add_eq_zero": 1, "neg_zero": 1, "neg_neg": 1, "had": [1, 6], "annot": [1, 2, 3, 4, 5, 6], "third": [1, 2, 3, 5, 8], "specifi": [1, 2, 3, 4, 5, 8, 9, 10], "imposs": 1, "default": [1, 2, 3, 4, 5, 6, 7, 9], "subtract": [1, 4, 5], "provabl": [1, 3, 6, 8], "sub_eq_add_neg": 1, "On": [1, 2, 3, 5, 6, 8, 10], "defin": [1, 2, 3, 4, 6, 7, 8, 9, 10, 12], "reflex": [1, 2, 5], "present": [1, 2, 4, 7, 8], "forc": [1, 2, 3, 7], "unfold": [1, 2, 3, 4, 5, 8], "deal": [1, 2, 3, 4, 5, 8], "equat": [1, 2, 3, 4, 5], "interchang": 1, "self_sub": 1, "effort": [1, 4], "one_add_one_eq_two": 1, "norm_num": [1, 2, 4, 5], "strength": 1, "weaker": [1, 2], "notion": [1, 2, 3, 4, 5, 7, 8, 9, 10], "addgroup": [1, 5, 7], "otherwis": [1, 2, 3, 4, 5, 7], "addcommgroup": [1, 7], "commgroup": 1, "g": [1, 2, 3, 5, 6, 7, 8, 9, 10], "mul_left_inv": [1, 5], "\u00b9": [1, 3, 5, 6, 7, 8], "cocki": 1, "helper": 1, "along": [1, 4, 7, 8], "mul_right_inv": [1, 5], "mul_inv_rev": 1, "non": [1, 3, 6, 7, 8, 10], "abel": [1, 7], "noncomm_r": 1, "seem": [1, 2, 4, 6, 8, 9], "odd": [1, 2, 3, 4], "partli": [1, 6, 7], "histor": [1, 7], "conveni": [1, 2, 3, 5, 6, 7, 8], "great": [1, 5], "sort": [1, 3, 4], "inequ": [1, 2, 6, 8], "le": [1, 5, 6], "whenev": [1, 2, 4, 5], "consid": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "le_refl": [1, 2], "le_tran": [1, 2], "detail": [1, 2, 3, 4, 5, 6, 7], "unless": [1, 2, 5], "realli": [1, 2, 3, 4, 6, 7, 8], "insist": [1, 6], "discuss": [1, 2, 4, 5, 6, 7, 8, 9], "implic": [1, 8, 12], "h\u2080": [1, 2, 3, 4, 8], "dot": [1, 7, 8], "option": [1, 2, 4, 5, 6, 8], "within": [1, 2, 8], "visibl": 1, "must": [1, 5, 6, 8], "decreas": [1, 5], "fourth": [1, 2], "mode": [1, 2, 5], "entir": [1, 3, 5, 8, 9], "lt_of_le_of_lt": [1, 2], "lt_of_lt_of_l": 1, "lt_tran": [1, 2], "togeth": [1, 2, 3, 4, 5, 7, 8], "handl": [1, 3, 4, 6, 7], "arithmet": 1, "5": [1, 2, 5, 7, 8, 9], "pass": [1, 5], "exp_le_exp": 1, "mpr": [1, 2, 5, 8], "exp": [1, 3], "applic": [1, 2, 5, 7, 10], "function": [1, 2, 4, 5, 6, 7, 9, 10, 12], "compound": [1, 2, 8], "pars": [1, 3, 7], "exp_lt_exp": 1, "log_le_log": 1, "log": [1, 3, 10], "log_lt_log": 1, "add_le_add": [1, 2], "add_le_add_left": 1, "add_le_add_right": 1, "add_lt_add_of_le_of_lt": 1, "add_lt_add_of_lt_of_l": 1, "add_lt_add_left": 1, "add_lt_add_right": 1, "add_nonneg": [1, 5], "add_po": 1, "add_pos_of_pos_of_nonneg": 1, "exp_po": [1, 3], "bi": [1, 2, 5], "lr": 1, "iff": [1, 3, 7, 8, 9, 10, 12], "connect": [1, 3, 5, 8], "equival": [1, 2, 3, 4, 5, 7, 8, 9, 10], "mp": [1, 2, 3, 4, 8], "forward": [1, 2, 5, 7, 8], "direct": [1, 2, 3, 6, 7, 8, 9], "stand": [1, 2, 4, 5, 6, 7, 8, 9], "modu": 1, "ponen": 1, "respect": [1, 2, 3, 4, 5, 7, 8], "thu": [1, 3, 4, 5, 8], "again": [1, 2, 3, 4, 5, 6, 7, 8], "numer": [1, 4, 5], "constitut": 1, "part": [1, 2, 3, 4, 5, 6, 8, 10], "strategi": [1, 2, 4], "api": 1, "reli": [1, 2, 5, 8], "guess": [1, 2, 3, 4, 5], "cmd": [1, 2], "mac": [1, 2], "a_of_b_of_c": 1, "approxim": 1, "loud": 1, "probabl": [1, 5, 6, 8], "add_l": 1, "choic": [1, 2, 3, 5, 8], "exist": [1, 2, 3, 6, 7, 8], "jump": [1, 4, 5, 8], "nearbi": [1, 4], "sq_nonneg": 1, "delet": [1, 2, 3], "uncom": 1, "previou": [1, 2, 3, 5, 6, 7, 8, 9, 10], "confirm": [1, 2, 3, 4], "finish": [1, 2, 3, 4, 7], "job": 1, "pow_two_nonneg": [1, 2], "tend": [1, 8], "around": [1, 3, 6, 7, 8, 10], "binari": [1, 2, 4, 5, 6], "increas": 1, "worth": [1, 2, 5], "definition": [1, 4, 5, 6, 8], "principl": [1, 2, 3, 4, 6, 9], "favor": [1, 5], "timesav": 1, "clever": 1, "involv": [1, 2, 4, 5, 6, 7, 8], "nice": [1, 2, 4, 6, 7, 8], "idea": [1, 2, 3, 5, 6, 8], "abs_l": [1, 5], "constructor": [1, 2, 3, 4, 5, 6], "split": [1, 2, 3, 4], "conjunct": [1, 6, 12], "congratul": [1, 2, 4], "min": [1, 2, 8, 10], "uniqu": [1, 2, 3, 4, 5, 7, 8], "min_le_left": 1, "min_le_right": 1, "le_min": 1, "max": [1, 2, 6, 8, 10], "pair": [1, 2, 4, 5, 7, 8], "act": [1, 7], "curri": 1, "logician": 1, "haskel": 1, "bind": [1, 3], "tighter": [1, 3], "infix": [1, 6], "le_antisymm": [1, 2], "usag": 1, "inconsist": 1, "outer": 1, "level": [1, 2, 6], "nest": [1, 2], "bother": [1, 3], "repetit": [1, 6], "foreshadow": 1, "univers": [1, 3, 5, 7, 8, 12], "quantifi": [1, 3, 4, 5, 7, 8, 12], "desir": [1, 3, 6, 7, 8], "implicitli": [1, 2], "repeat": [1, 4, 5, 6], "mani": [1, 2, 3, 5, 6, 7, 8, 9, 10, 12], "shorten": [1, 2, 7], "Of": [1, 2, 4, 6, 7, 8, 9, 10], "interest": [1, 2, 3, 5, 6, 8], "vice": [1, 3], "versa": [1, 3], "word": [1, 2, 3, 4, 5, 7, 8], "switch": [1, 6], "transit": [1, 2, 5, 8], "total": 1, "satisfi": [1, 3, 4, 5, 6, 8, 9], "disjunct": [1, 3, 12], "stick": [1, 2, 8, 9], "aux": [1, 2, 4, 8], "valu": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "yield": [1, 2, 3, 4, 5, 8], "made": [1, 2, 3, 5, 8], "manifest": [1, 8], "triangl": [1, 2, 5], "abs_add": [1, 2], "add_sub_cancel_right": 1, "sub_add_cancel": 1, "relat": [1, 2, 3, 5, 6, 7, 8, 9, 10], "divis": [1, 2, 4, 5, 6], "Be": [1, 3], "ordinari": [1, 2, 4, 5, 7, 8], "unicod": [1, 3, 6], "obtain": [1, 2, 4, 5, 8, 9], "dvd": 1, "dvd_tran": 1, "dvd_mul_of_dvd_left": 1, "dvd_mul_left": 1, "expon": 1, "expand": [1, 2, 3, 4, 5, 6], "w": [1, 6], "greatest": [1, 5, 8], "divisor": [1, 2, 4, 5, 7], "gcd": [1, 2, 4], "least": [1, 5, 6, 8], "lcm": 1, "analog": [1, 2, 3, 4, 8], "divid": [1, 2, 4, 5, 7], "gcd_zero_right": 1, "gcd_zero_left": 1, "lcm_zero_right": 1, "lcm_zero_left": 1, "dvd_antisymm": 1, "complain": 1, "ambigu": [1, 5], "_root_": [1, 3, 4], "saw": [1, 5, 6, 7, 8], "govern": [1, 5], "class": [1, 4, 5, 6, 7, 8, 9, 10], "antisymmetr": [1, 2], "\u03b1": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], "partialord": [1, 2], "adopt": 1, "letter": [1, 5, 9], "\u03b2": [1, 2, 3, 5, 6, 8, 10], "\u03b3": [1, 2, 5, 8], "carrier": [1, 5, 6, 7], "greek": [1, 4], "especi": [1, 2, 5, 6, 7, 8], "strict": [1, 2], "somewhat": [1, 3, 8], "lt_irrefl": [1, 2], "lt_iff_le_and_n": 1, "lattic": [1, 5, 6, 7, 8], "inf_le_left": [1, 8], "inf_le_right": 1, "le_inf": 1, "le_sup_left": 1, "le_sup_right": 1, "sup_l": 1, "lower": [1, 2, 4], "bound": [1, 2, 3, 4, 5, 8, 9, 10], "upper": [1, 2], "glb": 1, "lub": 1, "infimum": [1, 6, 7, 8, 10], "supremum": [1, 4, 6, 7], "inf": [1, 6, 8], "sup": [1, 4, 8], "further": [1, 8], "matter": [1, 2], "meet": [1, 2, 3, 5], "keep": [1, 3, 5, 6, 7], "dictionari": 1, "subset": [1, 2, 3, 5, 8, 9], "domain": [1, 2, 3, 4, 5, 7, 8], "boolean": 1, "truth": [1, 4], "fals": [1, 2, 3, 4, 6], "true": [1, 2, 3, 6, 8], "posit": [1, 3, 4, 5, 8, 10], "subspac": [1, 6], "vector": [1, 3, 6, 7, 9], "intersect": [1, 3, 5, 6, 7, 8, 10], "sum": [1, 2, 4, 5, 6, 7, 8], "inclus": [1, 3, 7, 8], "topologi": [1, 5, 6, 9, 12], "union": [1, 3, 4, 5, 6, 7, 9, 10], "intermedi": [1, 6, 8], "produc": [1, 2, 7, 9], "auto": [1, 6], "mysteri": [1, 5, 6], "unapp": 1, "tran": [1, 2, 4, 5, 6, 7], "issu": [1, 4, 5, 6, 8], "directli": [1, 2, 4, 5, 6, 8], "inf_comm": [1, 7], "inf_assoc": 1, "sup_comm": 1, "sup_assoc": 1, "absorpt": 1, "law": [1, 7], "absorb1": 1, "absorb2": 1, "found": [1, 5, 7, 9], "inf_sup_self": 1, "sup_inf_self": 1, "distriblattic": 1, "inf_sup_left": 1, "inf_sup_right": 1, "sup_inf_left": 1, "sup_inf_right": 1, "shown": [1, 5, 9, 10], "explicit": [1, 2, 5, 6, 8], "nondistribut": 1, "finit": [1, 3, 4, 5, 7, 8, 9, 10], "impli": [1, 2, 3, 4, 5, 8], "larger": [1, 8], "compat": [1, 7, 8], "strictorderedr": 1, "mul_po": [1, 4], "mul_nonneg": 1, "coupl": [1, 2, 6, 8], "metric": [1, 5, 9, 12], "equip": [1, 3, 5, 6, 7, 8, 9, 10], "distanc": [1, 2, 8, 9], "dist": [1, 8], "map": [1, 2, 3, 5, 6, 7, 8], "metricspac": [1, 8, 9], "dist_self": 1, "dist_comm": [1, 8], "dist_triangl": [1, 8], "nonneg": [1, 5], "nonneg_of_mul_nonneg_left": 1, "dist_nonneg": [1, 8], "dealt": 2, "simpl": [2, 4, 5, 6, 9], "absolut": 2, "\u03b5": [2, 8, 9], "though": [2, 3, 4, 5], "treat": [2, 3, 5, 6, 7, 8, 9], "appli": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "my_lemma": 2, "\u03b4": [2, 8], "hb": [2, 8], "subsequ": [2, 4, 8], "lemma": [2, 3, 4, 5, 6, 7, 8, 9, 10, 12], "mention": [2, 3, 5, 6, 7, 8], "my_lemma2": 2, "stage": [2, 5, 6], "my_lemma3": 2, "epo": 2, "ele1": 2, "xlt": 2, "ylt": 2, "essenti": [2, 3, 5, 7, 8], "colon": 2, "off": [2, 3, 4], "my_lemma4": 2, "abs_mul": 2, "mul_le_mul": 2, "abs_nonneg": 2, "mul_lt_mul_right": 2, "extract": [2, 8], "hidden": 2, "expos": [2, 8], "predic": [2, 3, 4, 6, 7, 8, 9], "fnub": 2, "fnlb": 2, "lambda": [2, 5], "hfa": 2, "hgb": 2, "dsimp": [2, 3, 5, 7], "simplif": [2, 3, 4], "contract": 2, "anyhow": 2, "control": 2, "transform": [2, 3], "rest": [2, 3, 5, 7, 8], "routin": 2, "nnf": 2, "nng": 2, "nna": 2, "codomain": [2, 4, 8], "structur": [2, 4, 6, 7, 8, 9, 10, 12], "monoid": [2, 3, 4, 6, 12], "fnub_add": 2, "orderedcanceladdcommmonoid": 2, "high": [2, 7], "monoton": [2, 6, 8], "nondecreas": [2, 4], "placehold": 2, "Or": [2, 3], "backward": [2, 8], "subgoal": 2, "mf": 2, "mg": 2, "aleb": 2, "flag": [2, 3], "squiggli": 2, "marker": 2, "nnc": 2, "bbb": [2, 5], "fneven": 2, "fnodd": 2, "ef": 2, "eg": 2, "og": 2, "rid": 2, "won": [2, 4, 6, 7, 8], "cannot": [2, 3, 4, 5, 6, 7, 8], "contrari": 2, "syntact": 2, "reduct": [2, 3, 5], "erw": 2, "harder": [2, 5], "spot": 2, "manipul": [2, 5, 7, 8], "foundat": [2, 3, 4, 5, 7], "mundan": 2, "assert": [2, 3, 6, 7], "contrast": [2, 3, 5, 6, 8], "zermelo": 2, "fraenkel": 2, "sin": [2, 9], "co": [2, 7], "zf": 2, "defect": [2, 6, 8], "theoret": [2, 3, 8], "motiv": 2, "detect": 2, "meaningless": 2, "independ": [2, 3, 5], "continuum": 2, "meta": [2, 6], "beyond": [2, 6, 9], "ask": [2, 4, 5, 6, 7, 8], "refl": [2, 3, 5, 6, 7], "setub": 2, "inject": [2, 3, 4, 6, 7, 8], "x_1": [2, 3], "x_2": [2, 3], "x\u2081": [2, 3, 5, 8], "x\u2082": [2, 3, 5], "add": [2, 4, 5, 6, 7, 8, 9], "nonzero": [2, 4, 5, 10], "sourc": [2, 8], "inspir": 2, "add_left_inj": 2, "composit": [2, 3, 5, 6, 7, 8], "injg": 2, "injf": [2, 3], "canon": [2, 3, 4, 5], "exhibit": [2, 8], "anonym": [2, 3, 4, 5, 7], "angl": 2, "certain": [2, 6, 8], "fnhasub": 2, "fnhaslb": 2, "ubf": 2, "ubg": 2, "rcase": [2, 3, 4, 8], "ubfa": 2, "ubgb": 2, "unpack": [2, 3], "main": [2, 6, 8, 9], "els": [2, 3, 4], "turn": [2, 3, 4, 5, 6, 8, 9], "fn_ub_add": 2, "lbf": 2, "lbg": 2, "recurs": [2, 3, 5, 12], "arbitrarili": [2, 8], "assign": [2, 3, 5, 6, 7], "compon": [2, 3, 5, 8, 10], "destruct": 2, "tag": [2, 3, 6], "chosen": [2, 5], "intern": [2, 5, 7], "primit": [2, 3], "scientist": 2, "sight": [2, 6], "hurt": 2, "chanc": 2, "yourself": [2, 5], "compani": 2, "old": [2, 5, 6], "chestnut": 2, "product": [2, 4, 5, 6, 7, 8, 10], "magic": [2, 5, 6], "verifi": 2, "sumofsquar": 2, "sumofsquares_mul": 2, "sosx": 2, "sosi": 2, "xeq": [2, 3], "yeq": 2, "insight": 2, "gaussian": [2, 7, 12], "sqrt": [2, 3, 4, 5], "norm": [2, 5, 8, 12], "reflect": 2, "di": [2, 5], "xy": [2, 5], "cryptic": 2, "easiest": [2, 4], "perspicu": 2, "6": [2, 4, 5, 6, 7, 8, 9], "divab": 2, "divbc": 2, "beq": 2, "ceq": 2, "And": [2, 4, 6, 8], "pretti": [2, 6, 7, 8], "Then": [2, 3, 5, 6, 7, 8, 10], "divac": 2, "alpha": [2, 3], "beta": [2, 3], "surject": [2, 3, 7, 8], "mul_div_cancel\u2080": 2, "field_simp": [2, 5], "denomin": [2, 4, 5], "hx": [2, 3, 5, 6, 7, 9], "surjg": 2, "surjf": [2, 3], "contradict": [2, 3, 4], "speak": [2, 5, 7, 8], "irreflex": 2, "asymmetri": 2, "lt_asymm": 2, "eventu": [2, 3, 8], "fnuba": 2, "not_le_of_gt": 2, "not_lt_of_g": [2, 4, 5], "lt_of_not_g": 2, "le_of_not_gt": 2, "snippet": [2, 4, 5, 7], "counterexampl": [2, 9], "monof": 2, "four": [2, 5], "valid": 2, "far": [2, 3, 6, 8], "q": [2, 4, 5, 6, 7, 8], "straightforward": [2, 6], "difficult": [2, 6], "conclud": [2, 9], "nonexist": 2, "contradictori": 2, "classic": [2, 3, 4, 7], "by_contra": [2, 4], "not_not": 2, "front": 2, "push": [2, 4, 7, 8], "inward": 2, "facilit": [2, 8], "push_neg": [2, 3, 4], "restat": [2, 6, 7], "contrapos": [2, 3, 4], "similarli": [2, 3, 4, 5, 7], "yet": [2, 3, 4, 5, 6, 8], "semicolon": [2, 4], "falso": 2, "anyth": [2, 5, 8], "elim": 2, "strang": [2, 4, 7], "fairli": 2, "reach": [2, 6], "37": 2, "exfalso": 2, "absurd": [2, 4], "slick": 2, "drop": 2, "manner": [2, 5], "analogi": [2, 5, 8, 9], "techniqu": [2, 8], "variou": [2, 3, 5, 6, 10], "xltz": 2, "zlty": 2, "10": [2, 9], "7": [2, 4, 5, 7], "behav": [2, 3, 6, 8], "roughli": [2, 3, 4], "friend": [2, 5], "were": [2, 4, 5, 8], "inscrut": [2, 3], "gadget": [2, 8], "auxiliari": [2, 8], "pow_eq_zero": [2, 4], "doubl": [2, 3], "symmetr": [2, 3, 7], "abs_lt": 2, "dvd_gcd_iff": 2, "8": [2, 4, 7, 8], "15": 2, "not_monotone_iff": 2, "aris": 2, "preorder": [2, 6, 8], "pre": 2, "lt_iff_le_not_l": 2, "repeatedli": [2, 8], "instanti": [2, 5, 6, 8], "inl": [2, 3], "inr": [2, 3], "branch": [2, 3, 6], "le_or_gt": 2, "abs_of_nonneg": [2, 5], "abs_of_neg": 2, "against": 2, "immedi": [2, 3, 5, 6], "attract": 2, "closer": [2, 8], "advantag": [2, 3, 4, 5, 7, 9], "myab": 2, "le_abs_self": 2, "neg_le_abs_self": 2, "enjoi": [2, 3, 4, 8], "pun": 2, "lt_ab": 2, "genuin": 2, "vertic": [2, 5], "lt_trichotomi": 2, "xgt": 2, "dvd_mul_right": [2, 4], "eq_zero_or_eq_zero_of_mul_eq_zero": 2, "zero": [2, 3, 4, 5, 6, 7, 8, 9, 10], "nontrivi": [2, 3, 4, 5, 8, 9], "integr": [2, 9, 12], "isdomain": [2, 7], "whether": [2, 3, 4, 6, 8], "em": [2, 3], "exclud": [2, 4], "by_cas": [2, 3, 4], "dispos": 2, "s_0": [2, 3], "s_1": 2, "s_2": 2, "ldot": [2, 3, 4], "varepsilon": [2, 8], "s_n": [2, 3], "render": [2, 4], "convergesto": 2, "ext": [2, 3, 4, 5, 6, 7], "enabl": [2, 3, 4, 5], "actual": [2, 3, 4, 6, 7, 8], "congr": 2, "reconcil": 2, "peel": 2, "convert": [2, 4, 7], "quit": [2, 6, 8], "zero_lt_on": [2, 4], "fill": [2, 3, 4, 5], "convergesto_const": 2, "\u03b5po": [2, 8], "nge": 2, "abs_zero": 2, "save": 2, "troubl": [2, 3, 5], "pen": [2, 7], "paper": [2, 3, 5, 7, 8, 10], "nt": 2, "maximum": [2, 4, 8], "implement": [2, 5, 6, 7, 9], "convergesto_add": 2, "ct": 2, "clean": [2, 8], "\u03b52po": 2, "ht": 2, "le_of_max_le_left": 2, "le_of_max_le_right": 2, "tricki": [2, 3, 4, 6, 7], "convergesto_mul_const": 2, "acpo": 2, "abs_po": 2, "exists_abs_le_of_convergesto": 2, "strong": [2, 4], "n\u2080": 2, "bpo": [2, 8], "pos\u2080": 2, "div_po": 2, "n\u2081": 2, "convergesto_mul": 2, "sketch": [2, 3, 4, 8], "limit": [2, 6, 8], "bold": 2, "scratch": 2, "convergesto_uniqu": 2, "sa": 2, "sb": 2, "abn": 2, "na": 2, "hna": 2, "nb": 2, "hnb": 2, "absa": 2, "absb": 2, "observ": [2, 4, 8], "everywher": [2, 3, 6, 8, 10], "linearord": 2, "9": [2, 8], "vastli": 2, "awai": [2, 5], "vocabulari": 3, "uniform": [3, 8, 9], "conceptu": [3, 7], "overload": 3, "verbos": 3, "system": [3, 4, 5, 6], "wrong": 3, "ss": 3, "sub": [3, 8, 10, 12], "cap": 3, "un": 3, "cup": 3, "univ": [3, 8, 9, 10], "empti": [3, 4, 5, 7, 8, 10], "member": [3, 8], "membership": [3, 4, 6, 7], "mem": 3, "notin": 3, "ident": [3, 4, 5, 6, 7, 8, 12], "databas": [3, 4, 6, 8], "unlik": [3, 4], "existenti": [3, 7, 12], "subset_def": 3, "inter_def": 3, "mem_setof": 3, "xu": 3, "mem_inter_iff": 3, "xsu": 3, "phenomenon": 3, "union_def": 3, "mem_union": [3, 4], "xtu": 3, "xt": 3, "unnecessari": [3, 7], "correctli": 3, "special": [3, 4, 5, 6, 7, 8, 10], "rewritten": 3, "diff_eq": 3, "mem_diff": 3, "xstu": 3, "xnt": 3, "xnu": 3, "extension": [3, 5], "unsurprisingli": 3, "harm": 3, "and_comm": 3, "antisymm": 3, "hood": [3, 5], "builder": 3, "not_even_iff_odd": 3, "not_even_iff": 3, "trivial": [3, 4, 7, 8], "eq_two_or_odd": 3, "odd_iff": 3, "confus": [3, 4, 6, 7, 8], "fortun": 3, "agre": 3, "prime_iff": 3, "symm": [3, 4, 5, 6, 7, 8, 9], "rwa": [3, 4, 5], "restrict": [3, 4, 7, 8], "signific": 3, "ball": [3, 9], "bex": 3, "bex_def": 3, "prime_x": 3, "slight": 3, "ssubt": 3, "index": [3, 6, 7, 8], "model": [3, 8], "sequenc": [3, 6, 8, 9, 12], "a_0": 3, "a_1": 3, "a_2": 3, "mem_iunion": 3, "xai": 3, "mem_iint": 3, "mem_iunion\u2082": 3, "mem_iinter\u2082": 3, "exists_prime_and_dvd": 3, "eq_univ": 3, "eq_univ_of_foral": 3, "exists_infinite_prim": 3, "\u2080": 3, "sunion": 3, "sinter": 3, "relationship": [3, 4], "sunion_eq_biunion": 3, "sinter_eq_biint": 3, "preimag": [3, 7, 8], "imag": [3, 4, 6, 7, 8], "tripl": 3, "mem_image_of_mem": 3, "galoi": [3, 5, 8], "image_subset_iff": 3, "represent": [3, 4, 5], "asid": 3, "raini": 3, "dai": 3, "behavior": [3, 6, 8], "nonempti": [3, 7, 8], "condit": [3, 4, 6, 7, 8, 9], "injon": [3, 10], "theme": 3, "rel": [3, 5], "relativ": 3, "xpo": 3, "ypo": 3, "exp_log": 3, "ingredi": [3, 5, 8, 9], "inhabit": [3, 5, 8], "appeal": [3, 6], "choose_spec": 3, "noncomput": [3, 5, 7], "inverse_spec": 3, "dif_po": 3, "dif_neg": 3, "if_po": 3, "if_neg": 3, "fulli": [3, 7, 8], "alon": 3, "leftinvers": 3, "rightinvers": 3, "hack": 3, "half": [3, 7], "dozen": 3, "condens": 3, "cantor": 3, "famou": [3, 7], "j": [3, 7], "intuit": [3, 8], "cardin": [3, 7], "biject": [3, 5, 7], "nineteenth": 3, "centuri": 3, "infinit": [3, 8, 12], "dedekind": 3, "quickli": [3, 7, 10], "behind": [3, 7], "problem": [3, 4, 5, 6, 8], "shade": 3, "region": 3, "diagram": 3, "circ": [3, 5], "scale": 3, "inner": 3, "smaller": [3, 4, 8], "concentr": 3, "unshad": 3, "compos": [3, 5, 7, 8], "disjoint": [3, 7, 10], "sound": [3, 5, 6], "plausibl": 3, "delic": 3, "improv": [3, 4], "confid": 3, "better": [3, 4, 5, 6, 8], "invfun": [3, 5], "leftinverse_invfun": 3, "invfun_eq": 3, "sbaux": 3, "sbset": 3, "s_": 3, "bigcup_": 3, "mathbb": [3, 4, 5, 7], "sbfun": 3, "complement": [3, 8, 10], "outermost": 3, "setminu": 3, "sb_right_inv": 3, "goe": [3, 4, 5, 6, 8], "neither": [3, 5, 6], "nor": [3, 5], "sb_inject": 3, "hf": [3, 7, 8, 9, 10], "a_def": 3, "h_def": 3, "hxeq": 3, "xa": 3, "wlog": 3, "x\u2081a": 3, "resolve_left": 3, "x\u2082a": 3, "not_imp_self": 3, "x\u2082na": 3, "x\u2082eq": 3, "hn": [3, 4, 8, 9], "sb_fun": 3, "bring": [3, 4, 8], "tradeoff": 3, "encapsul": [3, 5, 9], "symmetri": [3, 6], "dwell": 3, "sb_surject": 3, "hg": [3, 8, 9, 10], "gya": 3, "xmem": 3, "sweet": 3, "schroeder_bernstein": 3, "substant": 4, "ancient": 4, "fraction": 4, "lowest": 4, "2c": 4, "4c": 4, "factor": [4, 5, 7], "coprim": [4, 7], "smart": 4, "12": 4, "encount": [4, 6], "algebra": [4, 6, 8, 9, 10, 12], "prime_def_lt": 4, "eq_one_or_self_of_dvd": 4, "prime_p": 4, "17": 4, "commonli": [4, 5], "prime_two": 4, "prime_thre": 4, "broader": [4, 9], "irreduc": [4, 5], "coincid": [4, 5, 8], "rise": [4, 6, 7], "dvd_mul": 4, "even_of_even_sqr": 4, "dvd_of_dvd_pow": 4, "proce": [4, 6], "profici": 4, "prefix": [4, 6, 7], "search": [4, 5, 6], "engin": 4, "hesit": 4, "mul_right_inj": 4, "heart": [4, 7], "irration": 4, "dvd_gcd": 4, "coprime_mn": 4, "sqr_eq": 4, "meq": 4, "dvd_iff_exists_eq_mul_left": 4, "two_l": 4, "le_of_dvd": 4, "approach": [4, 5, 6, 8], "quick": [4, 7, 9], "ne": [4, 5], "occur": 4, "suffici": [4, 8], "primefactorslist": 4, "permut": [4, 7], "prime_of_mem_primefactorslist": 4, "prod_primefactorslist": 4, "primefactorslist_uniqu": 4, "talk": [4, 7, 8, 9], "factorization_mul": 4, "mnez": 4, "nnez": 4, "factorization_pow": 4, "black": [4, 6], "box": 4, "simpa": [4, 7, 9], "nnz": 4, "nsqr_nez": 4, "eq1": 4, "eq2": 4, "add_mul_mod_self_left": 4, "mul_mod_right": 4, "count_factors_mul_of_po": 4, "succ_ne_zero": 4, "succ": [4, 6], "successor": 4, "npow_nz": 4, "dvd_sub": 4, "anywai": [4, 7], "pow_eq": 4, "npowz": 4, "add_sub_cancel": 4, "understood": [4, 8], "quotient": [4, 5, 6, 8], "pictur": [4, 5, 7], "mediat": 4, "headach": 4, "contend": 4, "th": 4, "topic": [4, 5, 6, 7], "enat": 4, "infin": [4, 8, 10], "appreci": 4, "role": [4, 5, 8], "datatyp": 4, "freeli": 4, "translat": [4, 6, 7, 8], "mathematician": [4, 8], "inj": 4, "factori": 4, "fac": 4, "ih": 4, "fac_po": 4, "succ_po": 4, "dvd_fac": 4, "ipo": 4, "il": 4, "of_le_succ": 4, "dvd_mul_of_dvd_right": 4, "crude": 4, "remaind": [4, 5, 7], "pow_succ": 4, "pow_two_le_fac": 4, "finset": [4, 5, 7, 8], "bigoper": [4, 5, 7], "prod": [4, 7, 8, 10], "sum_range_zero": 4, "sum_range_succ": 4, "summat": 4, "prod_range_zero": 4, "prod_range_succ": 4, "deserv": 4, "danger": [4, 5], "ordinarili": [4, 5], "loop": 4, "indefinit": 4, "fix": [4, 6, 7, 8], "mul_left_comm": 4, "placement": 4, "re": [4, 5], "handi": 4, "sum_id": 4, "div_eq_of_eq_mul_right": 4, "sum_sqr": 4, "mynat": 4, "thumb": 4, "decid": [4, 7, 8], "preced": [4, 7], "truncat": 4, "exponenti": 4, "cut": 4, "predecessor": 4, "pred": 4, "mul": [4, 5, 6, 8], "succ_add": 4, "succ_mul": 4, "explor": [4, 8], "standard": [4, 5, 6, 8], "formul": [4, 7, 8], "quirki": 4, "among": 4, "annoi": [4, 6], "h0": 4, "succ_le_succ": 4, "zero_l": [4, 5], "interval_cas": 4, "interv": [4, 8, 10], "decis": [4, 7], "procedur": [4, 6], "revert": [4, 5], "minfac": 4, "smallest": [4, 6, 8], "strong_induction_on": 4, "subsum": 4, "exists_prime_factor": 4, "np": 4, "mltn": 4, "mdvdn": 4, "mne1": 4, "mz": 4, "zero_dvd_iff": 4, "mgt2": 4, "pp": 4, "pdvd": 4, "factorial_po": 4, "dvd_factori": 4, "primes_infinit": 4, "refin": [4, 9], "ple": 4, "p_1": 4, "p_n": 4, "prod_": 4, "p_i": [4, 8], "computation": 4, "test": 4, "decidableeq": 4, "abandon": 4, "ourselv": [4, 6], "subset_iff": 4, "mem_int": 4, "mem_sdiff": 4, "tauto": 4, "dispens": 4, "tautologi": 4, "dvd_prod_of_mem": 4, "eq_of_dvd_of_prim": 4, "prime_q": 4, "preserv": [4, 6, 8], "induction_on": 4, "singleton": 4, "prod_empti": 4, "prod_insert": 4, "mem_of_dvd_prod_prim": 4, "mem_insert": 4, "wrote": 4, "filter": [4, 9, 10, 12], "mem_filt": 4, "aim": [4, 7], "prod_po": 4, "_def": 4, "mem_": 4, "id": [4, 6, 8, 9], "bounded_of_ex_finset": 4, "qk": 4, "lt_succ_of_l": 4, "le_sup": 4, "ex_finset_of_bound": 4, "decidablepr": 4, "lt_succ_iff": 4, "congruent": 4, "p_k": 4, "loss": 4, "27": 4, "mod_4_eq_3_or_mod_4_eq_3": 4, "mul_mod": 4, "mod_lt": 4, "mul_mod_mod": 4, "two_le_of_mod_4_eq_3": 4, "neq": 4, "div_dvd_of_dvd": 4, "div_lt_self": 4, "exists_prime_factor_mod_4_eq_3": 4, "mge2": 4, "mul_div_cancel": 4, "home": [4, 5], "stretch": [4, 5], "remov": [4, 8], "eras": 4, "mem_eras": 4, "readi": [4, 6, 7, 8, 9], "dvd_add_iff_left": 4, "primes_mod_4_eq_3_infinit": 4, "p4": 4, "pltn": 4, "p4eq": 4, "pne3": 4, "seriou": [4, 6, 8], "feat": 4, "modern": [5, 7], "subject": 5, "consult": 5, "ann": 5, "baanen": 5, "abus": 5, "paramet": [5, 6], "broadest": 5, "possibli": 5, "constraint": [5, 8], "bundl": [5, 6, 7, 8, 9], "tupl": 5, "hy": [5, 6, 7], "hz": [5, 6], "mypoint1": 5, "mypoint2": 5, "mypoint3": 5, "mk": [5, 6, 7, 8], "former": 5, "latter": [5, 7, 8], "quot": [5, 8], "protect": 5, "add_x": 5, "addalt": 5, "eta": 5, "messier": 5, "view": [5, 6, 7, 8], "y\u2081": 5, "z\u2081": 5, "y\u2082": 5, "z\u2082": 5, "addalt_x": 5, "addalt_comm": 5, "apart": [5, 6], "effici": [5, 7, 8], "scalar": [5, 6, 7, 9], "smul": [5, 6, 7], "smul_distrib": 5, "road": 5, "link": [5, 6], "belong": [5, 6, 8], "simplex": 5, "convinc": 5, "equilater": 5, "interior": [5, 9], "standardtwosimplex": 5, "x_nonneg": 5, "y_nonneg": 5, "z_nonneg": 5, "sum_eq": 5, "swap": 5, "swapxi": 5, "interestingli": [5, 7, 9], "midpoint": 5, "div_nonneg": 5, "weight": 5, "averag": 5, "weightedaverag": 5, "lambda_nonneg": 5, "lambda_l": 5, "fin": [5, 7, 10], "standardsimplex": 5, "sum_eq_on": 5, "div_eq_mul_inv": 5, "sum_mul": 5, "sum_add_distrib": 5, "mul_sum": 5, "islinear": 5, "is_addit": 5, "preserves_mul": 5, "linf": 5, "subtyp": [5, 6, 7, 8], "preal": 5, "val": 5, "sigma": [5, 10], "wherebi": [5, 8], "stdsimplex": 5, "\u03c3": [5, 7], "fst": [5, 8], "snd": [5, 8], "custom": 5, "robust": [5, 6], "interfac": 5, "redefin": [5, 6], "accessor": 5, "weav": 5, "rich": [5, 6], "interconnect": 5, "hierarchi": [5, 7, 12], "clarifi": 5, "cdot": 5, "topolog": [5, 6, 9, 12], "mathcal": [5, 9], "proxi": 5, "bipartit": 5, "graph": 5, "categori": [5, 8, 9], "morphism": [5, 9, 12], "basi": [5, 8], "discret": 5, "inherit": [5, 6, 7], "polynomi": 5, "coeffici": [5, 7], "dual": [5, 8], "accommod": [5, 7], "almost": [5, 6, 7, 8, 10], "marriag": 5, "heaven": 5, "group\u2081": [5, 6], "inv": [5, 6], "struc": 5, "counterpart": 5, "assur": 5, "groupcat": 5, "group\u2081cat": 5, "str": 5, "capit": 5, "roman": 5, "equiv": [5, 7], "tofun": [5, 6], "right_inv": 5, "left_inv": 5, "creativ": 5, "evid": 5, "coercion": [5, 6, 7, 8, 9], "omit": 5, "perm": [5, 7], "under": [5, 6, 7, 8], "orient": 5, "permgroup": 5, "trans_assoc": 5, "trans_refl": 5, "refl_tran": 5, "self_trans_symm": [5, 7], "grouptheori": 5, "g_1": 5, "g_2": 5, "g_3": 5, "tightli": 5, "isomorph": [5, 7, 9], "Its": [5, 6], "neg": [5, 6, 8, 10], "reproduc": 5, "accompani": 5, "addgroup\u2081": 5, "scheme": 5, "addgrouppoint": 5, "arrang": 5, "mul_inv_cancel_right": 5, "achiev": [5, 6, 8], "silent": [5, 6], "regist": [5, 6, 7], "grp": 5, "contextu": 5, "cue": 5, "synthes": [5, 6], "whole": 5, "_inst_1": 5, "candid": 5, "group\u2082": 5, "mysquar": 5, "my_squar": 5, "remark": [5, 6], "headi": 5, "store": 5, "hasmulgroup\u2082": 5, "hasonegroup\u2082": 5, "hasinvgroup\u2082": 5, "suppli": 5, "accord": 5, "capabl": 5, "chain": 5, "recent": 5, "prioriti": 5, "bad": [5, 6, 8], "artifici": 5, "addgroup\u2082": 5, "subtl": [5, 7, 8], "configur": 5, "invisibli": [5, 6], "wise": 5, "euclidean": 5, "terminologi": 5, "mid": 5, "imaginari": 5, "gaussint": 5, "im": 5, "pointwis": [5, 8, 9], "root": [5, 6, 7, 12], "ac": 5, "bci": 5, "adi": 5, "bd": 5, "bc": 5, "zero_def": 5, "one_def": 5, "add_def": 5, "neg_def": 5, "mul_def": 5, "zero_r": 5, "zero_im": 5, "one_r": 5, "one_im": 5, "add_r": 5, "add_im": 5, "neg_r": 5, "neg_im": 5, "mul_r": 5, "mul_im": 5, "surprisingli": [5, 6], "concept": [5, 7, 8, 9], "light": 5, "bulb": 5, "skeleton": [5, 8], "scari": 5, "nsmul": [5, 6], "zsmul": [5, 6], "instcommr": 5, "nsmulrec": 5, "zsmulrec": 5, "neg_add_cancel": 5, "left_distrib": [5, 6], "right_distrib": [5, 6], "ext_iff": 5, "bq": 5, "archetyp": 5, "eq": 5, "int": [5, 6, 7], "ediv_add_emod": 5, "emod_nonneg": 5, "emod_lt": 5, "unit": [5, 6, 8], "algorithm": 5, "conjug": [5, 7], "frac": 5, "nearest": 5, "vi": 5, "multipli": 5, "emb": 5, "forth": 5, "quadrat": 5, "gaussianint": 5, "stai": 5, "face": [5, 6, 8], "machineri": [5, 6, 8], "adapt": 5, "invest": 5, "pragmat": 5, "seek": 5, "heather": 5, "macbeth": 5, "eleg": 5, "div": 5, "mod": 5, "_add_mod": 5, "abs_mod": 5, "_le": 5, "emod_lt_of_po": 5, "zero_lt_two": 5, "fixm": 5, "_eq": 5, "sq_add_sq_eq_zero": 5, "linearorderedr": 5, "norm_nonneg": [5, 9], "norm_eq_zero": [5, 9], "norm_po": 5, "norm_mul": [5, 9], "conj": 5, "conj_r": 5, "conj_im": 5, "norm_conj": 5, "bespok": 5, "quad": 5, "record": [5, 6], "div_def": 5, "mod_def": 5, "messi": 5, "nicer": [5, 7, 8], "norm_mod_lt": 5, "norm_y_po": 5, "sq_ab": 5, "gcongr": 5, "ediv_mul_l": 5, "le_of_mul_le_mul_right": 5, "ediv_lt_of_lt_mul": 5, "natab": 5, "coe_natabs_norm": 5, "natabs_of_nonneg": 5, "natabs_norm_mod_lt": 5, "ofnat_lt": 5, "natcast_natab": 5, "not_norm_mul_left_lt_norm": 5, "natabs_mul": 5, "le_mul_of_one_le_right": 5, "ofnat_l": 5, "add_one_le_of_lt": 5, "euclideandomain": 5, "quotient_mul_add_remainder_eq": 5, "quotient_zero": 5, "r_wellfound": 5, "remainder_lt": 5, "mul_left_not_lt": 5, "payoff": 5, "irreducible_iff_prim": 5, "studi": [6, 8], "prematur": 6, "technologi": 6, "simpler": 6, "ring\u2081": 6, "gradual": [6, 8], "bottom": [6, 7, 8], "endow": [6, 7], "one\u2081": 6, "heavier": 6, "inferr": 6, "resolut": 6, "ie": [6, 8], "attribut": 6, "ensur": [6, 7, 8], "self": 6, "one\u2082": 6, "usabl": 6, "silli": 6, "affect": 6, "importantli": [6, 7], "habit": 6, "ascript": [6, 7], "messag": 6, "typeclass": 6, "stuck": 6, "metavari": 6, "263": 6, "sever": [6, 8, 10], "unknown": 6, "collis": 6, "builtin": 6, "\ud835\udfd9": 6, "inherit_doc": 6, "diamond": 6, "dia\u2081": 6, "dia": 6, "infixl": 6, "70": 6, "semigroup": 6, "dia_assoc": 6, "semigroup\u2081": 6, "todia\u2081": 6, "previous": 6, "semigroup\u2082": 6, "hurdl": 6, "neutral": [6, 7], "diaoneclass\u2081": 6, "one_dia": 6, "dia_on": 6, "trace": 6, "ters": 6, "attempt": 6, "succe": 6, "success": 6, "set_opt": 6, "synthinst": 6, "monoid\u2081": 6, "hide": [6, 7, 8], "subtleti": [6, 7], "fear": 6, "unrel": 6, "tosemigroup\u2081": 6, "todiaoneclass\u2081": 6, "monoid\u2082": 6, "toone\u2081": 6, "overlap": [6, 7], "tear": 6, "signatur": 6, "restor": 6, "optim": [6, 10], "reusabl": 6, "inv\u2081": 6, "postfix": 6, "inv_dia": 6, "weak": 6, "preliminari": 6, "left_inv_eq_right_inv\u2081": 6, "hba": 6, "hac": 6, "export": 6, "inv_eq_of_dia": 6, "dia_inv": 6, "naiv": [6, 8], "duplic": 6, "to_addit": 6, "semi": [6, 7], "left_inv_eq_right_inv": 6, "left_neg_eq_right_neg": 6, "whatsnew": 6, "addsemigroup\u2083": 6, "add_assoc\u2083": 6, "semigroup\u2083": 6, "mul_assoc\u2083": 6, "addmonoid\u2083": 6, "addzeroclass": 6, "monoid\u2083": 6, "muloneclass": 6, "tomuloneclass": 6, "addcommsemigroup\u2083": 6, "commsemigroup\u2083": 6, "addcommmonoid\u2083": 6, "commmonoid\u2083": 6, "addgroup\u2083": 6, "neg_add": 6, "group\u2083": 6, "inv_mul": 6, "inv_eq_of_mul": 6, "propag": 6, "attr": 6, "mul_inv": [6, 7], "mul_left_cancel\u2083": 6, "mul_right_cancel\u2083": 6, "addcommgroup\u2083": 6, "commgroup\u2083": 6, "demonstr": [6, 8], "semir": [6, 7], "opposit": [6, 8], "gain": 6, "besid": 6, "parent": 6, "ring\u2083": 6, "mulzeroclass": 6, "toaddgroup\u2083": 6, "mayb": 6, "claus": 6, "le\u2081": 6, "50": 6, "\u2081": 6, "preorder\u2081": 6, "partialorder\u2081": 6, "orderedcommmonoid\u2081": 6, "modul": [6, 7], "pretend": 6, "smul\u2083": 6, "infixr": 6, "73": 6, "module\u2081": 6, "zero_smul": 6, "one_smul": [6, 7], "mul_smul": [6, 7], "add_smul": [6, 7], "smul_add": 6, "surpris": 6, "toaddcommgroup\u2083": 6, "inst": 6, "module\u2083": 6, "hunt": 6, "unspecifi": 6, "embark": 6, "quest": 6, "huge": 6, "trap": 6, "refus": [6, 8], "tosmul\u2083": 6, "inst_1": 6, "safe": [6, 7], "selfmodul": 6, "invert": [6, 7], "nsmul\u2081": 6, "zsmul\u2081": 6, "ofnat": 6, "negsucc": 6, "abgrpmodul": 6, "failur": 6, "synth": 6, "indirect": 6, "path": 6, "thank": 6, "offend": 6, "poor": 6, "forget": 6, "http": 6, "inria": 6, "hal": 6, "scienc": 6, "02463336": 6, "modifi": 6, "addmonoid\u2084": 6, "nsmul_zero": 6, "nsmul_succ": 6, "mysmul": 6, "stori": 6, "incorpor": 6, "lt\u2081": 6, "comparison": 6, "ismonoidhom\u2081": 6, "unpleas": [6, 8], "chose": 6, "ismonoidhom\u2082": 6, "map_on": [6, 7], "map_mul": [6, 7], "tempt": 6, "higher": 6, "unif": 6, "psycholog": 6, "rare": 6, "adject": 6, "bare": 6, "noun": 6, "argu": 6, "continuous_id": [6, 8], "primari": 6, "monoidhom\u2081": 6, "coefun": 6, "coerc": [6, 7], "coe": 6, "addmonoidhom\u2081": 6, "addmonoid": [6, 7], "map_zero": [6, 7], "map_add": [6, 7, 9], "ringhom\u2081": 6, "minor": [6, 9], "tomonoidhom\u2081": 6, "juggl": 6, "monoidhomclass\u2081": 6, "badinst": 6, "wouldn": 6, "priori": 6, "boil": 6, "hopelessli": 6, "checksynthord": 6, "random": 6, "deduc": [6, 7, 8], "outparam": 6, "trigger": 6, "retri": 6, "monoidhomclass\u2082": 6, "promis": [6, 8], "map_inv_of_inv": 6, "got": 6, "presenc": 6, "layer": [6, 8], "dfunlik": 6, "dfun": 6, "monoidhomclass": 6, "monoidhomclass\u2083": 6, "coe_inject": 6, "stop": 6, "ringhomclass\u2083": 6, "ringhom": [6, 7], "algebrahom": 6, "ve": [6, 8], "primarili": [6, 7, 8], "unbundl": 6, "orderpreshom": 6, "le_of_l": 6, "orderpresmonoidhom": 6, "orderpreshomclass": 6, "subgroup": 6, "subr": 6, "reus": 6, "led": 6, "descend": [6, 7], "break": 6, "barrier": 6, "setlik": 6, "wrap": [6, 8], "submonoid\u2081": 6, "submonoid": [6, 7], "mul_mem": [6, 7], "one_mem": [6, 7], "tackl": 6, "setco": 6, "submonoid\u2081monoid": 6, "destructur": 6, "binder": 6, "submonoidclass\u2081": 6, "subgroup\u2081": 6, "subgroupclass\u2081": 6, "subobject": 6, "s\u2081": 6, "s\u2082": 6, "shame": 6, "across": 6, "weird": [6, 8], "distract": 6, "emphas": [6, 7], "anecdot": 6, "devic": 6, "hasquoti": 6, "bewar": 6, "regular": [6, 8], "ascii": 6, "setoid": [6, 7], "commmonoid": 6, "iseqv": 6, "hw": 6, "quotientmonoid": 6, "map\u2082": 6, "treatment": 7, "constantli": 7, "review": [7, 8], "contort": 7, "verbatim": 7, "safer": 7, "friendli": 7, "proceed": 7, "mostli": 7, "comm": 7, "addcommmonoid": 7, "monoidhom": 7, "addmonoidhom": 7, "packag": 7, "unfortun": 7, "consequ": 7, "comp": [7, 8], "mul_inv_self": 7, "map_inv": 7, "enforc": 7, "sent": [7, 8], "mulequiv": 7, "addequiv": 7, "ulequiv": 7, "projector": 7, "ofbiject": 7, "closur": [7, 8], "inv_mem": 7, "issubgroup": 7, "addsubgroup": 7, "add_mem": 7, "zero_mem": 7, "neg_mem": 7, "inferinst": 7, "benefit": 7, "amount": 7, "sup_eq_closur": 7, "mem_bot": 7, "ambient": 7, "ty": 7, "comap": [7, 8], "pushforward": [7, 8], "mem_map": 7, "mem_comap": 7, "kernel": 7, "ker": 7, "mem_ker": 7, "mem_rang": 7, "\u03c6": [7, 8], "hst": 7, "\u03c8": 7, "homomorph": 7, "lagrang": 7, "sylow": 7, "corner": 7, "nonconstruct": 7, "card": 7, "index_mul_card": 7, "hdvd": 7, "exists_subgroup_card_pow_prim": 7, "corollari": 7, "eq_bot_iff_card": 7, "eq_bot_iff_foral": 7, "card_eq_one_iff_exist": 7, "card_dvd_of_l": 7, "inf_bot_of_coprim": 7, "mathfrak": 7, "_n": 7, "cycl": 7, "iscycl": 7, "closure_iscycl": 7, "cyclic": 7, "freegroup": 7, "induct": [7, 8, 12], "myelement": 7, "gave": [7, 8], "embodi": 7, "lift": 7, "send": [7, 10], "mymorph": 7, "cube": 7, "presentedgroup": 7, "normal": 7, "somehow": 7, "creation": 7, "mygroup": 7, "feed": 7, "togroup": 7, "mymap": 7, "compat_mymap": 7, "mynewmorph": 7, "mulact": 7, "downsid": 7, "setup": 7, "synonym": 7, "groupact": 7, "addact": 7, "\u1d65": 7, "affin": 7, "add_vadd": 7, "topermhom": 7, "caylei": 7, "embed": 7, "cayleyisomorph": 7, "subgroupofmulact": 7, "partit": 7, "orbit": 7, "orbitrel": 7, "global": [7, 8], "\u03c9": 7, "selfequivsigmaorbit": 7, "fintyp": [7, 8], "card_congr": 7, "card_sigma": 7, "furthermor": 7, "stabil": 7, "orbitequivquotientstabil": 7, "groupequivquotientprodsubgroup": 7, "conjugate_on": 7, "quotientgroup": 7, "clue": 7, "onto": 7, "quotientkerequivrang": 7, "pullback": [7, 8], "quotientmulequivofeq": 7, "seri": 7, "card_po": 7, "index_eq_card": 7, "eq_of_mul_eq_mul_right": 7, "aux_card_eq": 7, "bijective_iff_injective_and_card": 7, "ker_eq_bot_iff": 7, "ker_restrict": 7, "iso\u2081": 7, "g\u2080": 7, "g\u2081": 7, "g\u2082": 7, "iso\u2082": 7, "prodcongr": 7, "finaliso": 7, "exot": [7, 8], "commsemir": 7, "doubli": 7, "mislead": 7, "tradition": 7, "taught": 7, "promin": 7, "isunit": 7, "m\u02e3": 7, "mainli": 7, "mkofmuleqon": 7, "\u2124\u02e3": 7, "units_eq_one_or": 7, "r\u02e3": 7, "s\u02e3": 7, "ringequiv": 7, "toward": 7, "geometri": 7, "submodul": 7, "eq_zero_iff_mem": 7, "mem_sup": 7, "mul_le_left": 7, "mul_le_right": 7, "mul_le_inf": 7, "quotientmap": 7, "quotequivofeq": 7, "chines": 7, "\u03c0": [7, 8, 9], "font": 7, "\u03b9": [7, 8, 9, 10], "iscoprim": 7, "quotientinfringequivpiquoti": 7, "zmod": 7, "pinot": 7, "prodequivpi": 7, "pi": [7, 8], "ker_pi_quotient_mk": 7, "chinesemap": 7, "proven": 7, "chinesemap_mk": 7, "famili": [7, 8, 9], "injective_lift_iff": 7, "chinesemap_inj": 7, "maxim": 7, "iscoprime_iff_add": 7, "iscoprime_iff_exist": 7, "iscoprime_iff_sup_eq": 7, "iscoprime_iff_codisjoint": 7, "opportun": [7, 8], "mem_insert_of_mem": 7, "mem_insert_self": 7, "iscoprime_inf": 7, "simp_rw": 7, "iinf_insert": 7, "one_eq_top": 7, "eq_top_iff": 7, "chinesemap_surj": 7, "hi": 7, "mk_surject": 7, "\u1d9c": 7, "he": 7, "chineseiso": 7, "encod": [7, 10], "algebramap": 7, "alghom": 7, "\u2090": 7, "endomorph": 7, "univari": 7, "indetermin": 7, "crucial": [7, 8], "bodi": 7, "map_pow": 7, "coeff": 7, "degre": 7, "natdegre": 7, "withbot": 7, "absorb": 7, "formula": [7, 10], "nozerodivisor": 7, "degree_mul": 7, "hp": [7, 8], "hq": [7, 8], "natdegree_mul": 7, "natdegree_comp": 7, "evalu": 7, "isroot": 7, "vanish": 7, "count": 7, "pain": 7, "multiset": 7, "roots_x_sub_c": 7, "aeval": 7, "aroot": 7, "caveat": 7, "aroots_def": 7, "c_mul": 7, "c_neg": 7, "linear_combin": 7, "p_ne_zero": 7, "apply_fun": 7, "roots_mul": 7, "alembert": 7, "gauss": 7, "isalgclos": 7, "eval\u2082": 7, "ofreal": 7, "multivari": 7, "briefli": 7, "mvpolynomi": 7, "circl": 7, "circleequ": 7, "coordin": 7, "calculu": [8, 10, 12], "quantiti": 8, "begun": 8, "paradox": 8, "x\u2080": [8, 9], "convention": 8, "eight": 8, "varieti": 8, "wish": 8, "64": 8, "y\u2080": 8, "z\u2080": 8, "paragraph": 8, "512": 8, "bourbaki": 8, "spell": 8, "dualli": 8, "neighborhood": 8, "etc": 8, "attop": [8, 10], "\ud835\udcdd": [8, 9, 10], "\ud835\udce4": 8, "entourag": 8, "\u03bc": [8, 10], "ae": [8, 10], "univ_set": 8, "sets_of_superset": 8, "inter_set": 8, "blur": 8, "princip": 8, "\ud835\udcdf": 8, "x_0": 8, "ioo": [8, 9], "tendsto\u2081": 8, "tendsto": [8, 10], "lim_": 8, "abstractli": 8, "salient": 8, "f_": 8, "tendsto\u2082": 8, "via": 8, "leverag": 8, "map_mono": 8, "map_map": 8, "shot": 8, "256": 8, "map_le_iff_le_comap": 8, "contravari": 8, "comap_comap": 8, "plane": 8, "\u02e2": 8, "nhds_prod_eq": 8, "aforement": 8, "le_inf_iff": 8, "shouldn": 8, "prohibit": 8, "precondit": 8, "nebot": 8, "tour": [8, 9], "claim": 8, "recaptur": 8, "superfici": 8, "stronger": 8, "flexibl": 8, "hasbasi": 8, "nhds_basis_ioo_po": 8, "tendsto_iff": 8, "reformul": 8, "ici": 8, "attop_basi": 8, "knew": 8, "n_p": 8, "n_q": 8, "tiresom": 8, "\u1da0": [8, 9, 10], "superscript": 8, "eventuallyeq": 8, "tendsto_congr": 8, "eventually_of_foral": 8, "mono": 8, "item": 8, "filter_upward": 8, "hr": 8, "aka": 8, "occasion": 8, "frequent": 8, "sophist": 8, "mem_closure_of_tendsto": 8, "clusterpt": 8, "mem_closure_iff_clusterpt": 8, "le_principal_iff": 8, "nebot_of_l": 8, "hux": 8, "hum": 8, "dist_eq_zero": 8, "emetricspac": 8, "pseudometricspac": 8, "pseudoemetricspac": 8, "journei": 8, "recast": 8, "tendsto_attop": 8, "continuous_iff": 8, "devot": 8, "uncurri": 8, "slow": 8, "continuous_fst": 8, "assembl": 8, "prod_mk": 8, "continuous_snd": 8, "continuous_dist": 8, "clunki": 8, "heavili": 8, "elabor": 8, "prod_map": 8, "sad": 8, "border": 8, "obfusc": 8, "continuous_pow": 8, "continuousat": [8, 10], "continuousat_iff": 8, "geometr": 8, "closedbal": 8, "sign": 8, "radiu": 8, "mem_ball_self": 8, "mem_closedball_self": 8, "isopen": 8, "isopen_iff": 8, "Their": [8, 9], "isclos": [8, 9], "s\u1d9c": [8, 10], "isopen_compl_iff": 8, "hu": [8, 9], "mem_of_tendsto": 8, "mem_closure_iff": 8, "mem_closure_iff_seq_limit": 8, "nhds_basis_bal": 8, "nhds_basis_closedbal": 8, "mem_iff": 8, "segment": [8, 10], "somewher": 8, "continuouson": [8, 9], "minimum": 8, "iscompact": 8, "icc": [8, 9], "iscompact_icc": 8, "strictmono": 8, "tendsto_subseq": 8, "exists_isminon": 8, "exists_ismaxon": 8, "compactspac": 8, "iscompact_univ": 8, "cauchi": 8, "uniformcontinu": 8, "uniformcontinuous_iff": 8, "clearli": 8, "isclosed_l": [8, 9], "eq_empty_or_nonempti": 8, "attain": 8, "cauchyseq": 8, "cauchyseq_iff": 8, "completespac": [8, 9, 10], "cauchyseq_tendsto_of_complet": 8, "criterion": 8, "tendsto_pow_attop_nhds_zero_of_lt_on": 8, "dist_le_range_sum_dist": 8, "cauchyseq_of_le_geometric_two": 8, "\u03b5_po": [8, 9], "le_iff_exists_add": 8, "boss": 8, "bair": [8, 9], "exclam": 8, "rec_on": 8, "ho": 8, "hd": 8, "dens": 8, "densiti": 8, "\u03b4po": 8, "hpo": 8, "hball": 8, "mem_closure_iff_nhds_basi": 8, "recon": 8, "rpo": 8, "rb": 8, "incl": 8, "cdist": 8, "ylim": 8, "yball": 8, "categor": 8, "topologicalspac": [8, 9], "isopen_univ": 8, "isopen_empti": 8, "isopen_iunion": 8, "isopen_iinter_of_finit": 8, "continuous_def": 8, "attach": 8, "filteri": 8, "mem_nhds_iff": 8, "digress": 8, "pure_le_nhd": 8, "self_of_nhd": 8, "eventually_eventually_nhd": 8, "mkofnhd": 8, "nhds_mkofnhd": 8, "functori": 8, "induc": 8, "sensibl": 8, "uncount": 8, "relatedli": 8, "coinduc": 8, "t_x": 8, "t_y": 8, "coinduced_le_iff_le_induc": 8, "covari": 8, "coinduced_compos": 8, "induced_compos": 8, "focus": 8, "nhd": 8, "recov": 8, "continuous_iff_coinduced_l": 8, "g_": 8, "t_z": 8, "wasn": 8, "t_": 8, "x_i": 8, "price": 8, "patholog": 8, "t2space": 8, "hausdorff": 8, "t3space": 8, "regularspac": 8, "tendsto_nhds_uniqu": 8, "closed_nhds_basi": 8, "nhds_basis_open": 8, "t_3": 8, "denseinduc": 8, "continuousat_extend": 8, "funni": 8, "_in": 8, "nhds_induc": 8, "fortiori": 8, "f_cont": 8, "tendsto_right_iff": 8, "firstcountabletopologi": 8, "cluster": 8, "hfx": 8, "push_pul": 8, "of_map": 8, "f_ne": 8, "f_le": 8, "map_eq": 8, "hne": 8, "hle": 8, "huo": 8, "hsu": 8, "elim_finite_subcov": 8, "introductori": 9, "hasderivat": [9, 10], "hasderivat_sin": 9, "differentiableat": 9, "inconveni": 9, "deriv_zero_of_not_differentiableat": 9, "deriv_add": 9, "islocalmin": 9, "deriv_eq_zero": 9, "roll": 9, "weirder": 9, "hab": 9, "hfc": 9, "hfi": 9, "exists_deriv_eq_zero": 9, "differentiableon": 9, "exists_deriv_eq_slop": 9, "normedaddcommgroup": [9, 10], "norm_add_l": 9, "infer_inst": [9, 10], "normedspac": [9, 10], "normedaddgroup": 9, "stipul": 9, "norm_smul": 9, "banach": [9, 10], "dimension": [9, 10], "finitedimension": [9, 10], "\ud835\udd5c": [9, 10], "nontriviallynormedfield": [9, 10], "normedfield": 9, "exists_one_lt_norm": 9, "continuouslinearmap": 9, "cont": 9, "map_smul": 9, "le_opnorm": 9, "hmp": 9, "hm": 9, "opnorm_le_bound": 9, "steinhau": 9, "bounded": 9, "uniformli": 9, "nonempty_interior_of_iunion_of_clos": 9, "continuous_linear_map": 9, "opnorm_le_of_shel": 9, "interior_subset": 9, "interior_iinter_subset": 9, "hc": 9, "h\u03b5": 9, "real_norm_l": 9, "\u03b5k_po": 9, "o": 9, "normedgroup": 9, "isbigowith": 9, "isbigowith_iff": 9, "isbigo_iff_isbigowith": 9, "islittleo_iff_forall_isbigowith": 9, "hasfderivat": 9, "fderiv": 9, "fr\u00e9chet": 9, "hasfderivatfilter_iff_islittleo": 9, "hff": 9, "iter": 9, "multilinear": 9, "withtop": 9, "infti": 9, "contdiff": 9, "iteratedfderiv": 9, "contdiff_iff_continuous_differenti": 9, "stricter": 9, "hasstrictfderivat": 9, "\ud835\udd42": 9, "rclike": 9, "contdiffat": 9, "localinvers": 9, "eventually_left_invers": 9, "eventually_right_invers": 9, "to_localinvers": 9, "hasfderivwithinat": [9, 10], "hasfderivatfilt": 9, "measuretheori": 10, "intervalintegr": 10, "integral_id": 10, "integral_one_div": 10, "differenti": [10, 12], "integral_hasstrictderivat_right": 10, "stronglymeasurableatfilt": 10, "volum": 10, "integral_eq_sub_of_hasderivat": 10, "convolut": 10, "bochner": 10, "lebesgu": 10, "measurablespac": 10, "countabl": 10, "measurableset": 10, "compl": 10, "iunion": 10, "iinter": 10, "measure_eq_iinf": 10, "measure_iunion_l": 10, "hmea": 10, "hdi": 10, "pairwis": 10, "m_iunion": 10, "\u1d50": 10, "integral_add": 10, "ennreal": 10, "toreal": 10, "setintegral_const": 10, "domin": 10, "converg": [10, 12], "aestronglymeasur": 10, "hbound": 10, "hlim": 10, "tendsto_integral_of_dominated_converg": 10, "fubini": 10, "sigmafinit": 10, "\u03bd": 10, "integral_prod": 10, "bilinear": 10, "borelspac": 10, "isaddhaarmeasur": 10, "invari": 10, "mass": 10, "compact": 10, "h_inj": 10, "det": 10, "integral_image_eq_integral_abs_det_fderiv_smul": 10, "overview": 12, "schr\u00f6der": 12, "bernstein": 12, "irrat": 12}, "objects": {}, "objtypes": {}, "objnames": {}, "titleterms": {"introduct": 0, "get": 0, "start": 0, "overview": 0, "basic": [1, 6], "calcul": 1, "prove": 1, "ident": 1, "algebra": [1, 5, 7], "structur": [1, 5], "us": 1, "theorem": [1, 3], "lemma": 1, "more": 1, "exampl": 1, "appli": 1, "rw": 1, "fact": 1, "about": 1, "logic": 2, "implic": 2, "univers": 2, "quantifi": 2, "The": [2, 3], "existenti": 2, "negat": 2, "conjunct": 2, "iff": 2, "disjunct": 2, "sequenc": 2, "converg": [2, 8], "set": [3, 8], "function": [3, 8], "schr\u00f6der": 3, "bernstein": 3, "elementari": [4, 9, 10], "number": 4, "theori": [4, 10], "irrat": 4, "root": 4, "induct": 4, "recurs": 4, "infinit": 4, "mani": 4, "prime": 4, "defin": 5, "build": 5, "gaussian": 5, "integ": 5, "hierarchi": 6, "morphism": [6, 7], "sub": 6, "object": 6, "group": 7, "ring": 7, "monoid": 7, "subgroup": 7, "concret": 7, "action": 7, "quotient": 7, "unit": 7, "subr": 7, "ideal": 7, "polynomi": 7, "topologi": 8, "filter": 8, "metric": 8, "space": [8, 9], "continu": [8, 9], "ball": 8, "open": 8, "close": 8, "compact": 8, "uniformli": 8, "complet": 8, "topolog": 8, "fundament": 8, "separ": 8, "countabl": 8, "differenti": 9, "calculu": 9, "norm": 9, "linear": 9, "map": 9, "asymptot": 9, "comparison": 9, "integr": 10, "measur": 10, "index": 11, "mathemat": 12, "lean": 12}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 58}, "alltitles": {"Introduction": [[0, "introduction"]], "Getting Started": [[0, "getting-started"]], "Overview": [[0, "overview"]], "Basics": [[1, "basics"], [6, "basics"]], "Calculating": [[1, "calculating"]], "Proving Identities in Algebraic Structures": [[1, "proving-identities-in-algebraic-structures"]], "Using Theorems and Lemmas": [[1, "using-theorems-and-lemmas"]], "More examples using apply and rw": [[1, "more-examples-using-apply-and-rw"]], "Proving Facts about Algebraic Structures": [[1, "proving-facts-about-algebraic-structures"]], "Logic": [[2, "logic"]], "Implication and the Universal Quantifier": [[2, "implication-and-the-universal-quantifier"]], "The Existential Quantifier": [[2, "the-existential-quantifier"]], "Negation": [[2, "negation"]], "Conjunction and Iff": [[2, "conjunction-and-iff"]], "Disjunction": [[2, "disjunction"]], "Sequences and Convergence": [[2, "sequences-and-convergence"]], "Sets and Functions": [[3, "sets-and-functions"]], "Sets": [[3, "sets"]], "Functions": [[3, "functions"]], "The Schr\u00f6der-Bernstein Theorem": [[3, "the-schroder-bernstein-theorem"]], "Elementary Number Theory": [[4, "elementary-number-theory"]], "Irrational Roots": [[4, "irrational-roots"]], "Induction and Recursion": [[4, "induction-and-recursion"]], "Infinitely Many Primes": [[4, "infinitely-many-primes"]], "Structures": [[5, "structures"]], "Defining structures": [[5, "defining-structures"]], "Algebraic Structures": [[5, "algebraic-structures"]], "Building the Gaussian Integers": [[5, "building-the-gaussian-integers"]], "Hierarchies": [[6, "hierarchies"]], "Morphisms": [[6, "morphisms"]], "Sub-objects": [[6, "sub-objects"]], "Groups and Rings": [[7, "groups-and-rings"]], "Monoids and Groups": [[7, "monoids-and-groups"]], "Monoids and their morphisms": [[7, "monoids-and-their-morphisms"]], "Groups and their morphisms": [[7, "groups-and-their-morphisms"]], "Subgroups": [[7, "subgroups"]], "Concrete groups": [[7, "concrete-groups"]], "Group actions": [[7, "group-actions"]], "Quotient groups": [[7, "quotient-groups"]], "Rings": [[7, "rings"]], "Rings, their units, morphisms and subrings": [[7, "rings-their-units-morphisms-and-subrings"]], "Ideals and quotients": [[7, "ideals-and-quotients"]], "Algebras and polynomials": [[7, "algebras-and-polynomials"]], "Topology": [[8, "index-0"]], "Filters": [[8, "filters"]], "Metric spaces": [[8, "metric-spaces"]], "Convergence and continuity": [[8, "convergence-and-continuity"]], "Balls, open sets and closed sets": [[8, "balls-open-sets-and-closed-sets"]], "Compactness": [[8, "compactness"], [8, "id5"]], "Uniformly continuous functions": [[8, "uniformly-continuous-functions"]], "Completeness": [[8, "completeness"]], "Topological spaces": [[8, "topological-spaces"]], "Fundamentals": [[8, "fundamentals"]], "Separation and countability": [[8, "separation-and-countability"]], "Differential Calculus": [[9, "index-0"]], "Elementary Differential Calculus": [[9, "elementary-differential-calculus"]], "Differential Calculus in Normed Spaces": [[9, "differential-calculus-in-normed-spaces"]], "Normed spaces": [[9, "id3"]], "Continuous linear maps": [[9, "continuous-linear-maps"]], "Asymptotic comparisons": [[9, "asymptotic-comparisons"]], "Differentiability": [[9, "differentiability"]], "Integration and Measure Theory": [[10, "index-0"]], "Elementary Integration": [[10, "elementary-integration"]], "Measure Theory": [[10, "measure-theory"]], "Integration": [[10, "integration"]], "Index": [[11, "index"]], "Mathematics in Lean": [[12, "mathematics-in-lean"]]}, "indexentries": {"check": [[0, "index-0"]], "commands": [[0, "index-0"]], "abel": [[1, "index-15"], [7, "index-3"]], "absolute value": [[1, "index-24"]], "apply": [[1, "index-12"], [1, "index-17"]], "calc": [[1, "index-3"]], "command": [[1, "index-9"]], "commutative ring": [[1, "index-8"]], "definitional equality": [[1, "index-13"]], "divisibility": [[1, "index-25"]], "exact": [[1, "index-12"], [1, "index-17"], [1, "index-5"]], "exponential": [[1, "index-19"]], "gcd": [[1, "index-26"]], "goal": [[1, "index-2"]], "group": [[1, "index-15"], [7, "index-2"]], "group (algebraic structure)": [[1, "index-14"], [7, "index-1"]], "group (tactic)": [[1, "index-15"], [7, "index-2"]], "have": [[1, "index-11"], [2, "index-12"]], "implicit argument": [[1, "index-10"]], "inequalities": [[1, "index-16"]], "lattice": [[1, "index-28"]], "lcm": [[1, "index-26"]], "linarith": [[1, "index-18"]], "local context": [[1, "index-2"]], "logarithm": [[1, "index-19"]], "max": [[1, "index-21"]], "metric space": [[1, "index-30"], [8, "index-2"]], "min": [[1, "index-21"]], "namespace": [[1, "index-9"]], "noncomm_ring": [[1, "index-15"]], "norm_num": [[1, "index-20"]], "open": [[1, "index-9"]], "order relation": [[1, "index-27"]], "partial order": [[1, "index-27"]], "proof state": [[1, "index-2"]], "real numbers": [[1, "index-1"]], "refl and reflexivity": [[1, "index-13"]], "reflexivity": [[1, "index-13"]], "repeat": [[1, "index-23"]], "rewrite": [[1, "index-0"]], "rfl": [[1, "index-13"]], "ring": [[1, "index-6"]], "ring (algebraic structure)": [[1, "index-7"], [7, "index-4"]], "ring (tactic)": [[1, "index-6"]], "rw": [[1, "index-0"], [1, "index-4"]], "rw and rewrite": [[1, "index-0"], [1, "index-4"]], "show": [[1, "index-22"]], "tactics": [[1, "index-0"], [1, "index-11"], [1, "index-12"], [1, "index-13"], [1, "index-15"], [1, "index-17"], [1, "index-18"], [1, "index-20"], [1, "index-22"], [1, "index-23"], [1, "index-29"], [1, "index-3"], [1, "index-4"], [1, "index-5"], [1, "index-6"], [2, "index-0"], [2, "index-11"], [2, "index-12"], [2, "index-13"], [2, "index-14"], [2, "index-15"], [2, "index-16"], [2, "index-17"], [2, "index-18"], [2, "index-19"], [2, "index-2"], [2, "index-20"], [2, "index-21"], [2, "index-23"], [2, "index-24"], [2, "index-25"], [2, "index-26"], [2, "index-4"], [2, "index-6"], [2, "index-8"], [2, "index-9"], [3, "index-1"], [3, "index-2"], [4, "index-0"], [7, "index-2"], [7, "index-3"], [8, "index-3"]], "trans": [[1, "index-29"]], "absurd": [[2, "index-17"]], "anonymous constructor": [[2, "index-7"]], "assumption": [[2, "index-19"]], "by_cases": [[2, "index-23"]], "by_contra": [[2, "index-14"]], "by_contra and by_contradiction": [[2, "index-14"]], "cases": [[2, "index-8"]], "change": [[2, "index-2"]], "congr": [[2, "index-25"]], "constructor": [[2, "index-18"]], "contradiction": [[2, "index-17"]], "contrapose": [[2, "index-16"]], "convert": [[2, "index-26"]], "dsimp": [[2, "index-2"]], "erw": [[2, "index-4"]], "excluded middle": [[2, "index-22"]], "exfalso": [[2, "index-17"]], "ext": [[2, "index-24"]], "extensionality": [[2, "index-24"]], "field_simp": [[2, "index-11"]], "from": [[2, "index-12"]], "injective function": [[2, "index-5"]], "intro": [[2, "index-0"]], "lambda abstraction": [[2, "index-1"]], "left": [[2, "index-21"]], "let": [[2, "index-13"]], "monotone function": [[2, "index-3"]], "push_neg": [[2, "index-15"]], "rcases": [[2, "index-9"]], "right": [[2, "index-21"]], "rintro": [[2, "index-9"]], "simp": [[2, "index-20"], [3, "index-1"]], "surjective function": [[2, "index-10"]], "this": [[2, "index-12"]], "use": [[2, "index-6"]], "bounded quantifiers": [[3, "index-3"]], "rwa": [[3, "index-2"]], "set operations": [[3, "index-0"]], "decide": [[4, "index-0"]], "monoid": [[7, "index-0"]], "filter": [[8, "index-1"]], "continuity": [[8, "index-3"]], "topological space": [[8, "index-4"]], "topology": [[8, "index-0"]], "differential calculus": [[9, "index-0"]], "elementary calculus": [[9, "index-1"]], "normed space": [[9, "index-2"]], "integration": [[10, "index-0"], [10, "index-1"]], "measure theory": [[10, "index-2"]]}})
-
-
-
@@ -5,7 +5,7 @@"type": "git", "subDir": null, "scope": "leanprover-community", "rev": "41bc768e2224d6c75128a877f1d6e198859b3178", "rev": "31fb27d6b89dc94cf7349df247fc44d2a1d130af", "name": "batteries", "manifestFile": "lake-manifest.json", "inputRev": "main",
-
@@ -15,7 +15,7 @@"type": "git", "subDir": null, "scope": "leanprover-community", "rev": "01ad33937acd996ee99eb74eefb39845e4e4b9f5", "rev": "71f54425e6fe0fa75f3aef33a2813a7898392222", "name": "Qq", "manifestFile": "lake-manifest.json", "inputRev": "master",
-
@@ -25,7 +25,7 @@"type": "git", "subDir": null, "scope": "leanprover-community", "rev": "6058ab8d938c5104eace7d0fb5ac17b21cb067b1", "rev": "c792cfd1efe6e01cb176e158ddb195bedfb7ad33", "name": "aesop", "manifestFile": "lake-manifest.json", "inputRev": "master",
-
@@ -35,10 +35,10 @@"type": "git", "subDir": null, "scope": "leanprover-community", "rev": "c87908619cccadda23f71262e6898b9893bffa36", "rev": "a96aee5245720f588876021b6a0aa73efee49c76", "name": "proofwidgets", "manifestFile": "lake-manifest.json", "inputRev": "v0.0.40", "inputRev": "v0.0.41", "inherited": true, "configFile": "lakefile.lean"}, {"url": "https://github.com/leanprover/lean4-cli",
-
@@ -55,7 +55,7 @@"type": "git", "subDir": null, "scope": "leanprover-community", "rev": "e7e90d90a62e6d12cbb27cbbfc31c094ee4ecc58", "rev": "57bd2065f1dbea5e9235646fb836c7cea9ab03b6", "name": "importGraph", "manifestFile": "lake-manifest.json", "inputRev": "main",
-
@@ -65,7 +65,7 @@"type": "git", "subDir": null, "scope": "", "rev": "10a631f1d3d9d99b990791ca0a251a5e78a15d84", "rev": "9969491998149c8810b296185d71fcf1c23b2f1c", "name": "mathlib", "manifestFile": "lake-manifest.json", "inputRev": "master",
-
-
-
@@ -1,1 +1,1 @@leanprover/lean4:v4.10.0 leanprover/lean4:v4.11.0-rc2
-
-