From d3ab64bd1664b4720fc45b93206589d36f65c65a Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 18:30:00 -0400 Subject: [PATCH 001/362] Bump: resolve target toolchain and dependency configuration --- lakefile.lean | 2 +- lean-toolchain | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lakefile.lean b/lakefile.lean index 2807a875..91df152e 100644 --- a/lakefile.lean +++ b/lakefile.lean @@ -1,7 +1,7 @@ import Lake open Lake DSL -require Poly from git "https://github.com/sinhp/Poly" @ "master" +require Poly from git "https://github.com/sinhp/Poly" @ "cc08a1f77c20e07a7366f0824ecd36ae472c0377" require checkdecls from git "https://github.com/PatrickMassot/checkdecls.git" diff --git a/lean-toolchain b/lean-toolchain index 137937a3..ba8ebf2d 100644 --- a/lean-toolchain +++ b/lean-toolchain @@ -1 +1 @@ -leanprover/lean4:v4.25.0-rc2 \ No newline at end of file +leanprover/lean4:v4.34.1 From c17db2b96d9eafd916cee9e7fa1c35c3ad841f26 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 18:42:57 -0400 Subject: [PATCH 002/362] UNITY: integrate Bump repair setup-dependencies --- lake-manifest.json | 48 ++++++++++++++++++++++------------------------ lakefile.lean | 6 ++---- 2 files changed, 25 insertions(+), 29 deletions(-) diff --git a/lake-manifest.json b/lake-manifest.json index 930c29a9..52a37e7c 100644 --- a/lake-manifest.json +++ b/lake-manifest.json @@ -1,41 +1,38 @@ -{"version": "1.1.0", +{"version": "1.2.0", "packagesDir": ".lake/packages", "packages": - [{"url": "https://github.com/PatrickMassot/checkdecls.git", + [{"url": "https://github.com/sosudo/Poly", "type": "git", "subDir": null, "scope": "", - "rev": "3d425859e73fcfbef85b9638c2a91708ef4a22d4", - "name": "checkdecls", + "rev": "cc08a1f77c20e07a7366f0824ecd36ae472c0377", + "name": "Poly", "manifestFile": "lake-manifest.json", - "inputRev": null, + "inputRev": "cc08a1f77c20e07a7366f0824ecd36ae472c0377", "inherited": false, "configFile": "lakefile.lean"}, - {"url": "https://github.com/sinhp/Poly", - "type": "git", - "subDir": null, + {"type": "path", "scope": "", - "rev": "aedee22f07d681d845bcbe4a1fb9aa10f95c9977", - "name": "Poly", + "name": "checkdecls", "manifestFile": "lake-manifest.json", - "inputRev": "master", - "inherited": false, + "inherited": true, + "dir": ".lake/packages/Poly/vendor/checkdecls", "configFile": "lakefile.lean"}, {"url": "https://github.com/leanprover-community/mathlib4.git", "type": "git", "subDir": null, "scope": "", - "rev": "32bd6c7c8ca4a4be1c71bc04df0c9cf929d04818", + "rev": "d13f23b723b8a846827a245b89c10fc7d3f11612", "name": "mathlib", "manifestFile": "lake-manifest.json", - "inputRev": null, + "inputRev": "v4.34.1", "inherited": true, "configFile": "lakefile.lean"}, {"url": "https://github.com/leanprover-community/plausible", "type": "git", "subDir": null, "scope": "leanprover-community", - "rev": "8864a73bf79aad549e34eff972c606343935106d", + "rev": "118aa17ee84656b8bd727fef7c458ee8c833385c", "name": "plausible", "manifestFile": "lake-manifest.json", "inputRev": "main", @@ -45,7 +42,7 @@ "type": "git", "subDir": null, "scope": "leanprover-community", - "rev": "2ed4ba69b6127de8f5c2af83cccacd3c988b06bf", + "rev": "ddf04cf3949fa556442341e87d47f9f6e6074707", "name": "LeanSearchClient", "manifestFile": "lake-manifest.json", "inputRev": "main", @@ -55,7 +52,7 @@ "type": "git", "subDir": null, "scope": "leanprover-community", - "rev": "451499ea6e97cee4c8979b507a9af5581a849161", + "rev": "e928b72544873815af278d38681b31c0293588e3", "name": "importGraph", "manifestFile": "lake-manifest.json", "inputRev": "main", @@ -65,17 +62,17 @@ "type": "git", "subDir": null, "scope": "leanprover-community", - "rev": "fb8ed0a85a96e3176f6e94b20d413ea72d92576d", + "rev": "106ff4fafc74ef4ac99d81dbf3ab399118f497a5", "name": "proofwidgets", "manifestFile": "lake-manifest.json", - "inputRev": "v0.0.77", + "inputRev": "main", "inherited": true, "configFile": "lakefile.lean"}, {"url": "https://github.com/leanprover-community/aesop", "type": "git", "subDir": null, "scope": "leanprover-community", - "rev": "1fa48c6a63b4c4cda28be61e1037192776e77ac0", + "rev": "355695d523e41d0554926416cba2a2b3544fbbc9", "name": "aesop", "manifestFile": "lake-manifest.json", "inputRev": "master", @@ -85,7 +82,7 @@ "type": "git", "subDir": null, "scope": "leanprover-community", - "rev": "95c2f8afe09d9e49d3cacca667261da04f7f93f7", + "rev": "6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259", "name": "Qq", "manifestFile": "lake-manifest.json", "inputRev": "master", @@ -95,7 +92,7 @@ "type": "git", "subDir": null, "scope": "leanprover-community", - "rev": "c44068fa1b40041e6df42bd67639b690eb2764ca", + "rev": "f2effa3d803fda822b1f97b806c47cf2adfbcbc2", "name": "batteries", "manifestFile": "lake-manifest.json", "inputRev": "main", @@ -105,11 +102,12 @@ "type": "git", "subDir": null, "scope": "leanprover", - "rev": "72ae7004d9f0ddb422aec5378204fdd7828c5672", + "rev": "e92c9f15fdfacc8536f31cfb3b7ad26c3c8cd204", "name": "Cli", "manifestFile": "lake-manifest.json", - "inputRev": "v4.25.0-rc2", + "inputRev": "v4.34.0", "inherited": true, "configFile": "lakefile.toml"}], "name": "hottlean", - "lakeDir": ".lake"} + "lakeDir": ".lake", + "fixedToolchain": false} diff --git a/lakefile.lean b/lakefile.lean index 91df152e..5c277edc 100644 --- a/lakefile.lean +++ b/lakefile.lean @@ -1,13 +1,11 @@ import Lake open Lake DSL -require Poly from git "https://github.com/sinhp/Poly" @ "cc08a1f77c20e07a7366f0824ecd36ae472c0377" - -require checkdecls from git "https://github.com/PatrickMassot/checkdecls.git" +require Poly from git "https://github.com/sosudo/Poly" @ "cc08a1f77c20e07a7366f0824ecd36ae472c0377" meta if get_config? env = some "dev" then require «doc-gen4» from git - "https://github.com/leanprover/doc-gen4" @ "v4.25.0-rc2" + "https://github.com/leanprover/doc-gen4" @ "v4.34.1" package hottlean where -- Settings applied to both builds and interactive editing From e2172ae543c46105bfcf0b620a961a3514dafd61 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 19:06:23 -0400 Subject: [PATCH 003/362] UNITY: integrate Bump repair command-670a0b37a1c81476 --- HoTTLeanTest.lean | 4 ++++ {test => HoTTLeanTest}/basic.lean | 0 {test => HoTTLeanTest}/hott0.lean | 0 {test => HoTTLeanTest}/import.lean | 2 +- {test => HoTTLeanTest}/unitt.lean | 0 lakefile.lean | 2 +- test.lean | 6 +++--- 7 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 HoTTLeanTest.lean rename {test => HoTTLeanTest}/basic.lean (100%) rename {test => HoTTLeanTest}/hott0.lean (100%) rename {test => HoTTLeanTest}/import.lean (81%) rename {test => HoTTLeanTest}/unitt.lean (100%) diff --git a/HoTTLeanTest.lean b/HoTTLeanTest.lean new file mode 100644 index 00000000..136bc48c --- /dev/null +++ b/HoTTLeanTest.lean @@ -0,0 +1,4 @@ +import HoTTLeanTest.basic +import HoTTLeanTest.import +import HoTTLeanTest.hott0 +import HoTTLeanTest.unitt diff --git a/test/basic.lean b/HoTTLeanTest/basic.lean similarity index 100% rename from test/basic.lean rename to HoTTLeanTest/basic.lean diff --git a/test/hott0.lean b/HoTTLeanTest/hott0.lean similarity index 100% rename from test/hott0.lean rename to HoTTLeanTest/hott0.lean diff --git a/test/import.lean b/HoTTLeanTest/import.lean similarity index 81% rename from test/import.lean rename to HoTTLeanTest/import.lean index aab44aca..17148e1f 100644 --- a/test/import.lean +++ b/HoTTLeanTest/import.lean @@ -1,4 +1,4 @@ -import test.basic +import HoTTLeanTest.basic /-! Test importing a theory. -/ diff --git a/test/unitt.lean b/HoTTLeanTest/unitt.lean similarity index 100% rename from test/unitt.lean rename to HoTTLeanTest/unitt.lean diff --git a/lakefile.lean b/lakefile.lean index 5c277edc..154fcb89 100644 --- a/lakefile.lean +++ b/lakefile.lean @@ -35,4 +35,4 @@ lean_lib HoTTLean where needs := #[Prelude] @[test_driver] -lean_lib test where +lean_lib HoTTLeanTest where diff --git a/test.lean b/test.lean index dc13b5c9..7f33fde8 100644 --- a/test.lean +++ b/test.lean @@ -1,3 +1,3 @@ -import test.basic -import test.import -import test.hott0 +import HoTTLeanTest.basic +import HoTTLeanTest.import +import HoTTLeanTest.hott0 From 67634051a23a47c08cca7c0fc0240261d9cf3272 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 19:30:39 -0400 Subject: [PATCH 004/362] UNITY: integrate Bump repair repair-52f588fcdbd50fe8 --- .../CategoryTheory/MorphismProperty/Basic.lean | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/Basic.lean b/HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/Basic.lean index 8773745c..2682efe6 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/Basic.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/Basic.lean @@ -6,14 +6,9 @@ namespace CategoryTheory.MorphismProperty variable {C : Type u} [Category.{v} C] {D : Type*} [Category D] -@[simp] -lemma map_top_eq_top_of_essSurj_of_full (F : C ⥤ D) [F.EssSurj] [F.Full] : +-- Mathlib now supplies the original public theorem. Keep this statement as a check. +lemma map_top_eq_top_of_essSurj_of_full_compat (F : C ⥤ D) [F.EssSurj] [F.Full] : (⊤ : MorphismProperty C).map F = ⊤ := by - rw [eq_top_iff] - intro X Y f _ - refine ⟨F.objPreimage X, F.objPreimage Y, F.preimage ?_, ⟨⟨⟩, ⟨?_⟩⟩⟩ - · exact (Functor.objObjPreimageIso F X).hom ≫ f ≫ (Functor.objObjPreimageIso F Y).inv - · exact Arrow.isoMk' _ _ (Functor.objObjPreimageIso F X) (Functor.objObjPreimageIso F Y) - (by simp) + exact map_top_eq_top_of_essSurj_of_full F end CategoryTheory.MorphismProperty From 4746865c6a2f5a93e162103e614e8f380fc47355 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 19:33:15 -0400 Subject: [PATCH 005/362] UNITY: integrate Bump repair repair-772d872043f627c0 --- HoTTLean/ForMathlib/CategoryTheory/Groupoid.lean | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Groupoid.lean b/HoTTLean/ForMathlib/CategoryTheory/Groupoid.lean index 0f73aff6..b065a7d4 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Groupoid.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Groupoid.lean @@ -3,15 +3,10 @@ import Mathlib.CategoryTheory.MorphismProperty.Basic namespace CategoryTheory +-- Mathlib now provides this theorem. Check the original interface here. open MorphismProperty in -lemma isGroupoid_iff_isomorphisms_eq_top (C : Type*) [Category C] : - IsGroupoid C ↔ isomorphisms C = ⊤ := by - constructor - · rw [eq_top_iff] - intro _ _ - simp only [isomorphisms.iff, top_apply] - infer_instance - · intro h - exact ⟨of_eq_top h⟩ +example (C : Type*) [Category C] : + IsGroupoid C ↔ isomorphisms C = ⊤ := + isGroupoid_iff_isomorphisms_eq_top C end CategoryTheory From 8bf555c167c3e3aaf6eae4d9dd8b0a306dc4e60e Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 19:35:20 -0400 Subject: [PATCH 006/362] UNITY: integrate Bump repair repair-1cdde075b444fe16 --- HoTTLean/ForMathlib/CategoryTheory/WeakPullback.lean | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/WeakPullback.lean b/HoTTLean/ForMathlib/CategoryTheory/WeakPullback.lean index 90acf3dd..a723a316 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/WeakPullback.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/WeakPullback.lean @@ -33,17 +33,19 @@ def coherentLift [HasPullbacks C] : W ⟶ P := @[simp] lemma coherentLift_fst [HasPullbacks C] : wp.coherentLift a b h ≫ fst = a := by - simp [coherentLift] + simp only [coherentLift, Category.assoc, wp.lift_fst, pullback.lift_fst] @[simp] lemma coherentLift_snd [HasPullbacks C] : wp.coherentLift a b h ≫ snd = b := by - simp [coherentLift] + simp only [coherentLift, Category.assoc, wp.lift_snd, pullback.lift_snd] lemma coherentLift_comp_left [HasPullbacks C] {W'} (σ : W' ⟶ W) : σ ≫ wp.coherentLift a b h = wp.coherentLift (σ ≫ a) (σ ≫ b) (by simp [h]) := by simp only [coherentLift, ← Category.assoc] - congr 1; ext <;> simp + congr 1 + apply pullback.hom_ext <;> + simp only [Category.assoc, pullback.lift_fst, pullback.lift_snd] end WeakPullback end CategoryTheory From 3095c06a47c00b1fae57b9175221d29ea685b7b3 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 19:41:34 -0400 Subject: [PATCH 007/362] UNITY: integrate Bump repair repair-b7443a126534adbc --- .../Localization/Predicate.lean | 51 +++++-------------- 1 file changed, 14 insertions(+), 37 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Localization/Predicate.lean b/HoTTLean/ForMathlib/CategoryTheory/Localization/Predicate.lean index 70dc3771..833ac61f 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Localization/Predicate.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Localization/Predicate.lean @@ -6,7 +6,7 @@ import HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic noncomputable section namespace CategoryTheory.Localization -open Category Functor +open Category CategoryTheory.Functor variable {C D : Type*} [Category C] [Category D] (L : C ⥤ D) (W : MorphismProperty C) (E : Type*) [Category E] @@ -14,43 +14,20 @@ variable {C D : Type*} [Category C] [Category D] (L : C ⥤ D) (W : MorphismProp variable {D₁ D₂ : Type _} [Category D₁] [Category D₂] (L₁ : C ⥤ D₁) (L₂ : C ⥤ D₂) (W' : MorphismProperty C) [L₁.IsLocalization W'] [L₂.IsLocalization W'] -lemma morphismProperty_eq_top [L.IsLocalization W] (P : MorphismProperty D) [P.RespectsIso] +-- Mathlib now supplies these declarations. Check the original interfaces here. +example [L.IsLocalization W] (P : MorphismProperty D) [P.RespectsIso] [P.IsMultiplicative] (h₁ : ∀ ⦃X Y : C⦄ (f : X ⟶ Y), P (L.map f)) (h₂ : ∀ ⦃X Y : C⦄ (f : X ⟶ Y) (hf : W f), P (isoOfHom L W f hf).inv) : - P = ⊤ := by - let P' : MorphismProperty W.Localization := - P.inverseImage (Construction.lift L Functor.IsLocalization.inverts) - have hP' : P' = ⊤ := by - apply Construction.morphismProperty_is_top - · intros - simp only [MorphismProperty.inverseImage_iff, Construction.lift_obj, ← Functor.comp_map, - Functor.congr_hom (Construction.fac L Functor.IsLocalization.inverts), Functor.comp_obj, - eqToHom_refl, Category.comp_id, Category.id_comp, h₁, P'] - · intro X Y w hw - simp only [P', MorphismProperty.inverseImage_iff] - convert h₂ w hw - convert Functor.map_inv (Construction.lift L Functor.IsLocalization.inverts) - (Construction.wIso w hw).hom - · simp - · have : (Construction.wIso w hw).hom = W.Q.map w := rfl - simp only [this, ← Functor.comp_map, - Functor.congr_hom (Construction.fac L Functor.IsLocalization.inverts)] - simp [isoOfHom] - have : P'.map _ = P := MorphismProperty.map_inverseImage_eq_of_isEquivalence .. - simp [← this, hP'] - -lemma isGroupoid [L.IsLocalization ⊤] : - IsGroupoid D := by - rw [isGroupoid_iff_isomorphisms_eq_top] - exact morphismProperty_eq_top L ⊤ _ - (fun _ _ f ↦ inverts L ⊤ _ (by simp)) - (fun _ _ f hf ↦ Iso.isIso_inv _) - -instance : IsGroupoid (⊤ : MorphismProperty C).Localization := - isGroupoid <| MorphismProperty.Q ⊤ - -/-- Localization of a category with respect to all morphisms results in a groupoid. -/ -def groupoid : Groupoid (⊤ : MorphismProperty C).Localization := - Groupoid.ofIsGroupoid + P = ⊤ := + morphismProperty_eq_top L W P h₁ h₂ + +example [L.IsLocalization ⊤] : IsGroupoid D := + isGroupoid L + +example : IsGroupoid (⊤ : MorphismProperty C).Localization := + inferInstance + +example : Groupoid (⊤ : MorphismProperty C).Localization := + groupoid end CategoryTheory.Localization From 6b560aad26a8d00d1f836c90f733847d4a02e731 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 19:42:36 -0400 Subject: [PATCH 008/362] UNITY: integrate Bump repair command-f426c71fdbb5a108 --- HoTTLean/ForMathlib.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 0d1cd8c9..72ca2a2e 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -1,10 +1,10 @@ import Mathlib.CategoryTheory.Limits.Shapes.Pullback.PullbackCone import Mathlib.CategoryTheory.Groupoid.Discrete -import Mathlib.CategoryTheory.Limits.Shapes.Pullback.CommSq +import Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic import Mathlib.CategoryTheory.Category.ULift import Mathlib.Logic.Function.ULift import Mathlib.CategoryTheory.Category.Cat -import Mathlib.CategoryTheory.Category.Grpd +import Mathlib.CategoryTheory.Groupoid.Grpd.Basic import Mathlib.Data.Part import Mathlib.CategoryTheory.Monoidal.Cartesian.Basic import Mathlib.CategoryTheory.Core From 0be041f3ea9ead23a954d965d55b73ba058caf1d Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 19:43:34 -0400 Subject: [PATCH 009/362] UNITY: integrate Bump repair repair-c271cc413dc892eb --- HoTTLean/ForMathlib/Tactic/CategoryTheory/FunctorMap.lean | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/HoTTLean/ForMathlib/Tactic/CategoryTheory/FunctorMap.lean b/HoTTLean/ForMathlib/Tactic/CategoryTheory/FunctorMap.lean index d03c7c5b..99e941b4 100644 --- a/HoTTLean/ForMathlib/Tactic/CategoryTheory/FunctorMap.lean +++ b/HoTTLean/ForMathlib/Tactic/CategoryTheory/FunctorMap.lean @@ -62,18 +62,18 @@ def functorMapExpr (e : Expr) (lvl_params : Bool) : MetaM (Expr × List Level) : simpType categorySimp' e' return (e, [v₂, u₂]) -syntax (name := functor_map) "functor_map" (" (" &"attr" ":=" Parser.Term.attrInstance,* ")")? : attr +syntax (name := functor_map) "functor_map" optAttrArg : attr initialize registerBuiltinAttribute { name := `functor_map descr := "" applicationTime := .afterCompilation add := fun src ref kind => match ref with - | `(attr| functor_map $[(attr := $stx?,*)]?) => MetaM.run' do + | `(attr| functor_map $optAttr) => MetaM.run' do if (kind != AttributeKind.global) then throwError "`functor_map` can only be used as a global attribute" - addRelatedDecl src "_functor_map" ref stx? fun type value levels => do - let (e, levels') ← functorMapExpr (← mkExpectedTypeHint value type) true + addRelatedDecl src (src.appendAfter "_functor_map") ref optAttr fun value levels => do + let (e, levels') ← functorMapExpr value true pure (e, levels ++ levels'.map fun | .param n => n | _ => panic! "") | _ => throwUnsupportedSyntax } From 49ba8f46d3bdb97f91c9b15e1ba8fc20ed527050 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 19:44:31 -0400 Subject: [PATCH 010/362] UNITY: integrate Bump repair command-71f603b8f9b99dee --- HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean b/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean index acffbd24..49174775 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean @@ -1,7 +1,7 @@ import Mathlib.CategoryTheory.Limits.Yoneda import Mathlib.CategoryTheory.Functor.KanExtension.Adjunction import Mathlib.CategoryTheory.Limits.Preserves.Finite -import Mathlib.CategoryTheory.Limits.Shapes.Pullback.CommSq +import Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic import HoTTLean.ForMathlib.CategoryTheory.WeakPullback /-! From b12387306a848f6b82149a2a743fa2a7ea0edc52 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 19:45:29 -0400 Subject: [PATCH 011/362] UNITY: integrate Bump repair repair-f27e9db94fc540c4 --- HoTTLean/Syntax/Basic.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Syntax/Basic.lean b/HoTTLean/Syntax/Basic.lean index d05dfe5a..0160b43b 100644 --- a/HoTTLean/Syntax/Basic.lean +++ b/HoTTLean/Syntax/Basic.lean @@ -42,7 +42,7 @@ inductive Expr where @[simp] theorem Expr.sizeOf_pos {χ} (e : Expr χ) : 0 < sizeOf e := by - induction e <;> { dsimp; omega } + induction e <;> simp <;> omega /-- A convergent rewriting system for the HoTT0 σ-calculus. -/ -- The attribute has to be initialized here for use in downstream modules. From c1cad9e21c68ba1418112a72528b68cf80efb29c Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:03:39 -0400 Subject: [PATCH 012/362] UNITY: integrate Bump repair command-18dfe47fc8b5c00e --- HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean b/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean index e853e0c4..5f15c2ac 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean @@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE. Authors: Joseph Hua -/ import Mathlib.CategoryTheory.Groupoid.FreeGroupoid -import Mathlib.CategoryTheory.Category.Grpd +import Mathlib.CategoryTheory.Groupoid.Grpd.Basic import Mathlib.CategoryTheory.Adjunction.Reflective import Mathlib.CategoryTheory.Localization.Predicate import Mathlib.CategoryTheory.Monad.Limits From 9b238bb3fcabae1284c06547aadc87a7d3c50e75 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:04:39 -0400 Subject: [PATCH 013/362] UNITY: integrate Bump repair repair-4895456de2237f9e --- HoTTLean/Syntax/Substitution.lean | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Syntax/Substitution.lean b/HoTTLean/Syntax/Substitution.lean index e31830aa..9b7b093c 100644 --- a/HoTTLean/Syntax/Substitution.lean +++ b/HoTTLean/Syntax/Substitution.lean @@ -62,8 +62,10 @@ theorem wk (Γ : Ctx χ) (A l) : WfRen ((A,l) :: Γ) Nat.succ Γ := by exact autosubst% Lookup.succ _ lk theorem comp : WfRen Θ ξ Δ → WfRen Δ ξ' Γ → WfRen Θ (ξ ∘ ξ') Γ := by - unfold WfRen; intro wf wf' _ _ _ lk - exact autosubst% wf <| wf' lk + unfold WfRen; intro wf wf' i A l lk + have h := wf (wf' lk) + have e : (A.rename ξ').rename ξ = A.rename (ξ ∘ ξ') := by autosubst + simpa only [e, Function.comp_apply] using h theorem upr : WfRen Δ ξ Γ → WfRen ((A.rename ξ, l) :: Δ) (Expr.upr ξ) ((A, l) :: Γ) := by unfold WfRen; intro wf _ _ _ lk From 2a674ec6165707aa9517e99704e6427fd193bd54 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:05:33 -0400 Subject: [PATCH 014/362] UNITY: integrate Bump repair repair-b4017db67bc73b74 --- HoTTLean/ForMathlib.lean | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 72ca2a2e..d1207369 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -35,8 +35,13 @@ theorem Limits.PullbackCone.IsLimit.comp_lift {C : Type*} [Category C] (σ : W' ⟶ W) (ht : Limits.IsLimit t) (h : W ⟶ X) (k : W ⟶ Y) (w : h ≫ f = k ≫ g) : σ ≫ ht.lift (PullbackCone.mk h k w) = ht.lift (PullbackCone.mk (σ ≫ h) (σ ≫ k) (by simp [w])) := by - refine ht.hom_ext fun j => ?_ - rcases j with _ | _ | _ <;> simp + apply PullbackCone.IsLimit.hom_ext ht + · exact (Category.assoc _ _ _).trans + ((congrArg (σ ≫ ·) (ht.fac _ WalkingCospan.left)).trans + (ht.fac (PullbackCone.mk (σ ≫ h) (σ ≫ k) (by simp [w])) WalkingCospan.left).symm) + · exact (Category.assoc _ _ _).trans + ((congrArg (σ ≫ ·) (ht.fac _ WalkingCospan.right)).trans + (ht.fac (PullbackCone.mk (σ ≫ h) (σ ≫ k) (by simp [w])) WalkingCospan.right).symm) end CategoryTheory From d4da6824fa96bb6f6534c0a871082c1478b98515 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:07:21 -0400 Subject: [PATCH 015/362] UNITY: integrate Bump repair repair-8ad6cb9d8f36f614 --- HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean b/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean index 5f15c2ac..c41b78f8 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean @@ -102,8 +102,8 @@ lemma of.map_comp {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) : /-- The localization map from the category `C` to the groupoid `Category.FreeGroupoid C` -/ def of : C ⥤ Category.FreeGroupoid C where __ := Quiver.FreeGroupoid.of C ⋙q (Quotient.functor (FreeGroupoid.homRel C)).toPrefunctor - map_id X := by simp - map_comp {X Y Z} f g := by simp + map_id X := of.map_id C X + map_comp f g := of.map_comp C f g section UniversalProperty From ea51caa0c16098bc63e1db5af14aa9a62e199a7f Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:08:29 -0400 Subject: [PATCH 016/362] UNITY: integrate Bump repair repair-2587df559dc1eb47 --- HoTTLean/Syntax/Substitution.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Syntax/Substitution.lean b/HoTTLean/Syntax/Substitution.lean index 9b7b093c..6597740c 100644 --- a/HoTTLean/Syntax/Substitution.lean +++ b/HoTTLean/Syntax/Substitution.lean @@ -92,7 +92,7 @@ theorem rename_all : have ih_subst (B a : Expr χ) (ξ) : (B.subst a.toSb).rename ξ = (B.rename (Expr.upr ξ)).subst (a.rename ξ).toSb := by autosubst mutual_induction WfCtx - all_goals dsimp only; try intros + all_goals (try dsimp only); try intros all_goals try simp only [Expr.rename, ih_subst] at *; clear ih_subst -- Cases that don't go through by `grind_cases`. case ax p _ Ec _ _ ihA _ _ Δ ξ => From e61c6658d4a36f66b788b05d1ac95f47815bc47e Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:09:25 -0400 Subject: [PATCH 017/362] UNITY: integrate Bump repair repair-3fdce30743cc46f3 --- HoTTLean/ForMathlib.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index d1207369..0ba2f93a 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -106,9 +106,9 @@ namespace CategoryTheory.Cat /-- This is the proof of equality used in the eqToHom in `Cat.eqToHom_hom` -/ theorem eqToHom_hom_aux {C1 C2 : Cat.{v,u}} (x y: C1) (eq : C1 = C2) : - (x ⟶ y) = ((eqToHom eq).obj x ⟶ (eqToHom eq).obj y) := by + (x ⟶ y) = ((eqToHom eq).toFunctor.obj x ⟶ (eqToHom eq).toFunctor.obj y) := by cases eq - simp[CategoryStruct.id] + rfl /-- This is the turns the hom part of eqToHom functors into a cast-/ theorem eqToHom_hom {C1 C2 : Cat.{v,u}} {x y: C1} (f : x ⟶ y) (eq : C1 = C2) : From 6ce95fd5e28376973556ab049d093a6c688f92b3 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:11:09 -0400 Subject: [PATCH 018/362] UNITY: integrate Bump repair repair-6907b5d18366da9d --- HoTTLean/ForMathlib.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 0ba2f93a..056ccf6c 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -112,7 +112,7 @@ theorem eqToHom_hom_aux {C1 C2 : Cat.{v,u}} (x y: C1) (eq : C1 = C2) : /-- This is the turns the hom part of eqToHom functors into a cast-/ theorem eqToHom_hom {C1 C2 : Cat.{v,u}} {x y: C1} (f : x ⟶ y) (eq : C1 = C2) : - (eqToHom eq).map f = (cast (Cat.eqToHom_hom_aux x y eq) f) := by + (eqToHom eq).toFunctor.map f = (cast (Cat.eqToHom_hom_aux x y eq) f) := by cases eq simp[CategoryStruct.id] From ecfd2478c6779a2043b6c26669b306c4748c6809 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:12:13 -0400 Subject: [PATCH 019/362] UNITY: integrate Bump repair repair-1e9c1e5b7a5ca215 --- HoTTLean/Syntax/Substitution.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Syntax/Substitution.lean b/HoTTLean/Syntax/Substitution.lean index 6597740c..7b297e86 100644 --- a/HoTTLean/Syntax/Substitution.lean +++ b/HoTTLean/Syntax/Substitution.lean @@ -1,3 +1,4 @@ +import Mathlib.Tactic.Basic import Mathlib.Tactic.Convert import Mathlib.Tactic.SimpRw import HoTTLean.Syntax.Typing @@ -373,7 +374,8 @@ theorem subst_all : (∀ {Γ l A t u}, E ∣ Γ ⊢[l] t ≡ u : A → ∀ {Δ σ σ'}, EqSb E Δ σ σ' Γ → E ∣ Δ ⊢[l] t.subst σ ≡ u.subst σ' : A.subst σ) := by mutual_induction WfCtx - all_goals dsimp; try intros + all_goals try dsimp + all_goals try intros all_goals try simp only [Expr.subst_toSb_subst, Expr.subst_snoc_toSb_subst, Expr.subst] at * case ax p _ Ec _ _ ihA => constructor From 3572f42c15be7823eefe755a9e04df871957cb35 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:13:12 -0400 Subject: [PATCH 020/362] UNITY: integrate Bump repair repair-e0d0891a8e58aa8f --- .../CategoryTheory/RepPullbackCone.lean | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean b/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean index 49174775..d066bf1a 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean @@ -78,19 +78,17 @@ def lift' (c : C) (x' : yoneda.obj c ⟶ s.pt) : yoneda.obj c ⟶ t.pt := rfl def lift''_app (s : Cone F) (c : C) : - s.pt.obj (Opposite.op c) → t.pt.obj (Opposite.op c) := - yonedaEquiv ∘ lift' P c ∘ yonedaEquiv.symm + s.pt.obj (Opposite.op c) ⟶ t.pt.obj (Opposite.op c) := + TypeCat.ofHom (yonedaEquiv ∘ lift' P c ∘ yonedaEquiv.symm) theorem lift''_app_naturality {c d : C} (f : c ⟶ d) : s.pt.map (f.op) ≫ lift''_app P s c = lift''_app P s d ≫ t.pt.map (Opposite.op f) := by ext x - simp[lift''_app, lift'] - rw[yonedaEquiv_naturality'] - have h := lift'_naturality P f (yonedaEquiv.symm x) - simp[lift'] at h - simp - rw[← h, yonedaEquiv_symm_naturality_left] + change yonedaEquiv (lift' P c (yonedaEquiv.symm (s.pt.map f.op x))) = + t.pt.map f.op (yonedaEquiv (lift' P d (yonedaEquiv.symm x))) + rw [yonedaEquiv_naturality, ← lift'_naturality, + yonedaEquiv_symm_naturality_left] variable (s) @@ -104,9 +102,9 @@ def lift'' : s.pt ⟶ t.pt := { theorem fac_ext (j : J) (c : C) (x) : (lift'' P s ≫ t.π.app j).app (Opposite.op c) x = (s.π.app j).app (Opposite.op c) x := by - dsimp [lift'',lift', lift''_app, ← yonedaEquiv_comp] - rw [P.fac (repConeOfConeMap s c (yonedaEquiv.symm x)) j] - simp [repConeOfConeMap, yonedaEquiv_comp, Equiv.apply_symm_apply yonedaEquiv x] + have h := congrArg (fun α : yoneda.obj c ⟶ (F.obj j) => yonedaEquiv α) + (P.fac (repConeOfConeMap s c (yonedaEquiv.symm x)) j) + simpa [yonedaEquiv_comp, repConeOfConeMap, lift'', lift''_app, lift'] using h theorem uniq_ext (m : s.pt ⟶ t.pt) (hm : ∀ (j : J), m ≫ t.π.app j = s.π.app j) (c : C) (x) : @@ -116,7 +114,9 @@ theorem uniq_ext (m : s.pt ⟶ t.pt) have hj : (∀ (j : J), (x' ≫ m) ≫ t.π.app j = x' ≫ s.π.app j) := by simp[hm] have h := P.uniq (repConeOfConeMap s c x') (x' ≫ m) hj dsimp [lift'', lift''_app, lift'] - rw [← h, yonedaEquiv_comp, Equiv.apply_symm_apply yonedaEquiv x] + rw [← h] + change m.app (Opposite.op c) x = yonedaEquiv (x' ≫ m) + simp [yonedaEquiv_comp, x'] def IsLimit {t : Cone F} (P : RepIsLimit t) : IsLimit t where lift := lift'' P @@ -229,23 +229,26 @@ open Opposite def repPullbackCone (c : C) (x : G.obj (op c)) : RepPullbackCone f g := .mk c (yonedaEquiv.symm $ a.app (op c) x) (yonedaEquiv.symm $ b.app (op c) x) (by - simpa [yonedaEquiv_symm_naturality_right] using congr_fun (NatTrans.congr_app hab (op c)) x) + simpa [yonedaEquiv_symm_naturality_right] using ConcreteCategory.congr_hom (NatTrans.congr_app hab (op c)) x) def lift'.app (c : C) : G.obj (op c) ⟶ W.obj (op c) := - fun x => yonedaEquiv (lift (repPullbackCone a b hab c x)) + TypeCat.ofHom fun x => yonedaEquiv (lift (repPullbackCone a b hab c x)) include lift_naturality in lemma lift'.naturality ⦃c d : C⦄ (σ : c ⟶ d) : G.map σ.op ≫ lift'.app lift a b hab c = lift'.app lift a b hab d ≫ W.map σ.op := by ext x - dsimp only [types_comp_apply, app] - rw [yonedaEquiv_naturality, lift_naturality (repPullbackCone a b hab d x) σ] + change yonedaEquiv (lift (repPullbackCone a b hab c (G.map σ.op x))) = + W.map σ.op (yonedaEquiv (lift (repPullbackCone a b hab d x))) + change yonedaEquiv (lift (repPullbackCone a b hab c (G.map σ.op x))) = + W.map σ.op (yonedaEquiv (show yoneda.obj d ⟶ W from lift (repPullbackCone a b hab d x))) + erw [yonedaEquiv_naturality, lift_naturality (repPullbackCone a b hab d x) σ] dsimp only [repPullbackCone, π_app_left, fst_mk, π_app_right, snd_mk] congr 3 - · rw [yonedaEquiv_symm_naturality_left σ] - simpa using congr_fun (a.naturality σ.op) x - · rw [yonedaEquiv_symm_naturality_left σ] - simpa using congr_fun (b.naturality σ.op) x + · erw [yonedaEquiv_symm_naturality_left σ] + simpa using ConcreteCategory.congr_hom (a.naturality σ.op) x + · erw [yonedaEquiv_symm_naturality_left σ] + simpa using ConcreteCategory.congr_hom (b.naturality σ.op) x include lift_naturality in def lift' : G ⟶ W where From 46abe41131db474e86f0970426f7af5ea7bf18ec Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:14:54 -0400 Subject: [PATCH 021/362] UNITY: integrate Bump repair repair-1eb41f0de37c1361 --- HoTTLean/ForMathlib.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 056ccf6c..258f7a6b 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -118,7 +118,7 @@ theorem eqToHom_hom {C1 C2 : Cat.{v,u}} {x y: C1} (f : x ⟶ y) (eq : C1 = C2) : /-- This turns the object part of eqToHom functors into casts -/ theorem eqToHom_obj {C1 C2 : Cat.{v,u}} (x : C1) (eq : C1 = C2) : - (eqToHom eq).obj x = cast (congrArg Bundled.α eq) x := by + (eqToHom eq).toFunctor.obj x = cast (congrArg Bundled.α eq) x := by cases eq simp[CategoryStruct.id] From b0a823f9349e910b9afe2572b30706af14836503 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:16:07 -0400 Subject: [PATCH 022/362] UNITY: integrate Bump repair repair-36e13e8595a5f2ce --- HoTTLean/Syntax/Inversion.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Syntax/Inversion.lean b/HoTTLean/Syntax/Inversion.lean index 307fb278..0fbbf2fd 100644 --- a/HoTTLean/Syntax/Inversion.lean +++ b/HoTTLean/Syntax/Inversion.lean @@ -75,7 +75,7 @@ theorem inv_all : (∀ {Γ l A t u}, E ∣ Γ ⊢[l] t ≡ u : A → (WfCtx E Γ) ∧ (E ∣ Γ ⊢[l] A) ∧ (E ∣ Γ ⊢[l] t : A) ∧ (E ∣ Γ ⊢[l] u : A)) := by mutual_induction WfCtx - all_goals dsimp; try intros + all_goals (try dsimp); try intros case bvar => grind [WfCtx.lookup_wf] case cong_pi' => grind [WfTp.pi'] case cong_sigma' => grind [WfTp.sigma'] From 6c57d95674a9000993809c2a1c77edc0a35af6f8 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:17:08 -0400 Subject: [PATCH 023/362] UNITY: integrate Bump repair repair-e171307e859c1a5d --- .../CategoryTheory/FreeGroupoid.lean | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean b/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean index c41b78f8..a4fa88e3 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean @@ -109,13 +109,16 @@ section UniversalProperty variable {C} {G : Type u₁} [Groupoid.{v₁} G] +-- The lift uses the same local transparency setting as the Mathlib quiver lift. +set_option backward.isDefEq.respectTransparency false in /-- The lift of a functor from `C` to a groupoid to a functor from `FreeGroupoid C` to the groupoid -/ def lift (φ : C ⥤ G) : Category.FreeGroupoid C ⥤ G := Quotient.lift (FreeGroupoid.homRel C) (Quiver.FreeGroupoid.lift φ.toPrefunctor) (by intros X Y f g r rcases r with X | ⟨ f , g ⟩ - · simpa using Prefunctor.congr_hom (Quiver.FreeGroupoid.lift_spec φ.toPrefunctor) (𝟙 X) + · change _ = 𝟙 (φ.obj X) + simpa using Prefunctor.congr_hom (Quiver.FreeGroupoid.lift_spec φ.toPrefunctor) (𝟙 X) · have hf := Prefunctor.congr_hom (Quiver.FreeGroupoid.lift_spec φ.toPrefunctor) f have hg := Prefunctor.congr_hom (Quiver.FreeGroupoid.lift_spec φ.toPrefunctor) g have hfg := Prefunctor.congr_hom (Quiver.FreeGroupoid.lift_spec φ.toPrefunctor) (f ≫ g) @@ -123,14 +126,12 @@ def lift (φ : C ⥤ G) : Category.FreeGroupoid C ⥤ G := Functor.toPrefunctor_map, Quiver.homOfEq_rfl, Functor.map_comp] at * rw [hf, hg, hfg]) +set_option backward.isDefEq.respectTransparency false in theorem lift_spec (φ : C ⥤ G) : of C ⋙ lift φ = φ := by - have : Quiver.FreeGroupoid.of C ⋙q (Quotient.functor (FreeGroupoid.homRel C)).toPrefunctor ⋙q - (lift φ).toPrefunctor = φ.toPrefunctor := by - simp [lift, Quotient.lift_spec, Quiver.FreeGroupoid.lift_spec] - fapply Functor.ext - · apply Prefunctor.congr_obj this - · intro _ _ - simpa using Prefunctor.congr_hom this + apply Functor.toPrefunctor_injective + change Quiver.FreeGroupoid.of C ⋙q + ((Quotient.functor (FreeGroupoid.homRel C)) ⋙ lift φ).toPrefunctor = _ + rw [lift, Quotient.lift_spec, Quiver.FreeGroupoid.lift_spec] theorem lift_unique (φ : C ⥤ G) (Φ : Category.FreeGroupoid C ⥤ G) (hΦ : of C ⋙ Φ = φ) : Φ = lift φ := by @@ -190,22 +191,25 @@ open Category.FreeGroupoid @[simps] def free : Cat.{u,u} ⥤ Grpd.{u,u} where obj C := Grpd.of <| Category.FreeGroupoid C - map {C D} F := map F - map_id C := by simp [Grpd.id_eq_id, ← map_id]; rfl - map_comp F G := by simp [Grpd.comp_eq_comp, ← map_comp]; rfl + map {C D} F := map F.toFunctor + map_id C := Category.FreeGroupoid.map_id + map_comp F G := Category.FreeGroupoid.map_comp F.toFunctor G.toFunctor /-- The unit of the free-forgetful adjunction between `Grpd` and `Cat`. -/ @[simps] def freeForgetAdjunction.unit : 𝟭 Cat ⟶ free ⋙ forgetToCat where - app C := Category.FreeGroupoid.of C - naturality C D F := by simp [forgetToCat, Cat.comp_eq_comp, map, lift_spec] + app C := (Category.FreeGroupoid.of C).toCatHom + naturality C D F := by + apply Cat.Hom.ext + exact (lift_spec (F.toFunctor ⋙ Category.FreeGroupoid.of D)).symm /-- The counit of the free-forgetful adjunction between `Grpd` and `Cat`. -/ @[simps] def freeForgetAdjunction.counit : forgetToCat ⋙ free ⟶ 𝟭 Grpd where app G := lift (𝟭 G) naturality G H φ := by - simp [map, Grpd.comp_eq_comp, ← lift_comp, forgetToCat, Functor.id_comp, Functor.assoc, + change lift (φ ⋙ Category.FreeGroupoid.of H) ⋙ lift (𝟭 H) = lift (𝟭 G) ⋙ φ + simp [← lift_comp, Functor.id_comp, Functor.assoc, lift_spec, Functor.comp_id] /-- The free-forgetful adjunction between `Grpd` and `Cat`. -/ @@ -213,12 +217,15 @@ def freeForgetAdjunction : free ⊣ Grpd.forgetToCat where unit := freeForgetAdjunction.unit counit := freeForgetAdjunction.counit left_triangle_components C := by - simp only [free_obj, free_map, map, coe_of, comp_eq_comp, ← lift_comp] + change lift (Category.FreeGroupoid.of C ⋙ Category.FreeGroupoid.of _) ⋙ lift (𝟭 _) = 𝟭 _ + rw [← lift_comp] + simp only [Functor.assoc, lift_spec, Functor.comp_id] symm apply lift_unique - simp [Functor.assoc, lift_spec, Grpd.id_eq_id] + rfl right_triangle_components G := by - simp [forgetToCat, Cat.comp_eq_comp, lift_spec, Cat.id_eq_id] + apply Cat.Hom.ext + exact lift_spec (𝟭 G) instance : Reflective Grpd.forgetToCat where L := free From 264774d07717ac07bfb03059e844780bee951356 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:19:15 -0400 Subject: [PATCH 024/362] UNITY: integrate Bump repair repair-73ee9e8674efd16f --- HoTTLean/ForMathlib.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 258f7a6b..ab9ac5c4 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -123,7 +123,7 @@ theorem eqToHom_obj {C1 C2 : Cat.{v,u}} (x : C1) (eq : C1 = C2) : simp[CategoryStruct.id] abbrev homOf {C D : Type u} [Category.{v} C] [Category.{v} D] (F : C ⥤ D) : - Cat.of C ⟶ Cat.of D := F + Cat.of C ⟶ Cat.of D := F.toCatHom @[simps] def ULift_lte_iso_self {C : Type (max u u₁)} [Category.{v} C] : Cat.of (ULift.{u} C) ≅ Cat.of C where From 7a2b0ebb60fce8ed890ce92954cf8413a803726e Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:20:24 -0400 Subject: [PATCH 025/362] UNITY: integrate Bump repair repair-24b3d6a1547c7b97 --- HoTTLean/Syntax/Inversion.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Syntax/Inversion.lean b/HoTTLean/Syntax/Inversion.lean index 0fbbf2fd..d4057ed6 100644 --- a/HoTTLean/Syntax/Inversion.lean +++ b/HoTTLean/Syntax/Inversion.lean @@ -252,7 +252,8 @@ theorem comp : WfSb E Θ σ Δ → WfSb E Δ σ' Γ → WfSb E Θ (Expr.comp σ intro σ σ' apply mk σ.wf_dom σ'.wf_cod intro _ _ _ lk - exact autosubst% σ'.lookup lk |>.subst σ + rw [← Expr.subst_subst] + exact σ'.lookup lk |>.subst σ theorem toSb : E ∣ Γ ⊢[l] t : A → WfSb E Γ t.toSb ((A, l) :: Γ) := fun t => SubstProof.wfSb_toSb t.wf_ctx t.wf_tp t From 458655f7292e651d6a727afb5d7ba005ffbeb371 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:22:11 -0400 Subject: [PATCH 026/362] UNITY: integrate Bump repair repair-a6fb29a2a87d597d --- HoTTLean/ForMathlib.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index ab9ac5c4..cab38ca0 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -127,8 +127,8 @@ abbrev homOf {C D : Type u} [Category.{v} C] [Category.{v} D] (F : C ⥤ D) : @[simps] def ULift_lte_iso_self {C : Type (max u u₁)} [Category.{v} C] : Cat.of (ULift.{u} C) ≅ Cat.of C where - hom := ULift.downFunctor - inv := ULift.upFunctor + hom := ULift.downFunctor.toCatHom + inv := ULift.upFunctor.toCatHom @[simp] def ULift_succ_iso_self {C : Type (u + 1)} [Category.{v} C] : of (ULift.{u, u + 1} C) ≅ of C := ULift_lte_iso_self.{v,u,u+1} From a6a4200b412463bc6c9bf184c79c539f4221efda Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:23:40 -0400 Subject: [PATCH 027/362] UNITY: integrate Bump repair repair-35117c68135af22a --- HoTTLean/Syntax/EqCtx.lean | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/HoTTLean/Syntax/EqCtx.lean b/HoTTLean/Syntax/EqCtx.lean index ab28a0af..013fa8b7 100644 --- a/HoTTLean/Syntax/EqCtx.lean +++ b/HoTTLean/Syntax/EqCtx.lean @@ -8,13 +8,12 @@ variable {χ : Type*} {E : Axioms χ} {Δ Δ' Γ Γ' Γ'' : Ctx χ} /-! ## Context equality -/ -variable (E : Axioms χ) in /-- The two contexts are judgmentally equal. -/ -inductive EqCtx : Ctx χ → Ctx χ → Prop - | nil : EqCtx [] [] +inductive EqCtx (E : Axioms χ) : Ctx χ → Ctx χ → Prop + | nil : EqCtx E [] [] /-- Prefer using `EqCtx.snoc`. -/ - | snoc' {Γ Γ' A A' l} : - EqCtx Γ Γ' → E ∣ Γ ⊢[l] A ≡ A' → E ∣ Γ' ⊢[l] A ≡ A' → EqCtx ((A, l) :: Γ) ((A', l) :: Γ') + | snoc' {Γ Γ' : Ctx χ} {A A' : Expr χ} {l : Nat} : + EqCtx E Γ Γ' → E ∣ Γ ⊢[l] A ≡ A' → E ∣ Γ' ⊢[l] A ≡ A' → EqCtx E ((A, l) :: Γ) ((A', l) :: Γ') theorem EqCtx.refl : WfCtx E Γ → EqCtx E Γ Γ := by revert Γ; mutual_induction WfCtx <;> grind [EqCtx.nil, EqCtx.snoc', EqTp.refl_tp] From bfbabbc729c4a5953b97f29f1da55c7c222baa20 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:24:38 -0400 Subject: [PATCH 028/362] UNITY: integrate Bump repair repair-9eb3860bf2834763 --- HoTTLean/ForMathlib.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index cab38ca0..8a34d15f 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -141,7 +141,7 @@ def ofULift (C : Type u) [Category.{v} C] : Cat.{v, max u w} := def uLiftFunctor : Cat.{v,u} ⥤ Cat.{v, max u w} where obj X := Cat.ofULift.{w} X - map F := Cat.homOf $ ULift.downFunctor ⋙ F ⋙ ULift.upFunctor + map F := Cat.homOf $ ULift.downFunctor ⋙ F.toFunctor ⋙ ULift.upFunctor end CategoryTheory.Cat From e4026f7a9668414bce1bd7b53c38a5e9dd70961c Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:27:29 -0400 Subject: [PATCH 029/362] UNITY: integrate Bump repair command-a8890323c34ced5e --- HoTTLean/Syntax/GCongr.lean | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Syntax/GCongr.lean b/HoTTLean/Syntax/GCongr.lean index af584802..4127002e 100644 --- a/HoTTLean/Syntax/GCongr.lean +++ b/HoTTLean/Syntax/GCongr.lean @@ -203,10 +203,10 @@ attribute [gcongr] EqTm.cong_idRec /-! ## Lemmas for substitution -/ -attribute [gcongr] WfTp.subst_eq -attribute [gcongr] EqTp.subst_eq -attribute [gcongr] WfTm.subst_eq -attribute [gcongr] EqTm.subst_eq +attribute [gcongr only] WfTp.subst_eq +attribute [gcongr only] EqTp.subst_eq +attribute [gcongr only] WfTm.subst_eq +attribute [gcongr only] EqTm.subst_eq attribute [gcongr] EqTp.subst attribute [gcongr] EqTm.subst From f9d76790797b2c88d26ed432004a385a88e36030 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:28:24 -0400 Subject: [PATCH 030/362] UNITY: integrate Bump repair repair-e2c2188e120bf70f --- HoTTLean/ForMathlib.lean | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 8a34d15f..5e31b2ac 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -220,11 +220,13 @@ theorem comp_up_inj {C : Type u} [Category.{v} C] (h : F ⋙ (AsSmall.up : D ⥤ AsSmall.{w} D) = G ⋙ AsSmall.up) : F = G := by - convert_to F ⋙ (AsSmall.up : D ⥤ AsSmall.{w} D) - ⋙ AsSmall.down - = G ⋙ (AsSmall.up : D ⥤ AsSmall.{w} D) - ⋙ AsSmall.down - simp only [← Functor.assoc, h] + have h' := congrArg (fun K : C ⥤ AsSmall.{w} D => K ⋙ AsSmall.down) h + have h'' : F ⋙ (AsSmall.up ⋙ AsSmall.down) = + G ⋙ (AsSmall.up ⋙ AsSmall.down) := by + simpa only [← Functor.assoc] using h' + have h₀ : AsSmall.up ⋙ AsSmall.down = Functor.id D := rfl + rw [h₀, Functor.comp_id] at h'' + exact h'' theorem comp_down_inj {C : Type u} [Category.{v} C] {D : Type u₁} [Category.{v₁} D] From b41d362256b5c9097df3fd712b4ea465f5ae70a7 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:30:28 -0400 Subject: [PATCH 031/362] UNITY: integrate Bump repair repair-ee9e8d77e8f75cc7 --- HoTTLean/ForMathlib.lean | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 5e31b2ac..36c99b0f 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -233,10 +233,8 @@ theorem comp_down_inj {C : Type u} [Category.{v} C] {F G : C ⥤ AsSmall.{w} D} (h : F ⋙ AsSmall.down = G ⋙ AsSmall.down) : F = G := by - convert_to F ⋙ AsSmall.down - ⋙ AsSmall.up - = G ⋙ AsSmall.down ⋙ AsSmall.up - simp only [← Functor.assoc, h] + have h' := congrArg (fun K : C ⥤ D => K ⋙ AsSmall.up) h + convert h' using 1 <;> rfl @[simp] theorem up_comp_down {C : Type u₁} [Category.{v₁, u₁} C] : From d9893f91807ac7d2d9d08db01c2c28b58b93c2d1 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:32:58 -0400 Subject: [PATCH 032/362] UNITY: integrate Bump repair repair-9f862a33b5b2fdbb --- HoTTLean/ForMathlib.lean | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 36c99b0f..f37750cd 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -255,6 +255,16 @@ namespace Groupoid instance asSmallGroupoid (Γ : Type u) [Groupoid.{v} Γ] : Groupoid (AsSmall.{w} Γ) where inv f := AsSmall.up.map (inv (AsSmall.down.map f)) + inv_comp f := by + cases f with + | up f => + change ULift.up (inv f ≫ f) = ULift.up (𝟙 _) + simp + comp_inv f := by + cases f with + | up f => + change ULift.up (f ≫ inv f) = ULift.up (𝟙 _) + simp end Groupoid From 62f2b5bddd2abf524811d02b4ff1c7ccc08d1937 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:34:13 -0400 Subject: [PATCH 033/362] UNITY: integrate Bump repair repair-d0fb80b801b5203d --- HoTTLean/Syntax/Axioms.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Syntax/Axioms.lean b/HoTTLean/Syntax/Axioms.lean index a7056c45..b2a13305 100644 --- a/HoTTLean/Syntax/Axioms.lean +++ b/HoTTLean/Syntax/Axioms.lean @@ -29,8 +29,8 @@ open Classical instance : LE (Axioms χ) where le E E' := ∀ ⦃c p⦄, (E c) = some p → (E' c) = some p -instance : IsRefl (Axioms χ) (· ≤ ·) where - refl _ _ _ := id +instance : Std.Refl (· ≤ · : Axioms χ → Axioms χ → Prop) where + refl E _ _ h := h instance : IsTrans (Axioms χ) (· ≤ ·) where trans _ _ _ h h' _ _ Ec := h' (h Ec) From 65353da21ee5c1afecf46b4b06996f237f5ceaf2 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:36:12 -0400 Subject: [PATCH 034/362] UNITY: integrate Bump repair repair-248eb686564ad515 --- HoTTLean/ForMathlib.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index f37750cd..107296a3 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -345,7 +345,7 @@ def isLimitProdCone (X Y : D) : IsLimit (e.prodCone X Y) := BinaryFan.isLimitCompLeftIso _ (e.counit.app _) ( isLimitCartesianMonoidalCategoryOfPreservesLimits e.functor (e.inverse.obj X) (e.inverse.obj Y)))) - (BinaryFan.ext (eqToIso rfl) (by aesop_cat) (by aesop_cat)) + (BinaryFan.ext (eqToIso rfl) (by simp [prodCone]) (by simp [prodCone])) def chosenFiniteProducts [CartesianMonoidalCategory C] : CartesianMonoidalCategory D := .ofChosenFiniteProducts From 610683218c813fbd1cdd0d2a86ac63a620e84750 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:38:04 -0400 Subject: [PATCH 035/362] UNITY: integrate Bump repair repair-2081e16cd5c83d31 --- HoTTLean/ForMathlib.lean | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 107296a3..6090b53b 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -416,9 +416,9 @@ variable {Γ : Type u₂} [Category.{v₂} Γ] {A : Γ ⥤ Grpd.{v₁,u₁}} @[simp] theorem Cat.map_id_obj {A : Γ ⥤ Cat.{v₁,u₁}} {x : Γ} {a : A.obj x} : - (A.map (𝟙 x)).obj a = a := by - have : A.map (𝟙 x) = 𝟙 (A.obj x) := by simp - exact Functor.congr_obj this a + (A.map (𝟙 x)).toFunctor.obj a = a := by + have h : (A.map (𝟙 x)).toFunctor = (𝟭 (A.obj x)) := by simp + exact Functor.congr_obj h a theorem Cat.map_id_map {A : Γ ⥤ Cat.{v₁,u₁}} {x : Γ} {a b : A.obj x} {f : a ⟶ b} : From 6d7a3b3920e6eb7a31d3ecd373b92593d0bae6c2 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:39:32 -0400 Subject: [PATCH 036/362] UNITY: integrate Bump repair repair-a371c31fe55ce072 --- HoTTLean/Typechecker/Value.lean | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/HoTTLean/Typechecker/Value.lean b/HoTTLean/Typechecker/Value.lean index f88be533..425f3924 100644 --- a/HoTTLean/Typechecker/Value.lean +++ b/HoTTLean/Typechecker/Value.lean @@ -274,8 +274,8 @@ theorem lookup_eq : ∀ {Δ Eᵥ σ Γ}, (env : EnvEqSb E Δ Eᵥ σ Γ) → case nil lk => cases lk case snoc E A v ih _ _ _ _ lk => rcases lk with _ | ⟨_, lk⟩ - . exact autosubst% v - . exact autosubst% ih lk + . convert v using 1 <;> first | rfl | autosubst + . convert ih lk using 1 <;> first | rfl | autosubst private lemma Expr.eq_snoc_get_zero (σ : Nat → Expr χ) : σ = Expr.snoc (Expr.comp σ Expr.wk) (σ 0) := by @@ -298,9 +298,9 @@ theorem mk : ∀ {Γ}, WfCtx E Γ → ∀ {Δ} {Eᵥ : List (Val χ)} {σ}, rw [Expr.eq_snoc_get_zero σ] apply EnvEqSb.snoc . refine ih Δ eq fun lk => ?_ - exact autosubst% h (lk.succ ..) + convert h (lk.succ ..) using 1 <;> first | rfl | autosubst . assumption - . exact autosubst% h (Lookup.zero ..) + . convert h (Lookup.zero ..) using 1 <;> first | rfl | autosubst end EnvEqSb @@ -315,7 +315,7 @@ private theorem wf_expr : (∀ {Γ l l' A B vb b}, ClosEqTm E Γ l l' A B vb b → E ∣ (A, l) :: Γ ⊢[l'] b : B) ∧ (∀ {Γ Eᵥ σ Γ'}, EnvEqSb E Γ Eᵥ σ Γ' → WfSb E Γ σ Γ') := by mutual_induction ValEqTp - all_goals dsimp; intros + all_goals intros case ax => apply WfTm.ax <;> assumption case conv_tp => grind [EqTp.wf_right] case conv_nf tt' AA' _ => exact tt'.wf_right.conv AA' @@ -496,7 +496,7 @@ private theorem wk_all : apply ValEqTm.pair this (iht C) (autosubst% ihu C) case conv_nf => grind [ValEqTm.conv_nf, EqTp.subst, EqTm.subst, WfSb.wk] case bvar Γ lk _ _ C => - convert NeutEqTm.bvar (Γ.snoc C) (.succ _ lk) using 1; grind + convert NeutEqTm.bvar (Γ.snoc C) (.succ _ lk) using 1 <;> first | rfl | grind case app ihA ihf iha _ _ C => exact autosubst% NeutEqTm.app (ihA C) (ihf C) (iha C) case snd ih _ _ C => From 3fc85562f1ea57539e318ee075ef5ae81f6abb67 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:43:08 -0400 Subject: [PATCH 037/362] UNITY: integrate Bump repair repair-cfbed568811bcf2c --- HoTTLean/Frontend/EnvExt.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Frontend/EnvExt.lean b/HoTTLean/Frontend/EnvExt.lean index 3d71ccf3..2dd3556d 100644 --- a/HoTTLean/Frontend/EnvExt.lean +++ b/HoTTLean/Frontend/EnvExt.lean @@ -107,7 +107,7 @@ private initialize theoryExt : TheoryExt ← | .axiomInfo i => pure <| .axiomDecl i | .defnInfo i => pure <| .defnDecl i | _ => throwThe IO.Error s!"unsupported constant kind at '{ci.name}'" -- Q: no extension entries added after the prelude; will this break elaboration? - let .ok thyEnv := thyData.env.addDeclCore 0 decl none (doCheck := false) + let .ok thyEnv := thyData.env.addDeclCore 0 0 decl none (doCheck := false) | throwThe IO.Error "internal error" /- cannot happen with `doCheck := false` -/ thyMap := thyMap.insert thyNm { thyData with env := thyEnv } return ([], thyMap) @@ -116,7 +116,7 @@ private initialize theoryExt : TheoryExt ← -- Note: because we `cons` local entries onto the list, -- this array has the latest entry first -- and has to be read in reverse order when imported. - exportEntriesFnEx _ s _ := s.1.toArray + exportEntriesFnEx _ s := .uniform s.1.toArray -- TODO: statsFn, asyncMode, replay? } From d1d0232dff8519472201940101b6edb6d8285f96 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:44:46 -0400 Subject: [PATCH 038/362] UNITY: integrate Bump repair repair-cf0f3e9e4dbf5268 --- HoTTLean/ForMathlib.lean | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 6090b53b..377b7bb0 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -422,10 +422,10 @@ variable {Γ : Type u₂} [Category.{v₂} Γ] {A : Γ ⥤ Grpd.{v₁,u₁}} theorem Cat.map_id_map {A : Γ ⥤ Cat.{v₁,u₁}} {x : Γ} {a b : A.obj x} {f : a ⟶ b} : - (A.map (𝟙 x)).map f = eqToHom Cat.map_id_obj + (A.map (𝟙 x)).toFunctor.map f = eqToHom Cat.map_id_obj ≫ f ≫ eqToHom Cat.map_id_obj.symm := by - have : A.map (𝟙 x) = 𝟙 (A.obj x) := by simp - exact Functor.congr_hom this f + have h : (A.map (𝟙 x)).toFunctor = 𝟭 (A.obj x) := by simp + exact Functor.congr_hom h f end From 42e2dae2c6af720b159a6a585148c9f5981b3b7b Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:46:35 -0400 Subject: [PATCH 039/362] UNITY: integrate Bump repair repair-a26b3f92064c533f --- HoTTLean/Typechecker/Evaluate.lean | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/HoTTLean/Typechecker/Evaluate.lean b/HoTTLean/Typechecker/Evaluate.lean index 858a26ba..a0fda63b 100644 --- a/HoTTLean/Typechecker/Evaluate.lean +++ b/HoTTLean/Typechecker/Evaluate.lean @@ -123,6 +123,7 @@ partial def evalTm (env : Q(List (Val $χ))) (t' : Q(Expr $χ)) : subst $v have ⟨_, h⟩ := List.getElem?_eq_some_iff.mp ($this).symm rw [h] + all_goals rfl )⟩ | ~q(.lam $k $k' $C $b) => do let ⟨vC, vCpost⟩ ← evalTp q($env) q($C) @@ -175,7 +176,7 @@ partial def evalTm (env : Q(List (Val $χ))) (t' : Q(Expr $χ)) : obtain ⟨rfl, p, eq⟩ := t.inv_snd apply ValEqTm.conv_tp _ (eq.subst env.wf_sb).symm_tp convert ($vpost) ($vppost env p) using 1 - autosubst + all_goals autosubst )⟩ | ~q(.refl $l $u) => do let ⟨vu, vupost⟩ ← evalTm q($env) q($u) @@ -397,6 +398,7 @@ partial def evalNeutTm (env : Q(List (Val $χ))) (nt : Q(Neut $χ)) : obtain ⟨_, rfl⟩ := List.getElem?_eq_some_iff.mp ($this).symm congr 3 exact env.eq_length + all_goals rfl )⟩ | ~q(.app _ _ _ $nf $va) => let ⟨vf, vfpost⟩ ← evalNeutTm q($env) q($nf) @@ -409,7 +411,7 @@ partial def evalNeutTm (env : Q(List (Val $χ))) (nt : Q(Neut $χ)) : apply ValEqTm.conv_tm _ (eqt.subst env.wf_sb).symm_tm apply ValEqTm.conv_tp _ (eq.subst env.wf_sb).symm_tp convert ($vpost ($vfpost env nf) ($vapost env va)) using 1 - autosubst + all_goals autosubst )⟩ | ~q(.fst $k $k' $np) => let ⟨vp, vppost⟩ ← evalNeutTm q($env) q($np) @@ -432,7 +434,7 @@ partial def evalNeutTm (env : Q(List (Val $χ))) (nt : Q(Neut $χ)) : apply ValEqTm.conv_tm _ (eqt.subst env.wf_sb).symm_tm apply ValEqTm.conv_tp _ (eq.subst env.wf_sb).symm_tp convert ($vpost ($vppost env np_eq)) using 1 - autosubst + all_goals autosubst )⟩ | ~q(.idRec $k $k' $vA $va $cM $vr $vh) => /- NOTE: the type arguments to `forceClos₂Tp` @@ -479,7 +481,7 @@ partial def evalClosTp (vB : Q(Clos $χ)) (vt : Q(Val $χ)) : simp +zetaDelta only at vB rcases vB with ⟨env, Aeq, B⟩ convert ($vpost (env.snoc B.wf_binder (vt.conv_tp Aeq.symm_tp)) B) using 1 - autosubst + all_goals autosubst )⟩ | ~q(.of_val $env $vB') => do let ⟨v, vpost⟩ ← evalValTp q($vt :: $env) q($vB') @@ -489,7 +491,7 @@ partial def evalClosTp (vB : Q(Clos $χ)) (vt : Q(Val $χ)) : rcases vB with _ | ⟨env, Aeq, B⟩ have := env.snoc B.wf_tp.wf_binder (vt.conv_tp Aeq.symm_tp) convert ($vpost this B) using 1 - autosubst + all_goals autosubst )⟩ | vB => throwError "expected a type closure, got{Lean.indentExpr vB}" @@ -597,7 +599,7 @@ partial def evalClosTm (vb : Q(Clos $χ)) (vt : Q(Val $χ)) : have := env.snoc b.wf_binder (vt.conv_tp Aeq.symm_tp) have Beq := Beq.subst <| WfSb.toSb vt.wf_tm convert ($vpost this b |>.conv_tp (by convert Beq using 1; autosubst)) using 1 - autosubst + all_goals autosubst )⟩ | ~q(.of_val $env $vb') => do let ⟨v, vpost⟩ ← evalValTm q($vt :: $env) q($vb') @@ -608,7 +610,7 @@ partial def evalClosTm (vb : Q(Clos $χ)) (vt : Q(Val $χ)) : have := env.snoc b.wf_tm.wf_binder (vt.conv_tp Aeq.symm_tp) have Beq := Beq.subst <| WfSb.toSb vt.wf_tm convert ($vpost this b |>.conv_tp (by convert Beq using 1; autosubst)) using 1 - autosubst + all_goals autosubst )⟩ | vB => throwError "expected a type closure, got{Lean.indentExpr vB}" @@ -682,7 +684,6 @@ partial def evalApp (vf va : Q(Val $χ)) : TypecheckerM ((v : Q(Val $χ)) × apply EqTm.cong_app (EqTp.refl_tp b.wf_tp) _ (EqTm.refl_tm va.wf_tm) apply EqTm.symm_tm; apply eqt.trans_tm apply EqTm.symm_tm; gcongr - assumption )⟩ | ~q(.neut $n (.pi $k $k' $vA $vB)) => do let ⟨vBa, vBpost⟩ ← evalClosTp q($vB) q($va) @@ -805,7 +806,7 @@ partial def evalIdRec (l' : Q(Nat)) (cM : Q(Clos $χ)) (vr vh : Q(Val $χ)) : apply EqTm.symm_tm apply EqTm.cong_idRec (.refl_tm t) (.refl_tp M) (.refl_tm vr.wf_tm) tu refine ?eq - apply EqTm.trans_tm _ <| eqt.symm_tm.conv_eq _ <;> gcongr; assumption + apply EqTm.trans_tm _ <| eqt.symm_tm.conv_eq _ <;> gcongr . apply M.subst_eq <| EqSb.snoc (EqSb.toSb tu) (.Id_bvar t) (autosubst% ?eq) )⟩ | ~q(.neut $nh (.Id $l $vA $va $vb)) => do From 38f5004b252287c75e70a2e5d5d57415342a27a2 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:48:25 -0400 Subject: [PATCH 040/362] UNITY: integrate Bump repair repair-0eaf6abf3bc63195 --- HoTTLean/ForMathlib.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 377b7bb0..898a24c7 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -459,7 +459,7 @@ def psigmaCongrProp {α₁ α₂} {β₁ : α₁ → Prop} {β₂ : α₂ → Pr @[simp] def sigmaCongr_apply_snd {α₁ α₂} {β₁ : α₁ → Sort _} {β₂ : α₂ → Sort _} (f : α₁ ≃ α₂) (F : ∀ a, β₁ a ≃ β₂ (f a)) (x : Sigma β₁) : (sigmaCongr f F x).snd = F x.fst x.snd := by - simp [sigmaCongr] + rfl end Equiv From 1bfb0a9389c43ccf52d6e6431453c65998149e96 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:52:29 -0400 Subject: [PATCH 041/362] UNITY: integrate Bump repair repair-a26b3f92064c533f --- HoTTLean/Typechecker/Evaluate.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Typechecker/Evaluate.lean b/HoTTLean/Typechecker/Evaluate.lean index a0fda63b..e35a212c 100644 --- a/HoTTLean/Typechecker/Evaluate.lean +++ b/HoTTLean/Typechecker/Evaluate.lean @@ -176,7 +176,7 @@ partial def evalTm (env : Q(List (Val $χ))) (t' : Q(Expr $χ)) : obtain ⟨rfl, p, eq⟩ := t.inv_snd apply ValEqTm.conv_tp _ (eq.subst env.wf_sb).symm_tp convert ($vpost) ($vppost env p) using 1 - all_goals autosubst + all_goals first | rfl | autosubst )⟩ | ~q(.refl $l $u) => do let ⟨vu, vupost⟩ ← evalTm q($env) q($u) From 79575841c3d5225c6288175efc13e822c262de35 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:53:41 -0400 Subject: [PATCH 042/362] UNITY: integrate Bump repair repair-03091f6a467ec7e5 --- HoTTLean/ForMathlib.lean | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 898a24c7..8de84ddc 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -472,8 +472,20 @@ noncomputable def pullbackHomEquiv {A B C: 𝒞} {Γ : 𝒞} {f : A ⟶ C} {g : (fst : Γ ⟶ A) × (snd : Γ ⟶ B) ×' (fst ≫ f = snd ≫ g) where toFun h := ⟨h ≫ pullback.fst f g, h ≫ pullback.snd f g, by simp[pullback.condition]⟩ invFun x := pullback.lift x.1 x.2.1 x.2.2 - left_inv _ := pullback.hom_ext (by simp) (by simp) - right_inv := by rintro ⟨_,_,_⟩; congr!; simp; simp + left_inv _ := pullback.hom_ext (pullback.lift_fst _ _ _) (pullback.lift_snd _ _ _) + right_inv := by + rintro ⟨a, b, h⟩ + change (⟨pullback.lift a b h ≫ pullback.fst f g, + pullback.lift a b h ≫ pullback.snd f g, _⟩ : + (fst : Γ ⟶ A) × (snd : Γ ⟶ B) ×' (fst ≫ f = snd ≫ g)) = ⟨a, b, h⟩ + have aux : ∀ (x y : Γ ⟶ A) (z w : Γ ⟶ B) + (p : x ≫ f = z ≫ g) (q : y ≫ f = w ≫ g), x = y → z = w → + (⟨x, z, p⟩ : (fst : Γ ⟶ A) × (snd : Γ ⟶ B) ×' (fst ≫ f = snd ≫ g)) = ⟨y, w, q⟩ := by + intro x y z w p q hx hz + cases hx + cases hz + rfl + exact aux _ _ _ _ _ _ (pullback.lift_fst a b h) (pullback.lift_snd a b h) end CategoryTheory.Limits From d826c17bd97c688d1ec42b62b4cb7214a9f21513 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:57:50 -0400 Subject: [PATCH 043/362] UNITY: integrate Bump repair repair-70abe1150dc704b7 --- HoTTLean/ForMathlib.lean | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 8de84ddc..61ff7c37 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -551,12 +551,19 @@ lemma ofYoneda_isPullback {C : Type u} [Category.{v} C] {TL TR BL BR : C} apply IsPullback.of_isLimit (c := c) apply c.isLimitAux (fun s => lift (PullbackCone.fst s) (PullbackCone.snd s) (by simp [PullbackCone.condition s])) - · simp [c, top_lift] - · simp [c, lift_comp_left] + · intro s + change _ ≫ ofYoneda top top_comp = _ + rw [ofYoneda_comp_left] + exact top_lift _ _ _ + · intro s + exact lift_comp_left _ _ _ · intro s m h + change s.pt ⟶ TL at m apply lift_uniq · specialize h (some .left) - simpa [c] using h + change m ≫ ofYoneda top top_comp = s.fst at h + rw [ofYoneda_comp_left top top_comp] at h + exact h · specialize h (some .right) exact h From 020c9ee116ac82eda2556040698d6679a02ef14a Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 20:59:40 -0400 Subject: [PATCH 044/362] UNITY: integrate Bump repair repair-67527a08d67cbafa --- HoTTLean/Typechecker/Equate.lean | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Typechecker/Equate.lean b/HoTTLean/Typechecker/Equate.lean index 6b38e88f..c0f63ced 100644 --- a/HoTTLean/Typechecker/Equate.lean +++ b/HoTTLean/Typechecker/Equate.lean @@ -266,7 +266,7 @@ partial def equateNeutTm (d : Q(Nat)) (nt nu : Q(Neut $χ)) : refine ⟨TUeq, ?_⟩ apply eqt.trans_tm _ |>.trans_tm (eqt'.conv_eq TUeq.symm_tp).symm_tm apply EqTm.conv_eq _ eq.symm_tp - gcongr + exact EqTm.cong_app Beq feq aeq ) | ~q(.fst _ $k' $p), ~q(.fst _ $m' $p') => do let km' ← equateNat q($k') q($m') @@ -296,7 +296,7 @@ partial def equateNeutTm (d : Q(Nat)) (nt nu : Q(Neut $χ)) : have ⟨_, _, _, Aeq, Beq⟩ := Seq.inv_sigma refine have TUeq := ?_; ⟨TUeq, ?_⟩ . apply eq.trans_tp _ |>.trans_tp eq'.symm_tp - gcongr; apply EqSb.toSb; gcongr + exact Beq.subst_eq (EqSb.toSb (EqTm.cong_fst Aeq Beq peq)) . apply eqt.trans_tm _ |>.trans_tm (eqt'.conv_eq TUeq.symm_tp).symm_tm apply EqTm.conv_eq _ eq.symm_tp gcongr @@ -341,7 +341,7 @@ partial def equateNeutTm (d : Q(Nat)) (nt nu : Q(Neut $χ)) : autosubst; gcongr exact aeq.wf_right exact aeq.symm_tm - gcongr + exact EqTm.cong_idRec aeq Meq this beq heq ) | nt, nu => throwError "cannot prove neutral terms are equal\ From af74379ffa04bc2de6a0bb27c6f00a2086a194d7 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:02:54 -0400 Subject: [PATCH 045/362] UNITY: integrate Bump repair repair-f8259766847b7d69 --- HoTTLean/ForMathlib.lean | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 61ff7c37..5529d312 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -579,11 +579,13 @@ variable (F) in -/ def yonedaIso : yoneda.op ⋙ yoneda.obj F ≅ F := NatIso.ofComponents (fun _ => Equiv.toIso yonedaEquiv) - (fun f => by ext : 1; dsimp; rw [yonedaEquiv_naturality']) + (fun f => by + ext α + exact (yonedaEquiv_naturality' α f).symm) def yonedaIsoMap : yoneda.op ⋙ yoneda.obj F ⟶ yoneda.op ⋙ yoneda.obj G where - app _ := app - naturality _ _ _ := by ext : 1; apply naturality + app _ := ↾app + naturality _ _ _ := by ext α; apply naturality /-- Build natural transformations between presheaves on a small category by defining their action when precomposing by a morphism with From f325d9ec3e1a92093413b06334a9fce5b824fc01 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:04:50 -0400 Subject: [PATCH 046/362] UNITY: integrate Bump repair repair-6fe4dc3723ecc0af --- HoTTLean/Typechecker/Synth.lean | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Typechecker/Synth.lean b/HoTTLean/Typechecker/Synth.lean index bbfc8ed7..64d5eafc 100644 --- a/HoTTLean/Typechecker/Synth.lean +++ b/HoTTLean/Typechecker/Synth.lean @@ -72,8 +72,11 @@ partial def lookupAxiom (E : Q(Axioms Lean.Name)) (c : Q(Lean.Name)) : Lean.Meta {Lean.indentD "="}\ {Lean.indentExpr c |>.nest 2}" | ~q(CheckedAx.snocAxioms _) => - let E ← Lean.Meta.unfoldDefinition E - lookupAxiom E c + let E' : Q(Axioms Lean.Name) ← Lean.Meta.unfoldDefinition E + have : $E' =Q $E := .unsafeIntro + match ← lookupAxiom E' c with + | .inl ⟨A, l, h⟩ => return .inl ⟨A, l, q($h)⟩ + | .inr h => return .inr q($h) | _ => throwError "unsupported axiom environment{Lean.indentExpr E}" partial def checkAxiomsLe (E E' : Q(Axioms Lean.Name)) : Lean.MetaM Q($E ≤ $E') := do From 5db9d2f1a2090fa0f811cbcee02a0cd7d51a5ec1 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:06:50 -0400 Subject: [PATCH 047/362] UNITY: integrate Bump repair repair-816abe24d21f2da2 --- HoTTLean/ForMathlib.lean | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 5529d312..02fb4478 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -657,10 +657,9 @@ lemma Discrete.functor_eq {X C : Type*} [Category C] {F : Discrete X ⥤ C} : · aesop · intro x y f cases x ; rcases f with ⟨⟨h⟩⟩ - cases h simp -lemma Discrete.functor_ext {X C : Type*} [Category C] (F G : Discrete X ⥤ C) +lemma Discrete.functor_ext_explicit {X C : Type*} [Category C] (F G : Discrete X ⥤ C) (h : ∀ x : X, F.obj ⟨x⟩ = G.obj ⟨x⟩) : F = G := calc F From 49a45ed0c6d8deac2980522efdae9508575cd222 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:08:56 -0400 Subject: [PATCH 048/362] UNITY: integrate Bump repair repair-f640122234a92352 --- HoTTLean/Typechecker/Synth.lean | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Typechecker/Synth.lean b/HoTTLean/Typechecker/Synth.lean index 64d5eafc..770accfc 100644 --- a/HoTTLean/Typechecker/Synth.lean +++ b/HoTTLean/Typechecker/Synth.lean @@ -107,8 +107,9 @@ variable (E : Q(Axioms Lean.Name)) (Ewf : Q(($E).Wf)) partial def checkTp (vΓ : Q(TpEnv Lean.Name)) (l : Q(Nat)) (T : Q(Expr Lean.Name)) : TypecheckerM Q(∀ {Γ}, TpEnvEqCtx $E $vΓ Γ → $E ∣ Γ ⊢[$l] ($T)) := - Lean.withTraceNode traceClsTypechecker (fun e => - return m!"{Lean.exceptEmoji e} {vΓ} ⊢[{l}] {T}") do + Lean.withTraceNode (ε := Lean.Exception) traceClsTypechecker (fun + | .ok _ => return m!"✅️ {vΓ} ⊢[{l}] {T}" + | .error _ => return m!"❌️ {vΓ} ⊢[{l}] {T}") do let key := (⟨vΓ⟩, ⟨l⟩, ⟨T⟩) if let some pf := (← get).checkTp[key]? then return pf eventually (fun pf => @@ -168,8 +169,9 @@ partial def checkTm (vΓ : Q(TpEnv Lean.Name)) (l : Q(Nat)) (vT : Q(Val Lean.Name)) (t : Q(Expr Lean.Name)) : TypecheckerM Q(∀ {Γ T}, TpEnvEqCtx $E $vΓ Γ → ValEqTp $E Γ $l $vT T → $E ∣ Γ ⊢[$l] ($t) : T) := do - Lean.withTraceNode traceClsTypechecker (fun e => - return m!"{Lean.exceptEmoji e} {vΓ} ⊢[{l}] {t} ⇐ {vT}") do + Lean.withTraceNode (ε := Lean.Exception) traceClsTypechecker (fun + | .ok _ => return m!"✅️ {vΓ} ⊢[{l}] {t} ⇐ {vT}" + | .error _ => return m!"❌️ {vΓ} ⊢[{l}] {t} ⇐ {vT}") do let key := (⟨vΓ⟩, ⟨l⟩, ⟨vT⟩, ⟨t⟩) if let some pf := (← get).checkTm[key]? then return pf eventually (fun pf => From e8df993121952f8b6aea9a776173e027f375b87d Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:10:04 -0400 Subject: [PATCH 049/362] UNITY: integrate Bump repair command-0ac3130b46bf84b6 --- HoTTLean/ForMathlib/CategoryTheory/NatTrans.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/NatTrans.lean b/HoTTLean/ForMathlib/CategoryTheory/NatTrans.lean index aee6e9a4..d0be4c98 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/NatTrans.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/NatTrans.lean @@ -1,6 +1,6 @@ import Mathlib.CategoryTheory.NatTrans import Mathlib.CategoryTheory.Functor.TwoSquare -import Mathlib.CategoryTheory.Limits.Shapes.Pullback.CommSq +import Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic import HoTTLean.ForMathlib universe w v u v₁ u₁ v₂ u₂ v₃ u₃ From 7618e31538a6c01041f9132402a86f2f3a1f7d93 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:11:10 -0400 Subject: [PATCH 050/362] UNITY: integrate Bump repair command-3b2e28de64b702fa --- HoTTLean/ForPoly.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index b9a44a91..669412fd 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -69,7 +69,7 @@ theorem pushforwardPullbackIsoSquare_eq {C} [Category C] [HasPullbacks C] {X Y Z ((adj f).comp (Over.mapPullbackAdj h)) (asIso (Over.pullbackMapTwoSquare h f g k pb.toCommSq)) := by simp [pushforwardPullbackIsoSquare, Over.pushforwardPullbackTwoSquare] - ext1; simp + ext1; rfl open ExponentiableMorphism Functor in theorem ev_naturality {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} @@ -623,7 +623,7 @@ instance preservesConnectedLimitsOfShape_of_hasLimitsOfShape {J : Type v₁} [Sm unfold UvPoly.functor infer_instance -instance preservesPullbacks (P : UvPoly E B) +theorem preservesPullbacks (P : UvPoly E B) {Pb X Y Z : C} (fst : Pb ⟶ X) (snd : Pb ⟶ Y) (f : X ⟶ Z) (g : Y ⟶ Z) (h: IsPullback fst snd f g) : From 0bda62649237e0aaf2bb5e727815367141171f50 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:14:18 -0400 Subject: [PATCH 051/362] UNITY: integrate Bump repair command-d26b171bc11d86bf --- HoTTLean/Model/Unstructured/UnstructuredUniverse.lean | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HoTTLean/Model/Unstructured/UnstructuredUniverse.lean b/HoTTLean/Model/Unstructured/UnstructuredUniverse.lean index 5e57936b..b2476a72 100644 --- a/HoTTLean/Model/Unstructured/UnstructuredUniverse.lean +++ b/HoTTLean/Model/Unstructured/UnstructuredUniverse.lean @@ -320,12 +320,14 @@ lemma fst_comp {Γ Δ} (σ : Δ ⟶ Γ) {A : Γ ⟶ U0.Ty} {σA} (eq) {B : U0.ex S.fst (U0.substWk σ A σA eq ≫ B) (σ ≫ s) (by simp [s_tp, S.Sig_comp]) = σ ≫ S.fst B s s_tp := by rw! [(S.pair_fst_snd B s (by simp [s_tp])).symm, ← S.pair_comp, S.fst_pair, S.fst_pair] + rfl lemma snd_comp {Γ Δ} (σ : Δ ⟶ Γ) {A : Γ ⟶ U0.Ty} {σA} (eq) {B : U0.ext A ⟶ U1.Ty} (s : Γ ⟶ U2.Tm) (s_tp : s ≫ U2.tp = S.Sig B) : S.snd (U0.substWk σ A σA eq ≫ B) (σ ≫ s) (by simp [s_tp, S.Sig_comp]) = σ ≫ S.snd B s s_tp := by rw! [(S.pair_fst_snd B s (by simp [s_tp])).symm, ← S.pair_comp, S.snd_pair, S.snd_pair] + rfl end PolymorphicSigma @@ -363,6 +365,7 @@ lemma unLam_comp {Γ Δ} (σ : Δ ⟶ Γ) {A : Γ ⟶ U0.Ty} {σA} (eq) {B : U0. U0.substWk σ A σA eq ≫ P.unLam B f f_tp := by rw [← P.unLam_lam (U0.substWk σ A σA eq ≫ B) (U0.substWk σ A σA eq ≫ P.unLam B f f_tp)] . rw! [P.lam_comp σ eq B, P.lam_unLam] + rfl . rw [Category.assoc, P.unLam_tp] /-- From cc00bb77c7dd12255dc23ae1c786259abd4bbd44 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:16:22 -0400 Subject: [PATCH 052/362] UNITY: integrate Bump repair command-d18c1332a9c5ca2b --- HoTTLean/Frontend/Commands.lean | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Frontend/Commands.lean b/HoTTLean/Frontend/Commands.lean index 2f349ac6..8533da46 100644 --- a/HoTTLean/Frontend/Commands.lean +++ b/HoTTLean/Frontend/Commands.lean @@ -22,15 +22,14 @@ and return them as an axiom environment. Assumes that all such axioms are present in the ambient environment as definitions of type `CheckedAx _` under the same name. -/ def computeAxioms (thyEnv : Environment) (constNm : Name) : MetaM ((E : Q(Axioms Name)) × Q(($E).Wf)) := do - let (_, st) ← (CollectAxioms.collect constNm).run thyEnv |>.run {} - let axioms := st.axioms + let axioms ← withEnv thyEnv <| collectAxioms constNm -- The output includes `constNm` if it is itself an axiom. let axioms := axioms.filter (· != constNm) -- Order the axioms by '`a` uses `b`'. let mut axiomAxioms : Std.HashMap Name (Array Name) := {} for axNm in axioms do - let (_, st) ← (CollectAxioms.collect axNm).run thyEnv |>.run {} - let axioms := st.axioms.filter (· != axNm) + let axioms ← withEnv thyEnv <| collectAxioms axNm + let axioms := axioms.filter (· != axNm) axiomAxioms := axiomAxioms.insert axNm axioms let mut axioms := axioms.qsort (fun a b => axiomAxioms[b]!.contains a) -- HACK: replace `sorryAx` with our universe-monomorphic versions. From fed95e8d436c47aae1633f18a37fd7eeae71c5b5 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:17:28 -0400 Subject: [PATCH 053/362] UNITY: integrate Bump repair command-7f4b134b3575bbc7 --- .../Bicategory/Grothendieck.lean | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 3f256088..8e7021b0 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -58,20 +58,20 @@ variable (F : Pseudofunctor B Cat) {a b : B} @[simp] lemma _root_.CategoryTheory.LocallyDiscrete.Iso.hom_inv {C : Type u₁} [Category C] (X Y : LocallyDiscrete C) (e : X ≅ Y) : e.hom.toLoc ≫ e.inv.toLoc = 𝟙 _ := - LocallyDiscrete.eq_of_hom ⟨⟨by simp⟩⟩ + LocallyDiscrete.eq_of_hom ⟨by simp⟩ -attribute [reassoc] StrongTrans.naturality_comp_inv_app +-- The reassociated lemma is supplied by Mathlib. end lemma _root_.CategoryTheory.Functor.toPseudofunctor'_map₂ {C : Type u₁} [Category.{v₁} C] (F : C ⥤ Cat) {a b : LocallyDiscrete C} {f g : a ⟶ b} (η : f ⟶ g) : - F.toPseudoFunctor'.map₂ η = eqToHom (by simp [eq_of_hom η]) := by - simp [Functor.toPseudoFunctor', pseudofunctorOfIsLocallyDiscrete] + F.toPseudofunctor'.map₂ η = eqToHom (by simp [eq_of_hom η]) := by + simp [Functor.toPseudofunctor', pseudofunctorOfIsLocallyDiscrete] @[simps] def _root_.CategoryTheory.NatTrans.toStrongTrans' {C : Type u₁} [Category.{v₁} C] (F G : C ⥤ Cat) (α : F ⟶ G) : - F.toPseudoFunctor' ⟶ G.toPseudoFunctor' where + F.toPseudofunctor' ⟶ G.toPseudofunctor' where app x := α.app x.as naturality _ := eqToIso (α.naturality _) naturality_naturality η := by simp [Functor.toPseudofunctor'_map₂] @@ -848,37 +848,37 @@ section Pseudofunctor variable (F) @[simps!] -def toPseudoFunctor'Iso.hom : ∫ F ⥤ F.toPseudoFunctor'.Grothendieck where +def toPseudofunctor'Iso.hom : ∫ F ⥤ F.toPseudofunctor'.Grothendieck where obj x := ⟨ x.base, x.fiber ⟩ map f := ⟨ f.base, f.fiber ⟩ map_id x := by apply Pseudofunctor.Grothendieck.Hom.ext <;> simp map_comp f g := by apply Pseudofunctor.Grothendieck.Hom.ext <;> simp @[simps!] -def toPseudoFunctor'Iso.inv : F.toPseudoFunctor'.Grothendieck ⥤ ∫ F where +def toPseudofunctor'Iso.inv : F.toPseudofunctor'.Grothendieck ⥤ ∫ F where obj x := ⟨ x.base, x.fiber ⟩ map f := ⟨ f.base, f.fiber ⟩ map_id x := by apply Hom.ext <;> simp map_comp f g := by apply Hom.ext <;> simp -def toPseudoFunctor'Iso : ∫ F ≅≅ F.toPseudoFunctor'.Grothendieck where - hom := toPseudoFunctor'Iso.hom F - inv := toPseudoFunctor'Iso.inv F +def toPseudofunctor'Iso : ∫ F ≅≅ F.toPseudofunctor'.Grothendieck where + hom := toPseudofunctor'Iso.hom F + inv := toPseudofunctor'Iso.inv F -def toPseudoFunctor'Equivalence : ∫ F ≌ F.toPseudoFunctor'.Grothendieck := - (toPseudoFunctor'Iso F).toEquivalence +def toPseudofunctor'Equivalence : ∫ F ≌ F.toPseudofunctor'.Grothendieck := + (toPseudofunctor'Iso F).toEquivalence -lemma toPseudoFunctor'Iso.hom_comp_forget : toPseudoFunctor'Iso.hom F ⋙ +lemma toPseudofunctor'Iso.hom_comp_forget : toPseudofunctor'Iso.hom F ⋙ Pseudofunctor.Grothendieck.forget _ = forget _ := rfl -lemma toPseudoFunctor'Iso.inv_comp_forget : toPseudoFunctor'Iso.inv F ⋙ forget _ = +lemma toPseudofunctor'Iso.inv_comp_forget : toPseudofunctor'Iso.inv F ⋙ forget _ = Pseudofunctor.Grothendieck.forget _ := rfl -lemma map_eq_pseudofunctor_map {G} (α : F ⟶ G) : map α = (toPseudoFunctor'Iso F).hom ⋙ +lemma map_eq_pseudofunctor_map {G} (α : F ⟶ G) : map α = (toPseudofunctor'Iso F).hom ⋙ Pseudofunctor.Grothendieck.map α.toStrongTrans' ⋙ - (toPseudoFunctor'Iso G).inv := by + (toPseudofunctor'Iso G).inv := by fapply Functor.ext · aesop · intro _ From 1088cde9713e05f878d7cb1fd9d9e609a0812d48 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:20:07 -0400 Subject: [PATCH 054/362] UNITY: integrate Bump repair command-515030f0a7812f04 --- HoTTLean/Model/Unstructured/Hurewicz.lean | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/HoTTLean/Model/Unstructured/Hurewicz.lean b/HoTTLean/Model/Unstructured/Hurewicz.lean index e3d2f1fb..cb7b4bd5 100644 --- a/HoTTLean/Model/Unstructured/Hurewicz.lean +++ b/HoTTLean/Model/Unstructured/Hurewicz.lean @@ -325,6 +325,7 @@ lemma unpath_ext {Γ} (A : Γ ⟶ U0.Ty) (a0 a1 : Γ ⟶ U0.Tm) (p1 p2 : cyl.I.o rw [← P0.unpath_path (A := A) a0 a1 p1 p1_tp δ0_p1 δ1_p1] rw [← P0.unpath_path a0 a1 p2 p2_tp δ0_p2 δ1_p2] rw! [h] + rfl lemma unpath_comp {Γ Δ} (σ : Δ ⟶ Γ) {A : Γ ⟶ U0.Ty} (a0 a1 : Γ ⟶ U0.Tm) (a0_tp : a0 ≫ U0.tp = A) (a1_tp : a1 ≫ U0.tp = A) (p : Γ ⟶ U0.Tm) (p_tp : p ≫ U0.tp = P0.Path a0 a1 a0_tp a1_tp) : @@ -530,7 +531,6 @@ lemma I_δ0_connection : cyl.I.map (cyl.δ0.app _) ≫ P0.connection hrwcz0 a a_ cyl.π.app _ ≫ disp .. ≫ U0.disp A ≫ a := by fapply P0.unpath_ext (disp .. ≫ U0.disp A ≫ A) (disp .. ≫ U0.disp A ≫ a) (disp .. ≫ U0.disp A ≫ a) <;> simp [a_tp, connection, ← unpath_comp] - erw [δ0_connectionLift] -- FIXME simp [← path_comp] lemma connection_comp [hrwcz0.IsUniform] : @@ -585,7 +585,6 @@ lemma δ0_symmConnection : cyl.δ0.app _ ≫ P0.symmConnection hrwcz0 a a_tp = simp only [motiveCtx, polymorphicIdIntro_Id, Functor.id_obj, symmConnection, Functor.comp_obj, δ0_app_I_obj_comp_symm_app_assoc] erw [I_δ0_connection] -- FIXME - simp @[simp] lemma I_δ0_symmConnection : cyl.I.map (cyl.δ0.app _) ≫ P0.symmConnection hrwcz0 a a_tp = @@ -628,8 +627,6 @@ lemma pathSymmConnection_tp : P0.pathSymmConnection hrwcz0 a a_tp ≫ U0.tp = (cyl.π.app _ ≫ disp .. ≫ disp .. ≫ a) (cyl.δ1.app _ ≫ P0.symmConnection hrwcz0 a a_tp) (by simp [a_tp]) (by simp) := by simp [pathSymmConnection] - rw! (transparency := .default) [δ0_symmConnection] - congr 1 @[simp] lemma δ0_pathSymmConnection : cyl.δ0.app _ ≫ P0.pathSymmConnection hrwcz0 a a_tp = @@ -704,8 +701,6 @@ lemma δ1_substConnection : cyl.δ1.app _ ≫ P0.substConnection hrwcz0 a a_tp = simp [substConnection] apply (disp_pullback ..).hom_ext · simp only [substCons_var, Category.id_comp] - rw! (transparency := .default) [δ1_pathSymmConnection] - simp · apply (disp_pullback ..).hom_ext · simp only [symmConnection, motiveCtx, polymorphicIdIntro_Id, Functor.comp_obj, δ1_app_I_obj_comp_symm_app_assoc, cyl.δ1_naturality_assoc] From 2a2f9148d2f7a6740fb25a8498b5fc07ff051610 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:21:24 -0400 Subject: [PATCH 055/362] UNITY: integrate Bump repair command-4f8dd18aced55695 --- HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean index 0dc8f53e..5fea010a 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean @@ -159,7 +159,7 @@ theorem hom_ext {l0 l1 : C ⥤ Chosen east south} (hnorth : l0 ⋙ north = l1 · intro x y f apply (wideSubcategory.faithful _).map_injective apply (ObjectProperty.faithful_ι _).map_injective - apply prod.hom_ext + apply Prod.hom_ext · convert congr_hom hnorth f simp only [Functor.map_comp, eqToHom_map] simp [north] From a3db4db8eee31ee2975de23d367e4337940a9e76 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:24:26 -0400 Subject: [PATCH 056/362] UNITY: integrate Bump repair command-4f8dd18aced55695 --- .../CategoryTheory/Functor/IsPullback.lean | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean index 5fea010a..c88b72f0 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean @@ -61,15 +61,19 @@ end ChosenObjects whose two components are sent to equal maps in the base category `Sudan`. -/ def morphismProperty : MorphismProperty (ChosenObjects east south) := - fun {x y} f => east.map f.1 - = eqToHom x.property ≫ south.map f.2 ≫ eqToHom y.property.symm + fun {x y} f => east.map f.hom.1 + = eqToHom x.property ≫ south.map f.hom.2 ≫ eqToHom y.property.symm instance : MorphismProperty.IsMultiplicative (morphismProperty east south) where id_mem x := by - simp [morphismProperty, ChosenObjects, ObjectProperty.FullSubcategory.id_def] + change east.map (𝟙 x.obj.1) = eqToHom x.property ≫ south.map (𝟙 x.obj.2) ≫ eqToHom x.property.symm + simp comp_mem f g hf hg := by - simp only [morphismProperty, ChosenObjects, - ObjectProperty.FullSubcategory.comp_def] at * + change east.map (f.hom.1 ≫ g.hom.1) = + eqToHom _ ≫ south.map (f.hom.2 ≫ g.hom.2) ≫ eqToHom _ + change east.map f.hom.1 = _ at hf + change east.map g.hom.1 = _ at hg + simp only [Functor.map_comp] simp [hg, hf] /-- From 0e7317ddbca40ef84a320a5938a984312661245e Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:26:20 -0400 Subject: [PATCH 057/362] UNITY: integrate Bump repair command-d18c1332a9c5ca2b --- HoTTLean/Frontend/EnvExt.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Frontend/EnvExt.lean b/HoTTLean/Frontend/EnvExt.lean index 2dd3556d..648c683f 100644 --- a/HoTTLean/Frontend/EnvExt.lean +++ b/HoTTLean/Frontend/EnvExt.lean @@ -70,6 +70,8 @@ For the initial shallow environment, we pull in a custom prelude with `Type`-valued identity types. -/ def mkInitTheoryData (modNm mainModule : Name) : m TheoryData := do -- TODO: check if the `.olean` exists and print a better error if not. + -- Imports reset this flag. Enable it for each shallow environment import. + liftM (m := IO) (unsafe Lean.enableInitializersExecution) let mut thyEnv ← importModules #[{ module := `HoTTLean.Prelude }] (← getOptions) (leakEnv := true) (loadExts := true) thyEnv := thyEnv.setMainModule mainModule From 9dc727882c17006f4dc4fd0de468982312bd553a Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:29:23 -0400 Subject: [PATCH 058/362] UNITY: integrate Bump repair command-fd34f2fe3c6b19cc --- HoTTLean/ForMathlib/CategoryTheory/Grpd.lean | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean b/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean index 5d3d85cc..db436780 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean @@ -110,7 +110,8 @@ theorem eqToHom_hom_aux {C1 C2 : Grpd.{v,u}} (x y: C1) (eq : C1 = C2) : theorem eqToHom_hom {C1 C2 : Grpd.{v,u}} {x y: C1} (f : x ⟶ y) (eq : C1 = C2) : (eqToHom eq).map f = (cast (Grpd.eqToHom_hom_aux x y eq) f) := by cases eq - simp only [eqToHom_refl, id_eq_id, Functor.id_map, cast_eq] + simp only [eqToHom_refl, id_eq_id, Functor.id_map] + rfl @[simp] theorem map_eqToHom_map {x y : Γ} (h : x = y) {t s} (f : t ⟶ s) : (F.map (eqToHom h)).map f = @@ -140,8 +141,8 @@ variable {Γ : Type u} [Groupoid Γ] {Δ : Type u₁} [Groupoid.{v₁} Δ] def Grpd.functorIsoOfIso {A B : Grpd} (F : A ≅ B) : A ≅≅ B where hom := F.hom inv := F.inv - hom_inv_id := F.hom_inv_id - inv_hom_id := F.inv_hom_id + hom_inv_id := by simp + inv_hom_id := by simp noncomputable section @@ -228,8 +229,8 @@ attribute [simp] comp_eq_comp id_eq_id in def mkIso {Δ Γ : Grpd} (F : Δ ≅≅ Γ) : Δ ≅ Γ where hom := F.hom inv := F.inv - hom_inv_id := by simp - inv_hom_id := by simp + hom_inv_id := F.hom_inv_id + inv_hom_id := F.inv_hom_id attribute [simp] comp_eq_comp id_eq_id in @[simps] From 502e82c3c88d79081e91808fd84b4fa9569db44f Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:33:00 -0400 Subject: [PATCH 059/362] UNITY: integrate Bump repair command-4c172a16bf893adf --- HoTTLean/Model/Unstructured/UHom.lean | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/HoTTLean/Model/Unstructured/UHom.lean b/HoTTLean/Model/Unstructured/UHom.lean index 3c05dc06..c5d215c8 100644 --- a/HoTTLean/Model/Unstructured/UHom.lean +++ b/HoTTLean/Model/Unstructured/UHom.lean @@ -55,10 +55,11 @@ def Hom.subst (M : UnstructuredUniverse Ctx) Hom (M.pullback ((σ) ≫ A)) (M.pullback A) := let Aσ := (σ) ≫ A { mapTm := - (M.disp_pullback A).lift (M.var Aσ) (M.disp Aσ ≫ σ) (by aesop_cat) + (M.disp_pullback A).lift (M.var Aσ) (M.disp Aσ ≫ σ) (by exact (M.disp_pullback Aσ).w.trans (Category.assoc _ _ _).symm) mapTy := (σ) pb := by - convert IsPullback.of_right' (M.disp_pullback Aσ) (M.disp_pullback A)} + change IsPullback _ (M.disp Aσ) (M.disp A) σ + exact IsPullback.of_right' (M.disp_pullback Aσ) (M.disp_pullback A)} @[simp] def Hom.extIsoExt {M N : UnstructuredUniverse Ctx} (h : Hom M N) {Γ} (A : Γ ⟶ M.Ty) : (N.ext (A ≫ h.mapTy)) ≅ (M.ext A) := @@ -118,13 +119,11 @@ def UHom.ofTarskiU (M : UnstructuredUniverse Ctx) (U : (𝟭_ Ctx) ⟶ M.Ty) (El __ := M.pullbackHom El U asTm := M.var U - U_pb := (M.disp_pullback U).of_iso - (Iso.refl _) - (Iso.refl _) - (Iso.refl _) - (Iso.refl _) - (by simp) (isTerminal.hom_ext ..) - (by simp) (by simp) + U_pb := by + change IsPullback (M.var U) (isTerminal.from (M.ext U)) M.tp U + convert M.disp_pullback U using 1 + exact isTerminal.hom_ext _ _ + section From 7859a0587f63a0472817f468d545830921e54784 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:36:57 -0400 Subject: [PATCH 060/362] UNITY: integrate Bump repair command-83d1b775a3376e40 --- HoTTLeanTest/basic.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLeanTest/basic.lean b/HoTTLeanTest/basic.lean index 99b86d7e..31d22bc5 100644 --- a/HoTTLeanTest/basic.lean +++ b/HoTTLeanTest/basic.lean @@ -84,6 +84,6 @@ mltt noncomputable def c' : Cb := c /-! ## Using `sorry` -/ -/-- warning: declaration uses 'sorry' -/ +/-- warning: declaration uses `sorry` -/ #guard_msgs in mltt def foo : Type := sorry From bdfbe9212967dcc3636f5df410908921708bd151 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:45:34 -0400 Subject: [PATCH 061/362] UNITY: integrate Bump repair command-fd34f2fe3c6b19cc --- HoTTLean/ForMathlib/CategoryTheory/Grpd.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean b/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean index db436780..40a5af5a 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean @@ -238,8 +238,8 @@ def mkIso' {Δ Γ : Type u} [Groupoid.{v} Δ] [Groupoid.{v} Γ] (F : Δ ≅≅ Grpd.of Δ ≅ Grpd.of Γ where hom := F.hom inv := F.inv - hom_inv_id := by simp - inv_hom_id := by simp + hom_inv_id := F.hom_inv_id + inv_hom_id := F.inv_hom_id open MonoidalCategory From 0bb61b5b97e3a360ae438192667f67b911ccd221 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:52:05 -0400 Subject: [PATCH 062/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 8e7021b0..13739f4d 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -66,8 +66,11 @@ end lemma _root_.CategoryTheory.Functor.toPseudofunctor'_map₂ {C : Type u₁} [Category.{v₁} C] (F : C ⥤ Cat) {a b : LocallyDiscrete C} {f g : a ⟶ b} (η : f ⟶ g) : - F.toPseudofunctor'.map₂ η = eqToHom (by simp [eq_of_hom η]) := by - simp [Functor.toPseudofunctor', pseudofunctorOfIsLocallyDiscrete] + F.toPseudofunctor'.map₂ η = eqToHom (by + obtain ⟨f⟩ := f + obtain ⟨g⟩ := g + exact congrArg F.map (eq_of_hom η)) := by + rfl @[simps] def _root_.CategoryTheory.NatTrans.toStrongTrans' {C : Type u₁} [Category.{v₁} C] (F G : C ⥤ Cat) (α : F ⟶ G) : @@ -80,7 +83,7 @@ def _root_.CategoryTheory.NatTrans.toStrongTrans' {C : Type u₁} [Category.{v /-- An `eqToHom` in the category `Cat` is a functor that acts on maps by casts. -/ theorem _root_.CategoryTheory.Cat.map_eqToHom {C1 C2 : Cat} {x y : C1} (f : x ⟶ y) (eq : C1 = C2) : - (eqToHom eq).map f = (cast (by subst eq; rfl) f) := by + (eqToHom eq).toFunctor.map f = (cast (by subst eq; rfl) f) := by cases eq simp [CategoryStruct.id] @@ -107,18 +110,18 @@ structure Hom (X Y : ∫ F) where /-- The morphism between base objects. -/ base : X.base ⟶ Y.base /-- The morphism in the fiber over the domain. -/ - fiber : (F.map base.toLoc).obj X.fiber ⟶ Y.fiber + fiber : (F.map base.toLoc).toFunctor.obj X.fiber ⟶ Y.fiber @[simps! id_base id_fiber comp_base comp_fiber] instance categoryStruct : CategoryStruct (∫ F) where Hom X Y := Hom X Y id X := { base := 𝟙 X.base - fiber := (F.mapId ⟨X.base⟩).hom.app X.fiber } + fiber := (F.mapId ⟨X.base⟩).hom.toNatTrans.app X.fiber } comp {X _ _} f g := { base := f.base ≫ g.base - fiber := (F.mapComp f.base.toLoc g.base.toLoc).hom.app X.fiber ≫ - (F.map g.base.toLoc).map f.fiber ≫ g.fiber } + fiber := (F.mapComp f.base.toLoc g.base.toLoc).hom.toNatTrans.app X.fiber ≫ + (F.map g.base.toLoc).toFunctor.map f.fiber ≫ g.fiber } instance (X : ∫ F) : Inhabited (Hom X X) := ⟨𝟙 X⟩ From 776833795cd14dda084887716c736e7eb1ef4a76 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 21:53:32 -0400 Subject: [PATCH 063/362] UNITY: integrate Bump repair repair-598ae5892d75580b --- HoTTLean/ForMathlib/CategoryTheory/Grpd.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean b/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean index 40a5af5a..de22fb79 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean @@ -141,8 +141,8 @@ variable {Γ : Type u} [Groupoid Γ] {Δ : Type u₁} [Groupoid.{v₁} Δ] def Grpd.functorIsoOfIso {A B : Grpd} (F : A ≅ B) : A ≅≅ B where hom := F.hom inv := F.inv - hom_inv_id := by simp - inv_hom_id := by simp + hom_inv_id := F.hom_inv_id + inv_hom_id := F.inv_hom_id noncomputable section From 803063e9437dce9213dff2049f34fd382fce48f0 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:00:55 -0400 Subject: [PATCH 064/362] UNITY: integrate Bump repair command-4f8dd18aced55695 --- .../CategoryTheory/Functor/IsPullback.lean | 31 ++++++++++--------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean index c88b72f0..29abfa8f 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean @@ -863,25 +863,26 @@ variable {Libya Egypt Chad Sudan : Type u} [Category.{v} Libya] (h : Functor.IsPullback north west east south) (s : Limits.PullbackCone (homOf east) (homOf south)) -def lift : s.pt ⟶ of Libya := h.lift s.fst s.snd s.condition +def lift : s.pt ⟶ of Libya := homOf (h.lift s.fst.toFunctor s.snd.toFunctor (congrArg Cat.Hom.toFunctor s.condition)) def fac_left : lift h s ≫ (homOf north) = s.fst := - h.fac_left _ _ _ + Cat.Hom.ext (h.fac_left _ _ _) def fac_right : lift h s ≫ (homOf west) = s.snd := - h.fac_right _ _ _ + Cat.Hom.ext (h.fac_right _ _ _) def uniq (m : s.pt ⟶ of Libya) (hl : m ≫ homOf north = s.fst) (hr : m ≫ homOf west = s.snd) : m = lift h s := by + apply Cat.Hom.ext apply h.hom_ext - · convert (fac_left h s).symm - · convert (fac_right h s).symm + · exact (congrArg Cat.Hom.toFunctor hl).trans (congrArg Cat.Hom.toFunctor (fac_left h s)).symm + · exact (congrArg Cat.Hom.toFunctor hr).trans (congrArg Cat.Hom.toFunctor (fac_right h s)).symm variable (comm_sq) in def isPullback : IsPullback (homOf north) (homOf west) (homOf east) (homOf south) := IsPullback.of_isLimit (PullbackCone.IsLimit.mk - comm_sq (lift h) (fac_left _) (fac_right _) (uniq _)) + (Cat.Hom.ext comm_sq) (lift h) (fac_left _) (fac_right _) (uniq _)) noncomputable def functorIsPullback (h : IsPullback (homOf north) (homOf west) (homOf east) (homOf south)) : @@ -891,13 +892,13 @@ noncomputable def functorIsPullback (homOf south) := isPullback Functor.IsPullback.Chosen.comm_sq (Functor.IsPullback.Chosen.isPullback east south) let i := IsPullback.isoIsPullback _ _ h hChosen - convert Functor.IsPullback.ofIsoChosen east south i.hom i.inv ?_ ?_ - · symm - exact IsPullback.isoIsPullback_hom_fst _ _ h hChosen - · symm - exact IsPullback.isoIsPullback_hom_snd _ _ h hChosen - · exact i.hom_inv_id - · exact i.inv_hom_id + have hn : i.hom.toFunctor ⋙ IsPullback.Chosen.north = north := + congrArg Cat.Hom.toFunctor (IsPullback.isoIsPullback_hom_fst _ _ h hChosen) + have hw : i.hom.toFunctor ⋙ IsPullback.Chosen.west = west := + congrArg Cat.Hom.toFunctor (IsPullback.isoIsPullback_hom_snd _ _ h hChosen) + rw [← hn, ← hw] + exact Functor.IsPullback.ofIsoChosen east south i.hom.toFunctor i.inv.toFunctor + (congrArg Cat.Hom.toFunctor i.hom_inv_id) (congrArg Cat.Hom.toFunctor i.inv_hom_id) end end Cat @@ -924,8 +925,8 @@ def fac_right : lift h s ≫ (homOf west) = s.snd := def uniq (m : s.pt ⟶ of Libya) (hl : m ≫ homOf north = s.fst) (hr : m ≫ homOf west = s.snd) : m = lift h s := by apply h.hom_ext - · convert (fac_left h s).symm - · convert (fac_right h s).symm + · exact hl.trans (fac_left h s).symm + · exact hr.trans (fac_right h s).symm def isPullback : IsPullback (homOf north) (homOf west) (homOf east) (homOf south) := IsPullback.of_isLimit (PullbackCone.IsLimit.mk From cbc6daa578f59558b3cf8fbff6816fe68b13b22f Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:06:17 -0400 Subject: [PATCH 065/362] UNITY: integrate Bump repair command-ca52bd071b8886ae --- .../Tactic/CategoryTheory/FunctorMap.lean | 3 +- .../Model/Unstructured/Interpretation.lean | 33 +++++++++++++++---- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/HoTTLean/ForMathlib/Tactic/CategoryTheory/FunctorMap.lean b/HoTTLean/ForMathlib/Tactic/CategoryTheory/FunctorMap.lean index 99e941b4..f0fe66fe 100644 --- a/HoTTLean/ForMathlib/Tactic/CategoryTheory/FunctorMap.lean +++ b/HoTTLean/ForMathlib/Tactic/CategoryTheory/FunctorMap.lean @@ -56,7 +56,8 @@ def functorMapExpr (e : Expr) (lvl_params : Bool) : MetaM (Expr × List Level) : let some (hom, _, _) := eTp.eq? | throwError "expected an equality, got{indentD eTp}" if !hom.isAppOf ``Quiver.Hom then throwError "expected an equality of morphisms, got{indentD eTp}" - let [.succ v₁, u₁] := hom.getAppFn.constLevels! | + -- Quiver.Hom uses the hom universe directly, not its successor. + let [v₁, u₁] := hom.getAppFn.constLevels! | throwError "unexpected universe levels in{indentD hom.getAppFn}" let e' ← mkAppM' (.const ``eq_functor_map [v₁, u₁, v₂, u₂]) #[e] simpType categorySimp' e' diff --git a/HoTTLean/Model/Unstructured/Interpretation.lean b/HoTTLean/Model/Unstructured/Interpretation.lean index 521e84d3..57eeea12 100644 --- a/HoTTLean/Model/Unstructured/Interpretation.lean +++ b/HoTTLean/Model/Unstructured/Interpretation.lean @@ -3,8 +3,10 @@ import HoTTLean.Model.Unstructured.UHom import HoTTLean.ForMathlib +-- Part membership simplification must unfold dependent context projections. macro "simp_part" loc:(Lean.Parser.Tactic.location)? : tactic => - `(tactic| simp only [ + `(tactic| set_option backward.isDefEq.respectTransparency false in + simp only [ Part.mem_assert_iff, Part.mem_bind_iff, Part.mem_map_iff, Part.pure_eq_some, Part.bind_eq_bind, Part.map_bind, Part.map_some, Part.mem_bind_iff, Part.mem_some_iff, @@ -637,14 +639,15 @@ def sub1 {se : Γ.1 ⟶ s[l].Tm} @[simp] theorem sub1_toSb {se : Γ.1 ⟶ s[l].Tm} (A : Γ.1 ⟶ s[l].Ty) (e) (eq : se ≫ s[l].tp = A) (H : se ∈ I.ofTerm Γ l e) : (sub1 llen A e eq H).toSb = Expr.toSb e := by - simp [sub1, toSb, Expr.toSb] + rfl def up {Δ Γ σ full} (sσ : I.CSb Δ Γ σ full) {l} (llen : l < s.length + 1) (A : Γ.1 ⟶ s[l].Ty) (A' := σ ≫ A) (eq : σ ≫ A = A' := by rfl) : I.CSb (Δ.snoc llen A') (Γ.snoc llen A) (s[l].substWk σ A _ eq) full := by refine ((CSb.wk _ _ false).comp sσ).snoc' _ _ (.bvar 0) (by simp) _ ?_ - simp [UHomSeq.CObj.var, UHomSeq.ExtSeq.var] + simp [UHomSeq.CObj.var, UHomSeq.ExtSeq.var, Part.assert_pos rfl] + exact Part.mem_some _ @[simp] theorem up_toSb {Δ Γ σ full} (sσ : I.CSb Δ Γ σ full) {l} {llen : l < s.length + 1} {A A'} {eq : σ ≫ A = A'} : @@ -658,6 +661,8 @@ end CSb open UHomSeq PolymorphicSigma PolymorphicPi PolymorphicIdIntro PolymorphicIdElim variable (slen : univMax ≤ s.length) +-- Unfold dependent context projections in this proof. +set_option backward.isDefEq.respectTransparency false in theorem mem_ofType_ofTerm_subst' {full} (IH : full = true → ∀ {Δ Γ l} (llen : l < s.length + 1) {sσ} (σ : I.CSb Δ Γ sσ false) {se e}, se ∈ I.ofTerm Γ l e llen → sσ ≫ se ∈ I.ofTerm Δ l (Expr.subst σ.toSb e) llen) @@ -704,7 +709,7 @@ theorem mem_ofType_ofTerm_subst' {full} simp [ofTerm_bvar] at H simp [Expr.subst] induction σ generalizing i with simp [CSb.toSb, *] - | wk => exact CObj.mem_var_succ.2 ⟨_, ‹_›, rfl⟩ + | wk => exact ⟨_, ‹_›, rfl⟩ | @comp _ _ _ _ _ full σ τ ih1 ih2 => simp [Expr.comp] cases full with @@ -798,12 +803,14 @@ theorem mem_ofType_wk {e l l' hl} (hl' : l' < s.length + 1) (s[l'].disp X) ≫ se ∈ I.ofType (Γ.snoc hl' X) l (Expr.subst Expr.wk e) hl := (I.mem_ofType_ofTerm_subst hl (.wk hl' X) rfl).1 H +-- Unfold dependent context projections in this proof. +set_option backward.isDefEq.respectTransparency false in theorem mem_ofType_of_isClosed {e l} (e_cl : e.isClosed) (Γ : s.CObj) (hl : l < s.length + 1) {se} (se_mem : se ∈ I.ofType s.nilCObj l e hl) : isTerminal.from Γ.1 ≫ se ∈ I.ofType Γ l e hl := by rcases Γ with ⟨_, ext⟩ induction ext - · convert se_mem; simp + · simpa [UHomSeq.nilCObj] using se_mem · rename_i X se_mem have := I.mem_ofType_wk (X := X) (by omega) se_mem convert this using 1 <;> @@ -831,6 +838,8 @@ theorem mem_ofTerm_toSb {e l l' hl} (hl' : l' < s.length + 1) /-! ## Soundness of interpretation -/ +-- Unfold dependent context projections in this proof. +set_option backward.isDefEq.respectTransparency false in theorem tp_sound {Γ i A l} (H : Lookup Γ i A l) {sΓ} (hΓ : sΓ ∈ I.ofCtx Γ) : ∃ llen, ∃ sA ∈ sΓ.tp llen i, sA ∈ I.ofType sΓ l A llen := by induction H generalizing sΓ with ( @@ -954,6 +963,8 @@ theorem WfTmIH.bvar {Γ A i l} (H : Lookup Γ i A l) : I.WfCtxIH Γ → I.WfTmIH have ⟨llen, _, h1, h2⟩ := I.var_sound H hΓ ⟨_, ‹_›, llen, _, h2, _, h1, rfl⟩ +-- Unfold dependent context projections in this proof. +set_option backward.isDefEq.respectTransparency false in theorem EqTmIH.lam {Γ A A' B t t' l l'} : I.EqTpIH Γ l A A' → I.EqTmIH ((A, l) :: Γ) l' B t t' → I.EqTmIH Γ (max l l') (Expr.pi l l' A B) (Expr.lam l l' A t) (Expr.lam l l' A' t') @@ -1040,6 +1051,8 @@ theorem EqTmIH.refl_tm {Γ A t t' l} : ?_⟩ simp; congr +-- Unfold dependent context projections in this proof. +set_option backward.isDefEq.respectTransparency false in theorem EqTmIH.idRec {Γ A M M' t t' r r' u u' h h' l l'} : I.EqTmIH Γ l A t t' → I.EqTpIH ((.Id l (.subst .wk A) (.subst .wk t) (.bvar 0), l) :: (A, l) :: Γ) l' M M' → @@ -1093,6 +1106,8 @@ theorem EqTmIH.code {Γ A A' l} (_ : l < univMax) : I.mem_ofTerm_code.2 ⟨_, rfl, _, hA', by simp⟩, s.code_tp ..⟩ +-- Unfold dependent context projections in this proof. +set_option backward.isDefEq.respectTransparency false in theorem EqTmIH.app_lam {Γ A B t u l l'} : I.WfTmIH ((A, l) :: Γ) l' B t → I.WfTmIH Γ l A u → I.EqTmIH Γ l' (Expr.subst u.toSb B) (Expr.app l l' B (Expr.lam l l' A t) u) @@ -1128,6 +1143,8 @@ theorem EqTmIH.fst_snd_pair {Γ A B t u l l'} : ⟨_, hΓ, _, _, I.mem_ofType_toSb _ ht ttp hB, _, I.mem_ofTerm_snd.2 ⟨_, _, hA, _, hB, _, hp, tp, (snd_pair ..).symm⟩, hu, utp⟩⟩ +-- Unfold dependent context projections in this proof. +set_option backward.isDefEq.respectTransparency false in theorem EqTmIH.idRec_refl {Γ A M t r l l'} : I.WfTmIH Γ l A t → I.WfTpIH ((.Id l (.subst .wk A) (.subst .wk t) (.bvar 0), l) :: (A, l) :: Γ) l' M → @@ -1152,10 +1169,12 @@ theorem EqTmIH.idRec_refl {Γ A M t r l l'} : have sr := rtp ▸ Part.mem_unique hR sM have ir := I.mem_ofTerm_idRec.2 ⟨_, _, ht, _, ttp, B, by simp [Beq, sAeq], _, hM, _, hr, by simp [ttp, sr], _, ht, ttp, _, h1, by simp [ttp], - by rw! [ttp, PolymorphicIdElim.idRec_refl (I_eq := _)]⟩ + by rw! [ttp, PolymorphicIdElim.idRec_refl (I_eq := _)]; rfl⟩ ⟨_, hΓ, _, _, sM, _, ir, hr, sr⟩ simp [Beq, ← Id_comp, sAeq, ttp] +-- Unfold dependent context projections in this proof. +set_option backward.isDefEq.respectTransparency false in theorem EqTmIH.lam_app {Γ A B f l l'} : I.WfTmIH Γ (max l l') (.pi l l' A B) f → I.EqTmIH Γ (max l l') (.pi l l' A B) f @@ -1179,6 +1198,8 @@ theorem EqTmIH.lam_app {Γ A B f l l'} : congr 1 apply (s[l].disp_pullback _).hom_ext <;> simp +-- Unfold dependent context projections in this proof. +set_option backward.isDefEq.respectTransparency false in theorem EqTmIH.pair_fst_snd {Γ A B p l l'} : I.WfTmIH Γ (max l l') (Expr.sigma l l' A B) p → I.EqTmIH Γ (max l l') (Expr.sigma l l' A B) p From 4d627a233f3fe3294d2c9af93870ff7d2a107901 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:07:49 -0400 Subject: [PATCH 066/362] UNITY: integrate Bump repair command-4f8dd18aced55695 --- .../CategoryTheory/Functor/IsPullback.lean | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean index 29abfa8f..7a235f03 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean @@ -148,6 +148,8 @@ The universal lift of the chosen pullback `Chosen` commutes with projections. theorem fac_right : lift Cn Cw hC ⋙ west = Cw := rfl +-- The projection equations unfold the chosen wide subcategory during rewriting. +set_option backward.isDefEq.respectTransparency false in /-- Lifts of the chosen pullback `Chosen` are unique. -/ @@ -164,12 +166,12 @@ theorem hom_ext {l0 l1 : C ⥤ Chosen east south} (hnorth : l0 ⋙ north = l1 apply (wideSubcategory.faithful _).map_injective apply (ObjectProperty.faithful_ι _).map_injective apply Prod.hom_ext - · convert congr_hom hnorth f - simp only [Functor.map_comp, eqToHom_map] - simp [north] - · convert congr_hom hwest f - simp only [Functor.map_comp, eqToHom_map] - simp [west] + · change (l0 ⋙ north).map f = north.map (eqToHom _ ≫ l1.map f ≫ eqToHom _) + rw [Functor.map_comp, Functor.map_comp, eqToHom_map, eqToHom_map] + exact congr_hom hnorth f + · change (l0 ⋙ west).map f = west.map (eqToHom _ ≫ l1.map f ≫ eqToHom _) + rw [Functor.map_comp, Functor.map_comp, eqToHom_map, eqToHom_map] + exact congr_hom hwest f end Chosen From 9964f3d5901d8e903f21da5953e393695a148a72 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:16:19 -0400 Subject: [PATCH 067/362] UNITY: integrate Bump repair command-43f6c27d9f87c037 --- HoTTLean/ForMathlib/CategoryTheory/Core.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Core.lean b/HoTTLean/ForMathlib/CategoryTheory/Core.lean index bd136ad0..b7fe706e 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Core.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Core.lean @@ -38,7 +38,7 @@ lemma core_comp_inclusion (F : C ⥤ D) : def map : Cat.{v,u} ⥤ Grpd.{v,u} where obj C := Grpd.of (Core C) - map F := Grpd.homOf (F.core) + map F := Grpd.homOf (F.toFunctor.core) variable {Γ : Type u} [Groupoid.{v} Γ] From 5ac68d85ba233f0d67583e28822058d4be79853f Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:19:20 -0400 Subject: [PATCH 068/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 13739f4d..d8420139 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -72,14 +72,25 @@ lemma _root_.CategoryTheory.Functor.toPseudofunctor'_map₂ {C : Type u₁} [Cat exact congrArg F.map (eq_of_hom η)) := by rfl +-- Match the bundled Cat operations while elaborating these coherence laws. +set_option backward.isDefEq.respectTransparency false in @[simps] def _root_.CategoryTheory.NatTrans.toStrongTrans' {C : Type u₁} [Category.{v₁} C] (F G : C ⥤ Cat) (α : F ⟶ G) : F.toPseudofunctor' ⟶ G.toPseudofunctor' where app x := α.app x.as naturality _ := eqToIso (α.naturality _) - naturality_naturality η := by simp [Functor.toPseudofunctor'_map₂] - naturality_id _ := by ext; simp [Bicategory.leftUnitor, Bicategory.rightUnitor] - naturality_comp _ _ := by ext; simp [Bicategory.associator] + naturality_naturality {a b} f g η := by + have h : f = g := Discrete.ext (eq_of_hom η) + subst g + simp [Functor.toPseudofunctor'_map₂] + naturality_id _ := by + ext + dsimp + simp [Cat.Hom₂.eqToHom_toNatTrans, eqToHom_map] + naturality_comp _ _ := by + ext + dsimp + simp [Cat.Hom₂.eqToHom_toNatTrans, eqToHom_map] /-- An `eqToHom` in the category `Cat` is a functor that acts on maps by casts. -/ theorem _root_.CategoryTheory.Cat.map_eqToHom {C1 C2 : Cat} {x y : C1} (f : x ⟶ y) (eq : C1 = C2) : From 6ac647e02a928318b4ed6bf54396429a4b2a4333 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:20:55 -0400 Subject: [PATCH 069/362] UNITY: integrate Bump repair command-43f6c27d9f87c037 --- HoTTLean/ForMathlib/CategoryTheory/Core.lean | 22 -------------------- 1 file changed, 22 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Core.lean b/HoTTLean/ForMathlib/CategoryTheory/Core.lean index b7fe706e..fa1c8521 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Core.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Core.lean @@ -63,17 +63,6 @@ variable {C' : Type u₃} [Category.{v₃} C'] theorem functorToCore_comp_inclusion (H : G ⥤ C) : functorToCore H ⋙ inclusion _ = H := rfl -theorem functorToCore_comp_left (H : G ⥤ C) (F : G' ⥤ G) : - functorToCore (F ⋙ H) = F ⋙ functorToCore H := by - apply Functor.ext - · simp [functorToCore] - · intro - rfl - -theorem functorToCore_comp_right (H : G ⥤ C) (F : C ⥤ C') : - functorToCore (H ⋙ F) = functorToCore H ⋙ F.core := by - rfl - theorem functorToCoreEquiv_symm_apply_comp_left (H : G ⥤ Core C) (F : G' ⥤ G) : functorToCoreEquiv.symm (F ⋙ H) = F ⋙ functorToCoreEquiv.symm H := rfl @@ -100,17 +89,6 @@ def adjunction : Grpd.forgetToCat ⊣ Core.map where Functor.id_comp, Functor.comp_id, Grpd.forgetToCat]} counit := {app C := Cat.homOf (Core.inclusion C)} -/-- Mildly evil. -/ -theorem inclusion_comp_functorToCore : inclusion G ⋙ functorToCore (𝟭 G) = Functor.id (Core G) := by - apply Functor.ext - · intro x y f - simp only [Core.inclusion, Core.functorToCore, Functor.id_map, - Functor.comp_map, Groupoid.inv_eq_inv, IsIso.Iso.inv_hom, - eqToHom_refl, Category.comp_id, Category.id_comp] - rfl - · intro - rfl - theorem functorToCore_inclusion_apply {C : Type u} [Category.{v} C] : Core.functorToCore (Core.inclusion C) = Functor.id (Core C) := rfl From f85d5d32dc454b2804123927b3a9ea19b4273d5f Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:23:31 -0400 Subject: [PATCH 070/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index d8420139..82926d87 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -203,10 +203,10 @@ induces a functor `Grothendieck.map : ∫ F ⥤ ∫ G`. def map (α : F ⟶ G) : ∫ F ⥤ ∫ G where obj a := { base := a.base - fiber := (α.app ⟨a.base⟩).obj a.fiber } + fiber := (α.app ⟨a.base⟩).toFunctor.obj a.fiber } map {a b} f := { base := f.1 - fiber := (α.naturality f.1.toLoc).inv.app a.fiber ≫ (α.app ⟨b.base⟩).map f.2 } + fiber := (α.naturality f.1.toLoc).inv.toNatTrans.app a.fiber ≫ (α.app ⟨b.base⟩).toFunctor.map f.2 } map_id a := by ext · dsimp @@ -216,7 +216,7 @@ def map (α : F ⟶ G) : ∫ F ⥤ ∫ G where · dsimp · simp only [categoryStruct_comp_base, Quiver.Hom.comp_toLoc, StrongTrans.naturality_comp_inv_app_assoc, ← Functor.map_comp] - have := (α.naturality g.base.toLoc).inv.naturality_assoc + have := (α.naturality g.base.toLoc).inv.toNatTrans.naturality_assoc simp only [Cat.comp_map] at this simp [this] From d51c0f97624a02c20b1be0c101e24dcfb80871f1 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:24:52 -0400 Subject: [PATCH 071/362] UNITY: integrate Bump repair command-43f6c27d9f87c037 --- HoTTLean/ForMathlib/CategoryTheory/Core.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Core.lean b/HoTTLean/ForMathlib/CategoryTheory/Core.lean index fa1c8521..6e5317c6 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Core.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Core.lean @@ -124,6 +124,8 @@ variable {C : Type u} [Category.{v} C] {D : Type u} [Category.{v} D] variable {E : Type*} [Category E] (En : E ⥤ C) (Ew : E ⥤ Core D) (hE : En ⋙ F = Ew ⋙ inclusion D) +-- The equality transports in this dependent construction require reducible type transparency. +set_option backward.isDefEq.respectTransparency.types false in def lift : E ⥤ Core C where obj x := ⟨ En.obj x ⟩ map {x y} f := ⟨ @asIso _ _ _ _ (En.map f) $ by From 43819501656dc1220aeaef96d262d15cae38dc4b Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:27:15 -0400 Subject: [PATCH 072/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 82926d87..a9f6ba67 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -217,7 +217,7 @@ def map (α : F ⟶ G) : ∫ F ⥤ ∫ G where · simp only [categoryStruct_comp_base, Quiver.Hom.comp_toLoc, StrongTrans.naturality_comp_inv_app_assoc, ← Functor.map_comp] have := (α.naturality g.base.toLoc).inv.toNatTrans.naturality_assoc - simp only [Cat.comp_map] at this + simp only [Cat.Hom.comp_map] at this simp [this] @[simp] From f7fa06c1472aaaacba279e2a4add49b3cfb94bea Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:28:47 -0400 Subject: [PATCH 073/362] UNITY: integrate Bump repair command-43f6c27d9f87c037 --- HoTTLean/ForMathlib/CategoryTheory/Core.lean | 26 +++++++------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Core.lean b/HoTTLean/ForMathlib/CategoryTheory/Core.lean index 6e5317c6..1279f3ca 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Core.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Core.lean @@ -28,9 +28,8 @@ def comp_inclusion_injective {l0 l1 : D ⥤ Core C} (hl : l0 ⋙ inclusion C = l ext exact Functor.congr_obj hl x · intro x y f - ext - convert Functor.congr_hom hl f - simp + apply (inclusion C).map_injective + simpa [Functor.comp_map, inclusion, eqToHom_iso] using Functor.congr_hom hl f lemma core_comp_inclusion (F : C ⥤ D) : F.core ⋙ inclusion D = inclusion C ⋙ F := @@ -50,9 +49,8 @@ def functorToCoreEquiv : Γ ⥤ D ≃ Γ ⥤ Core D where invFun := forgetFunctorToCore.obj left_inv _ := rfl right_inv _ := by - fapply Functor.ext - · aesop_cat - · aesop_cat + apply comp_inclusion_injective + rfl variable {C : Type u₁} [Category.{v₁} C] variable {G : Type u₂} [Groupoid.{v₂} G] @@ -83,10 +81,10 @@ def adjunction : Grpd.forgetToCat ⊣ Core.map where unit := { app G := Grpd.homOf (Core.functorToCore (Functor.id _)) naturality _ _ F := by - simp [Core.map, Grpd.comp_eq_comp, - ← functorToCore_comp_left, + change F ⋙ functorToCore (𝟭 _) = functorToCore (𝟭 _) ⋙ F.core + simp [← functorToCore_comp_left, ← functorToCore_comp_right, - Functor.id_comp, Functor.comp_id, Grpd.forgetToCat]} + Functor.id_comp, Functor.comp_id]} counit := {app C := Cat.homOf (Core.inclusion C)} theorem functorToCore_inclusion_apply {C : Type u} [Category.{v} C] : @@ -143,14 +141,8 @@ def lift : E ⥤ Core C where def fac_left : lift F En Ew hE ⋙ inclusion C = En := rfl def fac_right : lift F En Ew hE ⋙ F.core = Ew := by - fapply Functor.ext - · intro x - ext - exact Functor.congr_obj hE x - · intro x y f - ext - convert Functor.congr_hom hE f - simp + apply comp_inclusion_injective + exact hE def universal : (lift : E ⥤ Core C) ×' lift ⋙ inclusion C = En ∧ lift ⋙ F.core = Ew ∧ ∀ {l0 l1 : E ⥤ Core C}, l0 ⋙ inclusion C = l1 ⋙ inclusion C → l0 ⋙ F.core = l1 ⋙ F.core → l0 = l1 := From 87f7e220999f7b1542c243d93809922b7aa49137 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:30:04 -0400 Subject: [PATCH 074/362] UNITY: integrate Bump repair repair-53ec018d872ddb4b --- HoTTLean/ForPoly.lean | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 669412fd..60b93084 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -11,6 +11,9 @@ open Limits PartialProduct universe v u variable {C : Type u} [Category.{v} C] [HasPullbacks C] +-- These local settings let simp reduce the slice functor types in the mate construction. +set_option backward.defeqAttrib.useBackward true in +set_option backward.isDefEq.respectTransparency false in theorem η_naturality {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} (e : E ⟶ E') (b : B ⟶ B') (hp : IsPullback P.p e b P'.p) : Functor.whiskerLeft (Over.pullback P.p) (Over.mapPullbackAdj e).unit ≫ @@ -20,8 +23,9 @@ theorem η_naturality {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} |>.trans (Over.pullbackComp e P'.p)).inv = Functor.whiskerRight (Over.mapPullbackAdj b).unit (Over.pullback P.p) := by ext X - simp [pullbackMapIsoSquare, ← pullback_map_eq_eqToHom rfl hp.w.symm, Over.pullbackComp] - ext <;> simp [pullback.condition] + simp [pullbackMapIsoSquare, asIso, ← pullback_map_eq_eqToHom rfl hp.w.symm, + Over.pullbackComp, Over.pullback, Over.map] + ext <;> simp [Category.assoc, pullback.map, pullback.condition] theorem η_naturality' {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} (e : E ⟶ E') (b : B ⟶ B') @@ -40,22 +44,7 @@ theorem η_naturality' {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} Functor.whiskerRight α.hom ebk ≫ Functor.whiskerLeft bmap bb.inv = Functor.whiskerRight (Over.mapPullbackAdj b).unit pbk := by - intro bmap emap pbk ebk bbk p'bk α bb - ext X - simp[bb,α,pullbackMapIsoSquare,pbk,bmap,ebk,emap,bbk,Category.assoc] - ext - · simp[← Category.assoc,← pullback_map_eq_eqToHom rfl hp.w.symm] - simp[Over.pullbackComp] - slice_lhs 2 3 => apply pullback.lift_fst - simp[← Category.assoc] - · rw[← pullback_map_eq_eqToHom rfl hp.w.symm] - simp[Over.pullbackComp] - slice_lhs 2 3 => apply pullback.lift_snd - simp[← Category.assoc,pullback.condition] - rw[← Category.assoc,← pullback_map_eq_eqToHom rfl hp.w.symm] - simp[Over.pullbackComp,pullback.map] - slice_lhs 2 3 => apply pullback.lift_snd - simp + exact η_naturality e b hp open ExponentiableMorphism in From 5a094a2837082673f92706913b0781e0b232e044 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:34:12 -0400 Subject: [PATCH 075/362] UNITY: integrate Bump repair repair-c23f3e1dc756adca --- HoTTLean/ForPoly.lean | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 60b93084..23f0ae8d 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -88,7 +88,10 @@ theorem ev_naturality {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} rw [← isoWhiskerLeft_inv, ← Category.assoc, Iso.comp_inv_eq, ← isoWhiskerRight_hom, ← Iso.eq_comp_inv] at this simp [β, pushforwardPullbackIsoSquare_eq, ev] at this ⊢ - rw [show inv _ (I := _) = α.inv by simp [α, pullbackMapIsoSquare]] + change whiskerRight (conjugateEquiv ((adj P.p).comp (Over.mapPullbackAdj e)) + ((Over.mapPullbackAdj b).comp (adj P'.p)) α.inv) pbk ≫ + whiskerLeft p'fwd bb.hom ≫ whiskerRight (adj P'.p).counit ebk = + whiskerLeft ebk (adj P.p).counit generalize Over.mapPullbackAdj e = adje, Over.mapPullbackAdj b = adjb at * ext X : 2; simp have := congr( From 7cc2d2537e2069b38b0ee6ad7a667c147a9338a4 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:35:40 -0400 Subject: [PATCH 076/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index a9f6ba67..378caeef 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -165,14 +165,17 @@ end instance category : Category (∫ F) where toCategoryStruct := Pseudofunctor.Grothendieck.categoryStruct id_comp {a b} f := by - ext - · simp - · simp [F.mapComp_id_left_hom_app, PrelaxFunctor.map₂_eqToHom, Strict.leftUnitor_eqToIso, - ← Functor.map_comp_assoc] + -- Match transports through bundled Cat operations. + set_option backward.isDefEq.respectTransparency false in + ext + · simp + · simp [F.mapComp_id_left_hom_app, PrelaxFunctor.map₂_eqToHom, Strict.leftUnitor_eqToIso, + ← Functor.map_comp_assoc] comp_id {a b} f := by - ext - · simp - · simp [F.mapComp_id_right_hom_app, PrelaxFunctor.map₂_eqToHom, Strict.rightUnitor_eqToIso] + set_option backward.isDefEq.respectTransparency false in + ext + · simp + · simp [F.mapComp_id_right_hom_app, PrelaxFunctor.map₂_eqToHom, Strict.rightUnitor_eqToIso] assoc f g h := by ext · simp From 61802e37c04efe0bb4052255a2b3af4f90e742d1 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:38:35 -0400 Subject: [PATCH 077/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../Bicategory/Grothendieck.lean | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 378caeef..53818724 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -211,17 +211,19 @@ def map (α : F ⟶ G) : ∫ F ⥤ ∫ G where base := f.1 fiber := (α.naturality f.1.toLoc).inv.toNatTrans.app a.fiber ≫ (α.app ⟨b.base⟩).toFunctor.map f.2 } map_id a := by - ext - · dsimp - · simp [StrongTrans.naturality_id_inv_app, ← Functor.map_comp] + set_option backward.isDefEq.respectTransparency false in + ext + · dsimp + · simp [StrongTrans.naturality_id_inv_app, ← Functor.map_comp] map_comp {a b c} f g := by - ext - · dsimp - · simp only [categoryStruct_comp_base, Quiver.Hom.comp_toLoc, + set_option backward.isDefEq.respectTransparency false in + ext + · dsimp + · simp only [categoryStruct_comp_base, Quiver.Hom.comp_toLoc, StrongTrans.naturality_comp_inv_app_assoc, ← Functor.map_comp] - have := (α.naturality g.base.toLoc).inv.toNatTrans.naturality_assoc - simp only [Cat.Hom.comp_map] at this - simp [this] + have := (α.naturality g.base.toLoc).inv.toNatTrans.naturality_assoc + simp only [Cat.Hom.comp_map] at this + simp [this] @[simp] lemma map_id_map {x y : ∫ F} (f : x ⟶ y) : (map (𝟙 F)).map f = f := by @@ -1309,7 +1311,7 @@ def functorIsoFrom (fib_comp : ∀ c, fib c ⋙ A = ι F c ⋙ forget F) · simp only [Functor.assoc, functorTo_forget, Functor.id_comp, fib_comp] · apply fibObj_fib_obj · intro x y f - simp only [comp_obj, functorTo_obj_base, comp_map, functorTo_map_base, functorTo_obj_fiber, + simp only [comp_obj, functorTo_obj_base, comp_map, functorTo_map_base, functorTo_obj_fiber, functorTo_map_fiber, id_obj, ι_obj_base, id_map, ι_map_base, ι_obj_fiber, ι_map_fiber] rw! [eqToHom_comp_heq, heq_cast_iff_heq] apply fibMap_fib_map From a6299f13d1596f53357e5ded5087cdba1281666c Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:40:47 -0400 Subject: [PATCH 078/362] UNITY: integrate Bump repair repair-6520dde2d55bff77 --- HoTTLean/ForPoly.lean | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 23f0ae8d..165dbcc8 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -144,18 +144,21 @@ theorem whiskerRight_twice' {C D E B} [Category C] [Category D] [Category E] [Ca variable [HasTerminal C] +-- This local setting lets simp reduce the mate through the TwoSquare wrapper. open Over ExponentiableMorphism Functor in +set_option backward.isDefEq.respectTransparency false in @[simp] lemma cartesianNatTrans_fstProj {E B E' B' : C} (P : UvPoly E B) (P' : UvPoly E' B') (e : E ⟶ E') (b : B ⟶ B') (pb : IsPullback P.p e b P'.p) (X : C) : (P.cartesianNatTrans P' b e pb).app X ≫ P'.fstProj X = P.fstProj X ≫ b := by let m := whiskerRight (Over.starPullbackIsoStar e).inv (pushforward P.p) ≫ whiskerLeft (Over.star E') (pushforwardPullbackIsoSquare pb.flip).inv - simp [cartesianNatTrans, pullbackForgetTwoSquare, Adjunction.id, Over.mapForget] + simp [UvPoly.apply, fstProj, functor, cartesianNatTrans, pullbackForgetTwoSquare, + Adjunction.id, Over.mapForget, TwoSquare.vComp, TwoSquare.mk, TwoSquare.natTrans, mateEquiv] rw [← Category.assoc] change (m.app X).left ≫ pullback.fst (P'.fstProj X) b ≫ P'.fstProj X = P.fstProj X ≫ b rw [pullback.condition, ← Category.assoc]; congr 1 - simpa using Over.w (m.app X) + simpa [fstProj, UvPoly.apply, functor] using Over.w (m.app X) open ExponentiableMorphism Functor in set_option maxHeartbeats 300000 in From 90dcd3ddb2ba9466f1160219618ec2be022b25cc Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:42:18 -0400 Subject: [PATCH 079/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 53818724..5cd5cb06 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -227,7 +227,12 @@ def map (α : F ⟶ G) : ∫ F ⥤ ∫ G where @[simp] lemma map_id_map {x y : ∫ F} (f : x ⟶ y) : (map (𝟙 F)).map f = f := by - ext <;> simp + -- Unfold the bundled Cat identity when checking the dependent fiber equation. + set_option backward.isDefEq.respectTransparency false in + apply Hom.ext ((map (𝟙 F)).map f) f (by rfl) + simp [map] + change 𝟙 _ ≫ f.fiber = f.fiber + simp @[simp] theorem map_comp_forget (α : F ⟶ G) : map α ⋙ forget G = forget F := rfl @@ -238,7 +243,11 @@ variable (F) /-- The natural isomorphism witnessing the pseudo-unity constraint of `Grothendieck.map`. -/ def mapIdIso : map (𝟙 F) ≅ 𝟭 (∫ F) := - NatIso.ofComponents (fun _ ↦ eqToIso (by aesop_cat)) + NatIso.ofComponents (fun _ ↦ eqToIso (by aesop_cat)) (by + intro X Y f + -- The components are equality isomorphisms between bundled Cat identities. + set_option backward.isDefEq.respectTransparency false in + simp) lemma map_id_eq : map (𝟙 F) = 𝟭 (∫ F) := Functor.ext_of_iso (mapIdIso F) (fun x ↦ by simp [map]) (fun x ↦ by simp [mapIdIso]) From 17b42a465bc9adafbd13138945d8d29ee9a4d251 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:49:02 -0400 Subject: [PATCH 080/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../Bicategory/Grothendieck.lean | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 5cd5cb06..c5861a00 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -115,7 +115,7 @@ scoped prefix:75 "∫ " => Grothendieck /-- A morphism in the Grothendieck construction `∫ F` between two points `X Y : ∫ F` consists of a morphism in the base category `base : X.base ⟶ Y.base` and -a morphism in a fiber `f.fiber : (F.map base).obj X.fiber ⟶ Y.fiber`. +a morphism in a fiber `f.fiber : (F.map base).toFunctor.obj X.fiber ⟶ Y.fiber`. -/ structure Hom (X Y : ∫ F) where /-- The morphism between base objects. -/ @@ -257,9 +257,11 @@ end /-- The natural isomorphism witnessing the pseudo-functoriality of `Grothendieck.map`. -/ def mapCompIso (α : F ⟶ G) (β : G ⟶ H) : map (α ≫ β) ≅ map α ⋙ map β := NatIso.ofComponents (fun _ ↦ eqToIso (by aesop_cat)) (fun f ↦ by - dsimp - simp only [comp_id, id_comp] - ext <;> simp) + -- Expose bundled Cat composition when normalizing equality transports. + set_option backward.isDefEq.respectTransparency false in + dsimp + simp only [comp_id, id_comp] + ext <;> simp [map]) lemma map_comp_eq (α : F ⟶ G) (β : G ⟶ H) : map (α ≫ β) = map α ⋙ map β := Functor.ext_of_iso (mapCompIso α β) (fun _ ↦ by simp [map]) (fun _ ↦ by simp [mapCompIso]) @@ -275,7 +277,7 @@ If `F : Pseudofunctor (LocallyDiscrete 𝒮) Cat` is a pseudofunctor and `t : c -/ @[simps] def transport (t : x.base ⟶ c) : ∫ F := - ⟨c, (F.map t.toLoc).obj x.fiber⟩ + ⟨c, (F.map t.toLoc).toFunctor.obj x.fiber⟩ /-- If `F : Pseudofunctor (LocallyDiscrete 𝒮) Cat` is a pseudofunctor and `t : c ⟶ d` is a morphism in @@ -351,7 +353,7 @@ gives a category whose * objects `X` consist of `X.base : C` and `X.fiber : F.obj base` * morphisms `f : X ⟶ Y` consist of `base : X.base ⟶ Y.base` and - `f.fiber : (F.map base).obj X.fiber ⟶ Y.fiber` + `f.fiber : (F.map base).toFunctor.obj X.fiber ⟶ Y.fiber` -/ structure Grothendieck where /-- The underlying object in `C` -/ @@ -369,7 +371,7 @@ attribute [local simp] eqToHom_map variable {F} lemma ext {x y : ∫ F} (hbase : x.base = y.base) - (hfiber : (F.map (eqToHom hbase)).obj x.fiber = y.fiber) : x = y := by + (hfiber : (F.map (eqToHom hbase)).toFunctor.obj x.fiber = y.fiber) : x = y := by cases x; cases y congr · simp only [eqToHom_map] at hbase hfiber @@ -377,24 +379,24 @@ lemma ext {x y : ∫ F} (hbase : x.base = y.base) simp [← hfiber] /-- A morphism in the Grothendieck category `F : C ⥤ Cat` consists of -`base : X.base ⟶ Y.base` and `f.fiber : (F.map base).obj X.fiber ⟶ Y.fiber`. +`base : X.base ⟶ Y.base` and `f.fiber : (F.map base).toFunctor.obj X.fiber ⟶ Y.fiber`. -/ structure Hom (X Y : ∫ F) where /-- The morphism between base objects. -/ base : X.base ⟶ Y.base /-- The morphism from the pushforward to the source fiber object to the target fiber object. -/ - fiber : (F.map base).obj X.fiber ⟶ Y.fiber + fiber : (F.map base).toFunctor.obj X.fiber ⟶ Y.fiber namespace Hom variable {X Y : ∫ F} (f g : Hom X Y) @[simp] -lemma mk_base (b : X.base ⟶ Y.base) (f : (F.map b).obj X.fiber ⟶ Y.fiber) : (mk b f).base = b := +lemma mk_base (b : X.base ⟶ Y.base) (f : (F.map b).toFunctor.obj X.fiber ⟶ Y.fiber) : (mk b f).base = b := rfl @[simp] -lemma mk_fiber (b : X.base ⟶ Y.base) (f : (F.map b).obj X.fiber ⟶ Y.fiber) : (mk b f).fiber = f := +lemma mk_fiber (b : X.base ⟶ Y.base) (f : (F.map b).toFunctor.obj X.fiber ⟶ Y.fiber) : (mk b f).fiber = f := rfl @[ext (iff := false)] @@ -427,7 +429,7 @@ instance (X : ∫ F) : Inhabited (Hom X X) := def comp {X Y Z : ∫ F} (f : Hom X Y) (g : Hom Y Z) : Hom X Z where base := f.base ≫ g.base fiber := - eqToHom (by simp) ≫ (F.map g.base).map f.fiber ≫ g.fiber + eqToHom (by simp) ≫ (F.map g.base).toFunctor.map f.fiber ≫ g.fiber end Hom @@ -470,7 +472,7 @@ lemma comp_base {X Y Z : ∫ F} (f : X ⟶ Y) (g : Y ⟶ Z) : @[simp] lemma comp_fiber {X Y Z : ∫ F} (f : X ⟶ Y) (g : Y ⟶ Z) : - Hom.fiber (f ≫ g) = eqToHom (by simp) ≫ (F.map g.base).map f.fiber ≫ g.fiber := + Hom.fiber (f ≫ g) = eqToHom (by simp) ≫ (F.map g.base).toFunctor.map f.fiber ≫ g.fiber := rfl end Hom From 4abfd91717cb0d9bdae0275c586c4cef3e2ec8ef Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:50:05 -0400 Subject: [PATCH 081/362] UNITY: integrate Bump repair repair-f6f42d4580ec1016 --- HoTTLean/ForPoly.lean | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 165dbcc8..586d3bb2 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -161,6 +161,9 @@ lemma cartesianNatTrans_fstProj {E B E' B' : C} (P : UvPoly E B) (P' : UvPoly E' simpa [fstProj, UvPoly.apply, functor] using Over.w (m.app X) open ExponentiableMorphism Functor in +-- Let tactics reduce the slice functor objects in this mate calculation. +set_option backward.defeqAttrib.useBackward true in +set_option backward.isDefEq.respectTransparency false in set_option maxHeartbeats 300000 in theorem fan_snd_map' {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} (e : E ⟶ E') (b : B ⟶ B') (A : C) (hp : IsPullback P.p e b P'.p) : @@ -206,15 +209,15 @@ theorem fan_snd_map' {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} TwoSquare.natTrans] slice_lhs 5 5 => exact (pullback_map_eq_eqToHom rfl hp.w).symm slice_lhs 10 10 => enter [2,2,2,2]; apply Category.comp_id - ext <;> simp - · conv_rhs => apply pullback.lift_fst - slice_lhs 1 2 => apply pullback.lift_fst - simp [← p_eq, UB, bγ, p'fwd, pfwd, Over.pullbackForgetTriangle, - Over.pullbackForgetTwoSquare, Adjunction.id, TwoSquare.natTrans, Over.mapForget] + ext <;> simp [pullback.map, Category.assoc, ← p_eq, UB, bγ, + Over.pullbackForgetTriangle, Over.pullbackForgetTwoSquare, Adjunction.id, + TwoSquare.natTrans, Over.mapForget] + all_goals simp [fstProj, UvPoly.apply, functor, pfwd, p'fwd, sE, sE'] + · erw [pullback.lift_fst_assoc] + simp only [Category.assoc] congr 2 - symm; apply Category.id_comp - · slice_lhs 1 2 => apply pullback.lift_snd - symm; apply pullback.lift_snd + exact (Category.id_comp _).symm + · erw [pullback.lift_snd_assoc] let Z : sE ⋙ pfwd ⋙ pbk ⋙ UE ⟶ sE ⋙ UE := whiskerRight (sE.whiskerLeft (ev P.p)) UE let Z' : sE' ⋙ p'fwd ⋙ p'bk ⋙ UE' ⟶ sE' ⋙ UE' := @@ -251,8 +254,7 @@ theorem fan_snd_map' {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} slice_lhs 1 2 => rw [← this] slice_lhs 2 3 => apply Category.comp_id simp [α, Over.starPullbackIsoStar] - slice_lhs 5 6 => apply pullback.lift_fst - simp [Over.mapForget] + simp [pullback.map, sE', Over.star] open ExponentiableMorphism in theorem fan_snd_map {E B A E' B' A' : C} {P : UvPoly E B} {P' : UvPoly E' B'} From 7f9914e818de85dba9a3a85546a5d8ff4f7a39f0 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:54:35 -0400 Subject: [PATCH 082/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index c5861a00..b566a53e 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -443,14 +443,14 @@ instance : Category (∫ F) where ext · simp [Hom.comp, Hom.id] · dsimp [Hom.comp, Hom.id] - rw [← NatIso.naturality_2 (eqToIso (F.map_id Y.base)) f.fiber] + rw [← NatIso.naturality_2 (eqToIso (congrArg Cat.Hom.toFunctor (F.map_id Y.base))) f.fiber] simp id_comp f := by ext <;> simp [Hom.comp, Hom.id] assoc f g h := by ext · simp [Hom.comp] · dsimp [Hom.comp, Hom.id] - rw [← NatIso.naturality_2 (eqToIso (F.map_comp _ _)) f.fiber] + rw [← NatIso.naturality_2 (eqToIso (congrArg Cat.Hom.toFunctor (F.map_comp _ _))) f.fiber] simp namespace Hom @@ -574,7 +574,7 @@ If `F : C ⥤ Cat` is a functor and `t : c ⟶ d` is a morphism in `C`, then `tr `c`-based element of `∫ F` to a `d`-based element. -/ def transport (x : ∫ F) {c : C} (t : x.base ⟶ c) : ∫ F := - mk c ((F.map t).obj x.fiber) + mk c ((F.map t).toFunctor.obj x.fiber) @[simp] def transport_base (x : ∫ F) {c : C} (t : x.base ⟶ c) : (transport x t).base = c := @@ -582,7 +582,7 @@ def transport_base (x : ∫ F) {c : C} (t : x.base ⟶ c) : (transport x t).base @[simp] def transport_fiber (x : ∫ F) {c : C} (t : x.base ⟶ c) : - (transport x t).fiber = (F.map t).obj x.fiber := + (transport x t).fiber = (F.map t).toFunctor.obj x.fiber := rfl /-- From 8da7b8f040aa96cdd541967f46676ff7f23e132a Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:55:47 -0400 Subject: [PATCH 083/362] UNITY: integrate Bump repair repair-1d350f3c35bafc3c --- HoTTLean/ForPoly.lean | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 586d3bb2..c696d03c 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -256,6 +256,9 @@ theorem fan_snd_map' {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} simp [α, Over.starPullbackIsoStar] simp [pullback.map, sE', Over.star] +-- The slice functor and polynomial application reduce to the same object. +set_option backward.defeqAttrib.useBackward true in +set_option backward.isDefEq.respectTransparency false in open ExponentiableMorphism in theorem fan_snd_map {E B A E' B' A' : C} {P : UvPoly E B} {P' : UvPoly E' B'} (e : E ⟶ E') (b : B ⟶ B') (a : A ⟶ A') From c0e4a6a8fe06780d6793c4fed6ebbed43c8ad954 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 22:59:08 -0400 Subject: [PATCH 084/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index b566a53e..6121833f 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -603,28 +603,36 @@ def toTransport_fiber (x : ∫ F) {c : C} (t : x.base ⟶ c) : (toTransport x t).fiber = 𝟙 _ := rfl +-- These dependent transport proofs simplify through the bundled Cat functor projections. +-- Permit the elaborator to unfold them while matching the existing simp lemmas. +set_option backward.isDefEq.respectTransparency false in lemma transport_id {x : ∫ F} : transport x (𝟙 x.base) = x := by fapply Grothendieck.ext <;> simp [transport] +set_option backward.isDefEq.respectTransparency false in lemma transport_eqToHom {X: C} {X' : ∫ F} (hX': (forget F).obj X' = X): X'.transport (eqToHom hX') = X' := by subst hX' simp [transport_id] +set_option backward.isDefEq.respectTransparency false in lemma toTransport_id {X : ∫ F} : toTransport X (𝟙 X.base) = eqToHom transport_id.symm := by apply Grothendieck.Hom.ext <;> simp +set_option backward.isDefEq.respectTransparency false in lemma toTransport_eqToHom {X: C} {X' : ∫ F} (hX': (forget F).obj X' = X): toTransport X' (eqToHom hX') = eqToHom (by subst hX'; simp[transport_id]) := by subst hX' simp [toTransport_id] +set_option backward.isDefEq.respectTransparency false in lemma transport_comp (x : ∫ F) {c d: C} (t : x.base ⟶ c) (t': c ⟶ d): transport x (t ≫ t') = transport (c:= d) (transport x t) t' := by simp [transport] +set_option backward.isDefEq.respectTransparency false in lemma toTransport_comp (x : ∫ F) {c d: C} (t : x.base ⟶ c) (t': c ⟶ d): toTransport x (t ≫ t') = toTransport x t ≫ toTransport (transport x t) t' ≫ eqToHom (transport_comp x t t').symm := by From d7d5808ccff307ffcdfb38b5bc4aeedeb6e239fb Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:01:02 -0400 Subject: [PATCH 085/362] UNITY: integrate Bump repair repair-5a9625e9fff4f5f7 --- HoTTLean/ForPoly.lean | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index c696d03c..91c08c0a 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -282,6 +282,9 @@ theorem fan_snd_map {E B A E' B' A' : C} {P : UvPoly E B} {P' : UvPoly E' B'} · slice_rhs 2 3 => apply pullback.lift_snd slice_rhs 1 2 => apply pullback.lift_snd +-- Reduce polynomial application to the slice functor object for this proof. +set_option backward.defeqAttrib.useBackward true in +set_option backward.isDefEq.respectTransparency false in open ExponentiableMorphism in theorem ε_map {E B A E' B' A' : C} {P : UvPoly E B} {P' : UvPoly E' B'} (e : E ⟶ E') (b : B ⟶ B') (a : A ⟶ A') @@ -289,11 +292,16 @@ theorem ε_map {E B A E' B' A' : C} {P : UvPoly E B} {P' : UvPoly E' B'} pullback.map (P.fstProj A) P.p (P'.fstProj A') P'.p ((P.cartesianNatTrans P' b e hp).app A ≫ P'.functor.map a) e b (by simp) hp.w ≫ ε P' A' = ε P A ≫ prod.map e a := by - ext - · simp - slice_rhs 1 2 => apply by simpa using ((ev P.p).app ((Over.star E).obj A)).w - slice_lhs 2 3 => apply by simpa using ((ev P'.p).app ((Over.star E').obj A')).w - apply pullback.lift_snd + have h (E B X : C) (Q : UvPoly E B) : + ε Q X ≫ prod.fst = pullback.snd (Q.fstProj X) Q.p := by + simpa [ε, fstProj, Over.star_obj_hom] using ((ev Q.p).app ((Over.star E).obj X)).w + apply prod.hom_ext + · simp only [Category.assoc, prod.map_fst] + rw [h] + calc + _ = pullback.snd (P.fstProj A) P.p ≫ e := pullback.lift_snd _ _ _ + _ = (ε P A ≫ prod.fst) ≫ e := congrArg (fun f => f ≫ e) (h E B A P).symm + _ = _ := Category.assoc _ _ _ · simpa [fan_snd] using fan_snd_map e b a hp namespace Equiv From 770dbfc048b9dc1efe2b36ab8d738cac2c12a602 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:02:50 -0400 Subject: [PATCH 086/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../Bicategory/Grothendieck.lean | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 6121833f..471a8b53 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -648,45 +648,47 @@ lemma toTransport_comp (x : ∫ F) {c d: C} (t : x.base ⟶ c) (t': c ⟶ d): symm apply eqToHom_heq_id_dom +-- Allow simplification to unfold the bundled Cat functors in transport coherence. +set_option backward.isDefEq.respectTransparency false in /-- Construct an isomorphism in a Grothendieck construction from isomorphisms in its base and fiber. -/ def isoMk {X Y : ∫ F} (e₁ : X.base ≅ Y.base) - (e₂ : (F.map e₁.hom).obj X.fiber ≅ Y.fiber) : + (e₂ : (F.map e₁.hom).toFunctor.obj X.fiber ≅ Y.fiber) : X ≅ Y where hom := Hom.mk e₁.hom e₂.hom - inv := Hom.mk e₁.inv ((F.map e₁.inv).map e₂.inv ≫ - eqToHom (Functor.congr_obj (F.mapIso e₁).hom_inv_id X.fiber)) + inv := Hom.mk e₁.inv ((F.map e₁.inv).toFunctor.map e₂.inv ≫ + eqToHom (Functor.congr_obj (congrArg Cat.Hom.toFunctor (F.mapIso e₁).hom_inv_id) X.fiber)) hom_inv_id := by apply Hom.ext; all_goals simp inv_hom_id := by apply Hom.ext - · have := Functor.congr_hom (F.mapIso e₁).inv_hom_id e₂.inv - simp only [mapIso_inv, mapIso_hom, Cat.comp_map] at this + · have := Functor.congr_hom (congrArg Cat.Hom.toFunctor (F.mapIso e₁).inv_hom_id) e₂.inv + simp only [mapIso_inv, mapIso_hom, Cat.Hom.comp_map] at this simp [this] · simp @[simp] lemma isoMk_hom_base {X Y : ∫ F} (e₁ : X.base ≅ Y.base) - (e₂ : (F.map e₁.hom).obj X.fiber ≅ Y.fiber) : + (e₂ : (F.map e₁.hom).toFunctor.obj X.fiber ≅ Y.fiber) : (isoMk e₁ e₂).hom.base = e₁.hom := rfl @[simp] lemma isoMk_hom_fiber {X Y : ∫ F} (e₁ : X.base ≅ Y.base) - (e₂ : (F.map e₁.hom).obj X.fiber ≅ Y.fiber) : + (e₂ : (F.map e₁.hom).toFunctor.obj X.fiber ≅ Y.fiber) : (isoMk e₁ e₂).hom.fiber = e₂.hom := rfl @[simp] lemma isoMk_inv_base {X Y : ∫ F} (e₁ : X.base ≅ Y.base) - (e₂ : (F.map e₁.hom).obj X.fiber ≅ Y.fiber) : + (e₂ : (F.map e₁.hom).toFunctor.obj X.fiber ≅ Y.fiber) : (isoMk e₁ e₂).inv.base = e₁.inv := rfl @[simp] lemma isoMk_inv_fiber {X Y : ∫ F} (e₁ : X.base ≅ Y.base) - (e₂ : (F.map e₁.hom).obj X.fiber ≅ Y.fiber) : - (isoMk e₁ e₂).inv.fiber = (F.map e₁.inv).map e₂.inv ≫ eqToHom (by + (e₂ : (F.map e₁.hom).toFunctor.obj X.fiber ≅ Y.fiber) : + (isoMk e₁ e₂).inv.fiber = (F.map e₁.inv).toFunctor.map e₂.inv ≫ eqToHom (by simp [← Functor.comp_obj, ← Cat.comp_eq_comp, ← Functor.map_comp]) := rfl @@ -705,7 +707,7 @@ lemma transportIso_hom_base (x : ∫ F) {c : C} (α : x.base ≅ c) : @[simp] lemma transportIso_hom_fiber (x : ∫ F) {c : C} (α : x.base ≅ c) : (x.transportIso α).hom.fiber = - eqToHom (by simp [transportIso, ← Functor.comp_obj, ← Cat.comp_eq_comp]) := by + eqToHom (by simp [transportIso, ← Functor.comp_obj]) := by simp only [transportIso, CategoryTheory.Iso.symm_hom, isoMk_inv_fiber, CategoryTheory.Iso.refl_inv] erw [Functor.map_id] simp @@ -717,7 +719,7 @@ lemma transportIso_inv_base (x : ∫ F) {c : C} (α : x.base ≅ c) : @[simp] lemma transportIso_inv_fiber (x : ∫ F) {c : C} (α : x.base ≅ c) : - (x.transportIso α).inv.fiber = 𝟙 ((F.map α.hom).obj x.fiber) := + (x.transportIso α).inv.fiber = 𝟙 ((F.map α.hom).toFunctor.obj x.fiber) := rfl end Transport From bf6ad96b8d408c2688981aecd340ca260b6e6cc5 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:05:51 -0400 Subject: [PATCH 087/362] UNITY: integrate Bump repair repair-6a81d94209ebf9a8 --- HoTTLean/ForPoly.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 91c08c0a..c0a27b6e 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -312,7 +312,7 @@ def fst (pair : Γ ⟶ P @ X) : Γ ⟶ B := fan P X |>.extend pair |>.fst -lemma fst_eq (pair : Γ ⟶ P @ X) : fst P X pair = pair ≫ P.fstProj X := by simp [fst] +lemma fst_eq (pair : Γ ⟶ P @ X) : fst P X pair = pair ≫ P.fstProj X := rfl def snd (pair : Γ ⟶ P @ X) : pullback (fst P X pair) P.p ⟶ X := From 4cf54b4984053dae4596d526261237fe5d12f77c Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:07:07 -0400 Subject: [PATCH 088/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 471a8b53..423379ab 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -726,14 +726,14 @@ end Transport section functorTo variable (A : D ⥤ C) (fibObj : (x : D) → (A ⋙ F).obj x) - (fibMap : {x y : D} → (f : x ⟶ y) → ((A ⋙ F).map f).obj (fibObj x) ⟶ fibObj y) + (fibMap : {x y : D} → (f : x ⟶ y) → ((A ⋙ F).map f).toFunctor.obj (fibObj x) ⟶ fibObj y) -theorem functorTo_map_id_aux (x : D) : ((A ⋙ F).map (𝟙 x)).obj (fibObj x) = fibObj x := by +theorem functorTo_map_id_aux (x : D) : ((A ⋙ F).map (𝟙 x)).toFunctor.obj (fibObj x) = fibObj x := by simp theorem functorTo_map_comp_aux {x y z : D} (f : x ⟶ y) (g : y ⟶ z) : - ((A ⋙ F).map (f ≫ g)).obj (fibObj x) - = (F.map (A.map g)).obj (((A ⋙ F).map f).obj (fibObj x)) := by + ((A ⋙ F).map (f ≫ g)).toFunctor.obj (fibObj x) + = (F.map (A.map g)).toFunctor.obj (((A ⋙ F).map f).toFunctor.obj (fibObj x)) := by simp section @@ -742,8 +742,10 @@ variable = eqToHom (functorTo_map_id_aux A fibObj x)) (map_comp : {x y z : D} → (f : x ⟶ y) → (g : y ⟶ z) → fibMap (f ≫ g) = eqToHom (functorTo_map_comp_aux A fibObj f g) - ≫ (F.map (A.map g)).map (fibMap f) ≫ fibMap g) + ≫ (F.map (A.map g)).toFunctor.map (fibMap f) ≫ fibMap g) +-- Wrapped Cat functors require the older transparency behavior for transport simplification. +set_option backward.isDefEq.respectTransparency false in /-- Define a functor into `∫ F` by providing a functor into the base cateogry, as well as the actions on fibers. -/ From 263c7398b4528b31252ad990138703aacd4cadd0 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:10:22 -0400 Subject: [PATCH 089/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 423379ab..28da734d 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -775,14 +775,18 @@ a functor `Grothendieck.map : Grothendieck F ⥤ Grothendieck G`. @[simps!] def map (α : F ⟶ G) : Grothendieck F ⥤ Grothendieck G := functorTo (forget F) - (fun X => (α.app X.base).obj X.fiber) - (fun {X Y} f => (eqToHom (α.naturality f.base).symm).app X.fiber ≫ (α.app Y.base).map f.fiber) - (by intro x; simp) + (fun X => (α.app X.base).toFunctor.obj X.fiber) + (fun {X Y} f => (eqToHom (congrArg Cat.Hom.toFunctor (α.naturality f.base).symm)).app X.fiber ≫ (α.app Y.base).toFunctor.map f.fiber) (by + -- Normalize the wrapped Cat functor transports during elaboration. + set_option backward.isDefEq.respectTransparency false in + intro x; simp) + (by + set_option backward.isDefEq.respectTransparency false in intro x y z f g - have := Functor.congr_hom (α.naturality g.base).symm f.fiber + have := Functor.congr_hom (congrArg Cat.Hom.toFunctor (α.naturality g.base).symm) f.fiber simp at this - simp [this]) + simp [forget, this, Category.assoc]) /-- The functor `Grothendieck.map α : ∫ F ⥤ ∫ G` lies over `C`. -/ @[simp] From 3e52741a4d66fa57fe8ef4c7030bfe53bcf906d3 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:11:42 -0400 Subject: [PATCH 090/362] UNITY: integrate Bump repair repair-60f535cf1d803e7f --- HoTTLean/ForPoly.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index c0a27b6e..0d4f0be5 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -337,7 +337,7 @@ theorem mk_eq_mk' (b : Γ ⟶ B) (x : pullback b P.p ⟶ X) : @[simp] lemma fst_mk (b : Γ ⟶ B) (x : pullback b P.p ⟶ X) : fst P X (mk P X b x) = b := by - simp [fst, mk] + exact UvPoly.lift_fst (P := P) (b := b) (e := x) @[simp] lemma fst_mk' (b : Γ ⟶ B) {R f g} (H : IsPullback (P := R) f g b P.p) (x : R ⟶ X) : From ace4e85dd3946b2b9711f114001dfd2d99895edc Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:19:37 -0400 Subject: [PATCH 091/362] UNITY: integrate Bump repair repair-7fce882a08f79f47 --- HoTTLean/ForPoly.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 0d4f0be5..775aad72 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -353,7 +353,8 @@ theorem fst_comp_left (pair : Γ ⟶ P @ X) {Δ} (f : Δ ⟶ Γ) : fst P X (f ≫ pair) = f ≫ fst P X pair := by simp [fst_eq] theorem fst_comp_right (pair : Γ ⟶ P @ X) : fst P Y (pair ≫ P.functor.map f) = fst P X pair := by - simp [fst_eq] + exact (Category.assoc pair (P.functor.map f) (P.fstProj Y)).trans + (congrArg (fun k => pair ≫ k) (UvPoly.map_fstProj P f)) lemma snd'_eq (pair : Γ ⟶ P @ X) {R f g} (H : IsPullback (P := R) f g (fst P X pair) P.p) : snd' P X pair H = pullback.lift (f ≫ pair) g (by simpa using H.w) ≫ (fan P X).snd := by From ac8856add880d20b303abcbc4d274f00020db6c3 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:21:32 -0400 Subject: [PATCH 092/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../Bicategory/Grothendieck.lean | 21 +++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 28da734d..b4ed6ffa 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -794,18 +794,27 @@ theorem map_comp_forget {α : F ⟶ G} : Grothendieck.map α ⋙ Grothendieck.forget G = Grothendieck.forget F := rfl -theorem map_id_eq : map (𝟙 F) = 𝟙 (Cat.of <| Grothendieck <| F) := by +theorem map_id_eq : map (𝟙 F) = 𝟭 (Grothendieck F) := by + -- Unfold the wrapped Cat functors when comparing dependent fiber maps. + set_option backward.isDefEq.respectTransparency false in apply FunctorTo.hext - all_goals simp [Cat.id_eq_id, Functor.id_comp] + · simp [Functor.id_comp] + · simp [map, functorTo, forget] + · intro x y f + simp [map, functorTo, forget] /-- Making the equality of functors into an isomorphism. Note: we should avoid equality of functors if possible, and we should prefer `mapIdIso` to `map_id_eq` whenever we can. -/ -def mapIdIso : map (𝟙 F) ≅ 𝟙 (Cat.of <| Grothendieck <| F) := eqToIso map_id_eq +def mapIdIso : map (𝟙 F) ≅ 𝟭 (Grothendieck F) := eqToIso map_id_eq theorem map_comp_eq (α : F ⟶ G) (β : G ⟶ H) : map (α ≫ β) = map α ⋙ map β := by + -- The fiber equality requires the same local transparency compatibility. + set_option backward.isDefEq.respectTransparency false in apply FunctorTo.hext - all_goals simp [Functor.assoc] + · simp [Functor.assoc] + · simp [map, functorTo, forget] + · simp [map, functorTo, forget] /-- Making the equality of functors into an isomorphism. Note: we should avoid equality of functors if possible, and we should prefer `map_comp_iso` to `map_comp_eq` whenever we can. -/ @@ -816,8 +825,8 @@ end /-- The Grothendieck construction as a functor from the functor category `E ⥤ Cat` to the over category `Over E`. -/ def functor {E : Cat.{v, u}} : (E ⥤ Cat.{v,u}) ⥤ Over (T := Cat.{v,u}) E where - obj F := Over.mk (X := E) (Y := Cat.of (∫ F)) (Grothendieck.forget F) - map {_ _} α := Over.homMk (X:= E) (Grothendieck.map α) Grothendieck.map_comp_forget + obj F := Over.mk (X := E) (Y := Cat.of (∫ F)) (Grothendieck.forget F).toCatHom + map {_ _} α := Over.homMk (X:= E) (Grothendieck.map α).toCatHom (congrArg Functor.toCatHom Grothendieck.map_comp_forget) map_id F := by ext exact Grothendieck.map_id_eq (F := F) From c64b079b90e315bd96c595b0c946df0a462c331b Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:25:51 -0400 Subject: [PATCH 093/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index b4ed6ffa..1c957913 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -840,27 +840,27 @@ variable (G : C ⥤ Type w) /-- Auxiliary definition for `grothendieckTypeToCat`, to speed up elaboration. -/ @[simps!] def grothendieckTypeToCatFunctor : ∫(G ⋙ typeToCat) ⥤ G.Elements where - obj X := ⟨X.1, X.2.as⟩ - map f := ⟨f.1, f.2.1.1⟩ + obj X := ⟨X.fiber.as⟩ + map f := ⟨f.base, f.fiber.eq⟩ /-- Auxiliary definition for `grothendieckTypeToCat`, to speed up elaboration. -/ def grothendieckTypeToCatInverse : G.Elements ⥤ ∫(G ⋙ typeToCat) where - obj X := mk X.1 ⟨X.2⟩ - map f := Hom.mk f.1 ⟨⟨f.2⟩⟩ + obj X := mk X.obj ⟨X.val⟩ + map f := Hom.mk f.hom ⟨f.map_val⟩ @[simp] lemma grothendieckTypeToCatInverse_obj_base (X : G.Elements) : - ((grothendieckTypeToCatInverse G).obj X).base = X.1 := + ((grothendieckTypeToCatInverse G).obj X).base = X.obj := rfl @[simp] lemma grothendieckTypeToCatInverse_obj_fiber_as (X : G.Elements) : - ((grothendieckTypeToCatInverse G).obj X).fiber.as = X.2 := + ((grothendieckTypeToCatInverse G).obj X).fiber.as = X.val := rfl @[simp] lemma grothendieckTypeToCatInverse_map_base {X Y : G.Elements} (f : X ⟶ Y) : - ((grothendieckTypeToCatInverse G).map f).base = f.1 := + ((grothendieckTypeToCatInverse G).map f).base = f.hom := rfl /-- The Grothendieck construction applied to a functor to `Type` From 2833a87565e85c5c26763ee7b29d4f5bde25daf5 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:27:18 -0400 Subject: [PATCH 094/362] UNITY: integrate Bump repair repair-18a5f248c1bc184b --- HoTTLean/ForPoly.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 775aad72..d24b404b 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -356,8 +356,10 @@ theorem fst_comp_right (pair : Γ ⟶ P @ X) : fst P Y (pair ≫ P.functor.map f exact (Category.assoc pair (P.functor.map f) (P.fstProj Y)).trans (congrArg (fun k => pair ≫ k) (UvPoly.map_fstProj P f)) +-- Simplification must see the apex of the polynomial fan. +set_option backward.isDefEq.respectTransparency false in lemma snd'_eq (pair : Γ ⟶ P @ X) {R f g} (H : IsPullback (P := R) f g (fst P X pair) P.p) : - snd' P X pair H = pullback.lift (f ≫ pair) g (by simpa using H.w) ≫ (fan P X).snd := by + snd' P X pair H = pullback.lift (f ≫ pair) g (by simpa only [fst_eq, fan_fst, Category.assoc] using H.w) ≫ (fan P X).snd := by simp [snd', snd] simp only [← Category.assoc]; congr! 2 ext <;> simp From 0dcaf8a06b75133eab2abce2aca9f4aee1e32b08 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:30:45 -0400 Subject: [PATCH 095/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 1c957913..f08585da 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -902,18 +902,23 @@ section Pseudofunctor variable (F) +-- Match the bundled Cat transports when elaborating the identity laws. @[simps!] def toPseudofunctor'Iso.hom : ∫ F ⥤ F.toPseudofunctor'.Grothendieck where obj x := ⟨ x.base, x.fiber ⟩ map f := ⟨ f.base, f.fiber ⟩ - map_id x := by apply Pseudofunctor.Grothendieck.Hom.ext <;> simp + map_id x := by + set_option backward.isDefEq.respectTransparency false in + apply Pseudofunctor.Grothendieck.Hom.ext <;> simp map_comp f g := by apply Pseudofunctor.Grothendieck.Hom.ext <;> simp @[simps!] def toPseudofunctor'Iso.inv : F.toPseudofunctor'.Grothendieck ⥤ ∫ F where obj x := ⟨ x.base, x.fiber ⟩ map f := ⟨ f.base, f.fiber ⟩ - map_id x := by apply Hom.ext <;> simp + map_id x := by + set_option backward.isDefEq.respectTransparency false in + apply Hom.ext <;> simp map_comp f g := by apply Hom.ext <;> simp def toPseudofunctor'Iso : ∫ F ≅≅ F.toPseudofunctor'.Grothendieck where From 06e1fda37be2f68babb127afd562bce45d7e1bfa Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:32:04 -0400 Subject: [PATCH 096/362] UNITY: integrate Bump repair repair-14576ba448f423d3 --- HoTTLean/ForPoly.lean | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index d24b404b..b3609392 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -367,13 +367,16 @@ lemma snd'_eq (pair : Γ ⟶ P @ X) {R f g} (H : IsPullback (P := R) f g (fst P exact H.isoPullback_hom_fst · exact H.isoPullback_hom_snd +-- The fan apex is definitionally the polynomial object; expose it during elaboration. +set_option backward.isDefEq.respectTransparency false in /-- Switch the selected pullback `R` used in `UvPoly.Equiv.snd'` with a different pullback `R'`. -/ lemma snd'_eq_snd' (pair : Γ ⟶ P @ X) {R f g} (H : IsPullback (P := R) f g (fst P X pair) P.p) {R' f' g'} (H' : IsPullback (P := R') f' g' (fst P X pair) P.p) : snd' P X pair H = (H.isoIsPullback _ _ H').hom ≫ snd' P X pair H' := by - simp [snd'_eq, ← Category.assoc] - congr 2 - ext <;> simp + simp only [snd'_eq] + simp only [← Category.assoc] + apply congrArg (fun k => k ≫ (fan P X).snd) + apply pullback.hom_ext <;> simp @[simp] lemma snd'_mk' (b : Γ ⟶ B) {R f g} (H : IsPullback (P := R) f g b P.p) (x : R ⟶ X) : From eb3e1c9f4e0a23f1224d7e452a30ef688764ce2b Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:34:47 -0400 Subject: [PATCH 097/362] UNITY: integrate Bump repair repair-04c8990fc5b9c309 --- HoTTLean/ForPoly.lean | 1 + 1 file changed, 1 insertion(+) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index b3609392..046cfdf3 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -378,6 +378,7 @@ lemma snd'_eq_snd' (pair : Γ ⟶ P @ X) {R f g} (H : IsPullback (P := R) f g (f apply congrArg (fun k => k ≫ (fan P X).snd) apply pullback.hom_ext <;> simp +set_option backward.isDefEq.respectTransparency false in @[simp] lemma snd'_mk' (b : Γ ⟶ B) {R f g} (H : IsPullback (P := R) f g b P.p) (x : R ⟶ X) : snd' P X (mk' P X b H x) (by rwa [fst_mk']) = x := by From 0e06f15fb989e87c4948b93058242df940b9050b Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:37:06 -0400 Subject: [PATCH 098/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index f08585da..0490834a 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -967,6 +967,8 @@ variable (F) section variable {G H : D ⥤ C} (α : G ≅ H) +-- The bundled Cat projections require the earlier backward elaboration behavior here. +set_option backward.isDefEq.respectTransparency false in /-- An natural isomorphism between functors `G ≅ H` induces a natural isomorphism between the canonical morphism `pre F G` and `pre F H`, up to composition with @@ -982,17 +984,19 @@ def preNatIso : pre F G ≅ map (whiskerRight α.hom F) ⋙ (pre F H) := Hom.comp_fiber, pre_map_fiber, eqToHom_trans_assoc, map_map_fiber, whiskerRight_app] erw [Category.comp_id, Functor.map_id, - Functor.congr_hom (F.congr_map (transportIso_inv_base (mk (G.obj Y.base) Y.fiber) - (α.app Y.base)))] + Functor.congr_hom (congrArg Cat.Hom.toFunctor (F.congr_map (transportIso_inv_base (mk (G.obj Y.base) Y.fiber) + (α.app Y.base))))] simp) +set_option backward.isDefEq.respectTransparency false in @[simp] theorem preNatIso_hom_app_base (x) : ((preNatIso F α).hom.app x).base = α.hom.app x.base := by simp [preNatIso] +set_option backward.isDefEq.respectTransparency false in @[simp] theorem preNatIso_hom_app_fiber (x) : ((preNatIso F α).hom.app x).fiber = 𝟙 _ := by - simp [preNatIso] + simp [preNatIso, pre, functorTo] theorem preNatIso_congr {G H : D ⥤ C} {α β : G ≅ H} (h : α = β) : preNatIso F α = preNatIso F β ≪≫ eqToIso (by subst h; simp) := by @@ -1099,12 +1103,14 @@ section FunctorFrom variable {E : Type*} [Category E] (c : C) +-- Cat identity functors are bundled; permit the local dependent transport simplification. +set_option backward.isDefEq.respectTransparency false in /-- The inclusion of a fiber `F.obj c` of a functor `F : C ⥤ Cat` into its Grothendieck construction. -/ @[simps!] def ι : F.obj c ⥤ ∫ F := functorTo ((const (F.obj c)).obj c) id (fun f => eqToHom (by simp) ≫ f) (by simp) - (by simp [Functor.congr_hom (F.map_id _)]) + (by simp [Functor.congr_hom (congrArg Cat.Hom.toFunctor (F.map_id _))]) instance faithful_ι (c : C) : (ι F c).Faithful where map_injective f := by From 36c74bf93c57a951ab716ace0e81ea022806aeef Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:40:22 -0400 Subject: [PATCH 099/362] UNITY: integrate Bump repair repair-351ff013cb80d728 --- HoTTLean/ForPoly.lean | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 046cfdf3..41ab56af 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -406,6 +406,8 @@ lemma snd_mk (b : Γ ⟶ B) (x : pullback b P.p ⟶ X) : snd P X (mk P X b x) = eqToHom (by simp) ≫ x := by apply eq_of_heq; rw [heq_eqToHom_comp_iff]; apply snd_mk_heq +-- The fan point is definitionally the polynomial object. +set_option backward.isDefEq.respectTransparency false in theorem snd'_comp_left (pair : Γ ⟶ P @ X) {R f g} (H : IsPullback (P := R) f g (fst P X pair) P.p) {Δ} (σ : Δ ⟶ Γ) @@ -413,10 +415,8 @@ theorem snd'_comp_left (pair : Γ ⟶ P @ X) snd' P X (σ ≫ pair) (by convert H'; rw [fst_comp_left]) = H.lift (f' ≫ σ) g' (by simp [H'.w]) ≫ snd' P X pair H := by simp only [snd'_eq, ← Category.assoc] - congr 2 - ext - · simp - · simp + apply congrArg (fun k => k ≫ (fan P X).snd) + apply pullback.hom_ext <;> simp [Category.assoc] theorem snd'_comp_right (pair : Γ ⟶ P @ X) {R f1 f2} (H : IsPullback (P := R) f1 f2 (fst P X pair) P.p) : From 7ce8a8aa1a3eb38197fa1f4c4e91b3784af394a8 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:42:56 -0400 Subject: [PATCH 100/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 0490834a..41a783bd 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1134,23 +1134,27 @@ section ιNatTrans variable {X Y : C} (f : X ⟶ Y) +-- Unfold bundled Cat morphisms locally when simplifying dependent transports. +set_option backward.isDefEq.respectTransparency false in /-- Every morphism `f : X ⟶ Y` in the base category induces a natural transformation from the fiber inclusion `ι F X` to the composition `F.map f ⋙ ι F Y`. -/ @[simps!] -def ιNatTrans : ι F X ⟶ F.map f ⋙ ι F Y where +def ιNatTrans : ι F X ⟶ (F.map f).toFunctor ⋙ ι F Y where app _ := Hom.mk f (𝟙 _) - naturality _ _ _ := Hom.ext _ _ (by simp) (by simp [eqToHom_map]) + naturality _ _ _ := Hom.ext _ _ (by exact (Category.id_comp f).trans (Category.comp_id f).symm) (by simp [eqToHom_map]) +set_option backward.isDefEq.respectTransparency false in @[simp] theorem ιNatTrans_id_app {X : C} {a : F.obj X} : (@ιNatTrans _ _ F _ _ (𝟙 X)).app a = eqToHom (by simp) := - Hom.ext _ _ (by simp) (by simp) + Hom.ext _ _ (by simp [ιNatTrans, ι_obj_base]) (by simp [ι, ιNatTrans]) +set_option backward.isDefEq.respectTransparency false in lemma ιNatTrans_comp_app {X Y Z : C} {f : X ⟶ Y} {g : Y ⟶ Z} {a} : (@ιNatTrans _ _ F _ _ (f ≫ g)).app a = (@ιNatTrans _ _ F _ _ f).app a ≫ - (@ιNatTrans _ _ F _ _ g).app ((F.map f).obj a) ≫ eqToHom (by simp) := - Hom.ext _ _ (by simp) (by simp) + (@ιNatTrans _ _ F _ _ g).app ((F.map f).toFunctor.obj a) ≫ eqToHom (by simp) := + Hom.ext _ _ (by simp) (by simp [ιNatTrans]) end ιNatTrans From 8f3d4d32ef236b06a910f6f076d6e3df7608cc76 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:44:14 -0400 Subject: [PATCH 101/362] UNITY: integrate Bump repair repair-ab3b401c132d0a35 --- HoTTLean/ForPoly.lean | 1 + 1 file changed, 1 insertion(+) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 41ab56af..5f605f08 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -418,6 +418,7 @@ theorem snd'_comp_left (pair : Γ ⟶ P @ X) apply congrArg (fun k => k ≫ (fan P X).snd) apply pullback.hom_ext <;> simp [Category.assoc] +set_option backward.isDefEq.respectTransparency false in theorem snd'_comp_right (pair : Γ ⟶ P @ X) {R f1 f2} (H : IsPullback (P := R) f1 f2 (fst P X pair) P.p) : snd' P Y (pair ≫ P.functor.map f) (by rwa [fst_comp_right]) = From 4e629b0b894cf47d24c302cf10728abc26e9e5a3 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:48:44 -0400 Subject: [PATCH 102/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../Bicategory/Grothendieck.lean | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 41a783bd..733cb5e6 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1167,14 +1167,16 @@ theorem cast_eq {F G : C ⥤ Cat} section -variable (fib : ∀ c, F.obj c ⥤ E) (hom : ∀ {c c' : C} (f : c ⟶ c'), fib c ⟶ F.map f ⋙ fib c') +variable (fib : ∀ c, F.obj c ⥤ E) (hom : ∀ {c c' : C} (f : c ⟶ c'), fib c ⟶ (F.map f).toFunctor ⋙ fib c') variable (hom_id : ∀ c, hom (𝟙 c) = eqToHom (by simp only [Functor.map_id]; rfl)) variable (hom_comp : ∀ c₁ c₂ c₃ (f : c₁ ⟶ c₂) (g : c₂ ⟶ c₃), hom (f ≫ g) = - hom f ≫ whiskerLeft (F.map f) (hom g) ≫ eqToHom (by simp only [Functor.map_comp]; rfl)) + hom f ≫ whiskerLeft (F.map f).toFunctor (hom g) ≫ eqToHom (by simp only [Functor.map_comp]; rfl)) /-- Construct a functor from `∫ F` to another category `E` by providing a family of functors on the fibers of `∫ F`, a family of natural transformations on morphisms in the base of `∫ F` and coherence data for this family of natural transformations. -/ +-- Cat functor projections in transport equations need the legacy transparency behavior. +set_option backward.isDefEq.respectTransparency false in @[simps] def functorFrom : ∫ F ⥤ E where obj X := (fib X.base).obj X.fiber @@ -1202,7 +1204,7 @@ variable (K : Grothendieck F ⥤ E) abbrev asFunctorFromFib (c : C) : (F.obj c) ⥤ E := ι F c ⋙ K abbrev asFunctorFromHom {c c' : C} (f: c ⟶ c') : - asFunctorFromFib K c ⟶ F.map f ⋙ asFunctorFromFib K c' := + asFunctorFromFib K c ⟶ (F.map f).toFunctor ⋙ asFunctorFromFib K c' := Functor.whiskerRight (ιNatTrans f) K lemma asFunctorFromHom_app {c c' : C} (f: c ⟶ c') (p : F.obj c) : @@ -1216,8 +1218,8 @@ lemma asFunctorFromHom_id (c : C) : asFunctorFromHom K (𝟙 c) = lemma asFunctorFromHom_comp (c₁ c₂ c₃ : C) (f : c₁ ⟶ c₂) (g: c₂ ⟶ c₃) : asFunctorFromHom K (f ≫ g) = - asFunctorFromHom K f ≫ Functor.whiskerLeft (F.map f) (asFunctorFromHom K g) ≫ eqToHom - (by simp[← Functor.assoc]; congr) := by + asFunctorFromHom K f ≫ Functor.whiskerLeft (F.map f).toFunctor (asFunctorFromHom K g) ≫ eqToHom + (by simp[← Functor.assoc]) := by ext p simp [asFunctorFromHom, eqToHom_map, ιNatTrans_comp_app] @@ -1242,7 +1244,7 @@ variable {D : Type*} [Category D] (G : E ⥤ D) def functorFromCompFib (c : C) : F.obj c ⥤ D := fib c ⋙ G def functorFromCompHom {c c' : C} (f : c ⟶ c') : - functorFromCompFib fib G c ⟶ F.map f ⋙ functorFromCompFib fib G c' := + functorFromCompFib fib G c ⟶ (F.map f).toFunctor ⋙ functorFromCompFib fib G c' := Functor.whiskerRight (hom f) G include hom_id in @@ -1255,7 +1257,7 @@ include hom_comp in lemma functorFromCompHom_comp (c₁ c₂ c₃ : C) (f : c₁ ⟶ c₂) (g : c₂ ⟶ c₃): functorFromCompHom fib hom G (f ≫ g) = functorFromCompHom fib hom G f ≫ - Functor.whiskerLeft (F.map f) (functorFromCompHom fib hom G g) ≫ + Functor.whiskerLeft (F.map f).toFunctor (functorFromCompHom fib hom G g) ≫ eqToHom (by simp[Cat.comp_eq_comp, Functor.map_comp, Functor.assoc]) := by ext simp [functorFromCompHom, hom_comp] @@ -1273,10 +1275,10 @@ theorem functorFrom_comp : functorFrom fib hom hom_id hom_comp ⋙ G = end section -variable (fib' : ∀ c, F.obj c ⥤ E) (hom' : ∀ {c c' : C} (f : c ⟶ c'), fib' c ⟶ F.map f ⋙ fib' c') +variable (fib' : ∀ c, F.obj c ⥤ E) (hom' : ∀ {c c' : C} (f : c ⟶ c'), fib' c ⟶ (F.map f).toFunctor ⋙ fib' c') variable (hom_id' : ∀ c, hom' (𝟙 c) = eqToHom (by simp only [Functor.map_id]; rfl)) variable (hom_comp' : ∀ c₁ c₂ c₃ (f : c₁ ⟶ c₂) (g : c₂ ⟶ c₃), hom' (f ≫ g) = - hom' f ≫ Functor.whiskerLeft (F.map f) (hom' g) ≫ eqToHom (by simp only [Functor.map_comp]; rfl)) + hom' f ≫ Functor.whiskerLeft (F.map f).toFunctor (hom' g) ≫ eqToHom (by simp only [Functor.map_comp]; rfl)) theorem functorFrom_eq_of (ef : fib = fib') (hhom : ∀ {c c' : C} (f : c ⟶ c'), hom f ≫ eqToHom (by rw[ef]) = eqToHom (by rw[ef]) ≫ hom' f) : @@ -1388,14 +1390,14 @@ end end FunctorFrom -/-- The fiber inclusion `ι F c` composed with `map α` is isomorphic to `α.app c ⋙ ι F' c`. -/ +/-- The fiber inclusion `ι F c` composed with `map α` is isomorphic to `(α.app c).toFunctor ⋙ ι F' c`. -/ @[simps!] -def ιCompMap {F' : C ⥤ Cat} (α : F ⟶ F') (c : C) : ι F c ⋙ map α ≅ α.app c ⋙ ι F' c := +def ιCompMap {F' : C ⥤ Cat} (α : F ⟶ F') (c : C) : ι F c ⋙ map α ≅ (α.app c).toFunctor ⋙ ι F' c := NatIso.ofComponents (fun X => CategoryTheory.Iso.refl _) (fun f => by simp only [CategoryTheory.Iso.refl_hom, Category.comp_id] apply Hom.ext <;> simp) -lemma ι_comp_map {F' : C ⥤ Cat} (α : F ⟶ F') (c : C) : ι F c ⋙ map α = α.app c ⋙ ι F' c := +lemma ι_comp_map {F' : C ⥤ Cat} (α : F ⟶ F') (c : C) : ι F c ⋙ map α = (α.app c).toFunctor ⋙ ι F' c := Functor.ext_of_iso (ιCompMap ..) (by intro; rfl) section AsSmall From e89f59e5a8ba7b4f8ea6fecde8e78ebe1fc3a2c2 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:52:16 -0400 Subject: [PATCH 103/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 733cb5e6..e2c9df7a 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1336,12 +1336,12 @@ lemma whiskerRight_ιNatTrans_functorFrom {x y} (f : x ⟶ y) : section variable (A : E ⥤ C) (fibObj : (x : E) → (A ⋙ F).obj x) - (fibMap : {x y : E} → (f : x ⟶ y) → ((A ⋙ F).map f).obj (fibObj x) ⟶ fibObj y) + (fibMap : {x y : E} → (f : x ⟶ y) → ((A ⋙ F).map f).toFunctor.obj (fibObj x) ⟶ fibObj y) (map_id : (x : E) → fibMap (CategoryStruct.id x) = eqToHom (functorTo_map_id_aux A fibObj x)) (map_comp : {x y z : E} → (f : x ⟶ y) → (g : y ⟶ z) → fibMap (f ≫ g) = eqToHom (functorTo_map_comp_aux A fibObj f g) - ≫ (F.map (A.map g)).map (fibMap f) ≫ fibMap g) + ≫ (F.map (A.map g)).toFunctor.map (fibMap f) ≫ fibMap g) @[simps!] def functorIsoFrom (fib_comp : ∀ c, fib c ⋙ A = ι F c ⋙ forget F) @@ -1352,7 +1352,7 @@ def functorIsoFrom (fib_comp : ∀ c, fib c ⋙ A = ι F c ⋙ forget F) (fib (A.obj y)).map (fibMap f) ≍ f) (obj_fib_obj : ∀ c x, A.obj ((fib c).obj x) = c) (map_hom_app : ∀ {c c'} (f : c ⟶ c') x, A.map ((hom f).app x) ≍ f) - (fibMap_hom_app : ∀ {c c'} (f : c ⟶ c') x, fibMap ((hom f).app x) ≍ 𝟙 ((F.map f).obj x)) : + (fibMap_hom_app : ∀ {c c'} (f : c ⟶ c') x, fibMap ((hom f).app x) ≍ 𝟙 ((F.map f).toFunctor.obj x)) : ∫ F ≅≅ E where hom := functorFrom fib hom hom_id hom_comp inv := functorTo A fibObj fibMap map_id map_comp @@ -1504,18 +1504,18 @@ instance : IsIso f.base := by · simp [← Grothendieck.Hom.comp_base] · simp [← Grothendieck.Hom.comp_base] -def invFiber : y.fiber ⟶ (F.map f.base).obj x.fiber := +def invFiber : y.fiber ⟶ (F.map f.base).toFunctor.obj x.fiber := eqToHom (by simp [← Functor.comp_obj, ← Cat.comp_eq_comp, ← Functor.map_comp, ← Grothendieck.Hom.comp_base]) ≫ - (F.map f.base).map (CategoryTheory.inv f).fiber + (F.map f.base).toFunctor.map (CategoryTheory.inv f).fiber @[simp] -lemma fiber_comp_invFiber : f.fiber ≫ invFiber f = 𝟙 ((F.map f.base).obj x.fiber) := by +lemma fiber_comp_invFiber : f.fiber ≫ invFiber f = 𝟙 ((F.map f.base).toFunctor.obj x.fiber) := by have h := Functor.Grothendieck.Hom.comp_fiber f (CategoryTheory.inv f) rw! [IsIso.hom_inv_id] at h - have h0 : F.map (CategoryTheory.inv f).base ⋙ F.map f.base = 𝟭 _ := by + have h0 : (F.map (CategoryTheory.inv f).base).toFunctor ⋙ (F.map f.base).toFunctor = 𝟭 _ := by simp [← Cat.comp_eq_comp, ← Functor.map_comp, ← Grothendieck.Hom.comp_base, Cat.id_eq_id] - have h1 := Functor.congr_map (F.map f.base) h + have h1 := Functor.congr_map (F.map f.base).toFunctor h simp [← heq_eq_eq, eqToHom_map, ← Functor.comp_map, Functor.congr_hom h0] at h1 dsimp [invFiber] rw! [← h1] From a4b64b6ccf64b43860925beb45df4ecb19e69ed3 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:55:44 -0400 Subject: [PATCH 104/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index e2c9df7a..2bc59a73 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1445,21 +1445,18 @@ namespace AsSmall theorem comp_up_inj {C : Type u} [Category.{v} C] {D : Type u₁} [Category.{v₁} D] {F G : C ⥤ D} (h : F ⋙ (AsSmall.up : D ⥤ AsSmall.{w} D) = G ⋙ AsSmall.up) : F = G := by - convert_to F ⋙ (AsSmall.up : D ⥤ AsSmall.{w} D) - ⋙ AsSmall.down - = G ⋙ (AsSmall.up : D ⥤ AsSmall.{w} D) - ⋙ AsSmall.down - rw [← Functor.assoc, h, Functor.assoc] + have h' := congrArg (fun H : C ⥤ AsSmall.{w} D => H ⋙ AsSmall.down) h + change F = G at h' + exact h' theorem comp_down_inj {C : Type u} [Category.{v} C] {D : Type u₁} [Category.{v₁} D] {F G : C ⥤ AsSmall.{w} D} (h : F ⋙ AsSmall.down = G ⋙ AsSmall.down) : F = G := by - convert_to F ⋙ AsSmall.down - ⋙ AsSmall.up - = G ⋙ AsSmall.down ⋙ AsSmall.up - rw [← Functor.assoc, h, Functor.assoc] + have h' := congrArg (fun H : C ⥤ D => H ⋙ (AsSmall.up : D ⥤ AsSmall.{w} D)) h + change F = G at h' + exact h' @[simp] theorem up_comp_down {C : Type u₁} [Category.{v₁, u₁} C] : From 161f36e89767be9843c372a7b8ed35e8393fca25 Mon Sep 17 00:00:00 2001 From: Unity Date: Tue, 27 Oct 2026 23:57:04 -0400 Subject: [PATCH 105/362] UNITY: integrate Bump repair repair-a4e96da666bb14b1 --- HoTTLean/ForPoly.lean | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 5f605f08..df2aaeb7 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -440,24 +440,27 @@ theorem snd_comp_right (pair : Γ ⟶ P @ X) : snd P Y (pair ≫ P.functor.map f rw [snd_eq_snd', snd'_comp_right, snd', Category.assoc, ← eqToIso.hom]; congr! 2 exact IsPullback.isoPullback_eq_eqToIso_left (fst_comp_right _ _ _ f pair) P.p +-- Expose the fan apex when comparing the chosen pullback projections. +set_option backward.isDefEq.respectTransparency false in lemma ext' {pair₁ pair₂ : Γ ⟶ P @ X} {R f g} (H : IsPullback (P := R) f g (fst P X pair₁) P.p) (h1 : fst P X pair₁ = fst P X pair₂) (h2 : snd' P X pair₁ H = snd' P X pair₂ (by rwa [h1] at H)) : pair₁ = pair₂ := by simp [fst_eq] at h1 H - apply partialProd.hom_ext ⟨fan P X, isLimitFan P X⟩ h1 + apply UvPoly.hom_ext (P := P) (X := X) h1 refine (cancel_epi H.isoPullback.hom).1 ?_ - convert h2 using 1 <;> ( - simp [snd'_eq, comparison_pullback.map, partialProd.snd, partialProd.cone] - simp only [← Category.assoc]; congr! 2 - ext <;> simp) - · slice_lhs 2 3 => apply pullback.lift_fst - slice_lhs 1 2 => apply H.isoPullback_hom_fst - simp - · slice_lhs 2 3 => apply pullback.lift_snd - slice_lhs 1 2 => apply H.isoPullback_hom_snd - simp + convert h2 using 1 <;> + simp only [snd'_eq, comparison_pullback.map, ← Category.assoc] <;> + congr 1 <;> + apply pullback.hom_ext <;> + simp [Category.assoc] <;> + first + | exact H.isoPullback_hom_snd + | exact (Category.assoc _ _ _).symm.trans + (congrArg (fun k => k ≫ pair₁) H.isoPullback_hom_fst) + | exact (Category.assoc _ _ _).symm.trans + (congrArg (fun k => k ≫ pair₂) H.isoPullback_hom_fst) /-- Switch the selected pullback `R` used in `UvPoly.Equiv.mk'` with a different pullback `R'`. -/ theorem mk'_eq_mk' (b : Γ ⟶ B) {R f g} (H : IsPullback (P := R) f g b P.p) (x : R ⟶ X) From 300c3d4340db1269d909a5133d5b12f8b81fc7cb Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:04:24 -0400 Subject: [PATCH 106/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 2bc59a73..4eda91a6 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1172,11 +1172,11 @@ variable (hom_id : ∀ c, hom (𝟙 c) = eqToHom (by simp only [Functor.map_id]; variable (hom_comp : ∀ c₁ c₂ c₃ (f : c₁ ⟶ c₂) (g : c₂ ⟶ c₃), hom (f ≫ g) = hom f ≫ whiskerLeft (F.map f).toFunctor (hom g) ≫ eqToHom (by simp only [Functor.map_comp]; rfl)) +-- Cat functor projections in transport equations need the legacy transparency behavior. +set_option backward.isDefEq.respectTransparency false in /-- Construct a functor from `∫ F` to another category `E` by providing a family of functors on the fibers of `∫ F`, a family of natural transformations on morphisms in the base of `∫ F` and coherence data for this family of natural transformations. -/ --- Cat functor projections in transport equations need the legacy transparency behavior. -set_option backward.isDefEq.respectTransparency false in @[simps] def functorFrom : ∫ F ⥤ E where obj X := (fib X.base).obj X.fiber @@ -1430,6 +1430,10 @@ def compAsSmallFunctorEquivalence : inverse := compAsSmallFunctorEquivalenceInverse F counitIso := CategoryTheory.Iso.refl _ unitIso := CategoryTheory.Iso.refl _ + functor_unitIso_comp := by + intro X + change (compAsSmallFunctorEquivalenceFunctor F).map (𝟙 X) ≫ 𝟙 _ = 𝟙 _ + rw [Functor.map_id, Category.comp_id] namespace AsSmall From c925fd7fbb8e7de24097e8147b39de9adb407342 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:07:40 -0400 Subject: [PATCH 107/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 4eda91a6..f935597c 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1476,6 +1476,8 @@ instance {C : Type u} [Category.{v} C] : end AsSmall +-- Allow simplification to unfold the bundled Cat functors in the naturality proof. +set_option backward.isDefEq.respectTransparency false in variable {F G} in /-- Mapping a Grothendieck construction along the whiskering of any natural transformation `α : F ⟶ G` with the functor `asSmallFunctor : Cat ⥤ Cat` is naturally isomorphic to conjugating @@ -1491,7 +1493,9 @@ def mapWhiskerRightAsSmallFunctor (α : F ⟶ G) : comp_obj, forget_obj, comp_map, forget_map, compAsSmallFunctorEquivalence_inverse, compAsSmallFunctorEquivalenceInverse, CategoryTheory.Iso.refl_hom, Category.comp_id, Category.id_comp] - apply Hom.ext <;> simp + apply Hom.ext <;> simp [compAsSmallFunctorEquivalence, + compAsSmallFunctorEquivalenceInverse, compAsSmallFunctorEquivalenceFunctor, functorTo, map] + rfl ) end AsSmall From 470b50b48a016b42e335630d0d3e6fa755d47f44 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:08:59 -0400 Subject: [PATCH 108/362] UNITY: integrate Bump repair repair-eaf25c7265750fdb --- HoTTLean/ForPoly.lean | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index df2aaeb7..0a85da8d 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -485,12 +485,19 @@ lemma eta (pair : Γ ⟶ P @ X) : lemma mk'_comp_right (b : Γ ⟶ B) {R f1 f2} (H : IsPullback (P := R) f1 f2 b P.p) (x : R ⟶ X) : mk' P X b H x ≫ P.functor.map f = mk' P Y b H (x ≫ f) := by - refine .symm <| ext' _ _ (by rwa [fst_mk']) (by simp [fst_comp_right]) ?_ - rw [snd'_comp_right (H := by rwa [fst_mk'])]; simp + have hfst : fst P Y (mk' P Y b H (x ≫ f)) = + fst P Y (mk' P X b H x ≫ P.functor.map f) := + (fst_mk' P Y b H (x ≫ f)).trans + ((fst_comp_right P X Y f (mk' P X b H x)).trans (fst_mk' P X b H x)).symm + refine .symm <| ext' _ _ (by rwa [fst_mk']) hfst ?_ + exact (snd'_mk' P Y b H (x ≫ f)).trans + ((snd'_comp_right P X Y f (mk' P X b H x) (by rwa [fst_mk'])).trans + (congrArg (fun k => k ≫ f) (snd'_mk' P X b H x))).symm lemma mk_comp_right (b : Γ ⟶ B) (x : pullback b P.p ⟶ X) : mk P X b x ≫ P.functor.map f = mk P Y b (x ≫ f) := by - simp [mk_eq_mk', mk'_comp_right] + simpa only [mk_eq_mk'] using + (mk'_comp_right P X Y f b (.of_hasPullback b P.p) x) theorem mk'_comp_left {Δ} (b : Γ ⟶ B) {R f g} (H : IsPullback (P := R) f g b P.p) (x : R ⟶ X) (σ : Δ ⟶ Γ) From d2df8c783474ffcaeded2d6b187b256cbfaa44e2 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:12:44 -0400 Subject: [PATCH 109/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index f935597c..1a6bdc3c 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -435,6 +435,8 @@ end Hom attribute [local simp] eqToHom_map +-- Cat functor projections in these dependent transport laws require the legacy elaborator transparency. +set_option backward.isDefEq.respectTransparency false in instance : Category (∫ F) where Hom X Y := Hom X Y id X := Hom.id X From 5179053f6fbbe1fbf964f665459ea9dde3aed06e Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:14:13 -0400 Subject: [PATCH 110/362] UNITY: integrate Bump repair repair-eaf25c7265750fdb --- HoTTLean/ForPoly.lean | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 0a85da8d..cb1740ec 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -516,8 +516,20 @@ theorem mk_comp_left {Δ} (b : Γ ⟶ B) (x : pullback b P.p ⟶ X) (σ: Δ ⟶ (pullback.map _ _ _ _ σ (𝟙 _) (𝟙 _) (by simp) (by simp) ≫ x) := by simp only [mk_eq_mk'] rw [mk'_comp_left (H := .of_hasPullback _ _) (H' := .of_hasPullback _ _) (eq := rfl)] - congr 2; ext <;> simp - + congr 2 + apply pullback.hom_ext + · simp only [IsPullback.lift_fst] + exact (pullback.lift_fst (f := b) (g := P.p) + (pullback.fst (σ ≫ b) P.p ≫ σ) + (pullback.snd (σ ≫ b) P.p ≫ 𝟙 E) _).symm + · simp only [IsPullback.lift_snd] + exact (Category.comp_id _).symm.trans + (pullback.lift_snd (f := b) (g := P.p) + (pullback.fst (σ ≫ b) P.p ≫ σ) + (pullback.snd (σ ≫ b) P.p ≫ 𝟙 E) _).symm + +-- Expose the polynomial objects in the natural transformation components. +set_option backward.isDefEq.respectTransparency false in lemma mk'_comp_cartesianNatTrans_app {E' B' Γ X : C} {P' : UvPoly E' B'} (y : Γ ⟶ B) (R f g) (H : IsPullback (P := R) f g y P.p) (x : R ⟶ X) (e : E ⟶ E') (b : B ⟶ B') @@ -531,7 +543,17 @@ lemma mk'_comp_cartesianNatTrans_app {E' B' Γ X : C} {P' : UvPoly E' B'} have := snd'_mk' P X y H x rw [snd'_eq, ← fan_snd_map' _ _ X hp] at this refine .trans ?_ this - simp only [← Category.assoc]; congr 1; ext <;> simp + simp only [← Category.assoc]; congr 1; ext + · change _ = _ ≫ pullback.fst (P'.fstProj X) P'.p + simp only [pullback.map, pullback.lift_fst, Category.assoc, pullback.lift_fst_assoc] + symm + slice_lhs 1 2 => apply pullback.lift_fst + exact Category.assoc _ _ _ + · change _ = _ ≫ pullback.snd (P'.fstProj X) P'.p + simp only [pullback.map, pullback.lift_snd, Category.assoc, pullback.lift_snd_assoc] + rw [← Category.assoc] + exact congrArg (fun k => k ≫ e) + (pullback.lift_snd (f := P.fstProj X) (g := P.p) (f ≫ mk' P X y H x) g _).symm end Equiv From 25531395c2ff711c2857bee052bc0b4ecd523ac9 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:18:11 -0400 Subject: [PATCH 111/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 1a6bdc3c..9410d763 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -706,10 +706,15 @@ lemma transportIso_hom_base (x : ∫ F) {c : C} (α : x.base ≅ c) : (x.transportIso α).hom.base = α.inv := rfl +-- Allow simplification to see through the bundled Cat and transport projections. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma transportIso_hom_fiber (x : ∫ F) {c : C} (α : x.base ≅ c) : (x.transportIso α).hom.fiber = - eqToHom (by simp [transportIso, ← Functor.comp_obj]) := by + eqToHom (by + change (F.map α.inv).toFunctor.obj ((F.map α.hom).toFunctor.obj x.fiber) = x.fiber + rw [← Cat.Hom.comp_obj, ← F.map_comp, α.hom_inv_id, F.map_id] + rfl) := by simp only [transportIso, CategoryTheory.Iso.symm_hom, isoMk_inv_fiber, CategoryTheory.Iso.refl_inv] erw [Functor.map_id] simp From 1a737d3ec55aa4740777445b0549edb18746ca30 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:19:36 -0400 Subject: [PATCH 112/362] UNITY: integrate Bump repair repair-651811a2cf3ccd08 --- HoTTLean/ForPoly.lean | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index cb1740ec..55cec0d1 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -582,8 +582,8 @@ def compDomEquiv {Γ E B D A : 𝒞} {P : UvPoly E B} {Q : UvPoly D A} : apply Eq.congr_right congr 1 apply pullback.hom_ext - · simp [pullbackHomEquiv] - · simp [pullbackHomEquiv])) + · exact (pullback.lift_fst (f := P.fstProj A) (g := P.p) _ _ _).symm + · exact (pullback.lift_snd (f := P.fstProj A) (g := P.p) _ _ _).symm)) _ ≃ _ := { -- TODO should be general tactic for this? toFun x := ⟨ x.2.1.1, x.2.1.2.1 , x.1 , x.2.1.2.2, x.2.2 ⟩ @@ -599,9 +599,16 @@ def compP {E B D A : C} (P : UvPoly E B) (Q : UvPoly D A) : compDom P Q ⟶ P @ (β : Γ ⟶ D) (w : AB ≫ P.fstProj A = α ≫ P.p) (h : β ≫ Q.p = pullback.lift AB α w ≫ (PartialProduct.fan P A).snd) : compDomEquiv.symm ⟨AB, α, β, w, h⟩ ≫ P.compP Q = AB := by - simp [compDomEquiv, compP, Equiv.psigmaCongrProp, Equiv.sigmaCongrRight_symm, - Equiv.coe_fn_symm_mk, pullbackHomEquiv] - + change pullback.lift β (pullback.lift AB α w) h ≫ + (pullback.snd Q.p (fan P A).snd ≫ pullback.fst (P.fstProj A) P.p) = AB + exact (Category.assoc _ _ _).symm.trans + ((congrArg (fun k => k ≫ pullback.fst (P.fstProj A) P.p) + (pullback.lift_snd (f := Q.p) (g := (fan P A).snd) β + (pullback.lift AB α w) h)).trans + (pullback.lift_fst (f := P.fstProj A) (g := P.p) AB α w)) + +-- Reduce the polynomial functor objects when elaborating the pullback squares. +set_option backward.isDefEq.respectTransparency false in def compDomMap {E B D A E' B' D' A' : 𝒞} {P : UvPoly E B} {Q : UvPoly D A} {P' : UvPoly E' B'} {Q' : UvPoly D' A'} (e : E ⟶ E') (d : D ⟶ D') (b : B ⟶ B') (a : A ⟶ A') @@ -612,6 +619,8 @@ def compDomMap {E B D A E' B' D' A' : 𝒞} {P : UvPoly E B} {Q : UvPoly D A} let r := pullback.map (P.fstProj A) P.p (P'.fstProj A') P'.p pa e b (by simp [pa, p]) hp.w refine pullback.map _ _ _ _ d r a hq.w (fan_snd_map _ _ _ hp).symm +-- Reduce the same functor objects in the pasted pullback squares. +set_option backward.isDefEq.respectTransparency false in theorem compDomMap_isPullback {E B D A E' B' D' A' : 𝒞} {P : UvPoly E B} {Q : UvPoly D A} {P' : UvPoly E' B'} {Q' : UvPoly D' A'} (e : E ⟶ E') (d : D ⟶ D') (b : B ⟶ B') (a : A ⟶ A') @@ -626,7 +635,7 @@ theorem compDomMap_isPullback {E B D A E' B' D' A' : 𝒞} {P : UvPoly E B} {Q : · refine hq.flip.back_face_of_comm_cube _ _ _ _ _ _ _ _ _ _ _ _ (by simp [compDomMap]) ?_ ?_ (.of_hasPullback ..) (.of_hasPullback ..) · exact ⟨fan_snd_map _ _ a hp⟩ - · constructor; simp [compDomMap]; ext <;> simp [p] + · constructor; simp [compDomMap]; ext <;> simp [p, fan] · exact hp.flip.back_face_of_comm_cube _ _ _ _ _ _ _ _ _ _ _ _ (by simp) (by simp [p]) (by simp) (.flip (.of_hasPullback ..)) (.flip (.of_hasPullback ..)) From d7a41b2b5528b47bd65faf0f8b1d4ccbc4bde412 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:23:27 -0400 Subject: [PATCH 113/362] UNITY: integrate Bump repair command-0ca0ce013708888d --- HoTTLean/Model/Natural/NaturalModel.lean | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 3671be69..416bb12e 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -260,13 +260,12 @@ def mk (A : y(Γ) ⟶ M.Ty) (B : y(M.ext A) ⟶ X) : y(Γ) ⟶ M.Ptp.obj X := @[simp] lemma fst_mk (A : y(Γ) ⟶ M.Ty) (B : y(M.ext A) ⟶ X) : fst M (mk M A B) = A := by - simp [fst, mk] + exact UvPoly.Equiv.fst_mk' M.uvPolyTp X A (M.disp_pullback A).flip B @[simp] lemma snd_mk (A : y(Γ) ⟶ M.Ty) (B : y(M.ext A) ⟶ X) : snd M (mk M A B) _ (fst_mk ..) = B := by - dsimp only [snd, mk] - rw! [UvPoly.Equiv.snd'_mk'] + exact UvPoly.Equiv.snd'_mk' M.uvPolyTp X A (M.disp_pullback A).flip B section variable {Δ : Ctx} {σ : Δ ⟶ Γ} {AB : y(Γ) ⟶ M.Ptp.obj X} @@ -326,7 +325,7 @@ end PtpEquiv theorem PtpEquiv.mk_map {Γ : Ctx} {X Y : Psh Ctx} (A : y(Γ) ⟶ M.Ty) (x : y(M.ext A) ⟶ X) (α : X ⟶ Y) : mk M A x ≫ M.Ptp.map α = mk M A (x ≫ α) := by - simp [mk, Ptp, UvPoly.Equiv.mk'_comp_right] + exact PtpEquiv.mk_comp_right M α A x /-! ## Polynomial composition `M.tp ▸ N.tp` -/ From 5bfab629d72808eb5d984aa03364dd815ec1b82d Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:25:06 -0400 Subject: [PATCH 114/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../Bicategory/Grothendieck.lean | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 9410d763..db82ac7e 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -884,24 +884,29 @@ def grothendieckTypeToCat : ∫(G ⋙ typeToCat) ≌ G.Elements where rcases X with ⟨_, ⟨⟩⟩ exact CategoryTheory.Iso.refl _) (by - rintro ⟨_, ⟨⟩⟩ ⟨_, ⟨⟩⟩ ⟨base, ⟨⟨f⟩⟩⟩ - dsimp at * - simp - rfl) + intro X Y f + refine Hom.ext _ _ ?_ ?_ + · rcases X with ⟨_, ⟨⟩⟩ + rcases Y with ⟨_, ⟨⟩⟩ + change f.base ≫ 𝟙 _ = 𝟙 _ ≫ f.base + simp + · change @Eq (Discrete.mk _ ⟶ Discrete.mk _) _ _ + exact Subsingleton.elim _ _) counitIso := NatIso.ofComponents (fun X => by cases X exact CategoryTheory.Iso.refl _) (by - rintro ⟨⟩ ⟨⟩ ⟨f, e⟩ - dsimp at * - simp - rfl) + intro X Y f + apply Functor.Elements.hom_ext + change f.hom ≫ 𝟙 _ = 𝟙 _ ≫ f.hom + simp) functor_unitIso_comp := by rintro ⟨_, ⟨⟩⟩ + apply Functor.Elements.hom_ext + change 𝟙 _ ≫ 𝟙 _ = 𝟙 _ simp - rfl end Elements From f1d06fce8908fc206367160869f6d4c38d5ff15c Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:28:11 -0400 Subject: [PATCH 115/362] UNITY: integrate Bump repair command-0ca0ce013708888d --- HoTTLean/Model/Natural/NaturalModel.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 416bb12e..d478bcca 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -278,8 +278,8 @@ theorem fst_comp_right {Y} (σ : X ⟶ Y) : fst M (AB ≫ M.Ptp.map σ) = fst M theorem snd_comp_right {Y} (σ : X ⟶ Y) {A} (eq : fst M AB = A) : snd M (AB ≫ M.Ptp.map σ) _ (fst_comp_right M σ ▸ eq) = snd M AB _ eq ≫ σ := by - simp only [snd, Ptp] - rw [UvPoly.Equiv.snd'_comp_right M.uvPolyTp X Y σ AB] + exact UvPoly.Equiv.snd'_comp_right M.uvPolyTp X Y σ AB + (by rw [← fst, eq]; exact (M.disp_pullback A).flip) theorem snd_comp_left {A} (eqA : fst M AB = A) {σA} (eqσ : ym(σ) ≫ A = σA) : snd M (ym(σ) ≫ AB) σA (by simp [fst_comp_left, eqA, eqσ]) = From d97f94277ebb2452312b35f3e0abdc04db84b93d Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:39:16 -0400 Subject: [PATCH 116/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index db82ac7e..22d5f40f 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -922,7 +922,10 @@ def toPseudofunctor'Iso.hom : ∫ F ⥤ F.toPseudofunctor'.Grothendieck where map_id x := by set_option backward.isDefEq.respectTransparency false in apply Pseudofunctor.Grothendieck.Hom.ext <;> simp - map_comp f g := by apply Pseudofunctor.Grothendieck.Hom.ext <;> simp + map_comp f g := by + set_option backward.isDefEq.respectTransparency false in + apply Pseudofunctor.Grothendieck.Hom.ext <;> simp + all_goals rfl @[simps!] def toPseudofunctor'Iso.inv : F.toPseudofunctor'.Grothendieck ⥤ ∫ F where @@ -931,7 +934,10 @@ def toPseudofunctor'Iso.inv : F.toPseudofunctor'.Grothendieck ⥤ ∫ F where map_id x := by set_option backward.isDefEq.respectTransparency false in apply Hom.ext <;> simp - map_comp f g := by apply Hom.ext <;> simp + map_comp f g := by + set_option backward.isDefEq.respectTransparency false in + apply Hom.ext <;> simp + all_goals rfl def toPseudofunctor'Iso : ∫ F ≅≅ F.toPseudofunctor'.Grothendieck where hom := toPseudofunctor'Iso.hom F From f3a17f78d550cadc9d4d11f68911a657420e0afe Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:40:53 -0400 Subject: [PATCH 117/362] UNITY: integrate Bump repair command-0ca0ce013708888d --- HoTTLean/Model/Natural/NaturalModel.lean | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index d478bcca..52abb093 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -289,8 +289,14 @@ theorem snd_comp_left {A} (eqA : fst M AB = A) {σA} (eqσ : ym(σ) ≫ A = σA) have H2 : IsPullback ym(M.disp σA) (M.var σA) (ym(σ) ≫ UvPoly.Equiv.fst M.uvPolyTp X AB) M.uvPolyTp.p := by rw [← fst, eqA, eqσ]; exact (M.disp_pullback _).flip - convert UvPoly.Equiv.snd'_comp_left M.uvPolyTp X AB H1 _ H2 - apply H1.hom_ext <;> simp [← Functor.map_comp, substWk] + have hlift : H1.lift (ym(M.disp σA) ≫ ym(σ)) (M.var σA) + (by simpa only [Category.assoc] using H2.w) = ym(M.substWk σ A _ eqσ) := by + apply H1.hom_ext + · simp only [IsPullback.lift_fst, ← Functor.map_comp, substWk_disp] + · simp + have h := UvPoly.Equiv.snd'_comp_left M.uvPolyTp X AB H1 ym(σ) H2 + rw [hlift] at h + exact h theorem mk_comp_left {Δ Γ : Ctx} (M : Universe Ctx) (σ : Δ ⟶ Γ) {X : Psh Ctx} (A : y(Γ) ⟶ M.Ty) (σA) (eq : ym(σ) ≫ A = σA) (B : y(M.ext A) ⟶ X) : From 5fa31db3b202ddafd5b3259e2816fc0fdc2e44d4 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:45:26 -0400 Subject: [PATCH 118/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 22d5f40f..e3c9a397 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -959,8 +959,14 @@ lemma map_eq_pseudofunctor_map {G} (α : F ⟶ G) : map α = (toPseudofunctor'Is (toPseudofunctor'Iso G).inv := by fapply Functor.ext · aesop - · intro _ - aesop + · intro X Y f + -- Match the wrapped Cat transports before applying naturality. + set_option backward.isDefEq.respectTransparency false in + apply Hom.ext + · simp [map, toPseudofunctor'Iso, toPseudofunctor'Iso.hom, toPseudofunctor'Iso.inv, Pseudofunctor.Grothendieck.map, NatTrans.toStrongTrans'] + rw [← NatIso.naturality_2 (eqToIso (congrArg Cat.Hom.toFunctor (G.map_id Y.base))) ((α.app Y.base).toFunctor.map f.fiber)] + simp + · simp [map, toPseudofunctor'Iso, toPseudofunctor'Iso.hom, toPseudofunctor'Iso.inv, Pseudofunctor.Grothendieck.map, NatTrans.toStrongTrans'] end Pseudofunctor From e8babd12a956e543b5591b0baf49bc9d8e42d83f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:48:15 -0400 Subject: [PATCH 119/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index e3c9a397..20d9937b 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1027,6 +1027,7 @@ theorem preNatIso_congr {G H : D ⥤ C} {α β : G ≅ H} (h : α = β) : subst h simp +set_option backward.isDefEq.respectTransparency false in @[simp] theorem preNatIso_eqToIso {G H : D ⥤ C} {h : G = H} : preNatIso F (eqToIso h) = eqToIso (by subst h; simp [map_id_eq, Cat.id_eq_id, Functor.id_comp]) := by @@ -1034,16 +1035,20 @@ theorem preNatIso_congr {G H : D ⥤ C} {α β : G ≅ H} (h : α = β) : ext fapply Hom.ext · simp + rfl · simp only [eqToIso_refl, comp_obj, eqToIso.hom, preNatIso_hom_app_fiber, Category.comp_id] rw! [eqToHom_app, fiber_eqToHom] + rfl +set_option backward.isDefEq.respectTransparency false in theorem preNatIso_comp {G1 G2 G3 : D ⥤ C} (α : G1 ≅ G2) (β : G2 ≅ G3) : preNatIso F (α ≪≫ β) = preNatIso F α ≪≫ isoWhiskerLeft _ (preNatIso F β) ≪≫ eqToIso (by simp [map_comp_eq, Functor.assoc]) := by ext fapply Hom.ext · simp + rfl · simp only [CategoryTheory.Iso.trans_hom, eqToIso.hom, NatTrans.comp_app] rw! [eqToHom_app] simp From a2ccb0815b9d88f9930f0e57c744bcc759a9b306 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:50:25 -0400 Subject: [PATCH 120/362] UNITY: integrate Bump repair command-0ca0ce013708888d --- HoTTLean/Model/Natural/NaturalModel.lean | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 52abb093..d90a7eaf 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -301,13 +301,14 @@ theorem snd_comp_left {A} (eqA : fst M AB = A) {σA} (eqσ : ym(σ) ≫ A = σA) theorem mk_comp_left {Δ Γ : Ctx} (M : Universe Ctx) (σ : Δ ⟶ Γ) {X : Psh Ctx} (A : y(Γ) ⟶ M.Ty) (σA) (eq : ym(σ) ≫ A = σA) (B : y(M.ext A) ⟶ X) : ym(σ) ≫ PtpEquiv.mk M A B = PtpEquiv.mk M σA (ym(M.substWk σ A _ eq) ≫ B) := by - dsimp [PtpEquiv.mk] - have h := UvPoly.Equiv.mk'_comp_left M.uvPolyTp X A (M.disp_pullback A).flip B ym(σ) - σA eq (M.disp_pullback σA).flip - convert h - apply (M.disp_pullback _).hom_ext - · simp - · simp [← Functor.map_comp, substWk_disp] + apply UvPoly.Equiv.ext' M.uvPolyTp X + (R := y(M.ext σA)) (f := ym(M.disp σA)) (g := M.var σA) + (by rw [← fst, fst_comp_left, fst_mk, eq]; exact (M.disp_pullback σA).flip) + · change snd M (ym(σ) ≫ mk M A B) σA (by rw [fst_comp_left, fst_mk, eq]) = + snd M (mk M σA _) σA (fst_mk ..) + rw [snd_comp_left M (fst_mk M A B) eq, snd_mk, snd_mk] + · change fst M (ym(σ) ≫ mk M A B) = fst M (mk M σA _) + rw [fst_comp_left, fst_mk, fst_mk, eq] theorem mk_comp_right {Γ : Ctx} (M : Universe Ctx) {X Y : Psh Ctx} (σ : X ⟶ Y) (A : y(Γ) ⟶ M.Ty) (B : y(M.ext A) ⟶ X) : From 291ffa8f6578c80dbe9fab70a038a4968c9d6ccb Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:51:52 -0400 Subject: [PATCH 121/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 20d9937b..8e6bee4e 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1149,13 +1149,15 @@ instance faithful_ι (c : C) : (ι F c).Faithful where theorem ι_comp_forget : ι F c ⋙ forget _ = (const (F.obj c)).obj c := rfl +-- Match the wrapped Cat functors during dependent fiber comparison. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem ι_comp_pre (G : D ⥤ C) (x : D) : ι (G ⋙ F) x ⋙ pre F G = ι F (G.obj x) := by apply Grothendieck.FunctorTo.hext · rw [ι_comp_forget, Functor.assoc, pre_comp_forget, ← Functor.assoc, ι_comp_forget] apply Functor.ext <;> simp - · simp - · simp + · intro a; rfl + · intro a b f; simp variable {F} @@ -1176,7 +1178,7 @@ set_option backward.isDefEq.respectTransparency false in @[simp] theorem ιNatTrans_id_app {X : C} {a : F.obj X} : (@ιNatTrans _ _ F _ _ (𝟙 X)).app a = eqToHom (by simp) := - Hom.ext _ _ (by simp [ιNatTrans, ι_obj_base]) (by simp [ι, ιNatTrans]) + Hom.ext _ _ (by simp [ιNatTrans]; change 𝟙 X = 𝟙 X; rfl) (by simp [ι, ιNatTrans]) set_option backward.isDefEq.respectTransparency false in lemma ιNatTrans_comp_app {X Y Z : C} {f : X ⟶ Y} {g : Y ⟶ Z} {a} : From a3b2234e25ba42d7cdbbe847b4debe69fda07523 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 00:55:51 -0400 Subject: [PATCH 122/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 8e6bee4e..0011ed15 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1278,12 +1278,16 @@ def functorFromCompHom {c c' : C} (f : c ⟶ c') : functorFromCompFib fib G c ⟶ (F.map f).toFunctor ⋙ functorFromCompFib fib G c' := Functor.whiskerRight (hom f) G +-- Normalize the dependent Cat functor projection transports locally. +set_option backward.isDefEq.respectTransparency false in include hom_id in lemma functorFromCompHom_id (c : C) : functorFromCompHom fib hom G (𝟙 c) = eqToHom (by simp [Cat.id_eq_id, Functor.id_comp]) := by ext x simp [hom_id, functorFromCompHom] +-- Normalize the dependent Cat functor projection transports locally. +set_option backward.isDefEq.respectTransparency false in include hom_comp in lemma functorFromCompHom_comp (c₁ c₂ c₃ : C) (f : c₁ ⟶ c₂) (g : c₂ ⟶ c₃): functorFromCompHom fib hom G (f ≫ g) @@ -1293,6 +1297,8 @@ lemma functorFromCompHom_comp (c₁ c₂ c₃ : C) (f : c₁ ⟶ c₂) (g : c₂ ext simp [functorFromCompHom, hom_comp] +-- Normalize the dependent Cat functor projection transports locally. +set_option backward.isDefEq.respectTransparency false in theorem functorFrom_comp : functorFrom fib hom hom_id hom_comp ⋙ G = functorFrom (functorFromCompFib fib G) (functorFromCompHom fib hom G) (functorFromCompHom_id fib hom hom_id G) From 76c430c54d8d00ab749fa40118c05eab34c3de80 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:00:49 -0400 Subject: [PATCH 123/362] UNITY: integrate Bump repair repair-cb3529615b24f32a --- HoTTLean/Model/Natural/NaturalModel.lean | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index d90a7eaf..88e8f23e 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -362,6 +362,8 @@ def fst (ab : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp) : y(Γ) ⟶ M.Tm := ab ≫ pullback.snd N.tp (UvPoly.PartialProduct.fan M.uvPolyTp N.Ty).snd ≫ pullback.snd (M.uvPolyTp.fstProj N.Ty) M.uvPolyTp.p +-- The presheaf category and polynomial projection require reducible instance matching. +set_option backward.isDefEq.respectTransparency false in /-- Computation of `comp` (part 1). `fst_tp` is (part 1) of the computation that @@ -379,8 +381,14 @@ theorem fst_tp (ab : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp) : have : pullback.snd (M.uvPolyTp.fstProj N.Ty) M.tp ≫ M.tp = pullback.fst (M.uvPolyTp.fstProj N.Ty) M.tp ≫ M.uvPolyTp.fstProj N.Ty := Eq.symm pullback.condition - simp [PtpEquiv.fst, fst, this] - rfl + change fst ab ≫ M.tp = UvPoly.Equiv.fst M.uvPolyTp N.Ty _ + rw [UvPoly.Equiv.fst_eq] + simp only [fst, UvPoly.compP, Category.assoc] + change ab ≫ (pullback.snd N.tp (PartialProduct.fan M.uvPolyTp N.Ty).snd ≫ + (pullback.snd (M.uvPolyTp.fstProj N.Ty) M.tp ≫ M.tp)) = + ab ≫ (pullback.snd N.tp (PartialProduct.fan M.uvPolyTp N.Ty).snd ≫ + (pullback.fst (M.uvPolyTp.fstProj N.Ty) M.tp ≫ M.uvPolyTp.fstProj N.Ty)) + rw [this] theorem comp_fst (ab : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp) (σ : y(Δ) ⟶ y(Γ)) : σ ≫ fst ab = fst (σ ≫ ab) := by simp [fst] From f73618bbeedbb97b3e0dbb1eeeedb8531688fd74 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:02:14 -0400 Subject: [PATCH 124/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 0011ed15..b26323c7 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1359,7 +1359,12 @@ end /-- `Grothendieck.ι F c` composed with `Grothendieck.functorFrom` is isomorphic a functor on a fiber on `F` supplied as the first argument to `Grothendieck.functorFrom`. -/ def ιCompFunctorFrom (c : C) : ι F c ⋙ (functorFrom fib hom hom_id hom_comp) ≅ fib c := - NatIso.ofComponents (fun _ => CategoryTheory.Iso.refl _) (fun f => by simp [hom_id]) + NatIso.ofComponents (fun _ => CategoryTheory.Iso.refl _) (fun f => by + -- Normalize the dependent fiber inclusion projections. + set_option backward.isDefEq.respectTransparency false in + simp only [CategoryTheory.Iso.refl_hom, Category.comp_id, Category.id_comp] + change (hom (𝟙 c)).app _ ≫ (fib c).map (eqToHom _ ≫ f) = (fib c).map f + simp [hom_id]) @[simp] lemma ι_comp_functorFrom (c : C) : ι F c ⋙ (functorFrom fib hom hom_id hom_comp) = fib c := @@ -1369,7 +1374,8 @@ lemma whiskerRight_ιNatTrans_functorFrom {x y} (f : x ⟶ y) : Functor.whiskerRight (ιNatTrans f) (functorFrom fib hom hom_id hom_comp) = eqToHom (ι_comp_functorFrom ..) ≫ hom f ≫ eqToHom (by rw [Functor.assoc, ι_comp_functorFrom]) := by - ext; simp + set_option backward.isDefEq.respectTransparency false in + ext; simp [ιNatTrans, ι]; rfl section variable (A : E ⥤ C) (fibObj : (x : E) → (A ⋙ F).obj x) From 01fb47d76f2fba708092f25fa419acb4ffd89e44 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:05:23 -0400 Subject: [PATCH 125/362] UNITY: integrate Bump repair repair-9a765885364cf2fc --- HoTTLean/Model/Natural/NaturalModel.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 88e8f23e..e8606c7e 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -424,7 +424,8 @@ def snd (ab : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp) : y(Γ) ⟶ N.Tm := ab ≫ pullback.fst N.tp (PartialProduct.fan M.uvPolyTp N.Ty).snd theorem comp_snd (ab : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp) (σ : y(Δ) ⟶ y(Γ)) : - σ ≫ snd ab = snd (σ ≫ ab) := by simp [snd] + σ ≫ snd ab = snd (σ ≫ ab) := by + exact (Category.assoc σ ab _).symm /-- Universal property of `compDom`, decomposition (part 4). From be40bb1ad72e998dd91b1c260efb5914bdf91576 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:06:50 -0400 Subject: [PATCH 126/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index b26323c7..4ff67893 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1386,6 +1386,8 @@ variable (A : E ⥤ C) (fibObj : (x : E) → (A ⋙ F).obj x) = eqToHom (functorTo_map_comp_aux A fibObj f g) ≫ (F.map (A.map g)).toFunctor.map (fibMap f) ≫ fibMap g) +-- Allow reduction of the dependent Cat projections in this equivalence proof. +set_option backward.isDefEq.respectTransparency false in @[simps!] def functorIsoFrom (fib_comp : ∀ c, fib c ⋙ A = ι F c ⋙ forget F) (fibObj_fib_obj : ∀ c x, fibObj ((fib c).obj x) ≍ x) @@ -1406,9 +1408,9 @@ def functorIsoFrom (fib_comp : ∀ c, fib c ⋙ A = ι F c ⋙ forget F) apply FunctorTo.hext · simp only [Functor.assoc, functorTo_forget, Functor.id_comp, fib_comp] · apply fibObj_fib_obj - · intro x y f - simp only [comp_obj, functorTo_obj_base, comp_map, functorTo_map_base, functorTo_obj_fiber, + · simp only [comp_obj, functorTo_obj_base, comp_map, functorTo_map_base, functorTo_obj_fiber, functorTo_map_fiber, id_obj, ι_obj_base, id_map, ι_map_base, ι_obj_fiber, ι_map_fiber] + intro x y f rw! [eqToHom_comp_heq, heq_cast_iff_heq] apply fibMap_fib_map · intro c c' f @@ -1420,13 +1422,13 @@ def functorIsoFrom (fib_comp : ∀ c, fib c ⋙ A = ι F c ⋙ forget F) Category.id_comp, id_whiskerRight, ← heq_eq_eq, heq_eqToHom_comp_iff, comp_eqToHom_heq_iff] apply Grothendieck.Hom.hext' rfl any_goals apply Grothendieck.hext' rfl - all_goals simp [obj_fib_obj, fibObj_fib_obj, fibMap_hom_app, map_hom_app] + all_goals simp [functorFrom, functorTo, ι, obj_fib_obj, fibObj_fib_obj, fibMap_hom_app, map_hom_app] inv_hom_id := by fapply Functor.ext · intro x - simp [fib_obj_fibObj] + simp [functorTo, fib_obj_fibObj] · intro x y f - simp [← heq_eq_eq, hom_map_app_fibObj] + simp [functorTo, ← heq_eq_eq, hom_map_app_fibObj] end end From bdbe9ed54ab9f3002804ce980432702cf07d6c93 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:10:22 -0400 Subject: [PATCH 127/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 4ff67893..8b3c4a44 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1105,9 +1105,11 @@ def preEquivalence (G : D ≌ C) : ∫ (G.functor ⋙ F) ≌ ∫ F where Equivalence.counitInv_functor_comp] counitIso := preNatIso F G.counitIso.symm |>.symm functor_unitIso_comp X := by - simp only [preInv, Grothendieck.preUnitIso, pre_id, CategoryTheory.Iso.trans_hom, - eqToIso.hom, eqToHom_app, eqToHom_refl, isoWhiskerLeft_hom, NatTrans.comp_app] - fapply Hom.ext <;> simp [preNatIso, transportIso] + -- Reduce the dependent Cat transport in this triangle only. + set_option backward.isDefEq.respectTransparency false in + simp only [preInv, Grothendieck.preUnitIso, pre_id, CategoryTheory.Iso.trans_hom, + eqToIso.hom, eqToHom_app, eqToHom_refl, isoWhiskerLeft_hom, NatTrans.comp_app] + fapply Hom.ext <;> simp [preNatIso, transportIso, isoMk, pre, map, functorTo, forget] variable {F} in /-- From 0294a447f56cfe9aab3d5da73ace3ef7df511dff Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:12:06 -0400 Subject: [PATCH 128/362] UNITY: integrate Bump repair repair-ecae414783b7f4ee --- HoTTLean/Model/Natural/NaturalModel.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index e8606c7e..3fa4ce7e 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -427,6 +427,8 @@ theorem comp_snd (ab : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp) (σ : y(Δ) ⟶ σ ≫ snd ab = snd (σ ≫ ab) := by exact (Category.assoc σ ab _).symm +-- The pullback presentation of compDom needs reducible instance compatibility. +set_option backward.isDefEq.respectTransparency false in /-- Universal property of `compDom`, decomposition (part 4). A map `ab : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp` is equivalently three maps @@ -439,7 +441,7 @@ theorem snd_tp (ab : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp) snd ab ≫ N.tp = ym(M.sec _ (fst ab) eq) ≫ dependent ab A eq := by simp [snd, pullback.condition, dependent, PtpEquiv.snd, Equiv.snd'_eq] simp only [← Category.assoc]; congr! 1 - apply pullback.hom_ext <;> simp [fst, UvPoly.compP] + apply pullback.hom_ext <;> simp [fst, UvPoly.compP] <;> rfl /-- Universal property of `compDom`, constructing a map into `compDom`. -/ def mk (α : y(Γ) ⟶ M.Tm) {A} (eq : α ≫ M.tp = A) (B : y(M.ext A) ⟶ N.Ty) (β : y(Γ) ⟶ N.Tm) From 9e9b58906b759149c18536502b2bee1372ff704f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:15:47 -0400 Subject: [PATCH 129/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 8b3c4a44..c2faff5b 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1451,12 +1451,16 @@ section AsSmall attribute [-simp] AsSmall.down_obj AsSmall.down_map +-- Normalize the wrapped Cat projections in the dependent transport equations. +set_option backward.isDefEq.respectTransparency false in /-- The inverse functor to build the equivalence `compAsSmallFunctorEquivalence`. -/ @[simp] def compAsSmallFunctorEquivalenceInverse : ∫ F ⥤ ∫(F ⋙ Cat.asSmallFunctor.{w}) := functorTo (forget _) (fun X => (AsSmall.up.obj X.fiber)) (fun f => (AsSmall.up.map f.fiber)) - (by simp) (by intros; simp) + (by intro X; simp [eqToHom_map]) + (by intros; simp [Functor.map_comp, eqToHom_map, Cat.asSmallFunctor, forget]) +set_option backward.isDefEq.respectTransparency false in /-- The functor to build the equivalence `compAsSmallFunctorEquivalence`. -/ @[simp] def compAsSmallFunctorEquivalenceFunctor : ∫(F ⋙ Cat.asSmallFunctor.{w}) ⥤ ∫ F := @@ -1464,7 +1468,7 @@ attribute [-simp] AsSmall.down_obj AsSmall.down_map (by intros; simp; apply eqToHom_map) -- FIXME: eqToHom_map does not fire under simp (by intros - simp [Functor.map_comp]) + simp [Functor.map_comp, eqToHom_map, Cat.asSmallFunctor, forget]) -- FIXME: these AsSmall goals are awful. Need to add some evil lemmas for AsSmall.up, AsSmall.down /-- Taking the Grothendieck construction on `F ⋙ asSmallFunctor`, where From 98fbdb505555d4cc855a2f0ccc9087fd47d48086 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:17:32 -0400 Subject: [PATCH 130/362] UNITY: integrate Bump repair repair-971a7f8e80c428ce --- HoTTLean/Model/Natural/NaturalModel.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 3fa4ce7e..47167083 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -443,6 +443,8 @@ theorem snd_tp (ab : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp) simp only [← Category.assoc]; congr! 1 apply pullback.hom_ext <;> simp [fst, UvPoly.compP] <;> rfl +-- The pullback presentation of compDom needs reducible instance compatibility. +set_option backward.isDefEq.respectTransparency false in /-- Universal property of `compDom`, constructing a map into `compDom`. -/ def mk (α : y(Γ) ⟶ M.Tm) {A} (eq : α ≫ M.tp = A) (B : y(M.ext A) ⟶ N.Ty) (β : y(Γ) ⟶ N.Tm) (h : β ≫ N.tp = ym(M.sec _ α eq) ≫ B) : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp := by From ef4c86e98f6c76c8ea357b80d2654ae4a6017051 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:20:37 -0400 Subject: [PATCH 131/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../CategoryTheory/Bicategory/Grothendieck.lean | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index c2faff5b..aee52c57 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1256,6 +1256,8 @@ lemma asFunctorFromHom_comp (c₁ c₂ c₃ : C) (f : c₁ ⟶ c₂) (g: c₂ ext p simp [asFunctorFromHom, eqToHom_map, ιNatTrans_comp_app] +-- Normalize dependent wrapped Cat projections in the reconstruction proof. +set_option backward.isDefEq.respectTransparency false in theorem asFunctorFrom : Grothendieck.functorFrom (asFunctorFromFib K) (asFunctorFromHom K) (asFunctorFromHom_id K) (asFunctorFromHom_comp K) = K := by fapply CategoryTheory.Functor.ext @@ -1265,10 +1267,12 @@ theorem asFunctorFrom : Grothendieck.functorFrom (asFunctorFromFib K) (asFunctor simp only [functorFrom_obj, asFunctorFromFib, Functor.comp_obj, functorFrom_map, asFunctorFromHom, Functor.whiskerRight_app, Functor.comp_map, ← Functor.map_comp, eqToHom_refl, Category.comp_id, Category.id_comp] - congr + change K.map ((ιNatTrans f.base).app x.fiber ≫ (ι F y.base).map f.fiber) = K.map f + apply congrArg K.map fapply Hom.ext - · simp - · simp + · change f.base ≫ 𝟙 y.base = f.base + exact Category.comp_id _ + · simp [ι, ιNatTrans, Functor.map_id] section From d24b3122452e74fb714ba535999613680bf3c22c Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:23:38 -0400 Subject: [PATCH 132/362] UNITY: integrate Bump repair repair-17e0b848f1fe2d0a --- HoTTLean/Model/Natural/NaturalModel.lean | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 47167083..775e9717 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -457,10 +457,19 @@ def mk (α : y(Γ) ⟶ M.Tm) {A} (eq : α ≫ M.tp = A) (B : y(M.ext A) ⟶ N.Ty simp only [← Category.assoc]; congr! 1 apply pullback.hom_ext <;> simp +-- The pullback presentation of compDom needs reducible instance compatibility. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem fst_mk (α : y(Γ) ⟶ M.Tm) {A} (eq : α ≫ M.tp = A) (B : y(M.ext A) ⟶ N.Ty) (β : y(Γ) ⟶ N.Tm) (h : β ≫ N.tp = ym(M.sec _ α eq) ≫ B) : fst (mk α eq B β h) = α := by - simp [mk, fst] + simp only [mk, fst, ← Category.assoc] + change (pullback.lift β (pullback.lift (PtpEquiv.mk M A B) α _) _ ≫ + pullback.snd N.uvPolyTp.p (PartialProduct.fan M.uvPolyTp N.Ty).snd) ≫ + pullback.snd (M.uvPolyTp.fstProj N.Ty) M.uvPolyTp.p = α + rw [pullback.lift_snd] + change pullback.lift (PtpEquiv.mk M A B) α _ ≫ + pullback.snd (PartialProduct.fan M.uvPolyTp N.Ty).fst M.uvPolyTp.p = α + exact pullback.lift_snd _ _ _ @[simp] theorem dependent_mk (α : y(Γ) ⟶ M.Tm) {A} (eq : α ≫ M.tp = A) From 1c69e37b3607bc3bc39e0dd73ae5122a37988018 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:25:13 -0400 Subject: [PATCH 133/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- .../ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index aee52c57..cb308de4 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1441,12 +1441,14 @@ end end FunctorFrom +-- Normalize wrapped Cat projections in the inclusion naturality equation. +set_option backward.isDefEq.respectTransparency false in /-- The fiber inclusion `ι F c` composed with `map α` is isomorphic to `(α.app c).toFunctor ⋙ ι F' c`. -/ @[simps!] def ιCompMap {F' : C ⥤ Cat} (α : F ⟶ F') (c : C) : ι F c ⋙ map α ≅ (α.app c).toFunctor ⋙ ι F' c := NatIso.ofComponents (fun X => CategoryTheory.Iso.refl _) (fun f => by simp only [CategoryTheory.Iso.refl_hom, Category.comp_id] - apply Hom.ext <;> simp) + apply Hom.ext <;> simp [map, functorTo, ι, forget]) lemma ι_comp_map {F' : C ⥤ Cat} (α : F ⟶ F') (c : C) : ι F c ⋙ map α = (α.app c).toFunctor ⋙ ι F' c := Functor.ext_of_iso (ιCompMap ..) (by intro; rfl) From 795597e25fa65889866d89a100e17c5cb9eb13e1 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:28:01 -0400 Subject: [PATCH 134/362] UNITY: integrate Bump repair command-f0a47d90cf11cd5f --- HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index cb308de4..d888ccc1 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -1571,6 +1571,8 @@ def invFiber : y.fiber ⟶ (F.map f.base).toFunctor.obj x.fiber := ← Grothendieck.Hom.comp_base]) ≫ (F.map f.base).toFunctor.map (CategoryTheory.inv f).fiber +-- Normalize dependent transports through the wrapped Cat functor. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma fiber_comp_invFiber : f.fiber ≫ invFiber f = 𝟙 ((F.map f.base).toFunctor.obj x.fiber) := by have h := Functor.Grothendieck.Hom.comp_fiber f (CategoryTheory.inv f) From 5146303a875474260a27f7f7c89e107a1145b265 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:30:34 -0400 Subject: [PATCH 135/362] UNITY: integrate Bump repair repair-762167da51113879 --- HoTTLean/Model/Natural/NaturalModel.lean | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 775e9717..87cd52c5 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -471,15 +471,29 @@ theorem fst_mk (α : y(Γ) ⟶ M.Tm) {A} (eq : α ≫ M.tp = A) (B : y(M.ext A) pullback.snd (PartialProduct.fan M.uvPolyTp N.Ty).fst M.uvPolyTp.p = α exact pullback.lift_snd _ _ _ +-- The pullback presentation of compDom needs reducible instance compatibility. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem dependent_mk (α : y(Γ) ⟶ M.Tm) {A} (eq : α ≫ M.tp = A) (B : y(M.ext A) ⟶ N.Ty) (β : y(Γ) ⟶ N.Tm) (h : β ≫ N.tp = ym(M.sec _ α eq) ≫ B) : dependent (mk α eq B β h) A (by simp [fst_mk, eq]) = B := by simp [mk, dependent, UvPoly.compP] - convert PtpEquiv.snd_mk M A B using 2 - slice_lhs 1 2 => apply pullback.lift_snd - simp + have hp (w₁ : PtpEquiv.mk M A B ≫ (PartialProduct.fan M.uvPolyTp N.Ty).fst = + α ≫ M.uvPolyTp.p) + (w₂ : β ≫ N.uvPolyTp.p = + pullback.lift (PtpEquiv.mk M A B) α w₁ ≫ (PartialProduct.fan M.uvPolyTp N.Ty).snd) : + (pullback.lift β (pullback.lift (PtpEquiv.mk M A B) α w₁) w₂ ≫ + pullback.snd N.uvPolyTp.p (PartialProduct.fan M.uvPolyTp N.Ty).snd) ≫ + pullback.fst (PartialProduct.fan M.uvPolyTp N.Ty).fst M.uvPolyTp.p = + PtpEquiv.mk M A B := by + rw [pullback.lift_snd] + exact pullback.lift_fst _ _ _ + convert PtpEquiv.snd_mk M A B using 1 + congr 1 + rw [← Category.assoc] + exact hp _ _ + all_goals apply proof_irrel_heq @[simp] theorem snd_mk (α : y(Γ) ⟶ M.Tm) {A} (eq : α ≫ M.tp = A) (B : y(M.ext A) ⟶ N.Ty) (β : y(Γ) ⟶ N.Tm) From 64422fb004533697627cc6991374250777fad2fb Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:34:31 -0400 Subject: [PATCH 136/362] UNITY: integrate Bump repair repair-fa0ee4bc2a44fa78 --- HoTTLean/Model/Natural/NaturalModel.lean | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 87cd52c5..b267ac87 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -495,10 +495,14 @@ theorem dependent_mk (α : y(Γ) ⟶ M.Tm) {A} (eq : α ≫ M.tp = A) exact hp _ _ all_goals apply proof_irrel_heq +-- The pullback presentation of compDom needs reducible instance compatibility. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem snd_mk (α : y(Γ) ⟶ M.Tm) {A} (eq : α ≫ M.tp = A) (B : y(M.ext A) ⟶ N.Ty) (β : y(Γ) ⟶ N.Tm) (h : β ≫ N.tp = ym(M.sec _ α eq) ≫ B) : snd (mk α eq B β h) = β := by - simp [mk, snd] + change pullback.lift β (pullback.lift (PtpEquiv.mk M A B) α _) _ ≫ + pullback.fst N.uvPolyTp.p (PartialProduct.fan M.uvPolyTp N.Ty).snd = β + exact pullback.lift_fst _ _ _ theorem ext {ab₁ ab₂ : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp} {A} (eq : fst ab₁ ≫ M.tp = A) From 4a4b16c2a1f55a2ddb6a272a6f9009ec49d730f1 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:36:13 -0400 Subject: [PATCH 137/362] UNITY: integrate Bump repair command-4d239360cabe07c3 --- HoTTLean/Grothendieck/Groupoidal/Basic.lean | 50 ++++++++------------- 1 file changed, 19 insertions(+), 31 deletions(-) diff --git a/HoTTLean/Grothendieck/Groupoidal/Basic.lean b/HoTTLean/Grothendieck/Groupoidal/Basic.lean index 5103064e..8a400d5a 100644 --- a/HoTTLean/Grothendieck/Groupoidal/Basic.lean +++ b/HoTTLean/Grothendieck/Groupoidal/Basic.lean @@ -73,7 +73,7 @@ def comp {x y z : ∫(F)} (f : Hom x y) (g : Hom y z) : Hom x z := Grothendieck. attribute [local simp] eqToHom_map instance : Category (∫ F) := { - (inferInstanceAs $ Category (Grothendieck (F ⋙ Grpd.forgetToCat))) with + (inferInstance : Category (Grothendieck (F ⋙ Grpd.forgetToCat))) with Hom := Hom id := id comp := comp @@ -185,8 +185,8 @@ section variable {C : Type u₁} [Groupoid.{v₁,u₁} C] {F : C ⥤ Grpd.{v₂,u₂}} -instance (X : C) : Groupoid (F ⋙ Grpd.forgetToCat |>.obj X) where - inv f := ((F.obj X).str').inv f +instance (X : C) : Groupoid (F ⋙ Grpd.forgetToCat |>.obj X) := + (F.obj X).str' /-- If `F : C ⥤ Grpd` is a functor and `t : c ⟶ d` is a morphism in `C`, @@ -236,7 +236,7 @@ lemma toTransport_id {X : ∫ F} : apply Grothendieck.toTransport_id lemma toTransport_eqToHom {X: C} {X' : ∫ F} (hX': forget.obj X' = X): - toTransport X' (eqToHom hX') = eqToHom (by subst hX'; simp [transport_id]) := by + toTransport X' (eqToHom hX') = eqToHom (by subst hX'; exact transport_id.symm) := by apply Grothendieck.toTransport_eqToHom lemma transport_comp (x : ∫ F) {c d : C} (t : x.base ⟶ c) (t' : c ⟶ d): @@ -498,7 +498,7 @@ variable {D : Type*} [Category D] def fib' (c) : (F ⋙ Grpd.forgetToCat).obj c ⥤ E := fib c variable {fib} in -def hom' {c c' : C} (f : c ⟶ c') : fib' fib c ⟶ (F ⋙ Grpd.forgetToCat).map f ⋙ fib' fib c' := +def hom' {c c' : C} (f : c ⟶ c') : fib' fib c ⟶ ((F ⋙ Grpd.forgetToCat).map f).toFunctor ⋙ fib' fib c' := hom f variable (G : E ⥤ D) @@ -510,7 +510,7 @@ def functorFromCompFib (c : C) : F.obj c ⥤ D := functorFromCompFib' fib G c def functorFromCompHom' {c c' : C} (f : c ⟶ c') : - functorFromCompFib' fib G c ⟶ (F ⋙ Grpd.forgetToCat).map f ⋙ functorFromCompFib' fib G c' := + functorFromCompFib' fib G c ⟶ ((F ⋙ Grpd.forgetToCat).map f).toFunctor ⋙ functorFromCompFib' fib G c' := Grothendieck.functorFromCompHom (fib' fib) (hom' hom) _ _ def functorFromCompHom {c c' : C} (f : c ⟶ c') : @@ -527,7 +527,7 @@ lemma functorFromCompHom_comp (c₁ c₂ c₃ : C) (f : c₁ ⟶ c₂) (g : c₂ functorFromCompHom fib (fun {c c'} ↦ hom) G (f ≫ g) = functorFromCompHom fib (fun {c c'} ↦ hom) G f ≫ Functor.whiskerLeft (F.map f) (functorFromCompHom fib hom G g) ≫ - eqToHom (by simp) := + eqToHom (by simp only [Functor.map_comp, Grpd.comp_eq_comp]; rfl) := Grothendieck.functorFromCompHom_comp _ _ hom_comp _ _ _ _ _ _ @@ -831,19 +831,9 @@ lemma comp_forget_naturality {α : F ⟶ G} {X Y : Γ} (f : X ⟶ Y) : simp lemma map_map_eqToHom {α : F ⟶ G} {X Y : ∫(F)} (f : X ⟶ Y) : - ((G ⋙ Grpd.forgetToCat).map f.base).obj ((map α).obj X).fiber = - (α.app Y.base).obj (((F ⋙ Grpd.forgetToCat).map f.base).obj X.fiber) := by - apply Eq.symm - have equ1 : - (α.app Y.base).obj ((Grpd.forgetToCat.map (F.map f.base)).obj X.fiber) = - ((Grpd.forgetToCat.map (F.map f.base)) ⋙ (α.app Y.base)).obj X.fiber := by simp - have equ2 : - (Grpd.forgetToCat.map (G.map f.base)).obj ((α.app X.base).obj X.fiber) = - ((α.app X.base) ⋙ (Grpd.forgetToCat.map (G.map f.base))).obj X.fiber := by simp - simp only [Functor.comp_obj, Functor.comp_map, map_obj_fiber] - rw[equ1, equ2] - refine Functor.congr_obj ?_ X.fiber - apply comp_forget_naturality + ((G ⋙ Grpd.forgetToCat).map f.base).toFunctor.obj ((map α).obj X).fiber = + (α.app Y.base).obj (((F ⋙ Grpd.forgetToCat).map f.base).toFunctor.obj X.fiber) := by + exact (Functor.congr_obj (α.naturality f.base) X.fiber).symm @[simp] theorem eqToHom_comp_fiber {C : Type u} [Category.{v} C] {A : C ⥤ Grpd.{v₁, u₁}} {p q r : ∫(A)} (h : p = q) {f : q ⟶ r} : @@ -866,6 +856,7 @@ variable {C : Type u} [Category.{v} C] {D : Type u₁} [Category.{v₁} D] theorem map_comp_eq {G H : C ⥤ Grpd.{v₂,u₂}} (α : F ⟶ G) (β : G ⟶ H) : map (α ≫ β) = map α ⋙ map β := by simp [map, Grothendieck.map_comp_eq] + rfl theorem preNatIso_comp {G1 G2 G3 : D ⥤ C} (α : G1 ≅ G2) (β : G2 ≅ G3) : preNatIso F (α ≪≫ β) = preNatIso F α ≪≫ Functor.isoWhiskerLeft _ (preNatIso F β) ≪≫ @@ -946,14 +937,8 @@ section lemma eqToHom_eq_homOf_map {Γ : Type*} [Groupoid Γ] {F G : Γ ⥤ Grpd} (h : F = G) : eqToHom (by rw [h]) = Grpd.homOf (map (eqToHom h)) := by subst h - fapply CategoryTheory.Functor.ext - · intro x - apply hext - · simp - · simp - · intro x y f - simp only [eqToHom_refl, Category.id_comp] - apply Hom.ext <;> simp + change 𝟭 (∫ F) = map (𝟙 F) + exact map_id_eq.symm -- TODO factor through Grothendieck theorem map_eqToHom_heq_id_dom {Γ : Type*} [Category Γ] {A A' : Γ ⥤ Grpd} @@ -996,19 +981,22 @@ lemma fiber_eqToHom_comp_heq {Γ : Type*} [Category Γ] {F : Γ ⥤ Grpd} {x' x y : ∫ F} (h : x' = x) (f : x ⟶ y) : (eqToHom h ≫ f).fiber ≍ f.fiber := by subst h - simp [eqToHom_map] + simp only [eqToHom_refl] + rw [Category.id_comp] lemma fiber_eq_eqToHom_comp_heq {Γ : Type*} [Category Γ] {F : Γ ⥤ Grpd} {x' x y : ∫ F} (g : x' ⟶ x) (h : x' = x) (hg : g = eqToHom h) (f : x ⟶ y) : (eqToHom h ≫ f).fiber ≍ f.fiber := by subst h - simp [eqToHom_map] + simp only [eqToHom_refl] + rw [Category.id_comp] lemma fiber_comp_eqToHom_heq {Γ : Type*} [Category Γ] {F : Γ ⥤ Grpd} {x y y' : ∫ F} (h : y = y') (f : x ⟶ y) : (f ≫ eqToHom h).fiber ≍ f.fiber := by subst h - simp + simp only [eqToHom_refl] + rw [Category.comp_id] end From 92b5b0a3bb092ce3fc612479f54274bb70cb61c5 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:39:47 -0400 Subject: [PATCH 138/362] UNITY: integrate Bump repair command-4d239360cabe07c3 --- HoTTLean/Grothendieck/Groupoidal/Basic.lean | 65 ++++----------------- 1 file changed, 12 insertions(+), 53 deletions(-) diff --git a/HoTTLean/Grothendieck/Groupoidal/Basic.lean b/HoTTLean/Grothendieck/Groupoidal/Basic.lean index 8a400d5a..fdad722d 100644 --- a/HoTTLean/Grothendieck/Groupoidal/Basic.lean +++ b/HoTTLean/Grothendieck/Groupoidal/Basic.lean @@ -766,8 +766,10 @@ theorem pre_comp_forget (α : D ⥤ C) (A : C ⥤ Grpd) : · rw [ι_comp_forget, Functor.assoc, pre_comp_forget, ← Functor.assoc, ι_comp_forget] apply Functor.ext <;> simp · intro - simp - · simp + rfl + · intros + simp only [Functor.comp_map, pre_map_fiber, ι_map_fiber] + exact (eqToHom_comp_heq _ _).trans (eqToHom_comp_heq _ _).symm noncomputable section @@ -783,18 +785,6 @@ def invFiber : y.fiber ⟶ (F.map f.base).obj x.fiber := ← Groupoidal.comp_base]) ≫ (F.map f.base).map (CategoryTheory.inv f).fiber -@[simp] -lemma fiber_comp_invFiber : f.fiber ≫ invFiber f = 𝟙 ((F.map f.base).obj x.fiber) := by - have h := comp_fiber f (CategoryTheory.inv f) - rw! [IsIso.hom_inv_id] at h - have h0 : F.map (CategoryTheory.inv f).base ⋙ F.map f.base = 𝟭 _ := by - simp [← Grpd.comp_eq_comp, ← Functor.map_comp, ← comp_base] - have h1 := Functor.congr_map (F.map f.base) h - simp [← heq_eq_eq, eqToHom_map, ← Functor.comp_map, Functor.congr_hom h0] at h1 - dsimp [invFiber] - rw! [← h1] - simp - @[simp] lemma invFiber_comp_fiber : invFiber f ≫ f.fiber = 𝟙 _ := by have h := comp_fiber (CategoryTheory.inv f) f @@ -805,6 +795,11 @@ lemma invFiber_comp_fiber : invFiber f ≫ f.fiber = 𝟙 _ := by · simp · simpa using (eqToHom_heq_id_cod _ _ _).symm +@[simp] +lemma fiber_comp_invFiber : f.fiber ≫ invFiber f = 𝟙 ((F.map f.base).obj x.fiber) := by + apply (cancel_mono f.fiber).1 + simp only [Category.assoc, invFiber_comp_fiber, Category.comp_id, Category.id_comp] + instance : IsIso f.fiber := ⟨invFiber f , fiber_comp_invFiber f, invFiber_comp_fiber f⟩ @@ -838,7 +833,7 @@ lemma map_map_eqToHom {α : F ⟶ G} {X Y : ∫(F)} (f : X ⟶ Y) : @[simp] theorem eqToHom_comp_fiber {C : Type u} [Category.{v} C] {A : C ⥤ Grpd.{v₁, u₁}} {p q r : ∫(A)} (h : p = q) {f : q ⟶ r} : (eqToHom h ≫ f).fiber = eqToHom (by subst h; simp) ≫ f.fiber := by - simp [eqToHom_map] + simp only [comp_fiber, fiber_eqToHom, eqToHom_map, Category.assoc, eqToHom_trans_assoc] end @@ -875,44 +870,8 @@ theorem map_eqToHom_base {G1 G2 : ∫(A)} (eq : G1 = G2) open CategoryTheory.Functor in /-- Every morphism `f : X ⟶ Y` in the base category induces a natural transformation from the fiber inclusion `ι F X` to the composition `F.map f ⋙ ι F Y`. -/ -def ιNatIso {X Y : Γ} (f : X ⟶ Y) : ι A X ≅ A.map f ⋙ ι A Y where - hom := ιNatTrans f - inv := whiskerLeft (A.map f) (ιNatTrans (Groupoid.inv f)) ≫ eqToHom (by - convert_to A.map (f ≫ Groupoid.inv f) ⋙ ι A X = ι A X - · simp only [Functor.map_comp, Grpd.comp_eq_comp, Functor.assoc] - · simp) - hom_inv_id := by - ext a - apply Groupoidal.Hom.hext - · simp - . simp only [NatTrans.comp_app, whiskerLeft_app, comp_base, comp_fiber, Grpd.map_comp_map, - Category.assoc, eqToHom_trans_assoc, eqToHom_refl, Category.id_comp, - NatTrans.id_app, id_fiber, eqToHom_comp_heq_iff] - -- FIXME: `transparency := default` is like `erw` and should be avoided - rw! (castMode := .all) (transparency := .default) - [eqToHom_app, map_eqToHom_base, Category.id_comp] - -- FIXME: `occs` is fragile - rw! (transparency := .default) (occs := .pos [4]) [Functor.map_id] - rw! (transparency := .default) [Category.id_comp] - simp only [eqToHom_refl, fiber_eqToHom, eqRec_heq_iff_heq] - -- these should be automated - apply HEq.trans (eqToHom_heq_id_cod _ _ _) - apply HEq.symm (eqToHom_heq_id_cod _ _ _) - inv_hom_id := by - ext a - apply Groupoidal.Hom.hext - · simp - . simp only [NatTrans.comp_app, whiskerLeft_app, comp_fiber, ιNatTrans_app_fiber, - map_comp, eqToHom_map, Category.assoc, eqToHom_trans_assoc, NatTrans.id_app, - id_fiber, eqToHom_comp_heq_iff] - -- FIXME: `transparency := default` is like `erw` and should be avoided - -- FIXME: `occs` is fragile - rw! (transparency := .default) (occs := .pos [6]) [Functor.map_id] - rw! (transparency := .default) (occs := .pos [4]) [Functor.map_id] - rw! (transparency := .default) [eqToHom_app] - simp only [comp_obj, fiber_eqToHom, eqToHom_map, Category.id_comp, id_base, - eqToHom_comp_heq_iff] - exact (eqToHom_heq_id_cod _ _ _).symm +noncomputable def ιNatIso {X Y : Γ} (f : X ⟶ Y) : ι A X ≅ A.map f ⋙ ι A Y := + asIso (ιNatTrans f) theorem ιNatIso_hom {x y : Γ} (f : x ⟶ y) : (ιNatIso A f).hom = ιNatTrans f := by From 66308d3b57e438ecc66085fc9331d8896be8e3c0 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:42:38 -0400 Subject: [PATCH 139/362] UNITY: integrate Bump repair command-7dde713fb09510ed --- HoTTLean/Pointed/Basic.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Pointed/Basic.lean b/HoTTLean/Pointed/Basic.lean index b41f69d6..52a50b8c 100644 --- a/HoTTLean/Pointed/Basic.lean +++ b/HoTTLean/Pointed/Basic.lean @@ -1,4 +1,4 @@ -import Mathlib.CategoryTheory.Category.Grpd +import Mathlib.CategoryTheory.Groupoid.Grpd.Basic import HoTTLean.ForMathlib import HoTTLean.Grothendieck.Groupoidal.Basic import HoTTLean.ForMathlib.CategoryTheory.Functor.IsPullback From ab34bf514ce117dc395a3d2ef3a221a3f93b5262 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:45:42 -0400 Subject: [PATCH 140/362] UNITY: integrate Bump repair repair-7a36a8da3fed932c --- HoTTLean/Pointed/Basic.lean | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/HoTTLean/Pointed/Basic.lean b/HoTTLean/Pointed/Basic.lean index 52a50b8c..36da93a9 100644 --- a/HoTTLean/Pointed/Basic.lean +++ b/HoTTLean/Pointed/Basic.lean @@ -12,6 +12,8 @@ universe w v u v₁ u₁ v₂ u₂ noncomputable section namespace CategoryTheory +-- The Grothendieck fiber equations reduce through bundled category morphisms. +set_option backward.isDefEq.respectTransparency false attribute [local simp] eqToHom_map Grpd.id_eq_id Grpd.comp_eq_comp Functor.id_comp @@ -34,32 +36,32 @@ prefix:max "⇓" => forgetToCat.obj -- write using `\d==` postfix:max "⟱" => forgetToCat.map -lemma forgetToCat_map {C D : PCat} (F : C ⟶ D) : +@[local simp] lemma forgetToCat_map {C D : PCat} (F : C ⟶ D) : F⟱ = F.base := rfl @[simp] -theorem id_obj {C : PCat} (X : C.base) : (𝟙 C)⟱.obj X = X := +theorem id_obj {C : PCat} (X : C.base) : (𝟙 C)⟱.toFunctor.obj X = X := rfl @[simp] theorem id_map {C : PCat} {X Y : C.base} (f : X ⟶ Y) : - (𝟙 C)⟱.map f = f := + (𝟙 C)⟱.toFunctor.map f = f := rfl @[simp] lemma id_fiber {C : PCat} : Hom.fiber (𝟙 C) = 𝟙 _ := rfl @[simp] theorem comp_obj {C D E : PCat} (F : C ⟶ D) (G : D ⟶ E) (X : C.base) : - (F ≫ G)⟱.obj X = G⟱.obj (F⟱.obj X) := + (F ≫ G)⟱.toFunctor.obj X = G⟱.toFunctor.obj (F⟱.toFunctor.obj X) := rfl @[simp] theorem comp_map {C D E : PCat} (F : C ⟶ D) (G : D ⟶ E) {X Y : C.base} - (f : X ⟶ Y) : (F ≫ G)⟱.map f = G⟱.map (F⟱.map f) := + (f : X ⟶ Y) : (F ≫ G)⟱.toFunctor.map f = G⟱.toFunctor.map (F⟱.toFunctor.map f) := rfl @[simp] lemma comp_fiber {C D E : PCat} (F : C ⟶ D) (G : D ⟶ E) : - (F ≫ G).fiber = G⟱.map F.fiber ≫ G.fiber := by + (F ≫ G).fiber = G⟱.toFunctor.map F.fiber ≫ G.fiber := by simp -- formerly `map_id_point` @@ -72,13 +74,13 @@ theorem comp_map {C D E : PCat} (F : C ⟶ D) (G : D ⟶ E) {X Y : C.base} -- formerly `map_comp_point` @[simp] theorem map_comp_fiber {C : Type u} [Category.{v} C] {F : C ⥤ PCat} {x y z: C} (f : x ⟶ y) (g : y ⟶ z) : (F.map (f ≫ g)).fiber = - eqToHom (by simp) ≫ (F.map g)⟱.map (F.map f).fiber ≫ (F.map g).fiber := by + eqToHom (by simp) ≫ (F.map g)⟱.toFunctor.map (F.map f).fiber ≫ (F.map g).fiber := by rw! [Functor.map_comp] simp /-- This is the proof of equality used in the eqToHom in `PCat.eqToHom_point` -/ theorem eqToHom_point_aux {P1 P2 : PCat.{v,u}} (eq : P1 = P2) : - (eqToHom eq)⟱.obj P1.fiber = P2.fiber := by + (eqToHom eq)⟱.toFunctor.obj P1.fiber = P2.fiber := by subst eq simp @@ -100,7 +102,7 @@ def objFiber (x : Γ) : ⇓(α.obj x) := (α.obj x).fiber -- formerly `mapObjPt` def mapObjFiber {x y : Γ} (f : x ⟶ y) : ⇓(α.obj y) := - (α.map f)⟱.obj (objFiber α x) + (α.map f)⟱.toFunctor.obj (objFiber α x) -- formerly `mapPoint` def mapFiber {x y : Γ} (f : x ⟶ y) : @@ -114,7 +116,7 @@ def mapFiber {x y : Γ} (f : x ⟶ y) : -- formerly `mapPoint_comp` theorem mapFiber_comp {x y z} (f : x ⟶ y) (g : y ⟶ z) : mapFiber α (f ≫ g) = eqToHom (by simp [mapObjFiber, objFiber]) - ≫ (α.map g)⟱.map (mapFiber α f) ≫ mapFiber α g := by + ≫ (α.map g)⟱.toFunctor.map (mapFiber α f) ≫ mapFiber α g := by simp [mapFiber] theorem mapFiber_inv {x y} (f : x ⟶ y) [IsIso f] : @@ -124,7 +126,7 @@ theorem mapFiber_inv {x y} (f : x ⟶ y) [IsIso f] : end theorem eqToHom_base_map {x y : PCat} (eq : x = y) {a b} (f : a ⟶ b) : - (eqToHom eq).base.map f = eqToHom (by simp) ≫ (eqToHom (by simp [eq] : x.base = y.base)).map f ≫ eqToHom (by simp) := by + (eqToHom eq).base.toFunctor.map f = eqToHom (by simp) ≫ (eqToHom (by simp [eq] : x.base = y.base)).toFunctor.map f ≫ eqToHom (by simp) := by cases eq simp @@ -166,7 +168,7 @@ prefix:max "⇓" => forgetToGrpd.obj -- write using `\d==` postfix:max "⟱" => forgetToGrpd.map -lemma forgetToGrpd_map {C D : PGrpd} (F : C ⟶ D) : +@[local simp] lemma forgetToGrpd_map {C D : PGrpd} (F : C ⟶ D) : F⟱ = F.base := rfl @[simp] From b410e05ca2ed8b2baea19e472760cab2babef549 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:48:45 -0400 Subject: [PATCH 141/362] UNITY: integrate Bump repair command-9fbbd28c9841929f --- HoTTLean/Grothendieck/IsPullback.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index 7b02d643..af4fbc34 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -1,6 +1,6 @@ import Mathlib.CategoryTheory.Limits.Yoneda import Mathlib.CategoryTheory.Limits.Preserves.Finite -import Mathlib.CategoryTheory.Limits.Shapes.Pullback.CommSq +import Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic import HoTTLean.Pointed.Basic import HoTTLean.ForMathlib From 9a02ce0f797236028ecb20e1ad1e6ad6b3ea3786 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:50:46 -0400 Subject: [PATCH 142/362] UNITY: integrate Bump repair repair-ff0e3fbc4b95b3de --- HoTTLean/Model/Natural/NaturalModel.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index b267ac87..df70302d 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -513,8 +513,8 @@ theorem ext {ab₁ ab₂ : y(Γ) ⟶ M.uvPolyTp.compDom N.uvPolyTp} simp only [dependent, PtpEquiv.snd] at h2 generalize_proofs _ _ H at h2 refine Equiv.ext' M.uvPolyTp N.Ty H ?_ h2 - simp [Equiv.fst, pullback.condition] - simp only [← Category.assoc]; congr 1 + exact (fst_tp ab₁).symm.trans + ((congrArg (fun a => a ≫ M.tp) h1).trans (fst_tp ab₂)) theorem comp_mk (α : y(Γ) ⟶ M.Tm) {A} (e1 : α ≫ M.tp = A) From 668d199b61b264a18907d6b2baa247842e74fded Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:53:14 -0400 Subject: [PATCH 143/362] UNITY: integrate Bump repair repair-debbb934365cf847 --- HoTTLean/Grothendieck/IsPullback.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index af4fbc34..9f455c13 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -21,9 +21,11 @@ variable {Γ : Type u} [Category.{v} Γ] {A : Γ ⥤ Cat.{v₁,u₁}} variable (A) +-- The Grothendieck fiber equations reduce through bundled category morphisms. +set_option backward.isDefEq.respectTransparency false in def toPCat : ∫ A ⥤ PCat.{v₁,u₁} := functorTo (forget _ ⋙ A) (fun x => x.fiber) (fun f => f.fiber) - (by simp) (by intros; simp) + (by simp) (by intros; simp [forget]) @[simp] theorem toPCat_obj_base (x) : ((toPCat A).obj x).base = A.obj x.base := by From d13740fe4cb5018a599b944e2f1d10e0143d723f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:56:21 -0400 Subject: [PATCH 144/362] UNITY: integrate Bump repair repair-b8017bae947cea95 --- HoTTLean/Grothendieck/IsPullback.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index 9f455c13..4c0b78e6 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -58,7 +58,7 @@ variable {C : Type*} [Category C] abbrev pt (x : C) := (fst.obj x).fiber abbrev point {x y : C} (f : x ⟶ y) : - (fst.map f)⟱.obj (pt fst x) ⟶ pt fst y := + (fst.map f)⟱.toFunctor.obj (pt fst x) ⟶ pt fst y := (fst.map f).fiber variable {A} {fst} {snd} From d5840696d35fcd1b000d5360be40af77a4adefb5 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 01:57:57 -0400 Subject: [PATCH 145/362] UNITY: integrate Bump repair repair-5ab695e067b01a94 --- HoTTLean/Model/Natural/NaturalModel.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index df70302d..cdb7c685 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -648,6 +648,8 @@ def reflSubst (a : y(Γ) ⟶ M.Tm) : Γ ⟶ idIntro.motiveCtx a := congr 1 apply idIntro.isKernelPair.hom_ext <;> simp) +-- Allow the pullback projections to unfold the motive context during elaboration. +set_option backward.isDefEq.respectTransparency false in @[reassoc] theorem comp_reflSubst' {Γ Δ} (σ : Δ ⟶ Γ) (a : y(Γ) ⟶ M.Tm) : ym(σ) ≫ ym(idIntro.reflSubst a) = From 30a7898bbb897fb73c5a0a51868ccb76d1f37cb1 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:00:56 -0400 Subject: [PATCH 146/362] UNITY: integrate Bump repair repair-7d3d5381013dc0c8 --- HoTTLean/Grothendieck/IsPullback.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index 4c0b78e6..59809902 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -64,7 +64,7 @@ abbrev point {x y : C} (f : x ⟶ y) : variable {A} {fst} {snd} @[simp] def liftObjFiber (x : C) : A.obj (snd.obj x) := - ((eqToHom w).app x).obj (pt fst x) + ((eqToHom w).app x).toFunctor.obj (pt fst x) variable {x y : C} (f : x ⟶ y) From 8bab525d080c445f764e54e128bcc6df1dd5f3b9 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:03:48 -0400 Subject: [PATCH 147/362] UNITY: integrate Bump repair repair-2e03542e8e28738e --- HoTTLean/Grothendieck/IsPullback.lean | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index 59809902..3bb28158 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -68,9 +68,9 @@ variable {A} {fst} {snd} variable {x y : C} (f : x ⟶ y) -@[simp] def liftMapFiber : ((snd ⋙ A).map f).obj (liftObjFiber w x) ⟶ liftObjFiber w y := - let m1 := ((eqToHom w).app y).map (point fst f) - let m2 := (eqToHom ((eqToHom w).naturality f).symm).app +@[simp] def liftMapFiber : ((snd ⋙ A).map f).toFunctor.obj (liftObjFiber w x) ⟶ liftObjFiber w y := + let m1 := ((eqToHom w).app y).toFunctor.map (point fst f) + let m2 := (eqToHom ((eqToHom w).naturality f).symm).toNatTrans.app (pt fst x) m2 ≫ m1 From caa59b3b09cfafa3f8da9a799011da4857a353ae Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:05:26 -0400 Subject: [PATCH 148/362] UNITY: integrate Bump repair repair-7fc73f939f245cf0 --- HoTTLean/Model/Natural/NaturalModel.lean | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index cdb7c685..617ac658 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -900,12 +900,17 @@ lemma toK_comp_left {Δ} (σ : Δ ⟶ Γ) : ii.toK (ym(σ) ≫ a) = def toI : y(ii.motiveCtx a) ⟶ ie.i := ie.i_isPullback.lift (M.var _) (ym(M.disp _) ≫ toK ii a) - (by rw [(M.disp_pullback _).w]; simp [IdIntro.mkId, toK]) + (by + dsimp only [IdIntro.motiveCtx] + rw [(M.disp_pullback _).w] + simp [IdIntro.mkId, toK]) -lemma toI_comp_i1 : ie.toI a ≫ ie.i1 = M.var _ := by simp [toI] +lemma toI_comp_i1 : ie.toI a ≫ ie.i1 = M.var _ := by + exact ie.i_isPullback.lift_fst _ _ _ lemma toI_comp_i2 : ie.toI a ≫ ie.i2 = ym(M.disp _) ≫ ii.toK a := - by simp [toI] + by + exact ie.i_isPullback.lift_snd _ _ _ lemma toI_comp_left {Δ} (σ : Δ ⟶ Γ) : toI ie (ym(σ) ≫ a) = ym(ii.motiveSubst σ a) ≫ toI ie a := by From 812a6a6ab5d53f702442e5ef30fe0a8b235a7191 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:08:47 -0400 Subject: [PATCH 149/362] UNITY: integrate Bump repair repair-11fbc1fb04ce50b6 --- HoTTLean/Grothendieck/IsPullback.lean | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index 3bb28158..31268595 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -74,8 +74,12 @@ variable {x y : C} (f : x ⟶ y) (pt fst x) m2 ≫ m1 +-- The fiber transports reduce through bundled category morphisms. +set_option backward.isDefEq.respectTransparency false in theorem liftMapFiber_id (x : C) : liftMapFiber w (𝟙 x) = eqToHom (by simp) := by - simp [eqToHom_map] + simp + rw [eqToHom_map] + simp theorem liftMapFiber_comp {x y z} (f : x ⟶ y) (g : y ⟶ z) : liftMapFiber w (f ≫ g) = From 1c21d552da33e9da37816933256c93ac4a4fe1a1 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:12:43 -0400 Subject: [PATCH 150/362] UNITY: integrate Bump repair repair-7c4d9a794caeb451 --- HoTTLean/Model/Natural/NaturalModel.lean | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 617ac658..6d360686 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -914,11 +914,14 @@ lemma toI_comp_i2 : ie.toI a ≫ ie.i2 = ym(M.disp _) ≫ ii.toK a := lemma toI_comp_left {Δ} (σ : Δ ⟶ Γ) : toI ie (ym(σ) ≫ a) = ym(ii.motiveSubst σ a) ≫ toI ie a := by - dsimp [toI] apply ie.i_isPullback.hom_ext - · simp [motiveSubst] - · simp [toK_comp_left, motiveSubst, substWk, substCons] - rfl + · simp only [Category.assoc, toI_comp_i1, motiveSubst] + exact (M.substWk_var _ _ _ _).symm + · simp only [Category.assoc, toI_comp_i2, toK_comp_left, motiveSubst] + -- Unfold the context definitions only for this projection rewrite. + rw! (transparency := .default) [substWk_disp_functor_map_assoc] + dsimp only [motiveCtx] + congr 2 theorem motiveCtx_isPullback : IsPullback (ie.toI a) ym(M.disp _) ie.i2 (toK ii a) := From 1b389bfc4c22e4d0aeb14110efe58da836d0295c Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:14:24 -0400 Subject: [PATCH 151/362] UNITY: integrate Bump repair repair-769c4c169a978bba --- HoTTLean/Grothendieck/IsPullback.lean | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index 31268595..89b3f4a6 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -81,15 +81,17 @@ theorem liftMapFiber_id (x : C) : liftMapFiber w (𝟙 x) = eqToHom (by simp) := rw [eqToHom_map] simp +-- As for the identity law, the fiber transport crosses bundled Cat morphisms. +set_option backward.isDefEq.respectTransparency false in theorem liftMapFiber_comp {x y z} (f : x ⟶ y) (g : y ⟶ z) : liftMapFiber w (f ≫ g) = eqToHom (by simp) - ≫ (A.map (snd.map g)).map (liftMapFiber w f) + ≫ (A.map (snd.map g)).toFunctor.map (liftMapFiber w f) ≫ liftMapFiber w g := by - have hgNatNatF := (eqToHom ((eqToHom w).naturality g).symm).naturality (fst.map f).fiber - have h := congr_arg (λ x ↦ x ≫ ((eqToHom w).app z).map (fst.map g).fiber) hgNatNatF + have hgNatNatF := (eqToHom ((eqToHom w).naturality g).symm).toNatTrans.naturality (fst.map f).fiber + have h := congr_arg (λ x ↦ x ≫ ((eqToHom w).app z).toFunctor.map (fst.map g).fiber) hgNatNatF dsimp at h - simp only [Category.assoc, eqToHom_app ((eqToHom w).naturality g).symm] at h + simp only [Category.assoc, Cat.Hom₂.eqToHom_toNatTrans, eqToHom_app] at h simp [eqToHom_map, h] variable (fst) (snd) From 056eb5c85479769d9292aa00ffdc5a2187dbb33b Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:17:21 -0400 Subject: [PATCH 152/362] UNITY: integrate Bump repair repair-294660c55a4f40f4 --- HoTTLean/Grothendieck/IsPullback.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index 89b3f4a6..4d2787a5 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -108,7 +108,7 @@ def lift : C ⥤ Grothendieck A := functorTo snd @[simp] theorem lift_obj_fiber (x) : ((lift fst snd w).obj x).fiber = liftObjFiber w x := by - simp [lift] + rfl @[simp] theorem lift_map_base {x y} (f : x ⟶ y) : ((lift fst snd w).map f).base = snd.map f := by From 8daf51c94b047d4783f94962267cffc30046704d Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:20:17 -0400 Subject: [PATCH 153/362] UNITY: integrate Bump repair repair-b8870ecf94757186 --- HoTTLean/Grothendieck/IsPullback.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index 4d2787a5..4ae0e35e 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -112,7 +112,7 @@ def lift : C ⥤ Grothendieck A := functorTo snd @[simp] theorem lift_map_base {x y} (f : x ⟶ y) : ((lift fst snd w).map f).base = snd.map f := by - simp [lift] + rfl @[simp] theorem lift_map_fiber {x y} (f : x ⟶ y) : ((lift fst snd w).map f).fiber = liftMapFiber w f := by From fbea30a7af2716a785bce21e20beb8ab9583c9c8 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:21:54 -0400 Subject: [PATCH 154/362] UNITY: integrate Bump repair repair-c6dc5981fc8f5c64 --- HoTTLean/Model/Natural/NaturalModel.lean | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 6d360686..e02737b7 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -943,8 +943,7 @@ def equivFst (pair : y(Γ) ⟶ ie.iFunctor.obj X) : lemma equivFst_comp_left (pair : y(Γ) ⟶ ie.iFunctor.obj X) {Δ} (σ : Δ ⟶ Γ) : ie.equivFst (ym(σ) ≫ pair) = ym(σ) ≫ ie.equivFst pair := by - dsimp [equivFst] - rw [UvPoly.Equiv.fst_comp_left] + exact UvPoly.Equiv.fst_comp_left ie.iUvPoly X pair ym(σ) def equivSnd (pair : y(Γ) ⟶ ie.iFunctor.obj X) : y(ii.motiveCtx (equivFst ie pair)) ⟶ X := From d3363ab57fe047016ebe461e3fe7fdfa2c833eb7 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:25:01 -0400 Subject: [PATCH 155/362] UNITY: integrate Bump repair repair-b414462ccd9099e9 --- HoTTLean/Grothendieck/IsPullback.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index 4ae0e35e..d5b2c7b4 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -116,7 +116,7 @@ def lift : C ⥤ Grothendieck A := functorTo snd @[simp] theorem lift_map_fiber {x y} (f : x ⟶ y) : ((lift fst snd w).map f).fiber = liftMapFiber w f := by - simp [lift] + rfl @[simp] theorem fac_right : lift fst snd w ⋙ Grothendieck.forget A = snd := by apply CategoryTheory.Functor.ext From 49e2b82689a80c19af7f2c1599ee2027c7207369 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:28:26 -0400 Subject: [PATCH 156/362] UNITY: integrate Bump repair repair-f7c89c65203fa70d --- HoTTLean/Model/Natural/NaturalModel.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index e02737b7..10ab788a 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -949,6 +949,8 @@ def equivSnd (pair : y(Γ) ⟶ ie.iFunctor.obj X) : y(ii.motiveCtx (equivFst ie pair)) ⟶ X := UvPoly.Equiv.snd' ie.iUvPoly X pair (ie.motiveCtx_isPullback' _).flip +-- The polynomial functor and its object need semireducible unfolding for rewriting. +set_option backward.isDefEq.respectTransparency false in lemma equivSnd_comp_left (pair : y(Γ) ⟶ ie.iFunctor.obj X) {Δ} (σ : Δ ⟶ Γ) : ie.equivSnd (ym(σ) ≫ pair) = From d5c9fc735b13eb96eacc681e0cdfc8969c22c04f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:30:58 -0400 Subject: [PATCH 157/362] UNITY: integrate Bump repair repair-fe3830d4d138aa87 --- HoTTLean/Grothendieck/IsPullback.lean | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index d5b2c7b4..5e1ff59b 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -119,16 +119,16 @@ def lift : C ⥤ Grothendieck A := functorTo snd rfl @[simp] theorem fac_right : lift fst snd w ⋙ Grothendieck.forget A = snd := by - apply CategoryTheory.Functor.ext - · simp - · simp + exact CategoryTheory.Functor.hext (fun _ => rfl) (fun _ _ _ => HEq.rfl) +-- Match the bundled Cat projections in the fiber transport equations. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem fac_left : lift fst snd w ⋙ Grothendieck.toPCat A = fst := by apply CategoryTheory.Functor.ext · intro x y f apply Grothendieck.Hom.ext · simp [eqToHom_map, PCat.eqToHom_base_map, - Functor.congr_hom (eqToHom_app w y) (point fst f)] + Functor.congr_hom (congrArg Cat.Hom.toFunctor (eqToHom_app w y)) (point fst f)] · have h := Functor.congr_hom w f simp only [PCat.forgetToCat_map, Functor.comp_map] at h simp [h] @@ -139,6 +139,8 @@ def lift : C ⥤ Grothendieck A := functorTo snd · simp [h] · simp [Cat.eqToHom_obj] +-- Reduce the bundled fiber maps of identity transports. +set_option backward.isDefEq.respectTransparency false in theorem lift_uniq (m : C ⥤ Grothendieck A) (hl : m ⋙ Grothendieck.toPCat A = fst) (hr : m ⋙ Grothendieck.forget A = snd) : @@ -152,13 +154,12 @@ theorem hom_ext {m n : C ⥤ Grothendieck A} (hl : m ⋙ Grothendieck.toPCat A = n ⋙ Grothendieck.toPCat A) (hr : m ⋙ Grothendieck.forget A = n ⋙ Grothendieck.forget A) : m = n := by - rw [lift_uniq (m ⋙ toPCat A) (m ⋙ forget A) ?_ m rfl rfl, - lift_uniq (n ⋙ toPCat A) (n ⋙ forget A) ?_ n rfl rfl] - rw! [hl, hr] - . show n ⋙ (toPCat A ⋙ PCat.forgetToCat) = _ - rw [toPCat_forgetToCat, Functor.assoc] - . show m ⋙ (toPCat A ⋙ PCat.forgetToCat) = _ - rw [toPCat_forgetToCat, Functor.assoc] + have wm : (m ⋙ toPCat A) ⋙ PCat.forgetToCat = (m ⋙ forget A) ⋙ A := by + rw [Functor.assoc, toPCat_forgetToCat, Functor.assoc] + have wn : (n ⋙ toPCat A) ⋙ PCat.forgetToCat = (n ⋙ forget A) ⋙ A := by + rw [Functor.assoc, toPCat_forgetToCat, Functor.assoc] + rw [lift_uniq _ _ wm m rfl rfl, lift_uniq _ _ wn n rfl rfl] + congr 1 def aux {C : Type*} [inst : Category C] (Cn : C ⥤ PCat) (Cw : C ⥤ Γ) (hC : Cn ⋙ forget (𝟭 Cat) = Cw ⋙ A) : From ae36e6ba437ba93387045a75e4275a34c12dfd5f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:34:03 -0400 Subject: [PATCH 158/362] UNITY: integrate Bump repair repair-f0913881abbf0771 --- HoTTLean/Model/Natural/NaturalModel.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 10ab788a..b6a3564d 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -989,7 +989,8 @@ lemma equivFst_verticalNatTrans_app {Γ : Ctx} {X : Psh Ctx} ie.equivFst pair = UvPoly.Equiv.fst (UvPoly.id M.Tm) X (pair ≫ ie.verticalNatTrans.app X) := by dsimp [equivFst, verticalNatTrans] - rw [← UvPoly.fst_verticalNatTrans_app] + exact (UvPoly.fst_verticalNatTrans_app (UvPoly.id M.Tm) ie.iUvPoly + ie.comparison (by simp [iUvPoly]) X pair).symm lemma equivSnd_verticalNatTrans_app {Γ : Ctx} {X : Psh Ctx} (pair : y(Γ) ⟶ ie.iFunctor.obj X) : From f409f035e4e1ba079cb87a192642b481756ce266 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:35:53 -0400 Subject: [PATCH 159/362] UNITY: integrate Bump repair command-dad10c1c358cea4d --- HoTTLean/Grothendieck/Groupoidal/IsPullback.lean | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/HoTTLean/Grothendieck/Groupoidal/IsPullback.lean b/HoTTLean/Grothendieck/Groupoidal/IsPullback.lean index 20f2df7c..74b711f4 100644 --- a/HoTTLean/Grothendieck/Groupoidal/IsPullback.lean +++ b/HoTTLean/Grothendieck/Groupoidal/IsPullback.lean @@ -51,7 +51,7 @@ variable {Γ : Type u} [Category.{v} Γ] (A : Γ ⥤ Grpd.{v₁,u₁}) -/ def toPGrpd : ∫(A) ⥤ PGrpd.{v₁,u₁} := PGrpd.functorTo (forget ⋙ A) (fun x => x.fiber) (fun f => f.fiber) - (by simp) (by simp [forget_map, Hom.base]) + (by intro x; exact id_fiber x) (by intros; exact comp_fiber _ _) @[simp] theorem toPGrpd_obj_base (x) : ((toPGrpd A).obj x).base = A.obj x.base := rfl @@ -71,6 +71,8 @@ theorem toPGrpd_forgetToGrpd : toPGrpd A ⋙ PGrpd.forgetToGrpd = forget ⋙ A : theorem toPGrpd_forgetToPCat : toPGrpd A ⋙ PGrpd.forgetToPCat = (Grothendieck.toPCat _) := rfl +-- The two Grothendieck domains use definitionally equal category instances. +set_option backward.isDefEq.respectTransparency false in /-- We also provide a definition of `toPGrpd` as the universal lift of the pullback `PGrpd`. @@ -152,9 +154,7 @@ variable (A : Γ ⥤ Grpd.{v₁,u₁}) (α : Γ ⥤ PGrpd.{v₁,u₁}) (h : α -/ def sec : Γ ⥤ ∫(A) := Groupoidal.functorTo (𝟭 _) (fun x => PGrpd.objFiber' h x) (fun f => PGrpd.mapFiber' h f) - (fun x => by simp) (fun f g => by - subst h - simp [PGrpd.mapFiber', PGrpd.mapFiber'EqToHom]) + (fun _ => PGrpd.mapFiber'_id h) (fun f g => PGrpd.mapFiber'_comp' h f g) @[simp] lemma sec_obj_base (x) : ((sec A α h).obj x).base = x := rfl @@ -175,13 +175,9 @@ def sec : Γ ⥤ ∫(A) := · rw [Functor.assoc, toPGrpd_forgetToGrpd, sec, ← Functor.assoc, h] rfl · intro x - simp [toPGrpd_obj_fiber, PGrpd.objFiber', PGrpd.objFiber, Grpd.eqToHom_obj, - PGrpd.objFiber'EqToHom] + exact PGrpd.objFiber'_heq h · intro x y f - simp only [Functor.comp_map, toPGrpd_map_fiber, sec_map_fiber, PGrpd.mapFiber', - Grpd.eqToHom_hom, PGrpd.mapFiber'EqToHom, PGrpd.objFiber'EqToHom] - rw! [eqToHom_comp_heq] - simp + exact PGrpd.mapFiber'_heq h f @[simp] def sec_forget : sec A α h ⋙ forget = 𝟭 _ := rfl From 41cb248aa1b236be04f123ef0d63cc010023fc38 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:39:11 -0400 Subject: [PATCH 160/362] UNITY: integrate Bump repair repair-b874a7adfb59807d --- HoTTLean/Model/Natural/NaturalModel.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index b6a3564d..52be0686 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -992,6 +992,8 @@ lemma equivFst_verticalNatTrans_app {Γ : Ctx} {X : Psh Ctx} exact (UvPoly.fst_verticalNatTrans_app (UvPoly.id M.Tm) ie.iUvPoly ie.comparison (by simp [iUvPoly]) X pair).symm +-- The pullback projections require semireducible unfolding during rewriting. +set_option backward.isDefEq.respectTransparency false in lemma equivSnd_verticalNatTrans_app {Γ : Ctx} {X : Psh Ctx} (pair : y(Γ) ⟶ ie.iFunctor.obj X) : UvPoly.Equiv.snd' (UvPoly.id M.Tm) X (pair ≫ ie.verticalNatTrans.app X) From f1ae99337bf0664638f388d6636b954a585ab269 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:45:49 -0400 Subject: [PATCH 161/362] UNITY: integrate Bump repair repair-8c26808479813eca --- HoTTLean/Model/Natural/NaturalModel.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 52be0686..bb3dc6dc 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1019,6 +1019,8 @@ lemma equivSnd_verticalNatTrans_app {Γ : Ctx} {X : Psh Ctx} simp [reflSubst] · simp [reflSubst] +-- Keep pullback projections at semireducible transparency during rewriting. +set_option backward.isDefEq.respectTransparency false in lemma equivMk_comp_verticalNatTrans_app {Γ : Ctx} {X : Psh Ctx} (a : y(Γ) ⟶ M.Tm) (x : y(ii.motiveCtx a) ⟶ X) : ie.equivMk a x ≫ (ie.verticalNatTrans).app X = From b60e2991b84c9e4f055e80d5a673171896f16345 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:49:09 -0400 Subject: [PATCH 162/362] UNITY: integrate Bump repair repair-0828199ce425b9e5 --- HoTTLean/Groupoids/Basic.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Basic.lean b/HoTTLean/Groupoids/Basic.lean index c5dedf2c..70308d96 100644 --- a/HoTTLean/Groupoids/Basic.lean +++ b/HoTTLean/Groupoids/Basic.lean @@ -21,8 +21,8 @@ namespace CategoryTheory.PGrpd def pGrpdToGroupoidalAsSmallFunctor : PGrpd.{v, v} ⥤ ∫(Grpd.asSmallFunctor.{w, v, v}) := Grothendieck.functorTo PGrpd.forgetToGrpd - (fun x => AsSmall.up.obj.{v, v, w} x.fiber) - (fun f => AsSmall.up.map f.fiber) + (fun x => ⟨x.fiber⟩) + (fun f => ⟨f.fiber⟩) (by aesop_cat) (by aesop_cat) From e4f89c8ea94f6db17c66ff22c28ed67eafdffa36 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:51:51 -0400 Subject: [PATCH 163/362] UNITY: integrate Bump repair repair-ad8a918c8c03186f --- HoTTLean/Model/Natural/NaturalModel.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index bb3dc6dc..ae575948 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1134,6 +1134,8 @@ Ty <-- y(motiveCtx) ----> i abbrev motive : y(Γ) ⟶ ie.iFunctor.obj N.Ty := ie.equivMk a C +-- The motive context and polynomial application need semireducible unfolding here. +set_option backward.isDefEq.respectTransparency false in lemma motive_comp_left : ym(σ) ≫ motive ie a C = motive ie (ym(σ) ≫ a) (ym(motiveSubst ii σ a) ≫ C) := by dsimp [motive, equivMk] From 999f8d095cee60070b164122ade551df807c5b2e Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:53:40 -0400 Subject: [PATCH 164/362] UNITY: integrate Bump repair repair-da0958fa7e1ebfbf --- HoTTLean/Groupoids/Basic.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Basic.lean b/HoTTLean/Groupoids/Basic.lean index 70308d96..21817760 100644 --- a/HoTTLean/Groupoids/Basic.lean +++ b/HoTTLean/Groupoids/Basic.lean @@ -29,7 +29,7 @@ def pGrpdToGroupoidalAsSmallFunctor : PGrpd.{v, v} ⥤ def groupoidalAsSmallFunctorToPGrpd : ∫(Grpd.asSmallFunctor.{w, v, v}) ⥤ PGrpd.{v,v} := PGrpd.functorTo Groupoidal.forget - (fun x => AsSmall.down.obj.{v, v, w} x.fiber) + (fun x => AsSmall.down.obj x.fiber) (fun f => AsSmall.down.map f.fiber) (by aesop_cat) (by aesop_cat) From 7cca1cd86a958ccc812ec4bb60d149ffc4f08a08 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:57:01 -0400 Subject: [PATCH 165/362] UNITY: integrate Bump repair command-d3e92ec8f87da27e --- HoTTLean/Groupoids/Basic.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Basic.lean b/HoTTLean/Groupoids/Basic.lean index 21817760..fa3ba26e 100644 --- a/HoTTLean/Groupoids/Basic.lean +++ b/HoTTLean/Groupoids/Basic.lean @@ -100,6 +100,8 @@ theorem toCoreAsSmallEquiv_apply_comp_right (A : Γ ⥤ coreAsSmall C) (F : C toCoreAsSmallEquiv (A ⋙ coreAsSmallFunctor F) = toCoreAsSmallEquiv A ⋙ F := by rfl +-- Restore transparency for the bundled groupoid coercion in this rewrite. +set_option backward.isDefEq.respectTransparency false in theorem toCoreAsSmallEquiv_symm_apply_comp_left (A : Γ ⥤ C) : toCoreAsSmallEquiv.symm (σ ⋙ A) = σ ⋙ toCoreAsSmallEquiv.symm A := by dsimp only [toCoreAsSmallEquiv, Equiv.symm_trans_apply, Equiv.symm_symm, Grpd.comp_eq_comp] From f7545b2e3863346a01bcd3d8dc6d4c9d24a819b1 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 02:58:30 -0400 Subject: [PATCH 166/362] UNITY: integrate Bump repair repair-a68276dccc224ac0 --- HoTTLean/Model/Natural/NaturalModel.lean | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index ae575948..55cf7f86 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1153,6 +1153,9 @@ lemma motive_comp_left : ym(σ) ≫ motive ie a C = slice_rhs 1 2 => rw [← ie.toI_comp_i2] simp +-- Keep the polynomial functor applications at semireducible transparency while +-- rewriting the coherent lift's naturality square. +set_option backward.isDefEq.respectTransparency false in def lift : y(Γ) ⟶ ie.iFunctor.obj N.Tm := i.weakPullback.coherentLift (reflCase a r) (motive ie a C) (by dsimp only [motive, equivMk, verticalNatTrans, reflCase] From 8743d3e7455ff7e1086ffe82ed49562f0ac44908 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:03:33 -0400 Subject: [PATCH 167/362] UNITY: integrate Bump repair repair-2555a60c013c4f68 --- HoTTLean/Model/Natural/NaturalModel.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 55cf7f86..d3ecd1fa 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1172,6 +1172,8 @@ def lift : y(Γ) ⟶ ie.iFunctor.obj N.Tm := simp · simp) +-- Allow the polynomial application and its functor object to unfold together. +set_option backward.isDefEq.respectTransparency false in lemma lift_comp_left {Δ} (σ : Δ ⟶ Γ) : i.lift (ym(σ) ≫ a) (ym(ii.motiveSubst σ a) ≫ C) (ym(σ) ≫ r) (by simp [r_tp, comp_reflSubst'_assoc]) = ym(σ) ≫ i.lift a C r r_tp := by From 1170ee92f6d1d3d0b7290810e1687b441eff991b Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:07:07 -0400 Subject: [PATCH 168/362] UNITY: integrate Bump repair command-194c8940c5ec2832 --- HoTTLean/Groupoids/IsPullback.lean | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/HoTTLean/Groupoids/IsPullback.lean b/HoTTLean/Groupoids/IsPullback.lean index c6b7383b..27524208 100644 --- a/HoTTLean/Groupoids/IsPullback.lean +++ b/HoTTLean/Groupoids/IsPullback.lean @@ -88,11 +88,13 @@ def isPullback_liftTm' : Functor.IsPullback theorem isPullback_liftTm'_in_Cat : IsPullback (Cat.homOf liftTm'.{v,max u (v+2)}) - tp'.{_,max u (v+2)} - tp'.{v+1,max u (v+2)} + (Cat.homOf tp'.{_,max u (v+2)}) + (Cat.homOf tp'.{v+1,max u (v+2)}) (Cat.homOf liftTy'.{v,max u (v+2)}) := Cat.isPullback rfl isPullback_liftTm' +-- Core.map and the bundled groupoid definitions need the earlier elaboration transparency. +set_option backward.isDefEq.respectTransparency false in /-- The small universes form pullbacks Tm.{v} ------------ liftTm ---------> Tm.{v+1} @@ -105,7 +107,7 @@ The small universes form pullbacks -/ theorem liftTm_isPullback : IsPullback liftTm.{v,max u (v+2)} U.tp.{v, max u (v+2)} U.tp.{v+1, max u (v+2)} liftTy.{v,max u (v+2)} := by - convert Functor.map_isPullback Core.map isPullback_liftTm'_in_Cat.{v,u} + exact Functor.map_isPullback Core.map isPullback_liftTm'_in_Cat.{v,u} variable {Γ : Ctx} (A : Γ ⥤ Grpd) @@ -180,6 +182,8 @@ def isPullbackCoreAsSmall' : (PGrpd.forgetToGrpd) (Core.inclusion _ ⋙ AsSmall.down) := Functor.IsPullback.Paste.horiz rfl rfl isPullbackCoreAsSmall isPullbackAsSmall +-- The classifier paste uses bundled groupoids and core functor conversions. +set_option backward.isDefEq.respectTransparency false in /-- ∫ toCo...iv A ----> coreAsSmall PGrpd | | @@ -194,8 +198,12 @@ def isPullbackClassifierOfCoreAsSmall (A : Γ ⟶ Ty) : (by dsimp [functorToAsSmallEquiv] convert_to (toPGrpd (toCoreAsSmallEquiv A) ⋙ forgetToGrpd) ⋙ AsSmall.up = _ - erw [toPGrpd_forgetToGrpd, Core.functorToCoreEquiv_apply, Core.functorToCore_comp_inclusion, - Functor.assoc]) + · apply CategoryTheory.Functor.ext + · intros X Y f + simp + · intro x; rfl + · erw [toPGrpd_forgetToGrpd, Core.functorToCoreEquiv_apply, Core.functorToCore_comp_inclusion, + Functor.assoc]) (isPullbackClassifierOfAsSmall (toCoreAsSmallEquiv A)) (by dsimp [Ctx.coreAsSmallFunctor, Grpd.homOf] @@ -209,6 +217,8 @@ def isPullbackClassifierOfCoreAsSmall (A : Γ ⟶ Ty) : · rw [U.var, ← toCoreAsSmallEquiv_symm_apply_comp_left, ← toCoreAsSmallEquiv_symm_apply_comp_right, toPGrpd_forgetToGrpd]) +-- Unfold bundled groupoid morphisms when transferring the classifier square. +set_option backward.isDefEq.respectTransparency false in /-- The following square is a pullback in `Ctx` Ty.ext A --- Ty.var A ---> Tm @@ -222,8 +232,10 @@ def isPullbackClassifierOfCoreAsSmall (A : Γ ⟶ Ty) : Γ --------- A ------> Ty -/ theorem disp_pullback (A : Γ ⟶ Ty) : IsPullback (var A) forget tp A := by - convert Grpd.isPullback (isPullbackClassifierOfCoreAsSmall A) - simp + have h := Grpd.isPullback (isPullbackClassifierOfCoreAsSmall A) + change IsPullback (var A) forget tp (toCoreAsSmallEquiv.symm (toCoreAsSmallEquiv A)) at h + rw [toCoreAsSmallEquiv.symm_apply_apply] at h + exact h end IsPullback end GroupoidModel From f05a27c47e77efea6d75482d7637ab1d05fe7c1e Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:09:06 -0400 Subject: [PATCH 169/362] UNITY: integrate Bump repair repair-653d8bb312d57271 --- HoTTLean/Model/Natural/NaturalModel.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index d3ecd1fa..14e84421 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1190,6 +1190,8 @@ lemma lift_comp_left {Δ} (σ : Δ ⟶ Γ) : i.lift (ym(σ) ≫ a) (ym(ii.motive · simp · rw [motive_comp_left] +-- Keep the polynomial objects and motive context at the same transparency. +set_option backward.isDefEq.respectTransparency false in lemma equivFst_lift_eq : ie.equivFst (i.lift a C r r_tp) = a := calc ie.equivFst (i.lift a C r r_tp) _ = ie.equivFst (i.lift a C r r_tp ≫ ie.iFunctor.map N.tp) := by From 96b63f59c3c0d97c940eaa20ca6e69d4dd13eb8c Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:10:54 -0400 Subject: [PATCH 170/362] UNITY: integrate Bump repair command-a22a29e2eb76d81e --- HoTTLean/Groupoids/UnstructuredModel.lean | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HoTTLean/Groupoids/UnstructuredModel.lean b/HoTTLean/Groupoids/UnstructuredModel.lean index c7a538ec..5c725f3e 100644 --- a/HoTTLean/Groupoids/UnstructuredModel.lean +++ b/HoTTLean/Groupoids/UnstructuredModel.lean @@ -40,6 +40,8 @@ def asSmallClosedType : (tensorUnit _ : Ctx) ⟶ Ty.{v+1, max u (v+2)} := toCoreAsSmallEquiv.symm ((Functor.const _).obj (Grpd.of (Core (AsSmall.{v+1} Grpd.{v,v})))) +-- The fiber maps reduce through bundled universe definitions in the functor laws. +set_option backward.isDefEq.respectTransparency false in def isoExtAsSmallClosedTypeHom : Core (AsSmall.{max u (v+2)} Grpd.{v,v}) ⥤ ∫(toCoreAsSmallEquiv (asSmallClosedType.{v, max u (v + 2)})) where @@ -108,6 +110,8 @@ theorem substWk_eq (A : Γ ⟶ U.Ty.{v}) (σA : Δ ⟶ U.Ty.{v}) (eq) : simp [Grpd.comp_eq_comp, Functor.assoc] erw [pre_comp_forget, ← Functor.assoc, map_forget] +-- Unfold the bundled universe projections while checking the section equation. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem sec_eq {Γ : Ctx} (α : Γ ⟶ U.{v}.Tm) (A : Γ ⟶ U.{v}.Ty) (hα : α ≫ U.tp = A) : U.sec _ α hα = sec (toCoreAsSmallEquiv A) (toCoreAsSmallEquiv α) (by rw [← hα, Grpd.comp_eq_comp, tp, toCoreAsSmallEquiv_apply_comp_right]) := by From ca5072e775fcab035a39f2dfe23991249f49a67a Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:18:42 -0400 Subject: [PATCH 171/362] UNITY: integrate Bump repair repair-ee0d5302afc390df --- HoTTLean/Model/Natural/NaturalModel.lean | 1 + 1 file changed, 1 insertion(+) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 14e84421..5ed1195d 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1210,6 +1210,7 @@ lemma equivFst_lift_eq : ie.equivFst (i.lift a C r r_tp) = a := def j : y(ii.motiveCtx a) ⟶ N.Tm := eqToHom (by rw [equivFst_lift_eq]) ≫ ie.equivSnd (i.lift a C r r_tp) +set_option backward.isDefEq.respectTransparency false in /-- Typing for elimination rule `J` -/ lemma j_tp : j i a C r r_tp ≫ N.tp = C := by simp only [j, Category.assoc, IdElimBase.equivSnd, ← UvPoly.Equiv.snd'_comp_right] From 8bf1cf0715e2de75f4ef5647b45547572d5ce44e Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:21:45 -0400 Subject: [PATCH 172/362] UNITY: integrate Bump repair repair-b120d84e18e05777 --- HoTTLean/Model/Natural/NaturalModel.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 5ed1195d..c6b50be9 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1220,6 +1220,8 @@ lemma j_tp : j i a C r r_tp ≫ N.tp = C := by rw! [equivFst_lift_eq] simp +-- Unfold dependent polynomial projections consistently while rewriting the lift. +set_option backward.isDefEq.respectTransparency false in lemma comp_j : ym(ii.motiveSubst σ _) ≫ j i a C r r_tp = j i (ym(σ) ≫ a) (ym(ii.motiveSubst σ _) ≫ C) (ym(σ) ≫ r) (by simp [r_tp, IdIntro.comp_reflSubst'_assoc]) := by From 01ca321e2e4d4d163cc2c6cc7f6fa53ee8d03b73 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:25:11 -0400 Subject: [PATCH 173/362] UNITY: integrate Bump repair repair-052865faccac1787 --- HoTTLean/Model/Natural/NaturalModel.lean | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index c6b50be9..aa8feadb 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1289,11 +1289,14 @@ variable {Γ} (ar : y(Γ) ⟶ (UvPoly.id M.Tm).functor.obj N.Tm) include hrC in lemma fst_eq_fst : UvPoly.Equiv.fst _ _ ar = ie.equivFst aC := + -- The polynomial functor notation requires default transparency for these rewrites. calc _ _ = UvPoly.Equiv.fst _ _ (ar ≫ (UvPoly.id M.Tm).functor.map N.tp) := by - rw [UvPoly.Equiv.fst_comp_right] + rw! (transparency := .default) [UvPoly.Equiv.fst_comp_right] + rfl _ = UvPoly.Equiv.fst _ _ (aC ≫ (IdElimBase.verticalNatTrans ie).app N.Ty) := by - rw [hrC] + rw! (transparency := .default) [hrC] + rfl _ = _ := by rw [ie.equivFst_verticalNatTrans_app] From 38c4b22c4689b3ef1b21b0cdecf458d57728aa3d Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:27:33 -0400 Subject: [PATCH 174/362] UNITY: integrate Bump repair command-a22a29e2eb76d81e --- HoTTLean/Groupoids/UnstructuredModel.lean | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/HoTTLean/Groupoids/UnstructuredModel.lean b/HoTTLean/Groupoids/UnstructuredModel.lean index 5c725f3e..0813b030 100644 --- a/HoTTLean/Groupoids/UnstructuredModel.lean +++ b/HoTTLean/Groupoids/UnstructuredModel.lean @@ -60,17 +60,9 @@ def isoExtAsSmallClosedTypeInv : ∫(toCoreAsSmallEquiv (asSmallClosedType.{v, max u (v + 2)})) ⥤ Core (AsSmall.{max u (v+2)} Grpd.{v,v}) where obj X := ⟨AsSmall.up.obj (AsSmall.down.obj.{_,_,v+1} X.fiber.of)⟩ - map {X Y} F := ⟨{ - hom := AsSmall.up.map.{_,_,max u (v+2)} - (AsSmall.down.map F.fiber.iso.hom) - inv := AsSmall.up.map.{_,_,max u (v+2)} - (AsSmall.down.map F.fiber.iso.inv) - hom_inv_id := by - simp only [← Functor.map_comp, Iso.hom_inv_id] - rfl - inv_hom_id := by - simp only [← Functor.map_comp, Iso.inv_hom_id] - rfl }⟩ + map {X Y} F := by + let e : X.fiber.of ≅ Y.fiber.of := F.fiber.iso + exact ⟨(AsSmall.down ⋙ AsSmall.up).mapIso e⟩ def isoExtAsSmallClosedType : Ty.{v,max u (v+2)} @@ -98,14 +90,17 @@ variable {Γ : Grpd} {C : Type (v+1)} [Category.{v} C] {Δ : Grpd} (σ : Δ ⟶ namespace U +-- Reduce the universe projections when applying the pullback equations. +set_option backward.isDefEq.respectTransparency false in theorem substWk_eq (A : Γ ⟶ U.Ty.{v}) (σA : Δ ⟶ U.Ty.{v}) (eq) : U.substWk σ A σA eq = map (eqToHom (by subst eq; rfl)) ⋙ pre (toCoreAsSmallEquiv A) σ := by apply (U.disp_pullback A).hom_ext · rw [substWk_var] simp [var, Grpd.comp_eq_comp] - rw [← toCoreAsSmallEquiv_symm_apply_comp_left, Functor.assoc, pre_toPGrpd, + erw [← toCoreAsSmallEquiv_symm_apply_comp_left, Functor.assoc, pre_toPGrpd, map_eqToHom_toPGrpd] + rfl · rw [substWk_disp] simp [Grpd.comp_eq_comp, Functor.assoc] erw [pre_comp_forget, ← Functor.assoc, map_forget] From 1e22f10699fe2e54d50e20baed01f6121bb27890 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:29:16 -0400 Subject: [PATCH 175/362] UNITY: integrate Bump repair repair-559d11b02fb77476 --- HoTTLean/Model/Natural/NaturalModel.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index aa8feadb..2f4453c6 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1305,7 +1305,7 @@ abbrev motive : y(ii.motiveCtx (ie.equivFst aC)) ⟶ N.Ty := lemma comp_motive {Δ} (σ : Δ ⟶ Γ) : motive (ym(σ) ≫ aC) = ym(ii.motiveSubst σ (ie.equivFst aC)) ≫ motive aC := by - simp only [motive, equivSnd_comp_left ie aC σ] + exact equivSnd_comp_left ie aC σ abbrev reflCase : y(Γ) ⟶ N.Tm := UvPoly.Equiv.snd' _ _ ar (Id.reflCase_aux _) From c20af8ff00864ed240faf05b9e41b1122a4d0d90 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:40:01 -0400 Subject: [PATCH 176/362] UNITY: integrate Bump repair repair-34cf5208d5093fd5 --- HoTTLean/Model/Natural/NaturalModel.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 2f4453c6..fe00e8b9 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1311,7 +1311,8 @@ abbrev reflCase : y(Γ) ⟶ N.Tm := UvPoly.Equiv.snd' _ _ ar (Id.reflCase_aux _) lemma comp_reflCase {Δ} (σ : Δ ⟶ Γ) : reflCase (ym(σ) ≫ ar) = ym(σ) ≫ reflCase ar := by simp only [reflCase] - rw [UvPoly.Equiv.snd'_comp_left (UvPoly.id M.Tm) N.Tm ar + -- The polynomial functor notation requires default transparency for this rewrite. + rw! (transparency := .default) [UvPoly.Equiv.snd'_comp_left (UvPoly.id M.Tm) N.Tm ar (Id.reflCase_aux (UvPoly.Equiv.fst (UvPoly.id M.Tm) N.Tm ar)) ym(σ) (Id.reflCase_aux _)] congr 1 From 3ac010bfcbc7fc448908f9800250c79700db6f2f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:43:50 -0400 Subject: [PATCH 177/362] UNITY: integrate Bump repair repair-0989eca51cf9b7f6 --- HoTTLean/Model/Natural/NaturalModel.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index fe00e8b9..359c7621 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1325,7 +1325,8 @@ include hrC in lemma reflCase_comp_tp : reflCase ar ≫ N.tp = ym(ii.reflSubst (ie.equivFst aC)) ≫ motive aC := by dsimp [reflCase, motive] - rw! [← UvPoly.Equiv.snd'_comp_right, hrC] + -- Polynomial functor notation requires default transparency for these rewrites. + rw! (transparency := .default) [← UvPoly.Equiv.snd'_comp_right, hrC] have H : IsPullback ym(M.disp (ii.mkId (ym(M.disp (ie.equivFst aC ≫ M.tp)) ≫ ie.equivFst aC) (M.var (ie.equivFst aC ≫ M.tp)) (by simp)) ≫ From 0b4fb06c15461fa3d946004d3ebd6eb24f57e9eb Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:49:28 -0400 Subject: [PATCH 178/362] UNITY: integrate Bump repair repair-f0879efcdc409e8a --- HoTTLean/Groupoids/Sigma.lean | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index dcdc59ab..6619debe 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -58,11 +58,13 @@ theorem ιNatTrans_app_base (a : sigmaObj B x) : ((ιNatTrans f).app a.base) = h theorem sigmaMap_map_fiber_aux {a b : sigmaObj B x} {p : a ⟶ b} : (((ι A y ⋙ B)).map ((sigmaMap B f).map p).base).obj ((sigmaMap B f).obj a).fiber = (B.map ((ιNatTrans f).app (base b))).obj (((ι A x ⋙ B).map p.base).obj a.fiber) := by - simp only [sigmaObj, sigmaMap, Functor.comp_obj, Functor.comp_map, pre_map_base, map_map_base, - pre_obj_fiber, map_obj_fiber, Functor.whiskerRight_app] + change (B.map ((ι A y).map ((A.map f).map p.base))).obj + ((B.map ((ιNatTrans f).app a.base)).obj a.fiber) = + (B.map ((ιNatTrans f).app b.base)).obj + ((B.map ((ι A x).map p.base)).obj a.fiber) simp only [← Functor.comp_obj, ← Grpd.comp_eq_comp, ← Functor.map_comp] - congr 2 - exact ((ιNatTrans f).naturality p.base).symm + exact congrArg (fun k => (B.map k).obj a.fiber) + ((ιNatTrans f).naturality p.base).symm @[simp] theorem sigmaMap_map_fiber {a b : sigmaObj B x} {p : a ⟶ b} : ((sigmaMap B f).map p).fiber = From 17da3f81ca56a503ad4653512f664b503fb29f92 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:51:01 -0400 Subject: [PATCH 179/362] UNITY: integrate Bump repair repair-0989eca51cf9b7f6 --- HoTTLean/Model/Natural/NaturalModel.lean | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 359c7621..eecfd278 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1321,6 +1321,8 @@ lemma comp_reflCase {Δ} (σ : Δ ⟶ Γ) : reflCase (ym(σ) ≫ ar) = ym(σ) simp · simp +-- Keep dependent pullback projections at semireducible transparency. +set_option backward.isDefEq.respectTransparency false in include hrC in lemma reflCase_comp_tp : reflCase ar ≫ N.tp = ym(ii.reflSubst (ie.equivFst aC)) ≫ motive aC := by @@ -1332,8 +1334,8 @@ lemma reflCase_comp_tp : reflCase ar ≫ N.tp = (M.var (ie.equivFst aC ≫ M.tp)) (by simp)) ≫ M.disp (ie.equivFst aC ≫ M.tp)) (ie.toI (ie.equivFst aC)) (UvPoly.Equiv.fst ie.iUvPoly N.Ty aC) ie.iUvPoly.p := by - convert (ie.motiveCtx_isPullback' (ie.equivFst aC)).flip - simp + change IsPullback _ _ (ie.equivFst aC) _ + simpa only [Functor.map_comp] using (ie.motiveCtx_isPullback' (ie.equivFst aC)).flip -- FIXME: `transparency := .default` is like `erw` and should be avoided rw! (transparency := .default) [UvPoly.snd'_verticalNatTrans_app (R := y(ii.motiveCtx (ie.equivFst aC))) @@ -1346,12 +1348,13 @@ lemma reflCase_comp_tp : reflCase ar ≫ N.tp = congr 1 apply (M.disp_pullback _).hom_ext <;> simp only [reflSubst, substCons_var, substCons_disp_functor_map, substCons_var] - · simp [← ie.toI_comp_i1 (ie.equivFst aC), fst_eq_fst ar aC hrC, mkRefl] + · conv => lhs; rw [← toI_comp_i1 ie] + simp [comparison, mkRefl] + exact congrArg (fun f => f ≫ ii.refl) (fst_eq_fst ar aC hrC) · apply (M.disp_pullback _).hom_ext - · rw! [fst_eq_fst ar aC hrC] - slice_lhs 3 4 => rw [← ii.toK_comp_k1] + · slice_lhs 3 4 => rw [← ii.toK_comp_k1] slice_lhs 2 3 => rw [← ie.toI_comp_i2] - simp + simp [fst_eq_fst ar aC hrC] · simp def lift : y(Γ) ⟶ (IdElimBase.iFunctor ie).obj N.Tm := From 04fea0dde4bb68af720dd4f4318e86d2023ff426 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:55:00 -0400 Subject: [PATCH 180/362] UNITY: integrate Bump repair repair-69782f6ca2dbf4a2 --- HoTTLean/Model/Natural/NaturalModel.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index eecfd278..2e8274e9 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1371,7 +1371,7 @@ lemma lift_fst : lift i ar aC hrC ≫ ie.verticalNatTrans.app N.Tm = ar := by lemma lift_snd : lift i ar aC hrC ≫ ie.iFunctor.map N.tp = aC := by dsimp only [lift, equivMk] - rw [UvPoly.Equiv.mk'_comp_right] + rw! (transparency := .default) [UvPoly.Equiv.mk'_comp_right] apply UvPoly.Equiv.ext' ie.iUvPoly N.Ty · rw! [i.j_tp] rw [UvPoly.Equiv.snd'_mk'] From a116a34c9029c9b2cdf0177213ba72991790a5eb Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 03:59:17 -0400 Subject: [PATCH 181/362] UNITY: integrate Bump repair repair-7d5ca16f5ebf20eb --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 6619debe..318153b4 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -66,6 +66,8 @@ theorem sigmaMap_map_fiber_aux {a b : sigmaObj B x} {p : a ⟶ b} : exact congrArg (fun k => (B.map k).obj a.fiber) ((ιNatTrans f).naturality p.base).symm +-- Let the projection lemmas unfold the bundled groupoid in this proof. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem sigmaMap_map_fiber {a b : sigmaObj B x} {p : a ⟶ b} : ((sigmaMap B f).map p).fiber = eqToHom (sigmaMap_map_fiber_aux B f) ≫ (B.map ((ιNatTrans f).app (base b))).map p.fiber := by From abf77a116c473a1ece7d1831206a36af9b692801 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:00:53 -0400 Subject: [PATCH 182/362] UNITY: integrate Bump repair repair-fef6633ccfb1d835 --- HoTTLean/Model/Natural/NaturalModel.lean | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index 2e8274e9..ae4b85d1 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -1380,10 +1380,12 @@ lemma lift_snd : lift i ar aC hrC ≫ ie.iFunctor.map N.tp = aC := by exact (ie.motiveCtx_isPullback' _).flip · simp [equivFst] +-- Dependent pullback projections require semireducible unfolding. +set_option backward.isDefEq.respectTransparency false in lemma comp_lift {Δ} (σ : Δ ⟶ Γ) : ym(σ) ≫ lift i ar aC hrC = lift i (ym(σ) ≫ ar) (ym(σ) ≫ aC) (by simp [hrC]) := by dsimp [lift, equivMk] - rw [UvPoly.Equiv.mk'_comp_left ie.iUvPoly N.Tm (ie.equivFst aC) _ + rw! (transparency := .default) [UvPoly.Equiv.mk'_comp_left ie.iUvPoly N.Tm (ie.equivFst aC) _ (i.j (ie.equivFst aC) (motive aC) (reflCase ar) _) ym(σ) _ rfl (by simp only [iUvPoly_p]; exact (ie.motiveCtx_isPullback' _).flip)] congr 1 @@ -1392,7 +1394,7 @@ lemma comp_lift {Δ} (σ : Δ ⟶ Γ) : ym(σ) ≫ lift i ar aC hrC = rw [← h] congr 1 simp only [iUvPoly_p, Category.assoc] - apply (M.disp_pullback _).hom_ext + apply (M.disp_pullback _).hom_ext <;> try simp only [IsPullback.lift_fst, IsPullback.lift_snd] · simp [toI_comp_left, ← toI_comp_i1 ie] · apply (M.disp_pullback _).hom_ext · slice_rhs 3 4 => rw [← toK_comp_k1 ii] From 868e6aebdea11d14cce1216724515cbedd4b244e Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:06:10 -0400 Subject: [PATCH 183/362] UNITY: integrate Bump repair repair-0d4ca6ca32fe0f95 --- HoTTLean/Model/Natural/UHom.lean | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index 82277fa4..f7f42d6d 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -46,6 +46,8 @@ protected def pullbackHom (M : Universe Ctx) {Γ : Ctx} (A : y(Γ) ⟶ M.Ty) : mapTy := A pb := M.disp_pullback A +-- The pullback projections need semireducible unfolding during elaboration. +set_option backward.isDefEq.respectTransparency false in /-- Given `M : Universe`, a semantic type `A : y(Γ) ⟶ M.Ty`, and a substitution `σ : Δ ⟶ Γ`, construct a Hom for the substitution `A[σ]`. -/ @@ -54,11 +56,13 @@ def Hom.subst (M : Universe Ctx) Hom (M.pullback (ym(σ) ≫ A)) (M.pullback A) := let Aσ := ym(σ) ≫ A { mapTm := - (M.disp_pullback A).lift (M.var Aσ) ym(M.disp Aσ ≫ σ) (by aesop_cat) + (M.disp_pullback A).lift (M.var Aσ) ym(M.disp Aσ ≫ σ) (by + rw [(M.disp_pullback Aσ).w] + simp [Aσ, Category.assoc]) mapTy := ym(σ) pb := by - convert IsPullback.of_right' (M.disp_pullback Aσ) (M.disp_pullback A) - simp } + simpa [Universe.pullback, Aσ] using + IsPullback.of_right' (M.disp_pullback Aσ) (M.disp_pullback A) } def Hom.cartesianNatTrans {M N : Universe Ctx} (h : Hom M N) : M.Ptp ⟶ N.Ptp := From 4bf721ec9d85ca3ed50fecc84f6a1586eebfc8a4 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:08:43 -0400 Subject: [PATCH 184/362] UNITY: integrate Bump repair repair-8f7018d533f24f87 --- HoTTLean/Groupoids/Sigma.lean | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 318153b4..44683036 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -78,8 +78,10 @@ variable {B} @[simp] theorem sigmaMap_id_obj {p} : (sigmaMap B (𝟙 x)).obj p = p := by apply hext - · simp [sigmaMap] - · simp [sigmaMap, Grpd.eqToHom_obj] + · simp only [sigmaMap_obj_base, Grpd.map_id_obj] + · simp only [sigmaMap_obj_fiber, ιNatTrans_id_app, eqToHom_map, + Grpd.eqToHom_obj] + exact cast_heq _ _ @[simp] theorem sigmaMap_id_map {p1 p2} {hp2 : p2 = (sigmaMap B (𝟙 x)).obj p2} (f : p1 ⟶ p2) : From eea4d60dcaff864e59085eaf949202bd72d9318d Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:10:53 -0400 Subject: [PATCH 185/362] UNITY: integrate Bump repair repair-0247adef492a9c93 --- HoTTLean/Model/Natural/UHom.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index f7f42d6d..4f57003c 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -84,7 +84,7 @@ theorem Hom.mk_comp_cartesianNatTrans {M N : Universe Ctx} (h : Hom M N) refine this.trans ?_ simp [UvPoly.Equiv.mk']; congr 1 rw [← Category.assoc]; congr 1 - generalize_proofs _ h1 + generalize_proofs _ _ _ _ _ _ h1 apply h1.hom_ext <;> simp /- We have a 'nice', specific terminal object in `Ctx`, From 6c360a8f0fd99b0939cfbc23b9e3921199f761af Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:15:14 -0400 Subject: [PATCH 186/362] UNITY: integrate Bump repair repair-4592b92f0eb08991 --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 44683036..42a4d65e 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -83,6 +83,8 @@ variable {B} Grpd.eqToHom_obj] exact cast_heq _ _ +-- The projection and transport simp lemmas need to unfold the bundled groupoid. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem sigmaMap_id_map {p1 p2} {hp2 : p2 = (sigmaMap B (𝟙 x)).obj p2} (f : p1 ⟶ p2) : (sigmaMap B (𝟙 x)).map f = From 55c37817557baee53594fbb799f5ac9f304b9ad3 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:17:38 -0400 Subject: [PATCH 187/362] UNITY: integrate Bump repair repair-d6ddc5642484209d --- HoTTLean/Model/Natural/UHom.lean | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index 4f57003c..ae87ce08 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -149,7 +149,10 @@ def UHom.ofTarskiU (M : Universe Ctx) (U : y(𝟭_ Ctx) ⟶ M.Ty) (El : y(M.ext (Iso.refl _) (Iso.refl _) (Iso.refl _) - (by simp) (isTerminal_yUnit.hom_ext ..) + (by + change M.var U ≫ 𝟙 M.Tm = 𝟙 y(M.ext U) ≫ M.var U + simp only [Category.comp_id, Category.id_comp]) + (isTerminal_yUnit.hom_ext ..) (by simp) (by simp) /-! ## Universe embeddings -/ From 29995814f014b96f075414a1b25b6011c36c2897 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:20:17 -0400 Subject: [PATCH 188/362] UNITY: integrate Bump repair repair-18f6d6c42983960f --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 42a4d65e..fd9de25b 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -113,6 +113,8 @@ set_option backward.isDefEq.respectTransparency false in variable {z : Γ} {f} {g : y ⟶ z} +-- Unfold the bundled groupoid for the projection and transport lemmas. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem sigmaMap_comp_obj {p} : (sigmaMap B (f ≫ g)).obj p = (sigmaMap B g).obj ((sigmaMap B f).obj p) := by dsimp only [sigmaMap] From b463eaabf82f80ad6383b29a39fc316e901462e4 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:26:20 -0400 Subject: [PATCH 189/362] UNITY: integrate Bump repair repair-2eae2933a95bd2c5 --- HoTTLean/Model/Natural/UHom.lean | 1 + 1 file changed, 1 insertion(+) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index ae87ce08..acb7b060 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -255,6 +255,7 @@ theorem mk_comp_cartesianNatTrans {i j ij jlen} {Γ X} (A : y(Γ) ⟶ s[i].Ty) PtpEquiv.mk s[i] A B ≫ (s.cartesianNatTrans i j).app X = PtpEquiv.mk s[j] (A ≫ (s.homOfLe i j).mapTy) (ym(substCons _ (s[j].disp _) _ (s.unliftVar i j ij jlen A rfl) (by simp)) ≫ B) := by + unfold cartesianNatTrans convert Hom.mk_comp_cartesianNatTrans _ _ _ apply (IsPullback.paste_horiz (s[i].disp_pullback _) (s.homOfLe i j).pb).hom_ext · simp [unliftVar] From 572497e42c09e71dbfebf25e2b37d724c00d32b2 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:28:42 -0400 Subject: [PATCH 190/362] UNITY: integrate Bump repair repair-bd9069c1d118b8b9 --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index fd9de25b..7c2168af 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -124,6 +124,8 @@ set_option backward.isDefEq.respectTransparency false in ιNatTrans_comp_app, Functor.map_comp, eqToHom_map, Grpd.comp_eq_comp, Grpd.eqToHom_obj, cast_heq_iff_heq, heq_eq_eq] aesop_cat +-- Unfold bundled groupoids when elaborating dependent transport projections. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem sigmaMap_comp_map {B : ∫(A) ⥤ Grpd.{v₃,u₃}} {x y z : Γ} {f : x ⟶ y} {g : y ⟶ z} {p q : sigmaObj B x} (hpq : p ⟶ q) {h1 : (sigmaMap B (f ≫ g)).obj p = (sigmaMap B g).obj ((sigmaMap B f).obj p)} From cc47d8c61c241e7bdfc498c11703d3dd04a9b76f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:32:43 -0400 Subject: [PATCH 191/362] UNITY: integrate Bump repair repair-010bdef4ef354560 --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 7c2168af..c850cc74 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -193,6 +193,8 @@ lemma sigmaObj_naturality (x) : sigmaObj B (σ.obj x) = sigmaObj (pre A σ ⋙ B) x := sigma_naturality_obj _ _ _ +-- The rewrite crosses the bundled Grpd hom and its underlying functor. +set_option backward.isDefEq.respectTransparency false in lemma sigmaMap_naturality {x y : Δ} (f : x ⟶ y) : sigmaMap B (σ.map f) = Grpd.homOf (map (eqToHom (sigma_naturality_aux B σ x).symm)) ≫ sigmaMap (pre A σ ⋙ B) f ≫ From 1d0fdee822efb2e63fe3bfc760551f8f8f0eb72b Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:36:05 -0400 Subject: [PATCH 192/362] UNITY: integrate Bump repair repair-86d500b8b7e6ec98 --- HoTTLean/Model/Natural/UHom.lean | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index acb7b060..5ee1acb0 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -298,9 +298,12 @@ theorem mk_comp_cartesianNatTransTm {i0 i1 j0 j1 ii ilen jj jlen} theorem cartesianNatTransTm_fstProj {i0 i1 j0 j1 ii ilen jj jlen} : s.cartesianNatTransTm i0 i1 j0 j1 ii ilen jj jlen ≫ s[i1].uvPolyTp.fstProj s[j1].Tm = s[i0].uvPolyTp.fstProj s[j0].Tm ≫ (s.homOfLe i0 i1).mapTy := by - simp [cartesianNatTransTm] - slice_lhs 2 3 => apply UvPoly.map_fstProj - apply cartesianNatTrans_fstProj + let α := (s.cartesianNatTrans i0 i1 ii ilen).app s[j0].Tm + let f := (s.homOfLe j0 j1 jj jlen).mapTm + exact (Category.assoc α (s[i1].Ptp.map f) (s[i1].uvPolyTp.fstProj s[j1].Tm)).trans + ((congrArg (fun k => α ≫ k) (UvPoly.map_fstProj s[i1].uvPolyTp f)).trans + (s.cartesianNatTrans_fstProj (i := i0) (j := i1) (ij := ii) (jlen := ilen) + (X := s[j0].Tm))) def cartesianNatTransTy (i0 i1 j0 j1 : Nat) (i0len : i0 ≤ i1 := by get_elem_tactic) (i1len : i1 < s.length + 1 := by get_elem_tactic) @@ -320,9 +323,12 @@ theorem mk_comp_cartesianNatTransTy {i0 i1 j0 j1 ii ilen jj jlen} theorem cartesianNatTransTy_fstProj {i0 i1 j0 j1 ii ilen jj jlen} : s.cartesianNatTransTy i0 i1 j0 j1 ii ilen jj jlen ≫ s[i1].uvPolyTp.fstProj s[j1].Ty = s[i0].uvPolyTp.fstProj s[j0].Ty ≫ (s.homOfLe i0 i1).mapTy := by - simp only [cartesianNatTransTy] - slice_lhs 2 3 => apply UvPoly.map_fstProj - apply cartesianNatTrans_fstProj + let α := (s.cartesianNatTrans i0 i1 ii ilen).app s[j0].Ty + let f := (s.homOfLe j0 j1 jj jlen).mapTy + exact (Category.assoc α (s[i1].Ptp.map f) (s[i1].uvPolyTp.fstProj s[j1].Ty)).trans + ((congrArg (fun k => α ≫ k) (UvPoly.map_fstProj s[i1].uvPolyTp f)).trans + (s.cartesianNatTrans_fstProj (i := i0) (j := i1) (ij := ii) (jlen := ilen) + (X := s[j0].Ty))) theorem hom_comp_trans (s : UHomSeq Ctx) (i j k : Nat) (ij : i < j) (jk : j < k) (klen : k < s.length + 1) : From 6ef79f3510ba6237c2d96b8f8f3313adf47eceba Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:38:23 -0400 Subject: [PATCH 193/362] UNITY: integrate Bump repair repair-1d690a2929917bf0 --- HoTTLean/Groupoids/Sigma.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index c850cc74..78ae931a 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -255,8 +255,9 @@ lemma assocIso_hom_app_fiber {x y} (f : x ⟶ y) (p) : rfl @[simp] theorem assocIso_id {x} : - assocIso B (𝟙 x) = eqToIso (by simp [sigmaMap_id, Functor.id_comp]) := by + assocIso B (𝟙 x) = eqToIso (by simp [sigmaMap_id]; rfl) := by simp [assocIso, preNatIso_congr B (ιNatIso_id A x), preNatIso_eqToIso] + apply eqToIso_trans theorem assocIso_comp {x y z : Γ} (f : x ⟶ y) (g : y ⟶ z) : assocIso B (f ≫ g) = assocIso B f ≪≫ Functor.isoWhiskerLeft (sigmaMap B f) (assocIso B g) From 9cf9977817d13b29c9453e44348bf67c765e7f09 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:42:05 -0400 Subject: [PATCH 194/362] UNITY: integrate Bump repair repair-6bfb51fe571ca943 --- HoTTLean/Model/Natural/UHom.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index 5ee1acb0..bd6db77c 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -521,7 +521,8 @@ theorem unLam_tp {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j]. (f : y(Γ) ⟶ s[max i j].Tm) (f_tp : f ≫ s[max i j].tp = s.mkPi ilen jlen A B) : s.unLam ilen jlen A B f f_tp ≫ s[j].tp = B := by rw [unLam, ← PtpEquiv.snd_comp_right] - convert PtpEquiv.snd_mk s[i] A B using 2; simp + convert PtpEquiv.snd_mk s[i] A B using 2 + exact (s.Pi_pb ilen jlen).lift_snd .. theorem comp_unLam {Δ Γ : Ctx} (σ : Δ ⟶ Γ) (A : y(Γ) ⟶ s[i].Ty) (σA) (eq : ym(σ) ≫ A = σA) (B : y(s[i].ext A) ⟶ s[j].Ty) From e741b5f33a9e254b703451557d0ac27a52c36938 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:48:46 -0400 Subject: [PATCH 195/362] UNITY: integrate Bump repair repair-93b6d1fa4ab9ac18 --- HoTTLean/Model/Natural/UHom.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index bd6db77c..a93cb475 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -524,6 +524,8 @@ theorem unLam_tp {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j]. convert PtpEquiv.snd_mk s[i] A B using 2 exact (s.Pi_pb ilen jlen).lift_snd .. +-- The pullback projections unfold the semireducible mkPi in their proof arguments. +set_option backward.isDefEq.respectTransparency false in theorem comp_unLam {Δ Γ : Ctx} (σ : Δ ⟶ Γ) (A : y(Γ) ⟶ s[i].Ty) (σA) (eq : ym(σ) ≫ A = σA) (B : y(s[i].ext A) ⟶ s[j].Ty) (f : y(Γ) ⟶ s[max i j].Tm) (f_tp : f ≫ s[max i j].tp = s.mkPi ilen jlen A B) : From 5963c7755d688f924b2ed7cf423d8e80217baa65 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:54:30 -0400 Subject: [PATCH 196/362] UNITY: integrate Bump repair repair-cc16f1ceb09ca65d --- HoTTLean/Groupoids/Sigma.lean | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 78ae931a..b7fdbc28 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -259,13 +259,17 @@ lemma assocIso_hom_app_fiber {x y} (f : x ⟶ y) (p) : simp [assocIso, preNatIso_congr B (ιNatIso_id A x), preNatIso_eqToIso] apply eqToIso_trans +-- Let projection simp lemmas unfold the bundled groupoid in this proof. +set_option backward.isDefEq.respectTransparency false in theorem assocIso_comp {x y z : Γ} (f : x ⟶ y) (g : y ⟶ z) : assocIso B (f ≫ g) = assocIso B f ≪≫ Functor.isoWhiskerLeft (sigmaMap B f) (assocIso B g) - ≪≫ eqToIso (by simp [sigmaMap_comp, Functor.assoc]) := by - simp only [assocFib, sigmaMap, assocIso, preNatIso_congr B (ιNatIso_comp A f g), Iso.trans_hom, - Functor.isoWhiskerLeft_hom, eqToIso.hom, pre_comp, preNatIso_comp, preNatIso_eqToIso, - isoWhiskerLeft_eqToIso, eqToIso_trans, Functor.isoWhiskerLeft_trans, Iso.trans_assoc] - rfl + ≪≫ eqToIso (by simp only [sigmaMap_comp]; exact (Functor.assoc _ _ _).symm) := by + ext p + fapply Hom.ext + · simp [assocIso, ιNatIso_comp] + · simp only [assocIso, Iso.trans_hom, eqToIso.hom, NatTrans.comp_app] + rw! [eqToHom_app] + simp abbrev assocHom {x y : Γ} (f : x ⟶ y) : assocFib B x ⟶ sigmaMap B f ⋙ assocFib B y := From cb20d782edc5c0a9d3cf3608aca9c8d08e2c22ee Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 04:56:26 -0400 Subject: [PATCH 197/362] UNITY: integrate Bump repair repair-395601dcd49b7ee8 --- HoTTLean/Model/Natural/UHom.lean | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index a93cb475..f12a395d 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -572,14 +572,19 @@ theorem comp_mkApp {Δ Γ : Ctx} (σ : Δ ⟶ Γ) theorem mkLam_unLam {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j].Ty) (f : y(Γ) ⟶ s[max i j].Tm) (f_tp : f ≫ s[max i j].tp = s.mkPi ilen jlen A B) : s.mkLam ilen jlen A (s.unLam ilen jlen A B f f_tp) = f := by + change f ≫ s[max i j].tp = PtpEquiv.mk s[i] A B ≫ s.Pi ilen jlen at f_tp let total : y(Γ) ⟶ s[i].Ptp.obj s[j].Tm := (s.Pi_pb ilen jlen).lift f (PtpEquiv.mk s[i] A B) f_tp simp [mkLam, unLam] have : PtpEquiv.fst s[i] total = A := by - simp [total, PtpEquiv.fst, UvPoly.Equiv.fst] + change total ≫ s[i].uvPolyTp.fstProj s[j].Tm = A rw [← s[i].uvPolyTp.map_fstProj s[j].tp] - slice_lhs 1 2 => apply (s.Pi_pb ilen jlen).lift_snd - apply PtpEquiv.fst_mk + change (s.Pi_pb ilen jlen).lift f (PtpEquiv.mk s[i] A B) f_tp ≫ + s[i].Ptp.map s[j].tp ≫ s[i].uvPolyTp.fstProj s[j].Ty = A + -- `Ptp` and the polynomial functor are definitionally equal but semireducible. + set_option backward.isDefEq.respectTransparency false in + rw [(s.Pi_pb ilen jlen).lift_snd_assoc] + exact PtpEquiv.fst_mk s[i] A B slice_lhs 1 1 => equals total => apply PtpEquiv.ext _ (A := A) (by simp) (by simp [this]) (by simp [total]) apply (s.Pi_pb ilen jlen).lift_fst From 52b6e1476129917a1247731e37ea358301055f27 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:00:33 -0400 Subject: [PATCH 198/362] UNITY: integrate Bump repair repair-6416fcf240b208bf --- HoTTLean/Groupoids/Sigma.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index b7fdbc28..67fbb02d 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -276,8 +276,8 @@ abbrev assocHom {x y : Γ} (f : x ⟶ y) : (assocIso B f).hom @[simp] theorem assocHom_id {x : Γ} : - assocHom B (𝟙 x) = eqToHom (by simp [sigmaMap_id, Functor.id_comp]) := by - simp [assocHom, assocIso_id] + assocHom B (𝟙 x) = eqToHom (by simp [sigmaMap_id]; rfl) := by + simp only [assocHom, assocIso_id, eqToIso.hom] theorem assocHom_comp {x y z : Γ} (f : x ⟶ y) (g : y ⟶ z) : assocHom B (f ≫ g) = assocHom B f ≫ Functor.whiskerLeft (sigmaMap B f) (assocHom B g) ≫ From ae7f9d67baf47170ffaaddd09eb0d536771501f0 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:04:00 -0400 Subject: [PATCH 199/362] UNITY: integrate Bump repair repair-6a184b795f98c32e --- HoTTLean/Model/Natural/UHom.lean | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index f12a395d..1ee02b7b 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -596,8 +596,14 @@ theorem unLam_mkLam {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[ s.unLam ilen jlen A B (s.mkLam ilen jlen A t) lam_tp = t := by simp [mkLam, unLam] convert PtpEquiv.snd_mk s[i] A t using 2 - apply (s.Pi_pb ilen jlen).hom_ext <;> simp - rw [PtpEquiv.mk_comp_right, t_tp] + congr 1 + apply (s.Pi_pb ilen jlen).hom_ext + · exact (s.Pi_pb ilen jlen).lift_fst .. + -- The projection unfolds the semireducible mkPi in its proof argument. + · set_option backward.isDefEq.respectTransparency false in + rw [(s.Pi_pb ilen jlen).lift_snd] + rw [PtpEquiv.mk_comp_right, t_tp] + · apply proof_irrel_heq /-- ``` From fa5090332cef6aa0c00751ad6a64b9cd4376cc5f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:06:17 -0400 Subject: [PATCH 200/362] UNITY: integrate Bump repair repair-a629b7681747ed4a --- HoTTLean/Groupoids/Sigma.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 67fbb02d..7fdb7d5d 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -281,8 +281,8 @@ abbrev assocHom {x y : Γ} (f : x ⟶ y) : theorem assocHom_comp {x y z : Γ} (f : x ⟶ y) (g : y ⟶ z) : assocHom B (f ≫ g) = assocHom B f ≫ Functor.whiskerLeft (sigmaMap B f) (assocHom B g) ≫ - eqToHom (by simp [sigmaMap_comp, Functor.assoc]) := by - simp [assocHom, assocIso_comp] + eqToHom (by simp only [sigmaMap_comp]; exact (Functor.assoc _ _ _).symm) := by + simp only [assocHom, assocIso_comp, Iso.trans_hom, Functor.isoWhiskerLeft_hom, eqToIso.hom] section From 70888d32b0de17571ea0067c528490ee258edaea Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:10:47 -0400 Subject: [PATCH 201/362] UNITY: integrate Bump repair repair-06c7506d18a58309 --- HoTTLean/Groupoids/Sigma.lean | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 7fdb7d5d..61d9b46f 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -295,14 +295,17 @@ def assocFibObj (x : ∫ B) : sigmaObj B x.base.base := @[simp] theorem assocFibObj_base (x : ∫ B) : (assocFibObj x).base = x.base.fiber := rfl +-- Unfold bundled groupoid morphisms to combine the functor maps. +set_option backward.isDefEq.respectTransparency false in theorem assocFibMap_aux {x y : ∫ B} (f : x ⟶ y) : ((ι A y.base.base ⋙ B).map (Hom.fiber (Hom.base f))).obj (fiber ((sigmaMap B (Hom.base (Hom.base f))).obj (assocFibObj x))) = (B.map (Hom.base f)).obj x.fiber := by - simp only [assocFibObj, objMk_base, ← Functor.comp_obj, Functor.comp_map, - sigmaMap_obj_fiber, objMk_fiber] - simp only [Functor.comp_obj, ← Grpd.comp_eq_comp, ← Functor.map_comp] - congr 2 + change (B.map ((ι A y.base.base).map (Hom.fiber (Hom.base f)))).obj + ((B.map ((ιNatTrans (Hom.base (Hom.base f))).app x.base.fiber)).obj x.fiber) = + (B.map (Hom.base f)).obj x.fiber + simp only [← Functor.comp_obj, ← Grpd.comp_eq_comp, ← Functor.map_comp] + apply congrArg (fun k => (B.map k).obj x.fiber) apply Hom.ext <;> simp def assocFibMap {x y : ∫ B} (f : x ⟶ y) : From 783210c364f14692c29321be4d9f2e97b1ac332e Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:14:32 -0400 Subject: [PATCH 202/362] UNITY: integrate Bump repair repair-2b1b282e1906ba88 --- HoTTLean/Model/Natural/UHom.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index 1ee02b7b..7fe7db4e 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -717,6 +717,8 @@ theorem comp_mkPair {Δ Γ : Ctx} (σ : Δ ⟶ Γ) (ym(σ) ≫ u) (by simp [u_tp, comp_sec_functor_map_assoc]) := by simp only [← Category.assoc, mkPair]; rw [compDomEquiv.comp_mk] +-- The nested pullback presentation needs reducible instance matching. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem mkPair_tp {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j].Ty) (t : y(Γ) ⟶ s[i].Tm) (t_tp : t ≫ s[i].tp = A) From 2170d042c9fa219ae5e61078bda4759ff4dd3a65 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:18:17 -0400 Subject: [PATCH 203/362] UNITY: integrate Bump repair repair-7bc000dfeee90b15 --- HoTTLean/Model/Natural/UHom.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index 7fe7db4e..996e82e6 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -731,6 +731,8 @@ def mkFst {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j].Ty) y(Γ) ⟶ s[i].Tm := compDomEquiv.fst ((s.Sig_pb ilen jlen).lift p (PtpEquiv.mk _ A B) p_tp) +-- The pullback projections require reducible instance matching. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem mkFst_tp {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j].Ty) (p : y(Γ) ⟶ s[max i j].Tm) (p_tp : p ≫ s[max i j].tp = s.mkSig ilen jlen A B) : From 4e069e25676d43c9d17f7df31d361c9cf0a4121b Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:20:20 -0400 Subject: [PATCH 204/362] UNITY: integrate Bump repair repair-84a72ec7004fdd43 --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 61d9b46f..10edd5dd 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -320,6 +320,8 @@ def assocFibMap {x y : ∫ B} (f : x ⟶ y) : (assocFibMap f).fiber = eqToHom (assocFibMap_aux ..) ≫ f.fiber := by rfl +-- Expose the bundled fiber groupoid for the identity projection lemmas. +set_option backward.isDefEq.respectTransparency false in lemma assocFibMap_id (x : ∫ B) : assocFibMap (𝟙 x) = eqToHom (by simp) := by apply Hom.ext <;> simp [sigmaObj] From fd63fdc841467c0aa386061702c6008058eda7c7 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:24:02 -0400 Subject: [PATCH 205/362] UNITY: integrate Bump repair repair-848789e36b7d093b --- HoTTLean/Model/Natural/UHom.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index 996e82e6..1dee8da1 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -739,6 +739,8 @@ theorem mkFst_tp {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j]. s.mkFst ilen jlen A B p p_tp ≫ s[i].tp = A := by simp [mkFst, UvPoly.compP, compDomEquiv.fst_tp] +-- The pullback projections require reducible instance matching. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem mkFst_mkPair {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j].Ty) (t : y(Γ) ⟶ s[i].Tm) (t_tp : t ≫ s[i].tp = A) From 7a331ac5996967124b5fc215eae62226e09a8f71 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:27:38 -0400 Subject: [PATCH 206/362] UNITY: integrate Bump repair repair-b0842256621367c3 --- HoTTLean/Model/Natural/UHom.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index 1dee8da1..1a9d0cd9 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -750,6 +750,8 @@ theorem mkFst_mkPair {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s convert compDomEquiv.fst_mk t t_tp B u u_tp using 2 apply (s.Sig_pb ilen jlen).hom_ext <;> [simp; simp [compDomEquiv.mk, UvPoly.compP]] +-- The pullback projections require reducible instance matching. +set_option backward.isDefEq.respectTransparency false in theorem comp_mkFst {Δ Γ : Ctx} (σ : Δ ⟶ Γ) (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j].Ty) (p : y(Γ) ⟶ s[max i j].Tm) (p_tp : p ≫ s[max i j].tp = s.mkSig ilen jlen A B) : From a10b9b6e255b1f6c1f7f83ca0133663e622f156a Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:29:38 -0400 Subject: [PATCH 207/362] UNITY: integrate Bump repair repair-cbe0992a721f9299 --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 10edd5dd..ce471399 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -325,6 +325,8 @@ set_option backward.isDefEq.respectTransparency false in lemma assocFibMap_id (x : ∫ B) : assocFibMap (𝟙 x) = eqToHom (by simp) := by apply Hom.ext <;> simp [sigmaObj] +-- Expose the bundled groupoid for dependent projection simplification. +set_option backward.isDefEq.respectTransparency false in lemma assocFibMap_comp {x y z : ∫ B} (f : x ⟶ y) (g : y ⟶ z) : assocFibMap (f ≫ g) = eqToHom (by simp) ≫ (sigmaMap B (Hom.base (Hom.base g))).map (assocFibMap f) ≫ assocFibMap g := by From 09a57dc5a8e99a36e0e4da6ad843558b56bcfed7 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:34:45 -0400 Subject: [PATCH 208/362] UNITY: integrate Bump repair repair-18b88b5c238b6d7e --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index ce471399..2cced3bd 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -358,6 +358,8 @@ lemma assocFibMap_comp {x y z : ∫ B} (f : x ⟶ y) (g : y ⟶ z) : simp [← heq_eq_eq] rfl +-- The functor associativity rewrites cross the bundled Grpd coercion. +set_option backward.isDefEq.respectTransparency false in lemma assocFib_comp_forget (c : Γ) : assocFib B c ⋙ forget ⋙ forget = ι (sigma A B) c ⋙ forget := by dsimp [assocFib] From 540a2866f6a376d49af77f0e30abb0cd76bf8d13 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:38:53 -0400 Subject: [PATCH 209/362] UNITY: integrate Bump repair repair-17526ab95a72fc97 --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 2cced3bd..7b00abfc 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -366,6 +366,8 @@ lemma assocFib_comp_forget (c : Γ) : assocFib B c ⋙ forget ⋙ rw [ι_comp_forget, ← Functor.assoc, pre_comp_forget, Functor.assoc, ι_comp_forget] aesop_cat +-- Extensionality crosses the bundled Grpd coercion. +set_option backward.isDefEq.respectTransparency false in lemma assocFibObj_assocFib_obj (c : Γ) (x : sigmaObj B c) : assocFibObj ((assocFib B c).obj x) ≍ x := by simp only [assocFib, assocFibObj, pre_obj_fiber, heq_eq_eq] From c2132c03d4c524d5638024428f62881e8a73e0d2 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:40:48 -0400 Subject: [PATCH 210/362] UNITY: integrate Bump repair repair-905507c80e5753af --- HoTTLean/Model/Natural/UHom.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index 1a9d0cd9..ce9e0952 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -768,6 +768,8 @@ def mkSnd {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j].Ty) y(Γ) ⟶ s[j].Tm := compDomEquiv.snd ((s.Sig_pb ilen jlen).lift p (PtpEquiv.mk _ A B) p_tp) +-- The pullback projections require reducible instance matching. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem mkSnd_mkPair {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j].Ty) (t : y(Γ) ⟶ s[i].Tm) (t_tp : t ≫ s[i].tp = A) From ddb5ce1a549540d2521ff5256d25e7084f998d77 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:44:34 -0400 Subject: [PATCH 211/362] UNITY: integrate Bump repair repair-2a5bfbf9e54b04f5 --- HoTTLean/Model/Natural/UHom.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index ce9e0952..5df7ffe1 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -779,6 +779,8 @@ theorem mkSnd_mkPair {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s convert compDomEquiv.snd_mk t t_tp B u u_tp using 2 apply (s.Sig_pb ilen jlen).hom_ext <;> [simp; simp [compDomEquiv.mk, UvPoly.compP]] +-- The pullback projection requires reducible instance matching. +set_option backward.isDefEq.respectTransparency false in protected theorem dependent_eq {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j].Ty) (p : y(Γ) ⟶ s[max i j].Tm) (p_tp : p ≫ s[max i j].tp = s.mkSig ilen jlen A B) : compDomEquiv.dependent ((s.Sig_pb ilen jlen).lift p (PtpEquiv.mk s[i] A B) p_tp) A From 81117fc85ef1a9b6c01da59c1bcd60b298df4f5a Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:48:21 -0400 Subject: [PATCH 212/362] UNITY: integrate Bump repair repair-8197f784c4df0d1c --- HoTTLean/Model/Natural/UHom.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index 5df7ffe1..b5944095 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -797,6 +797,8 @@ theorem mkSnd_tp {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j]. generalize_proofs h simp [mkSnd, compDomEquiv.snd_tp (eq := h), s.dependent_eq]; rfl +-- The pullback projections require reducible instance matching. +set_option backward.isDefEq.respectTransparency false in theorem comp_mkSnd {Δ Γ : Ctx} (σ : Δ ⟶ Γ) (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) ⟶ s[j].Ty) (p : y(Γ) ⟶ s[max i j].Tm) (p_tp : p ≫ s[max i j].tp = s.mkSig ilen jlen A B) : From 25c09d53ee9dbae7458ec7fe711106b3f622a4f1 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:50:29 -0400 Subject: [PATCH 213/362] UNITY: integrate Bump repair repair-93bebf00d821709a --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 7b00abfc..5e6a8c09 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -376,6 +376,8 @@ lemma assocFibObj_assocFib_obj (c : Γ) (x : sigmaObj B c) : · rw! (castMode := .all) [pre_obj_base] simp +-- Expose bundled groupoid projections for the dependent map equations. +set_option backward.isDefEq.respectTransparency false in lemma assocFibMap_assocFib_map (c : Γ) {x y : sigmaObj B c} (f : x ⟶ y) : assocFibMap ((assocFib B c).map f) ≍ f := by dsimp [assocFib, assocFibMap] From 3f30ed36f081ede887aaa9b221f921f4c373ee40 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:54:29 -0400 Subject: [PATCH 214/362] UNITY: integrate Bump repair repair-33249d8d09b7cd4c --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 5e6a8c09..a5ac3566 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -386,6 +386,8 @@ lemma assocFibMap_assocFib_map (c : Γ) {x y : sigmaObj B c} (f : x ⟶ y) : rw! (castMode := .all) [pre_map_base] apply Hom.hext' <;> simp +-- The extensionality proof crosses bundled groupoid coercions. +set_option backward.isDefEq.respectTransparency false in lemma assocFib_forget_comp_forget_obj (x : ∫ B) : (assocFib B ((forget ⋙ forget).obj x)).obj (assocFibObj x) = x := by From 83febf89bd8dc3accd294995b7518f5127f15fe8 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 05:56:37 -0400 Subject: [PATCH 215/362] UNITY: integrate Bump repair repair-cd43f4e3644a59bb --- HoTTLean/Model/Natural/UHom.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index b5944095..add90ed2 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -819,7 +819,8 @@ theorem mkPair_mkFst_mkSnd {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (B : y(s[i].ext A) have := compDomEquiv.eta ((s.Sig_pb ilen jlen).lift p (PtpEquiv.mk _ A B) p_tp) (eq := by rw [← mkFst.eq_def, mkFst_tp]) conv at this => enter [1, 3]; apply s.dependent_eq - simp [this] + rw [this] + exact (s.Sig_pb ilen jlen).lift_fst p (PtpEquiv.mk _ A B) p_tp end Sigma From 6df36690b1f58113aa24035a05a707a6f43e6740 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:00:52 -0400 Subject: [PATCH 216/362] UNITY: integrate Bump repair repair-32a9c93e9ac2f55b --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index a5ac3566..817a2fc1 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -399,6 +399,8 @@ lemma assocFib_forget_comp_forget_obj (x : ∫ B) : simp · simp +-- Dependent projections cross bundled groupoid coercions. +set_option backward.isDefEq.respectTransparency false in lemma assocHom_app_comp_pre_map_assocFibMap {x y : ∫ B} (f : x ⟶ y) : (assocHom B (Hom.base (Hom.base f))).app (assocFibObj x) ≫ (pre B (ι A y.base.base)).map (assocFibMap f) ≍ f := by From 438f1a5fedb32fe352209c499adf9d7fe03a2919 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:04:10 -0400 Subject: [PATCH 217/362] UNITY: integrate Bump repair repair-b70c8d173088ecb7 --- HoTTLean/Model/Natural/UHom.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index add90ed2..416f177b 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -879,6 +879,8 @@ theorem mkRefl_tp {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) s.mkRefl ilen t ≫ s[i].tp = s.mkId ilen A t t t_tp t_tp := (nmII i).mkRefl_tp t +-- Let elaboration unfold substWk in the dependent equality proofs. +set_option backward.isDefEq.respectTransparency false in /-- ``` Γ ⊢ᵢ t : A @@ -901,7 +903,7 @@ def mkIdRec {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (ym(substWk _ (substWk _ (𝟙 _) _ _ (by simp [t_tp])) _ _ ?_) ≫ M) r ?_ u (t_tp ▸ u_tp) h ?_ · simp [← B_eq, comp_mkId, ← mkId.eq_def]; congr 1 <;> simp [t_tp, substWk] - · simp [r_tp]; rw [← Functor.map_comp_assoc]; congr 1 + · rw [r_tp, ← Functor.map_comp_assoc]; congr 1 apply (s[i].disp_pullback _).hom_ext <;> simp [IdIntro.reflSubst, mkRefl, substWk, sec] · simp [h_tp, mkId, IdIntro.mkId] From a426a78cab8aa174d288fe03d07d7f8b698596c1 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:10:42 -0400 Subject: [PATCH 218/362] UNITY: integrate Bump repair repair-0a87d56a9c1d4581 --- HoTTLean/Groupoids/Sigma.lean | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 817a2fc1..e22e52e2 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -443,7 +443,12 @@ lemma assocFibMap_assocHom_app {c c' : Γ} (f : c ⟶ c') (x : sigmaObj B c) : sigmaMap_obj_fiber, objMk_fiber, homMk_fiber, preNatIso_hom_app_fiber, pre_comp, Category.comp_id, heq_eq_eq] symm - apply Functor.Groupoidal.id_fiber + -- The dependent fiber types require unfolding the bundled groupoid coercion. + rw! (transparency := .default) (castMode := .all) [Functor.Groupoidal.id_fiber] + rw! (transparency := .default) (castMode := .all) [homMk_fiber, preNatIso_hom_app_fiber] + simp [ιNatIso_hom] + rw! (transparency := .default) (castMode := .all) [homMk_fiber, Category.comp_id] + apply eqToHom_heq end From 3e8639dc23ced05e7c4f743fdcd96b4ce9ed95ee Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:14:54 -0400 Subject: [PATCH 219/362] UNITY: integrate Bump repair repair-0a87d56a9c1d4581 --- HoTTLean/Groupoids/Sigma.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index e22e52e2..5c6c11f8 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -448,7 +448,8 @@ lemma assocFibMap_assocHom_app {c c' : Γ} (f : c ⟶ c') (x : sigmaObj B c) : rw! (transparency := .default) (castMode := .all) [homMk_fiber, preNatIso_hom_app_fiber] simp [ιNatIso_hom] rw! (transparency := .default) (castMode := .all) [homMk_fiber, Category.comp_id] - apply eqToHom_heq + apply eqToHom_heq_eqToHom + rfl end From e7f59ab6c537452978310d2ce900b18ec9b1334a Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:16:56 -0400 Subject: [PATCH 220/362] UNITY: integrate Bump repair repair-5d06b4ef2d84eb28 --- HoTTLean/Model/Natural/UHom.lean | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index 416f177b..7f30bbb4 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -907,6 +907,8 @@ def mkIdRec {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) apply (s[i].disp_pullback _).hom_ext <;> simp [IdIntro.reflSubst, mkRefl, substWk, sec] · simp [h_tp, mkId, IdIntro.mkId] +-- Unfold motiveCtx when checking dependent substitution equations. +set_option backward.isDefEq.respectTransparency false in theorem comp_mkIdRec {Δ Γ : Ctx} (σ : Δ ⟶ Γ) (A : y(Γ) ⟶ s[i].Ty) (σA) (σA_eq : ym(σ) ≫ A = σA) (t t_tp B B_eq σB) (σB_eq : ym(s[i].substWk σ _ _ σA_eq) ≫ B = σB) @@ -952,6 +954,8 @@ theorem comp_mkIdRec {Δ Γ : Ctx} (σ : Δ ⟶ Γ) · simp [substWk_disp_functor_map_assoc] · simp [substWk_disp_functor_map, substWk_disp_functor_map_assoc] +-- Unfold motiveCtx when checking dependent substitution equations. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem mkIdRec_tp {Γ : Ctx} (A : y(Γ) ⟶ s[i].Ty) (t t_tp B B_eq M) (r : y(Γ) ⟶ s[j].Tm) (r_tp u u_tp h h_tp) : From 800acc6d2f1b2f43324b8ab88b2d078f7e618e4d Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:21:51 -0400 Subject: [PATCH 221/362] UNITY: integrate Bump repair repair-0615aa9793383ca1 --- HoTTLean/Groupoids/Sigma.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 5c6c11f8..b3307269 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -453,8 +453,10 @@ lemma assocFibMap_assocHom_app {c c' : Γ} (f : c ⟶ c') (x : sigmaObj B c) : end +-- The coherence equations unfold bundled groupoid projections. +set_option backward.isDefEq.respectTransparency false in def assoc : ∫ B ≅≅ ∫ sigma A B := .symm <| functorIsoFrom - (assocFib B) (assocHom B) (by simp) (by simp [assocHom_comp]) + (assocFib B) (assocHom B) (by simp) (by intro c₁ c₂ c₃ f g; exact assocHom_comp B f g) (forget ⋙ forget) assocFibObj assocFibMap assocFibMap_id assocFibMap_comp assocFib_comp_forget assocFibObj_assocFib_obj assocFibMap_assocFib_map assocFib_forget_comp_forget_obj assocHom_app_comp_pre_map_assocFibMap From 41989baa6c11c4f6a6df96ae4ff450729654f2b8 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:26:42 -0400 Subject: [PATCH 222/362] UNITY: integrate Bump repair repair-0715570cdf416eaa --- HoTTLean/Groupoids/Sigma.lean | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index b3307269..bf19d8ab 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -501,11 +501,7 @@ lemma assoc_hom_map_fiber_base {x y} (f : x ⟶ y) : ((assoc B).hom.map f).fiber @[simp] lemma assoc_hom_map_fiber_fiber {x y} (f : x ⟶ y) : ((assoc B).hom.map f).fiber.fiber = - eqToHom (by - simp [assoc_hom] - rw [← Functor.comp_obj, ← Grpd.comp_eq_comp, ← Functor.map_comp] - congr 2 - fapply Hom.ext <;> simp) ≫ f.fiber := + eqToHom (assocFibMap_aux f) ≫ f.fiber := rfl @[simp] From 2d998b8af7ecc2200e341dac81e0694a523d2b8b Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:29:51 -0400 Subject: [PATCH 223/362] UNITY: integrate Bump repair repair-f8c4cfc0264c42e6 --- HoTTLean/Model/Natural/Interpretation.lean | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 569dfdfc..7c2b6a8a 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -184,15 +184,19 @@ theorem var_substWk_of_lt_length {l i} {Δ Γ Γ' : 𝒞} (σ : Δ ⟶ Γ) (d : intro h cases i · clear ih - dsimp [ExtSeq.var] at st_mem ⊢ + dsimp [ExtSeq.var] at st_mem + dsimp [substWk, ExtSeq.var] simp_part at st_mem ⊢ obtain ⟨rfl, rfl⟩ := st_mem - simp + simp only [NaturalModel.Universe.substWk_var] + exact Part.mem_assert_iff.mpr ⟨rfl, Part.mem_some_iff.mpr rfl⟩ · simp only [length, Nat.add_lt_add_iff_right] at h - dsimp [ExtSeq.var] at st_mem ⊢ + dsimp [ExtSeq.var] at st_mem + dsimp [substWk, ExtSeq.var] simp_part at st_mem ⊢ obtain ⟨a, amem, rfl⟩ := st_mem - refine ⟨_, ih amem h, ?_⟩ + apply Part.mem_bind_iff.mpr + refine ⟨_, ih amem h, Part.mem_some_iff.mpr ?_⟩ simp only [← Functor.map_comp_assoc] simp [NaturalModel.Universe.substWk_disp] From 089ddaeeec618457b05d0b4a04dcc88f3133a0a2 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:36:10 -0400 Subject: [PATCH 224/362] UNITY: integrate Bump repair repair-631c91843ea236d4 --- HoTTLean/Model/Natural/Interpretation.lean | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 7c2b6a8a..38a09607 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -257,12 +257,18 @@ protected def tp {l : Nat} (Γ : s.CObj) (llen : l < s.length + 1) (i : ℕ) : Part (y(Γ.1) ⟶ s[l].Ty) := Γ.2.tp llen i +-- Unfold the CObj abbreviation when matching membership under the dependent transport. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem mem_var_zero {Γ : s.CObj} {l' l'len A l} {llen : l < s.length + 1} {x} : x ∈ (Γ.snoc (l := l') l'len A).var llen 0 ↔ ∃ l'l : l' = l, x = l'l ▸ s[l'].var A := by dsimp only [UHomSeq.CObj.var, UHomSeq.CObj.snoc, UHomSeq.ExtSeq.var] - simp_part; exact exists_congr fun _ => by subst l'; simp_part + rw [Part.mem_assert_iff] + apply exists_congr + intro h + cases h + simp_part @[simp] theorem mem_var_succ {Γ : s.CObj} {l' l'len A l i} {llen : l < s.length + 1} {x} : From 42c11fda6710f2e768b08c932d823dbaf451a1e9 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:38:33 -0400 Subject: [PATCH 225/362] UNITY: integrate Bump repair repair-dfcc14ab64236332 --- HoTTLean/Groupoids/Sigma.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index bf19d8ab..575bf824 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -516,6 +516,8 @@ lemma assoc_inv_obj_base_fiber (x) : ((assoc B).inv.obj x).base.fiber = x.fiber. lemma assoc_inv_obj_fiber (x) : ((assoc B).inv.obj x).fiber = x.fiber.fiber := rfl +-- The inverse construction unfolds semireducible groupoid wrappers in this proof. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma assoc_inv_map_base_base {x y} (f : x ⟶ y) : ((assoc B).inv.map f).base.base = f.base := by simp only [assoc, Functor.Iso.symm_inv, functorIsoFrom_hom_obj, sigma_obj, assocFib, From 806cda9bdd387b33551d44552cba71210580f124 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:44:17 -0400 Subject: [PATCH 226/362] UNITY: integrate Bump repair repair-a02294a102f7fb1f --- HoTTLean/Model/Natural/Interpretation.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 38a09607..5eeaef5b 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -270,6 +270,8 @@ theorem mem_var_zero {Γ : s.CObj} {l' l'len A l} {llen : l < s.length + 1} {x} cases h simp_part +-- Unfold CObj while matching membership through the dependent snoc projection. +set_option backward.isDefEq.respectTransparency false in @[simp] theorem mem_var_succ {Γ : s.CObj} {l' l'len A l i} {llen : l < s.length + 1} {x} : x ∈ (Γ.snoc (l := l') l'len A).var llen (i+1) ↔ From c5948c70a870129ada583342ac814ea3155012ac Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:49:36 -0400 Subject: [PATCH 227/362] UNITY: integrate Bump repair repair-dfcc14ab64236332 --- HoTTLean/Groupoids/Sigma.lean | 36 ++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 575bf824..4fbc0ce3 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -526,6 +526,8 @@ lemma assoc_inv_map_base_base {x y} (f : x ⟶ y) : ((assoc B).inv.map f).base.b erw [Category.comp_id] rfl +-- Unfold the bundled groupoid wrappers when matching dependent projections. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma assoc_inv_map_base_fiber {x y} (f : x ⟶ y) : ((assoc B).inv.map f).base.fiber = eqToHom (by simp) ≫ f.fiber.base := by @@ -533,26 +535,41 @@ lemma assoc_inv_map_base_fiber {x y} (f : x ⟶ y) : ((assoc B).inv.map f).base. functorIsoFrom_hom_map, sigma_map, comp_base, assocIso_hom_app_base_base, Functor.Groupoidal.comp_fiber, assocIso_hom_app_base_fiber, Functor.comp_obj, CategoryTheory.Functor.map_id, Category.id_comp] - rw! [pre_map_base, ι_map_fiber] + rw! (transparency := .default) [functorIsoFrom_hom_map] + simp only [comp_base, Functor.Groupoidal.comp_fiber, assocIso_hom_app_base_base, + assocHom, assocIso_hom_app_base_fiber, assocFib] + rw! (transparency := .default) [pre_map_base, ι_map_fiber] simp + rw! (transparency := .default) [CategoryTheory.Functor.map_id] + rw! (transparency := .default) [Grpd.id_eq_id, CategoryTheory.Functor.id_map] + rw! (transparency := .default) [Category.id_comp, ← Category.assoc, eqToHom_trans] rfl +-- Unfold the bundled groupoid wrappers when matching dependent projections. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma assoc_inv_map_fiber {x y} (f : x ⟶ y) : ((assoc B).inv.map f).fiber = eqToHom (by simp only [assoc_inv_obj_fiber, sigma_map, Functor.comp_map, sigmaMap_obj_fiber] - conv => rhs; rw [← Functor.comp_obj, ← Grpd.comp_eq_comp, ← Functor.map_comp] + conv => rhs; rw! (transparency := .default) [← Functor.comp_obj, ← Grpd.comp_eq_comp, ← Functor.map_comp] rfl) ≫ f.fiber.fiber := by - simp [assoc] + simp only [assoc, Functor.Iso.symm_inv] + rw! (transparency := .default) [functorIsoFrom_hom_map] + simp [assocFib, assocHom] + rw! (transparency := .default) [CategoryTheory.Functor.map_id] + simp only [Category.id_comp, Category.assoc, eqToHom_trans] rfl +-- Unfold the bundled groupoid wrappers when matching dependent projections. +set_option backward.isDefEq.respectTransparency false in lemma assocFibMap_pre_pre_map {Δ : Type u₄} [Groupoid.{v₄} Δ] {σ : Δ ⥤ Γ} {x y} (f : x ⟶ y) : assocFibMap ((pre B (pre A σ)).map f) ≍ assocFibMap f := by have pre_pre_obj_base_base (x) : ((pre B (pre A σ)).obj x).base.base = σ.obj x.base.base := by rw [pre_obj_base, pre_obj_base] have pre_pre_obj_base_fiber (x) : ((pre B (pre A σ)).obj x).base.fiber = x.base.fiber := by rw! (castMode := .all) [pre_obj_base, pre_obj_fiber] + rfl simp [assocFibMap] apply Hom.hext' · rw [sigma_naturality_aux] @@ -566,16 +583,20 @@ lemma assocFibMap_pre_pre_map {Δ : Type u₄} [Groupoid.{v₄} Δ] {σ : Δ ⥤ simp only [← heq_eq_eq, cast_heq_iff_heq] apply Functor.Groupoidal.hext' · rw! (castMode := .all) [sigma_naturality_aux, pre_pre_obj_base_base] + rfl · simp · simp · apply Functor.Groupoidal.hext' · rw! (castMode := .all) [sigma_naturality_aux, pre_pre_obj_base_base] + rfl · simp [pre_pre_obj_base_fiber] · simp · simp only [sigmaMap_obj_base, objMk_base, homMk_base, Functor.comp_obj, Functor.comp_map] rfl · simp +-- Unfold the bundled groupoid wrappers when matching dependent projections. +set_option backward.isDefEq.respectTransparency false in lemma assoc_comp_fiber {Δ : Type u₄} [Groupoid.{v₄} Δ] (σ : Δ ⥤ Γ) {x y} (f : x ⟶ y) : Hom.fiber (((assoc (pre A σ ⋙ B)).hom ⋙ map (eqToHom (sigma_naturality ..).symm) ⋙ pre (sigma A B) σ).map f) ≍ Hom.fiber ((pre B (pre A σ) ⋙ (assoc B).hom).map f) := by @@ -588,6 +609,8 @@ lemma assoc_comp_fiber {Δ : Type u₄} [Groupoid.{v₄} Δ] (σ : Δ ⥤ Γ) {x rw! [assocFibMap_pre_pre_map] simp +-- Allow these rewrites to unfold the bundled groupoid wrappers. +set_option backward.isDefEq.respectTransparency false in lemma assoc_comp {Δ : Type u₄} [Groupoid.{v₄} Δ] (σ : Δ ⥤ Γ) : (sigma.assoc ((pre A σ) ⋙ B)).hom ⋙ map (eqToHom (by simp [sigma_naturality])) ⋙ pre (sigma A B) σ = @@ -613,6 +636,7 @@ lemma assoc_comp {Δ : Type u₄} [Groupoid.{v₄} Δ] (σ : Δ ⥤ Γ) : rw [eqToHom_app, Grpd.eqToHom_obj] simp rw! (castMode := .all) [assoc_hom_obj_fiber_fiber, assoc_hom_obj_fiber_fiber, pre_obj_fiber] + rfl · rw [← Functor.assoc, ι_comp_pre A σ x.base.base] · intro x y f apply assoc_comp_fiber B σ f @@ -664,6 +688,8 @@ abbrev SigAux Γ ⟶ Ctx.coreAsSmall.{max v₁ v₂, max u (max v₁ v₂ + 1)} Y := toCoreAsSmallEquiv.symm (S (toCoreAsSmallEquiv A) (toCoreAsSmallEquiv B)) +-- Allow these rewrites to unfold the bundled groupoid wrappers. +set_option backward.isDefEq.respectTransparency false in include S_naturality in theorem SigAux_comp (B : U.ext A ⟶ Ctx.coreAsSmall.{v₂, max u (max v₁ v₂ + 1)} X) : @@ -693,6 +719,8 @@ def assoc : U.ext B ≅ U.ext (Sig.{v₁,v₂,u} B) := Grpd.mkIso' (sigma.assoc (toCoreAsSmallEquiv B)) ≪≫ eqToIso (by dsimp [U.ext, Sig]; rw [toCoreAsSmallEquiv.apply_symm_apply]) +-- Allow these rewrites to unfold the bundled groupoid wrappers. +set_option backward.isDefEq.respectTransparency false in set_option maxHeartbeats 400000 in lemma assoc_comp : (assoc (U.substWk σ A σA eq ≫ B)).hom ≫ U.substWk σ (Sig.{v₁,v₂,u} B) (Sig.{v₁,v₂,u} (U.substWk σ A σA eq ≫ B)) (Sig_comp.{v₁,v₂,u} ..).symm = @@ -706,6 +734,8 @@ lemma assoc_comp : (assoc (U.substWk σ A σA eq ≫ B)).hom ≫ U.substWk σ (S simp only [pre_comp, Functor.id_comp] apply sigma.assoc_comp' (toCoreAsSmallEquiv B) (σ := σ) (toCoreAsSmallEquiv σA) +-- Allow these rewrites to unfold the bundled groupoid wrappers. +set_option backward.isDefEq.respectTransparency false in lemma assoc_disp : (assoc B).hom ≫ U.disp (Sig.{v₁,v₂,u} B) = U.disp B ≫ U.disp A := by simpa [assoc] using sigma.assoc_hom_comp_forget _ From c304bcd751dfe4be7056ad9fb5ff3a040d4fcf01 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:52:31 -0400 Subject: [PATCH 228/362] UNITY: integrate Bump repair repair-3d676855dc458df4 --- HoTTLean/Model/Natural/Interpretation.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 5eeaef5b..1852bef4 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -496,7 +496,7 @@ theorem mem_ofTerm_pair {Γ l i j B t u} {llen : l < s.length + 1} {x} : have ilen : i < s.length + 1 := by> omega have jlen : j < s.length + 1 := by> omega ∃ t' : y(Γ.1) ⟶ s[i].Tm, t' ∈ I.ofTerm Γ i t ∧ - ∃ A', ∃ eq : t' ≫ s[i].tp = A', + ∃ A' : y(Γ.1) ⟶ s[i].Ty, ∃ eq : t' ≫ s[i].tp = A', ∃ B' : y((Γ.snoc ilen A').1) ⟶ s[j].Ty, B' ∈ I.ofType (Γ.snoc ilen A') j B ∧ ∃ u' : y(Γ.1) ⟶ s[j].Tm, u' ∈ I.ofTerm Γ j u ∧ From 9a8b64989fa66eb83148941ce216289fd5f9da89 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 06:57:23 -0400 Subject: [PATCH 229/362] UNITY: integrate Bump repair repair-879cd0cd0fb10587 --- HoTTLean/Groupoids/Pi.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 2c5f2ef0..3c116df9 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -33,7 +33,7 @@ variable {A B : Type*} [Category A] [Category B] (F : B ⥤ A) def IsSection : ObjectProperty (A ⥤ B) := fun s => s ⋙ F = Functor.id A def IsOverId : MorphismProperty ((IsSection F).FullSubcategory) := - fun s t α => Functor.whiskerRight α F = eqToHom s.property ≫ 𝟙 (𝟭 A) ≫ eqToHom t.property.symm + fun s t α => Functor.whiskerRight α.hom F = eqToHom s.property ≫ 𝟙 (𝟭 A) ≫ eqToHom t.property.symm instance : (IsOverId F).IsMultiplicative where id_mem := by From 765dd716b5621a57f4ef4a586cf0c43ecdca0a54 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:00:06 -0400 Subject: [PATCH 230/362] UNITY: integrate Bump repair repair-f112a349a45a3db5 --- HoTTLean/Model/Natural/Interpretation.lean | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 1852bef4..11a92b15 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -554,6 +554,18 @@ theorem mem_ofTerm_idRec {Γ l i j t M r u h} {llen : l < s.length + 1} {x} : ∃ h_tp : h' ≫ s[i].tp = s.mkId ilen A' t' u' t_tp u_tp, x = s.mkIdRec ilen llen A' t' t_tp B' B_eq M' r' r_tp u' u_tp h' h_tp := by dsimp only [ofTerm]; simp_part; simp only [exists_prop_eq'] + apply exists_congr + intro ilen + apply exists_congr + intro t' + apply and_congr_right + intro ht + constructor + · intro h + exact ⟨_, rfl, h⟩ + · rintro ⟨B', B_eq, h⟩ + subst B' + exact h @[simp] theorem mem_ofTerm_code {Γ l t} {llen : l < s.length + 1} {x} : From 2275cf10a079ea5e93fdd496fc0d4eb4ada4d009 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:04:57 -0400 Subject: [PATCH 231/362] UNITY: integrate Bump repair repair-58b22ee50562db48 --- HoTTLean/Model/Natural/Interpretation.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 11a92b15..c1d6ec66 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -657,7 +657,7 @@ def sub1 {se : y(Γ.1) ⟶ s[l].Tm} @[simp] theorem sub1_toSb {se : y(Γ.1) ⟶ s[l].Tm} (A : y(Γ.1) ⟶ s[l].Ty) (e) (eq : se ≫ s[l].tp = A) (H : se ∈ I.ofTerm Γ l e) : (sub1 llen A e eq H).toSb = Expr.toSb e := by - simp [sub1, toSb, Expr.toSb] + rfl def up {Δ Γ σ full} (sσ : I.CSb Δ Γ σ full) {l} (llen : l < s.length + 1) (A : y(Γ.1) ⟶ s[l].Ty) From 70edcf011a4c97d0f1f177920622ab003245539e Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:10:43 -0400 Subject: [PATCH 232/362] UNITY: integrate Bump repair repair-2da82d4500b96ce1 --- HoTTLean/Model/Natural/Interpretation.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index c1d6ec66..02d895f2 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -664,7 +664,8 @@ def up {Δ Γ σ full} (sσ : I.CSb Δ Γ σ full) (A' := ym(σ) ≫ A) (eq : ym(σ) ≫ A = A' := by rfl) : I.CSb (Δ.snoc llen A') (Γ.snoc llen A) (s[l].substWk σ A _ eq) full := by refine ((CSb.wk _ _ false).comp sσ).snoc' _ _ (.bvar 0) (by simp) _ ?_ - simp [UHomSeq.CObj.var, UHomSeq.ExtSeq.var] + rw [ofTerm_bvar] + exact UHomSeq.CObj.mem_var_zero.mpr ⟨rfl, rfl⟩ @[simp] theorem up_toSb {Δ Γ σ full} (sσ : I.CSb Δ Γ σ full) {l} {llen : l < s.length + 1} {A A'} {eq : ym(σ) ≫ A = A'} : From ef90199588e2f5623d11e0c9c427ee09498052ef Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:13:28 -0400 Subject: [PATCH 233/362] UNITY: integrate Bump repair repair-6f347df49bd0cde1 --- HoTTLean/Groupoids/Pi.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 3c116df9..300785ea 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -35,6 +35,8 @@ def IsSection : ObjectProperty (A ⥤ B) := fun s => s ⋙ F = Functor.id A def IsOverId : MorphismProperty ((IsSection F).FullSubcategory) := fun s t α => Functor.whiskerRight α.hom F = eqToHom s.property ≫ 𝟙 (𝟭 A) ≫ eqToHom t.property.symm +-- Let transport simplification unfold the section predicate in proof types. +set_option backward.isDefEq.respectTransparency false in instance : (IsOverId F).IsMultiplicative where id_mem := by intro s From 7a64077d707a63b65fee8ae11135e2c3f2c3ac12 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:19:39 -0400 Subject: [PATCH 234/362] UNITY: integrate Bump repair repair-1e80eea5360c24b8 --- HoTTLean/Model/Natural/Interpretation.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 02d895f2..0910d7bd 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -679,6 +679,8 @@ end CSb open UHomSeq variable (slen : univMax ≤ s.length) +-- The dependent substitution proof relies on the earlier elaborator transparency behavior. +set_option backward.isDefEq.respectTransparency false in theorem mem_ofType_ofTerm_subst' {full} (IH : full = true → ∀ {Δ Γ l} (llen : l < s.length + 1) {sσ} (σ : I.CSb Δ Γ sσ false) {se e}, se ∈ I.ofTerm Γ l e llen → ym(sσ) ≫ se ∈ I.ofTerm Δ l (Expr.subst σ.toSb e) llen) @@ -725,7 +727,7 @@ theorem mem_ofType_ofTerm_subst' {full} simp [ofTerm_bvar] at H simp [Expr.subst] induction σ generalizing i with simp [CSb.toSb, *] - | wk => exact CObj.mem_var_succ.2 ⟨_, ‹_›, rfl⟩ + | wk => exact ⟨_, ‹_›, rfl⟩ | @comp _ _ _ _ _ full σ τ ih1 ih2 => simp [Expr.comp] cases full with From fe40aa6e3f2cc4ba2f38563d91d5d2035ff8d12a Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:22:19 -0400 Subject: [PATCH 235/362] UNITY: integrate Bump repair repair-eaa33e9df208d7c0 --- HoTTLean/Groupoids/Pi.lean | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 300785ea..ce06fdb9 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -60,15 +60,19 @@ instance {A B : Type*} [Category A] [Groupoid B] (F : B ⥤ A) : IsGroupoid ((IsSection F).FullSubcategory) := InducedCategory.isGroupoid (A ⥤ B) (ObjectProperty.ι _).obj +-- Let transport simplification unfold the section predicate in proof types. +set_option backward.isDefEq.respectTransparency false in instance {A B : Type*} [Category A] [Groupoid B] (F : B ⥤ A) : IsGroupoid (Section F) where all_isIso {x y} f := { out := ⟨⟨ CategoryTheory.inv f.1, by - simp only [IsOverId, Category.id_comp, eqToHom_trans, Set.mem_setOf_eq] - erw [← Functor.inv_whiskerRight] + simp only [IsOverId, Category.id_comp, eqToHom_trans, Set.mem_ofPred_eq] + change Functor.whiskerRight ((ObjectProperty.ι (IsSection F)).map (inv f.1)) F = _ + rw [Functor.map_inv, ← Functor.inv_whiskerRight] + change inv (Functor.whiskerRight f.1.hom F) = _ rw! [f.2] - simp⟩, + simp only [Category.id_comp, eqToHom_trans, inv_eqToHom]⟩, by apply MorphismProperty.WideSubcategory.hom_ext; simp, by apply MorphismProperty.WideSubcategory.hom_ext; simp⟩ } From e9b4fb1d30513a0c890f3369311e80e7731ed008 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:27:30 -0400 Subject: [PATCH 236/362] UNITY: integrate Bump repair repair-6335376a53302567 --- HoTTLean/Groupoids/Pi.lean | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index ce06fdb9..14153b57 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -92,9 +92,9 @@ lemma ι_mono {T C : Type u} [Category.{v} C] [Category.{v} T] ext exact Functor.congr_obj e X · intro X - simp only [Functor.fullyFaithfulCancelRight_hom_app, Functor.preimage, ι_obj, ι_map, - eqToIso.hom, eqToHom_app, Functor.comp_obj, Classical.choose_eq] - rfl + apply (ι Z).map_injective + simp only [Functor.fullyFaithfulCancelRight_hom_app, Functor.map_preimage, + eqToIso.hom, eqToHom_map, eqToHom_app, Functor.comp_obj] end ObjectProperty From 41e250b822cd191c7a03e11cdd82d75ef907e781 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:30:37 -0400 Subject: [PATCH 237/362] UNITY: integrate Bump repair repair-feed2fc5f0126c4f --- HoTTLean/Model/Natural/Interpretation.lean | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 0910d7bd..9ccfd07e 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -818,16 +818,18 @@ theorem mem_ofType_wk {e l l' hl} (hl' : l' < s.length + 1) ym(s[l'].disp X) ≫ se ∈ I.ofType (Γ.snoc hl' X) l (Expr.subst Expr.wk e) hl := (I.mem_ofType_ofTerm_subst hl (.wk hl' X) rfl).1 H +-- Let category rewrite lemmas reduce the contextual-object projections. +set_option backward.isDefEq.respectTransparency false in theorem mem_ofType_of_isClosed {e l} (e_cl : e.isClosed) (Γ : s.CObj) (hl : l < s.length + 1) {se} (se_mem : se ∈ I.ofType s.nilCObj l e hl) : isTerminal_yUnit.from y(Γ.1) ≫ se ∈ I.ofType Γ l e hl := by rcases Γ with ⟨_, ext⟩ induction ext - · convert se_mem; simp + · simpa only [UHomSeq.nilCObj, IsTerminal.from_self, Category.id_comp] using se_mem · rename_i X se_mem have := I.mem_ofType_wk (X := X) (by omega) se_mem - convert this using 1 <;> - simp [e.subst_of_isClosed _ e_cl, UHomSeq.CObj.snoc] + simpa only [e.subst_of_isClosed _ e_cl, UHomSeq.CObj.snoc, + ← Category.assoc, IsTerminal.comp_from] using this theorem mem_ofTerm_wk {e l l' hl} (hl' : l' < s.length + 1) {Γ : s.CObj} {X : y(Γ.1) ⟶ s[l'].Ty} From bf54f4d565d12561bc13ae8ea7cbbfa5596d7c7b Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:33:49 -0400 Subject: [PATCH 238/362] UNITY: integrate Bump repair repair-1de17eb6052739dd --- HoTTLean/Groupoids/Pi.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 14153b57..c2652964 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -218,7 +218,8 @@ lemma conjugatingObjNatTransEquiv'_id (x : Γ) (S) (T) (g) : conjugatingObjNatTransEquiv' A B (𝟙 x) S T g = eqToHom (by simp) ≫ g ≫ eqToHom (by simp) := by ext - simp [conjugatingObjNatTransEquiv', Grpd.Functor.iso] + change (eqToHom _ ≫ whiskerLeft (Grpd.Functor.iso A (𝟙 x)).hom g).app _ = _ + simp [Grpd.Functor.iso_id] lemma conjugatingObjNatTransEquiv'_comp {x y z : Γ} (f1 : x ⟶ y) (f2 : y ⟶ z) (S) (T) (g) : conjugatingObjNatTransEquiv' A B (f1 ≫ f2) S T g = From 93fb58b09b0f577def6e4114f869c24d7845022d Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:38:33 -0400 Subject: [PATCH 239/362] UNITY: integrate Bump repair repair-d8d9804cdef51598 --- HoTTLean/Model/Natural/Interpretation.lean | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 9ccfd07e..842b185f 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -855,13 +855,16 @@ theorem mem_ofTerm_toSb {e l l' hl} (hl' : l' < s.length + 1) theorem tp_sound {Γ i A l} (H : Lookup Γ i A l) {sΓ} (hΓ : sΓ ∈ I.ofCtx Γ) : ∃ llen, ∃ sA ∈ sΓ.tp llen i, sA ∈ I.ofType sΓ l A llen := by - induction H generalizing sΓ with ( - obtain ⟨_, hΓ', _, _, hB, rfl⟩ := I.mem_ofCtx_snoc.1 hΓ - simp [UHomSeq.CObj.tp, UHomSeq.ExtSeq.tp, *] at *) - | zero => exact I.mem_ofType_wk _ hB + induction H generalizing sΓ with + | zero => + obtain ⟨_, hΓ', llen, _, hB, rfl⟩ := I.mem_ofCtx_snoc.1 hΓ + refine ⟨llen, _, ?_, I.mem_ofType_wk _ hB⟩ + exact Part.mem_assert rfl (Part.mem_some _) | succ _ _ ih => - have ⟨_, _, _, _⟩ := ih hΓ' - exact ⟨‹_›, _, ‹_›, I.mem_ofType_wk _ ‹_›⟩ + obtain ⟨_, hΓ', _, _, hB, rfl⟩ := I.mem_ofCtx_snoc.1 hΓ + obtain ⟨llen, sA, hA, hA'⟩ := ih hΓ' + refine ⟨llen, _, ?_, I.mem_ofType_wk _ hA'⟩ + exact Part.mem_bind hA (Part.mem_some _) theorem var_sound {Γ i A l} (H : Lookup Γ i A l) {sΓ} (hΓ : sΓ ∈ I.ofCtx Γ) : ∃ llen, ∃ st ∈ sΓ.var llen i, st ≫ s[l].tp ∈ I.ofType sΓ l A llen := by From 1cf9a2898f31f2c2f7cb49c2d1a93d76d803c34c Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:43:13 -0400 Subject: [PATCH 240/362] UNITY: integrate Bump repair repair-a3fb7bbcb117a6d3 --- HoTTLean/Groupoids/Pi.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index c2652964..467ce652 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -226,7 +226,8 @@ lemma conjugatingObjNatTransEquiv'_comp {x y z : Γ} (f1 : x ⟶ y) (f2 : y ⟶ eqToHom (by simp [Grpd.Functor.iso, ← Grpd.comp_eq_comp]) ≫ (A.map f1 ⋙ A.map f2).whiskerLeft g ≫ eqToHom (by simp [Grpd.Functor.iso, ← Grpd.comp_eq_comp]) := by - simp [conjugatingObjNatTransEquiv', Grpd.Functor.iso] + dsimp only [conjugatingObjNatTransEquiv', Equiv.coe_fn_mk] + simp [Grpd.Functor.iso, Grpd.functorIsoOfIso] rw! [Functor.map_comp A f1 f2] simp From c3da3e4aa17dc16844bbbcbd517f07c9491d9403 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:51:36 -0400 Subject: [PATCH 241/362] UNITY: integrate Bump repair repair-01f47a95dfbb0e90 --- HoTTLean/Groupoids/Pi.lean | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 467ce652..9dabad94 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -259,6 +259,8 @@ theorem whiskerLeft_twice' {A B C D : Type*} [Category A] [Category B] [Category whiskerLeft (F ⋙ G) α := rfl +-- The proof unfolds bundled groupoid coercions during dependent rewriting. +set_option backward.isDefEq.respectTransparency false in lemma conjugatingObjNatTransEquiv'_comp' {x y z : Γ} (f1 : x ⟶ y) (f2 : y ⟶ z) (S0 : (A.obj x) ⥤ (B.obj x)) (S1 : (A.obj y) ⥤ (B.obj y)) @@ -280,6 +282,7 @@ lemma conjugatingObjNatTransEquiv'_comp' {x y z : Γ} (f1 : x ⟶ y) (f2 : y ⟶ Category.id_comp, Equiv.coe_fn_mk, whiskerLeft_comp, whiskerLeft_eqToHom, eqToHom_trans_assoc, whiskerRight_comp, eqToHom_whiskerRight, whiskerLeft_twice, associator_eq, CategoryTheory.Iso.refl_inv, CategoryTheory.Iso.refl_hom, Category.comp_id, Category.assoc] at * + dsimp only [Grpd.functorIsoOfIso, Functor.mapIso, asIso] at * erw [Category.id_comp] rw [whiskerLeft_map_comp, whiskerLeft_map_comp] simp only [← Category.assoc, eqToHom_trans] From 5190e8883cbac9d971c75ee7e25b44a0c0722a79 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:53:46 -0400 Subject: [PATCH 242/362] UNITY: integrate Bump repair repair-b5b7c9339f2b2414 --- HoTTLean/Model/Natural/Interpretation.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 842b185f..760d0f3a 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -1062,6 +1062,8 @@ theorem EqTmIH.refl_tm {Γ A t t' l} : I.mem_ofTerm_refl.2 ⟨_, ht', rfl⟩, mkRefl_tp ..⟩ +-- The dependent context projections need reducible transparency during elaboration. +set_option backward.isDefEq.respectTransparency false in theorem EqTmIH.idRec {Γ A M M' t t' r r' u u' h h' l l'} : I.EqTmIH Γ l A t t' → I.EqTpIH ((.Id l (.subst .wk A) (.subst .wk t) (.bvar 0), l) :: (A, l) :: Γ) l' M M' → From 62e8ca1931a51ac017628ee9412799c69ef0dba6 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 07:58:33 -0400 Subject: [PATCH 243/362] UNITY: integrate Bump repair repair-9846e208b3ae0013 --- HoTTLean/Model/Natural/Interpretation.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 760d0f3a..6dc95ff7 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -1130,7 +1130,8 @@ theorem EqTmIH.app_lam {Γ A B t u l l'} : I.mem_ofTerm_lam.2 ⟨rfl, _, hA, _, ht, by simp⟩, _, hu, _, utp, _, hB, s.mkLam_tp (t_tp := ttp) .., (s.mkApp_mkLam (t_tp := ttp) ..).symm⟩, - I.mem_ofTerm_toSb _ hu _ ht, by simp [ttp]⟩ + I.mem_ofTerm_toSb _ hu _ ht, by + exact (Category.assoc _ _ _).trans (congrArg _ ttp)⟩ theorem EqTmIH.fst_snd_pair {Γ A B t u l l'} : I.WfTpIH ((A, l) :: Γ) l' B → I.WfTmIH Γ l A t → I.WfTmIH Γ l' (Expr.subst t.toSb B) u → From b9632af4827d7c1996f560b1f9472506290824b3 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 08:01:08 -0400 Subject: [PATCH 244/362] UNITY: integrate Bump repair repair-5aa722cb8261d73f --- HoTTLean/Groupoids/Pi.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 9dabad94..f9b4fa76 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -305,6 +305,8 @@ def conjugatingObjNatTransEquiv₁ {x y : Γ} (f : x ⟶ y) (S) (T) : (S ⋙ B.map f ≅ A.map f ⋙ T) := (conjugatingObjNatTransEquiv' A B f S T).trans (Groupoid.isoEquivHom (S ⋙ B.map f) (A.map f ⋙ T)).symm +-- Dependent rewriting unfolds bundled groupoid coercions. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma conjugatingObjNatTransEquiv₁_id_inv {x : Γ} (S) (T) (g : A.map (inv (𝟙 x)) ⋙ S ⋙ B.map (𝟙 x) ⟶ T) : From bfa6064d0e9622650e89ba7dd5c99bc5f689488c Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 08:06:51 -0400 Subject: [PATCH 245/362] UNITY: integrate Bump repair repair-69c6edc5b05106cd --- HoTTLean/Groupoids/Pi.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index f9b4fa76..b9848dc8 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -316,6 +316,8 @@ lemma conjugatingObjNatTransEquiv₁_id_inv {x : Γ} (S) (T) erw [conjugatingObjNatTransEquiv'_id] simp [Groupoid.isoEquivHom] +-- Dependent rewriting unfolds bundled groupoid coercions. +set_option backward.isDefEq.respectTransparency false in lemma conjugatingObjNatTransEquiv₁_comp_inv {x y z : Γ} (f1 : x ⟶ y) (f2 : y ⟶ z) (S0 : (A.obj x) ⥤ (B.obj x)) (S1 : (A.obj y) ⥤ (B.obj y)) @@ -331,7 +333,7 @@ lemma conjugatingObjNatTransEquiv₁_comp_inv {x y z : Γ} (f1 : x ⟶ y) (f2 : whiskerLeft (A.map f1) (conjugatingObjNatTransEquiv₁ A B f2 S1 S2 g12).inv ≫ whiskerRight ((conjugatingObjNatTransEquiv₁ A B f1 S0 S1 g01).inv) (B.map f2) ≫ eqToHom (by simp [← Grpd.comp_eq_comp]) := by - dsimp [conjugatingObjNatTransEquiv₁] + simp only [conjugatingObjNatTransEquiv₁, Equiv.trans_apply] erw [conjugatingObjNatTransEquiv'_comp' A B f1 f2 S0 S1 S2 g01 g12 g02 h] simp [Groupoid.isoEquivHom] rfl From cc4864608de7d5cf7f043fc51f0235ce774116c4 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 08:09:17 -0400 Subject: [PATCH 246/362] UNITY: integrate Bump repair repair-6e4abf8d3f42a5ff --- HoTTLean/Model/Natural/Interpretation.lean | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index 6dc95ff7..ea27fa40 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -1151,6 +1151,8 @@ theorem EqTmIH.fst_snd_pair {Γ A B t u l l'} : ⟨_, hΓ, _, _, I.mem_ofType_toSb _ ht ttp hB, _, I.mem_ofTerm_snd.2 ⟨_, _, hA, _, hB, _, hp, tp, (mkSnd_mkPair ..).symm⟩, hu, utp⟩⟩ +-- Keep the semantic context projections transparent in this dependent proof. +set_option backward.isDefEq.respectTransparency false in theorem EqTmIH.idRec_refl {Γ A M t r l l'} : I.WfTmIH Γ l A t → I.WfTpIH ((.Id l (.subst .wk A) (.subst .wk t) (.bvar 0), l) :: (A, l) :: Γ) l' M → @@ -1178,6 +1180,8 @@ theorem EqTmIH.idRec_refl {Γ A M t r l l'} : ⟨_, hΓ, _, _, sM, _, ir, hr, sr⟩ simp [Beq, comp_mkId, sAeq] +-- Keep the semantic context projections transparent in this dependent proof. +set_option backward.isDefEq.respectTransparency false in theorem EqTmIH.lam_app {Γ A B f l l'} : I.WfTmIH Γ (max l l') (.pi l l' A B) f → I.EqTmIH Γ (max l l') (.pi l l' A B) f @@ -1193,6 +1197,8 @@ theorem EqTmIH.lam_app {Γ A B f l l'} : ⟨_, hΓ, _, _, hF, _, hf, hl, ftp⟩ simp [ftp, comp_mkPi] +-- Keep the semantic context projections transparent in this dependent proof. +set_option backward.isDefEq.respectTransparency false in theorem EqTmIH.pair_fst_snd {Γ A B p l l'} : I.WfTmIH Γ (max l l') (Expr.sigma l l' A B) p → I.EqTmIH Γ (max l l') (Expr.sigma l l' A B) p From f36a2fba1a03369bcc9fcdf6c2904dca88394291 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 08:14:09 -0400 Subject: [PATCH 247/362] UNITY: integrate Bump repair repair-6bcfcfb6e205a063 --- HoTTLean/Groupoids/Pi.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index b9848dc8..df2865cb 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -365,11 +365,12 @@ def hom_hext {A A' : Grpd.{u₁,u₁}} (hA : A ≍ A') {B B' : Grpd.{u₁,u₁}} def hom_hext' {A A' : Grpd.{u₁,u₁}} (hA : A ≍ A') {B B' : Grpd.{u₁,u₁}} (hB : B ≍ B') {F : A ⟶ B} {F' : A' ⟶ B'} (hF : F ≍ F') {x y : Section F} {x' y' : Section F'} {f : x ⟶ y} {f' : x' ⟶ y'} (hx : x ≍ x') - (hy : y ≍ y') (hf : ∀ k k', k ≍ k' → f.1.app k ≍ f'.1.app k') : + (hy : y ≍ y') (hf : ∀ k k', k ≍ k' → f.1.hom.app k ≍ f'.1.hom.app k') : f ≍ f' := by subst hA hB hF hx hy simp at * apply MorphismProperty.WideSubcategory.hom_ext + apply InducedCategory.hom_ext apply NatTrans.ext ext apply hf From c421eee7907419c06707795f29c8c1f9e80bdd87 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 09:11:11 -0400 Subject: [PATCH 248/362] UNITY: integrate Bump repair repair-50ef6795ff9cf8fa --- HoTTLean/Groupoids/Pi.lean | 52 +++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index df2865cb..05a8f7f7 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -379,6 +379,8 @@ section variable {x y : Γ} (f : x ⟶ y) +-- Allow the bundled groupoid projections to unfold when elaborating section maps. +set_option backward.isDefEq.respectTransparency false in /-- The functorial action of `pi` on a morphism `f : x ⟶ y` in `Γ` is given by "conjugation". Since `piObj B x` is a subcategory of `sigma A B x ⥤ A x`, @@ -400,30 +402,38 @@ def functorMap : functorObj φ x ⥤ functorObj φ y := ((Section.ι _ ⋙ conjugating A B f)) (by intro s - have := s.obj.property - simp only [IsSection, ← Grpd.comp_eq_comp, ← Grpd.id_eq_id, Functor.comp_obj, - MorphismProperty.wideSubcategoryInclusion.obj, ObjectProperty.ι_obj, conjugating_obj, - Functor.map_inv, Category.assoc, NatTrans.naturality] at * - slice_lhs 2 3 => rw [this] - simp [- Grpd.comp_eq_comp, - Grpd.id_eq_id])) + have hsec := s.obj.property + change (A.map (inv f) ⋙ s.obj.obj ⋙ B.map f) ⋙ φ.app y = 𝟭 _ + change s.obj.obj ⋙ φ.app x = 𝟭 _ at hsec + have hn : B.map f ⋙ φ.app y = φ.app x ⋙ A.map f := by + simpa only [Grpd.comp_eq_comp] using φ.naturality f + calc + _ = A.map (inv f) ⋙ (s.obj.obj ⋙ φ.app x) ⋙ A.map f := by + rw [Functor.assoc, Functor.assoc, hn] + simp only [Functor.assoc] + _ = _ := by rw [hsec]; simp [← Grpd.comp_eq_comp, ← A.map_comp] + ) + ) (by intro s t α - have := α.property - simp only [IsOverId, ← Grpd.comp_eq_comp, Category.id_comp, eqToHom_trans, Set.mem_setOf_eq, - ObjectProperty.lift_obj_obj, Functor.comp_obj, MorphismProperty.wideSubcategoryInclusion.obj, - ObjectProperty.ι_obj, ObjectProperty.lift_map, Functor.comp_map, + have h := α.property + ext a + simp only [IsOverId, Set.mem_setOf_eq] at h ⊢ + simp only [ObjectProperty.lift_map, Functor.comp_map, MorphismProperty.wideSubcategoryInclusion.map, ObjectProperty.ι_map, conjugating_map, - Functor.whiskerRight_twice, Functor.associator_eq, Iso.refl_hom, Iso.refl_inv] at * - rw [Functor.whiskerRight_whiskerLeft] - conv => left; left; rw! (castMode := .all) [φ.naturality, Grpd.comp_eq_comp] - erw [Functor.comp_whiskerRight, this, Category.comp_id] - simp only [Grpd.comp_eq_comp, Functor.eqToHom_whiskerRight, Functor.whiskerLeft_eqToHom, - ← heq_eq_eq, eqRec_heq_iff_heq] - congr! 1 - · simp only [← Grpd.comp_eq_comp, ← φ.naturality] - rfl - · simp only [← Grpd.comp_eq_comp, ← φ.naturality] - rfl) + Functor.whiskerRight_app, Functor.whiskerLeft_app, NatTrans.comp_app, + NatTrans.id_app, Category.comp_id, Category.id_comp, eqToHom_app] at * + dsimp only [ObjectProperty.homMk] at * + simp only [Functor.comp_map, MorphismProperty.wideSubcategoryInclusion.map, + ObjectProperty.ι_map, conjugating_map, Functor.whiskerRight_app, Functor.whiskerLeft_app, + eqToHom_app] at * + have hn : B.map f ⋙ φ.app y = φ.app x ⋙ A.map f := by + simpa only [Grpd.comp_eq_comp] using φ.naturality f + have hh := congrArg (fun η => η.app ((A.map (inv f)).obj a)) h + simp only [Functor.whiskerRight_app, NatTrans.comp_app, eqToHom_app] at hh + rw [← Functor.comp_map, Functor.congr_hom hn, Functor.comp_map, hh] + simp only [Functor.map_comp, eqToHom_map, Category.assoc, eqToHom_trans] + ) def functor : Γ ⥤ Grpd.{u₁,u₁} where obj := functorObj φ From 778ac52fe313f500f3d8256ef4d3aa145fe0c0d7 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 09:18:34 -0400 Subject: [PATCH 249/362] UNITY: integrate Bump repair repair-8ab35cd1c8440b14 --- HoTTLean/Groupoids/Pi.lean | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 05a8f7f7..60d5b060 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -446,9 +446,11 @@ lemma functor_comp {Δ : Type u₃} [Groupoid.{v₃} Δ] (σ : Δ ⥤ Γ) : σ ⋙ functor φ := by fapply CategoryTheory.Functor.ext · intro x - simp [functor, functorObj] + rfl · intro x y f - simp [functor, functorMap] + -- The object equalities above are definitionally reflexive at full transparency. + set_option backward.isDefEq.respectTransparency false in + simp [functor, functorMap] @[simp] lemma functor_map_map {s t} (α : s ⟶ t) : (((functor φ).map f).map α).1 = From c215a9da9117cbcf0ed634c64705c99d74f96c23 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 09:24:39 -0400 Subject: [PATCH 250/362] UNITY: integrate Bump repair repair-b7f781e39462d01e --- HoTTLean/Groupoids/Pi.lean | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 60d5b060..8afe627a 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -452,9 +452,11 @@ lemma functor_comp {Δ : Type u₃} [Groupoid.{v₃} Δ] (σ : Δ ⥤ Γ) : set_option backward.isDefEq.respectTransparency false in simp [functor, functorMap] +-- Unfold bundled groupoid projections while elaborating this dependent equation. +set_option backward.isDefEq.respectTransparency false in @[simp] -lemma functor_map_map {s t} (α : s ⟶ t) : (((functor φ).map f).map α).1 = - Functor.whiskerRight (Functor.whiskerLeft (A.map (inv f)) α.1) (B.map f) := by +lemma functor_map_map {s t} (α : s ⟶ t) : (((functor φ).map f).map α).1.hom = + Functor.whiskerRight (Functor.whiskerLeft (A.map (inv f)) α.1.hom) (B.map f) := by simp [functor, functorMap, conjugating, MorphismProperty.lift] end From 287e52b88e9f3f4e5fe98243e0f9d072d836c71a Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 09:31:29 -0400 Subject: [PATCH 251/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 8afe627a..98160f75 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -473,21 +473,21 @@ variable (app : (x : Γ) → A.obj x ⥤ B.obj x) Functor.whiskerRight (naturality f).hom (B.map g) ≫ eqToHom (by simp [Functor.assoc])) -def strongTrans : (A ⋙ Grpd.forgetToCat).toPseudoFunctor'.StrongTrans - (B ⋙ Grpd.forgetToCat).toPseudoFunctor' where - app x := app x.as - naturality f := naturality f.as +def strongTrans : (A ⋙ Grpd.forgetToCat).toPseudofunctor'.StrongTrans + (B ⋙ Grpd.forgetToCat).toPseudofunctor' where + app x := (app x.as).toCatHom + naturality f := Cat.Hom.isoMk (naturality f.as) naturality_naturality := by intro x y f g η have := LocallyDiscrete.eq_of_hom η subst this - simp only [Functor.toPseudoFunctor', Functor.comp_obj, Functor.comp_map, LocallyDiscrete.id_as, + simp only [Functor.toPseudofunctor', Functor.comp_obj, Functor.comp_map, LocallyDiscrete.id_as, LocallyDiscrete.comp_as, pseudofunctorOfIsLocallyDiscrete, Bicategory.whiskerRight, eqToHom_refl, Bicategory.whiskerLeft] aesop naturality_id := by intro x - simp only [Functor.toPseudoFunctor', Functor.comp_obj, Functor.comp_map, LocallyDiscrete.id_as, + simp only [Functor.toPseudofunctor', Functor.comp_obj, Functor.comp_map, LocallyDiscrete.id_as, LocallyDiscrete.comp_as, pseudofunctorOfIsLocallyDiscrete, Bicategory.whiskerLeft, eqToIso.hom, Bicategory.whiskerRight, Bicategory.leftUnitor, Bicategory.rightUnitor] rw [Functor.eqToHom_whiskerRight, Functor.leftUnitor_hom_comp_rightUnitor_inv, @@ -496,7 +496,7 @@ def strongTrans : (A ⋙ Grpd.forgetToCat).toPseudoFunctor'.StrongTrans conv => right; apply Category.comp_id naturality_comp := by intro x y z f g - simp only [Grpd.forgetToCat, Functor.toPseudoFunctor', Functor.comp_obj, Functor.comp_map, + simp only [Grpd.forgetToCat, Functor.toPseudofunctor', Functor.comp_obj, Functor.comp_map, id_eq, LocallyDiscrete.id_as, LocallyDiscrete.comp_as, pseudofunctorOfIsLocallyDiscrete, naturality_comp, eqToHom_refl, Category.id_comp, Bicategory.whiskerLeft, Cat.of_α, eqToIso.hom, Category.assoc, Bicategory.whiskerRight, Bicategory.associator, @@ -523,13 +523,13 @@ lemma strongTrans_comp_toStrongTrans'_self (happ : ∀ x, app x ⋙ φ.app x = (Functor.whiskerRight φ Grpd.forgetToCat).toStrongTrans' = 𝟙 _ := by fapply Pseudofunctor.StrongTrans.ext · intro x - simp only [Grpd.forgetToCat, Functor.toPseudoFunctor'_obj, Functor.comp_obj, strongTrans, + simp only [Grpd.forgetToCat, Functor.toPseudofunctor'_obj, Functor.comp_obj, strongTrans, comp_app, NatTrans.toStrongTrans'_app, Functor.whiskerRight_app, id_eq, categoryStruct_id_app] apply happ · intro x y f ext a - simp only [Grpd.forgetToCat, Functor.toPseudoFunctor'_obj, Functor.comp_obj, Cat.of_α, - Functor.toPseudoFunctor'_map, Functor.comp_map, id_eq, strongTrans, comp_app, + simp only [Grpd.forgetToCat, Functor.toPseudofunctor'_obj, Functor.comp_obj, Cat.of_α, + Functor.toPseudofunctor'_map, Functor.comp_map, id_eq, strongTrans, comp_app, NatTrans.toStrongTrans'_app, Functor.whiskerRight_app, Cat.comp_obj, categoryStruct_id_app, Cat.id_obj, categoryStruct_comp_naturality_hom, Bicategory.associator, NatTrans.toStrongTrans'_naturality, eqToIso.hom, Bicategory.whiskerLeft_eqToHom, @@ -543,9 +543,9 @@ lemma strongTrans_comp_toStrongTrans'_self (happ : ∀ x, app x ⋙ φ.app x = rfl def mapStrongTrans : ∫ A ⥤ ∫ B := - (Functor.Grothendieck.toPseudoFunctor'Iso _).hom ⋙ + (Functor.Grothendieck.toPseudofunctor'Iso _).hom ⋙ Pseudofunctor.Grothendieck.map (strongTrans app naturality naturality_id naturality_comp) ⋙ - (Functor.Grothendieck.toPseudoFunctor'Iso _).inv + (Functor.Grothendieck.toPseudofunctor'Iso _).inv @[simp] lemma mapStrongTrans_obj_base (x) : From b6a407982294fc17b82af4febba191929c6b38fa Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 09:39:37 -0400 Subject: [PATCH 252/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 98160f75..22cd0a96 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -473,6 +473,8 @@ variable (app : (x : Γ) → A.obj x ⥤ B.obj x) Functor.whiskerRight (naturality f).hom (B.map g) ≫ eqToHom (by simp [Functor.assoc])) +-- Cat 2-cell projections require bundled pseudofunctor coercions to unfold during rewriting. +set_option backward.isDefEq.respectTransparency false in def strongTrans : (A ⋙ Grpd.forgetToCat).toPseudofunctor'.StrongTrans (B ⋙ Grpd.forgetToCat).toPseudofunctor' where app x := (app x.as).toCatHom @@ -484,26 +486,35 @@ def strongTrans : (A ⋙ Grpd.forgetToCat).toPseudofunctor'.StrongTrans simp only [Functor.toPseudofunctor', Functor.comp_obj, Functor.comp_map, LocallyDiscrete.id_as, LocallyDiscrete.comp_as, pseudofunctorOfIsLocallyDiscrete, Bicategory.whiskerRight, eqToHom_refl, Bicategory.whiskerLeft] - aesop + apply Cat.Hom₂.ext + simp [Cat.Hom.toNatTrans_comp] naturality_id := by intro x + apply Cat.Hom₂.ext simp only [Functor.toPseudofunctor', Functor.comp_obj, Functor.comp_map, LocallyDiscrete.id_as, LocallyDiscrete.comp_as, pseudofunctorOfIsLocallyDiscrete, Bicategory.whiskerLeft, eqToIso.hom, Bicategory.whiskerRight, Bicategory.leftUnitor, Bicategory.rightUnitor] + simp only [Cat.Hom.toNatTrans_comp, Cat.Hom₂.eqToHom_toNatTrans] at * + dsimp only [Cat.Hom.isoMk, NatTrans.toCatHom₂, Functor.toCatHom] rw [Functor.eqToHom_whiskerRight, Functor.leftUnitor_hom_comp_rightUnitor_inv, Functor.whiskerLeft_eqToHom, naturality_id] - simp - conv => right; apply Category.comp_id + simp [Cat.Hom.toNatTrans_comp] naturality_comp := by intro x y z f g + change Discrete (x.as ⟶ y.as) at f + change Discrete (y.as ⟶ z.as) at g + cases f with | mk f => + cases g with | mk g => + apply Cat.Hom₂.ext simp only [Grpd.forgetToCat, Functor.toPseudofunctor', Functor.comp_obj, Functor.comp_map, id_eq, LocallyDiscrete.id_as, LocallyDiscrete.comp_as, pseudofunctorOfIsLocallyDiscrete, naturality_comp, eqToHom_refl, Category.id_comp, Bicategory.whiskerLeft, Cat.of_α, eqToIso.hom, Category.assoc, Bicategory.whiskerRight, Bicategory.associator, Functor.associator_eq, Iso.refl_hom, Iso.refl_inv] + simp only [Cat.Hom.toNatTrans_comp, Cat.Hom₂.eqToHom_toNatTrans] at * rw [Functor.eqToHom_whiskerRight, Functor.whiskerLeft_eqToHom] erw [Category.id_comp, Category.id_comp, Category.comp_id] - simp + simp [Cat.Hom.toNatTrans_comp, naturality_comp] lemma strongTrans_comp_toStrongTrans'_self_aux (happ : ∀ x, app x ⋙ φ.app x = 𝟭 _) {x y} (f : x ⟶ y) (a : A.obj x) : From 59d92d779121dfc9294b625c6d0c778ecd571633 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 09:46:25 -0400 Subject: [PATCH 253/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 22cd0a96..1fa217e0 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -536,7 +536,8 @@ lemma strongTrans_comp_toStrongTrans'_self (happ : ∀ x, app x ⋙ φ.app x = · intro x simp only [Grpd.forgetToCat, Functor.toPseudofunctor'_obj, Functor.comp_obj, strongTrans, comp_app, NatTrans.toStrongTrans'_app, Functor.whiskerRight_app, id_eq, categoryStruct_id_app] - apply happ + apply Cat.ext + exact happ x.as · intro x y f ext a simp only [Grpd.forgetToCat, Functor.toPseudofunctor'_obj, Functor.comp_obj, Cat.of_α, From b645e3a04c5b8d0e0739b6e43ee1ab6b51d05816 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 10:04:38 -0400 Subject: [PATCH 254/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 1fa217e0..e2d498d9 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -542,10 +542,10 @@ lemma strongTrans_comp_toStrongTrans'_self (happ : ∀ x, app x ⋙ φ.app x = ext a simp only [Grpd.forgetToCat, Functor.toPseudofunctor'_obj, Functor.comp_obj, Cat.of_α, Functor.toPseudofunctor'_map, Functor.comp_map, id_eq, strongTrans, comp_app, - NatTrans.toStrongTrans'_app, Functor.whiskerRight_app, Cat.comp_obj, categoryStruct_id_app, - Cat.id_obj, categoryStruct_comp_naturality_hom, Bicategory.associator, + NatTrans.toStrongTrans'_app, Functor.whiskerRight_app, categoryStruct_id_app, + categoryStruct_comp_naturality_hom, Bicategory.associator, NatTrans.toStrongTrans'_naturality, eqToIso.hom, Bicategory.whiskerLeft_eqToHom, - Category.assoc, Cat.comp_app, Functor.associator_inv_app, Cat.whiskerRight_app, + Category.assoc, Functor.associator_inv_app, Cat.whiskerRight_app, Functor.associator_hom_app, Cat.eqToHom_app, Category.id_comp, eqToHom_trans, categoryStruct_id_naturality_hom, Bicategory.rightUnitor, Bicategory.leftUnitor, Functor.rightUnitor_hom_app, Functor.leftUnitor_inv_app, Category.comp_id, ← heq_eq_eq, From ddb4124ce5ffdb8adc0c7edc9be90a17cbe608f2 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 10:16:14 -0400 Subject: [PATCH 255/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index e2d498d9..8fcc94a3 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -605,7 +605,7 @@ section def sigma.fstNatTrans : sigma A B ⟶ A where app x := forget - naturality x y f:= by simp [sigmaMap_forget] + naturality x y f := by rfl @[simp] lemma sigma.fstNatTrans_app (x) : (fstNatTrans A B).app x = Functor.Groupoidal.forget := From 25ddbc368ae161a5774a13f7674310b862851410 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 10:24:55 -0400 Subject: [PATCH 256/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 8fcc94a3..f46c87f3 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -660,7 +660,9 @@ as the induced map in the following diagram lemma pi.obj_hext {A A' : Γ ⥤ Grpd.{u₁,u₁}} (hA : A ≍ A') {B : ∫ A ⥤ Grpd.{u₁,u₁}} {B' : ∫ A' ⥤ Grpd.{u₁,u₁}} (hB : B ≍ B') (x : Γ) (f : (pi A B).obj x) (f' : (pi A' B').obj x) (hf : f.obj.obj ≍ f'.obj.obj) : f ≍ f' := by - aesop + subst hA hB + simp at * + exact eq_of_heq (Section.obj_hext HEq.rfl HEq.rfl HEq.rfl f f' (heq_of_eq hf)) end From 62f5369ea6067ad54a4f329b2b27a85205054219 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 10:35:55 -0400 Subject: [PATCH 257/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index f46c87f3..e3b231d3 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -737,8 +737,7 @@ lemma strongTrans.app_map_base (y) {a a'} (f : a ⟶ a') : ((strongTrans.app B s hs y).map f).base = eqToHom (by simp) ≫ f ≫ eqToHom (by simp) := by have := Functor.congr_hom (PGrpd.objFiber' hs y).obj.property f - simp at this - simp [strongTrans.app, this] + exact this def strongTrans.twoCell {x y : Γ} (g : x ⟶ y) : A.map (CategoryTheory.inv g) ⋙ strongTrans.app B s hs x ⋙ sigmaMap B g ⟶ From f75dc3831362d4c3fc6094db111361044264fed1 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 10:42:35 -0400 Subject: [PATCH 258/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index e3b231d3..5deb8b3c 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -741,7 +741,7 @@ lemma strongTrans.app_map_base (y) {a a'} (f : a ⟶ a') : def strongTrans.twoCell {x y : Γ} (g : x ⟶ y) : A.map (CategoryTheory.inv g) ⋙ strongTrans.app B s hs x ⋙ sigmaMap B g ⟶ - strongTrans.app B s hs y := (PGrpd.mapFiber' hs g).1 + strongTrans.app B s hs y := (PGrpd.mapFiber' hs g).1.hom lemma strongTrans.twoCell_app_base_aux {x y : Γ} (g : x ⟶ y) (a) : base ((A.map (CategoryTheory.inv g) ⋙ app B s hs x ⋙ sigmaMap B g).obj a) = @@ -766,7 +766,7 @@ lemma strongTrans.twoCell_id (x) : set_option maxHeartbeats 400000 in lemma strongTrans.pi_map_map {x y z} (f : x ⟶ y) (g : y ⟶ z) : - (((pi A B).map g).map (PGrpd.mapFiber' hs f)).1 = + (((pi A B).map g).map (PGrpd.mapFiber' hs f)).1.hom = Functor.whiskerLeft (A.map (CategoryTheory.inv g)) (Functor.whiskerRight (twoCell B s hs f) (sigmaMap B g)) := Section.functor_map_map (A := A) From 7d5af3723f0a358f63ca7821a79e9939b6e99a25 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 11:06:24 -0400 Subject: [PATCH 259/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 5deb8b3c..00505f4a 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -581,6 +581,8 @@ lemma mapStrongTrans_map_fiber {x y} (f : x ⟶ y) : (naturality f.base).inv.app x.fiber ≫ (app y.base).map f.fiber := rfl +-- The Grothendieck functor coercions require backward transparency for these rewrites. +set_option backward.isDefEq.respectTransparency false in lemma mapStrongTrans_comp_map_self (happ : ∀ x, app x ⋙ φ.app x = 𝟭 _) (hnaturality : ∀ {x y} (f : x ⟶ y) (a : A.obj x), (φ.app y).map ((naturality f).hom.app a) = From a7ada329284dbdbc4150cc04b17770420b17b904 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 11:14:01 -0400 Subject: [PATCH 260/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 00505f4a..0ce917e3 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -745,12 +745,16 @@ def strongTrans.twoCell {x y : Γ} (g : x ⟶ y) : A.map (CategoryTheory.inv g) ⋙ strongTrans.app B s hs x ⋙ sigmaMap B g ⟶ strongTrans.app B s hs y := (PGrpd.mapFiber' hs g).1.hom +-- The equality crosses the bundled groupoid coercion in functor composition. +set_option backward.isDefEq.respectTransparency false in lemma strongTrans.twoCell_app_base_aux {x y : Γ} (g : x ⟶ y) (a) : base ((A.map (CategoryTheory.inv g) ⋙ app B s hs x ⋙ sigmaMap B g).obj a) = base ((app B s hs y).obj a) := by simp only [Functor.map_inv, sigma_obj, Functor.comp_obj, sigmaMap_obj_base, app_obj_base] simp [← Functor.comp_obj, ← Grpd.comp_eq_comp] +-- The bundled groupoid coercions in the whiskered component require backward unfolding. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma strongTrans.twoCell_app_base {x y : Γ} (g : x ⟶ y) (a) : ((strongTrans.twoCell B s hs g).app a).base = eqToHom (twoCell_app_base_aux ..) := by From 5673500e2c6f9272cc8eb85ebf8ecd7254e7e0d3 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 11:21:37 -0400 Subject: [PATCH 261/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 0ce917e3..12a190ee 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -804,6 +804,8 @@ def strongTrans.naturality {x y : Γ} (g : x ⟶ y) : A.map g ⋙ strongTrans.app B s hs y ≅ strongTrans.app B s hs x ⋙ sigmaMap B g := ((conjugatingObjNatTransEquiv₁ _ _ _ _ _).toFun (twoCell B s hs g)).symm +-- Unfold the bundled groupoid functor coercions while elaborating this projection. +set_option backward.isDefEq.respectTransparency false in lemma strongTrans.naturality_inv_app {x y} (f : x ⟶ y) (a) : (strongTrans.naturality B s hs f).inv.app a = eqToHom (by simp [← Functor.comp_obj]; simp [← Grpd.comp_eq_comp]) ≫ @@ -815,6 +817,7 @@ lemma strongTrans.naturality_inv_app {x y} (f : x ⟶ y) (a) : Equiv.trans_apply, Equiv.coe_fn_mk, Equiv.coe_fn_symm_mk, IsIso.inv_comp, Functor.inv_whiskerLeft, inv_eqToHom, Iso.symm_mk, NatTrans.comp_app, eqToHom_app, Functor.whiskerLeft_app] + rfl @[simp] lemma strongTrans.naturality_inv_app_base {x y} (f : x ⟶ y) (a) : From f7068a38a2e71fbb277efbefcb44b0a287fdfacf Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 11:28:43 -0400 Subject: [PATCH 262/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 12a190ee..83468ac6 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -819,6 +819,8 @@ lemma strongTrans.naturality_inv_app {x y} (f : x ⟶ y) (a) : Functor.whiskerLeft_app] rfl +-- Bundled groupoid coercions must be unfolded when elaborating the base equation. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma strongTrans.naturality_inv_app_base {x y} (f : x ⟶ y) (a) : Hom.base ((strongTrans.naturality B s hs f).inv.app a) = eqToHom (by simp) := by From 96cecba6b892f8c4b2125922664ae861f76457e9 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 11:36:02 -0400 Subject: [PATCH 263/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 83468ac6..fc9e6d04 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -837,6 +837,8 @@ lemma strongTrans.naturality_inv_app_fiber {x y} (f : x ⟶ y) (a) : rw! [strongTrans.naturality_inv_app, comp_fiber, fiber_eqToHom, eqToHom_map] simp +-- Bundled groupoid coercions need the legacy transparency for transport simplification. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma strongTrans.naturality_id_hom (x : Γ) : (strongTrans.naturality B s hs (𝟙 x)).hom = eqToHom (by simp) := by @@ -870,7 +872,7 @@ lemma strongTrans.naturality_comp_hom {x y z : Γ} (g1 : x ⟶ y) (g2 : y ⟶ z) lemma strongTrans.app_comp_fstNatTrans_app (x : Γ) : strongTrans.app B s hs x ⋙ (sigma.fstNatTrans A B).app x = 𝟭 ↑(A.obj x) := by - simpa [strongTrans.app] using (PGrpd.objFiber' hs x).obj.property + simpa [strongTrans.app, IsSection] using (PGrpd.objFiber' hs x).obj.property lemma strongTrans.app_map_naturality_hom_app {x y : Γ} (f : x ⟶ y) (a : (A.obj x)) : ((sigma.fstNatTrans A B).app y).map (((strongTrans.naturality B s hs) f).hom.app a) = From 2e72b31e8b664ba44ff97e65882b2f426b5ba06f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 11:44:26 -0400 Subject: [PATCH 264/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index fc9e6d04..de609910 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -909,12 +909,12 @@ lemma mapStrongTrans_obj_fiber (x) : ((mapStrongTrans B s hs).obj x).fiber = @[simp] lemma mapStrongTrans_obj_fiber_base (x) : ((mapStrongTrans B s hs).obj x).fiber.base = x.fiber := by - simp [mapStrongTrans] + exact strongTrans.app_obj_base B s hs x.base x.fiber @[simp] lemma mapStrongTrans_obj_fiber_fiber (x) : ((mapStrongTrans B s hs).obj x).fiber.fiber = ((strongTrans.app B s hs x.base).obj x.fiber).fiber := by - simp [mapStrongTrans] + rfl @[simp] lemma mapStrongTrans_map_base {x y} (f : x ⟶ y) : ((mapStrongTrans B s hs).map f).base = From 436224f42c20be1822d97dcee3925173a3394f44 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 11:52:29 -0400 Subject: [PATCH 265/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index de609910..0d7bcee8 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -921,17 +921,21 @@ lemma mapStrongTrans_map_base {x y} (f : x ⟶ y) : ((mapStrongTrans B s hs).map f.base := rfl +-- Unfold bundled groupoid coercions in the naturality projection. +set_option backward.isDefEq.respectTransparency false in lemma mapStrongTrans_map_fiber {x y} (f : x ⟶ y) : ((mapStrongTrans B s hs).map f).fiber = eqToHom (by simp [← Functor.comp_obj]; simp [← Grpd.comp_eq_comp, mapStrongTrans_obj_fiber]) ≫ (strongTrans.twoCell B s hs f.base).app ((A.map f.base).obj x.fiber) ≫ (strongTrans.app B s hs y.base).map f.fiber := by simp [mapStrongTrans, strongTrans.naturality_inv_app] +-- Unfold bundled groupoid coercions in the fiber base projection. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma mapStrongTrans_map_fiber_base {x y} (f : x ⟶ y) : ((mapStrongTrans B s hs).map f).fiber.base = - eqToHom (by simp [mapStrongTrans_obj_fiber]) ≫ - f.fiber ≫ eqToHom (by simp [mapStrongTrans_obj_fiber]) := by + eqToHom (by simp only [mapStrongTrans_map_base, mapStrongTrans_obj_fiber, sigma_map, sigmaMap_obj_base, strongTrans.app_obj_base]) ≫ + f.fiber ≫ eqToHom (by simp only [mapStrongTrans_obj_fiber, strongTrans.app_obj_base]) := by rw [mapStrongTrans_map_fiber, comp_base, comp_base, base_eqToHom, strongTrans.twoCell_app_base] simp From 4f91797b9b8e7af850139e7122c364fa5a98a2d1 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 12:01:00 -0400 Subject: [PATCH 266/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 0d7bcee8..734fdb89 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -970,12 +970,11 @@ lemma assocHom_app_base_fiber lemma mapStrongTrans_comp_map_fstNatTrans : mapStrongTrans B s hs ⋙ map (sigma.fstNatTrans A B) = 𝟭 _ := by - convert Section.mapStrongTrans_comp_map_self (sigma.fstNatTrans A B) + exact Section.mapStrongTrans_comp_map_self (sigma.fstNatTrans A B) (strongTrans.app B s hs) (strongTrans.naturality B s hs) - (strongTrans.naturality_id_hom B s hs) (strongTrans.naturality_comp_hom B s hs) _ _ - · apply strongTrans.app_comp_fstNatTrans_app - · intro x y f a - apply strongTrans.app_map_naturality_hom_app + (strongTrans.naturality_id_hom B s hs) (strongTrans.naturality_comp_hom B s hs) + (strongTrans.app_comp_fstNatTrans_app B s hs) + (fun f a => strongTrans.app_map_naturality_hom_app B s hs f a) @[simp] lemma inversion_comp_forgetToGrpd : inversion B s hs ⋙ PGrpd.forgetToGrpd = B := by From b72fcb76e0e49b04dbe207b6fd19cbc061b26388 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 12:08:41 -0400 Subject: [PATCH 267/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 734fdb89..1b4a168e 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -983,6 +983,8 @@ lemma inversion_comp_forgetToGrpd : inversion B s hs ⋙ PGrpd.forgetToGrpd = B simp [← Functor.assoc, mapStrongTrans_comp_map_fstNatTrans] -- NOTE: this is not as general as the `mapStrongTrans` simp lemmas +-- The groupoid coercions in the dependent fiber rewrites require backward unfolding. +set_option backward.isDefEq.respectTransparency false in lemma mapStrongTrans_map_ι_map_fiber_fiber_heq {x : Γ} {a b : A.obj x} (h : a ⟶ b) : ((mapStrongTrans B s hs).map ((ι A x).map h)).fiber.fiber ≍ ((strongTrans.app B s hs x).map h).fiber := by From 9865e9d90e7e25446795e6a8f966c09061c703e8 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 12:15:29 -0400 Subject: [PATCH 268/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 1b4a168e..d3df8ad5 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -999,6 +999,8 @@ lemma mapStrongTrans_map_ι_map_fiber_fiber_heq {x : Γ} {a b : A.obj x} (h : a apply HEq.trans (eqToHom_comp_heq ..) rfl +-- The dependent fiber comparisons require backward unfolding of groupoid coercions. +set_option backward.isDefEq.respectTransparency false in lemma ι_comp_inversion {x} : ι A x ⋙ inversion B s hs = strongTrans.app B s hs x ⋙ toPGrpd (ι A x ⋙ B) := by apply PGrpd.Functor.hext @@ -1042,6 +1044,7 @@ def lamObjFiberObj : A.obj x ⥤ sigmaObj (β ⋙ PGrpd.forgetToGrpd) x := @[simp] lemma lamObjFiberObj_map_fiber {a a'} (h: a ⟶ a'): ((lamObjFiberObj A β x).map h).fiber = PGrpd.mapFiber (ι A x ⋙ β) h := by simp [lamObjFiberObj] + rfl def lamObjFiber : Grpd.of ((pi _ (β ⋙ PGrpd.forgetToGrpd)).obj x) := ⟨lamObjFiberObj A β x, rfl⟩ From f5347e51ff2f724a74643b5da2fd1bff3ef0ecef Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 12:21:47 -0400 Subject: [PATCH 269/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index d3df8ad5..2b8f9c07 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1064,18 +1064,23 @@ variable {x y : Γ} (f : x ⟶ y) open CategoryTheory.Functor +-- These local settings reconcile bundled groupoid coercions in the dependent fiber projections. +set_option backward.isDefEq.respectTransparency false in def lamObjFiberObjCompSigMap.app (a : A.obj x) : (lamObjFiberObj A β x ⋙ sigmaMap (β ⋙ PGrpd.forgetToGrpd) f).obj a ⟶ (A.map f ⋙ lamObjFiberObj A β y).obj a := homMk (𝟙 _) (eqToHom (by simp; rfl) ≫ (β.map ((ιNatTrans f).app a)).fiber) +set_option backward.isDefEq.respectTransparency false in @[simp] lemma lamObjFiberObjCompSigMap.app_base (a : A.obj x) : (app A β f a).base = 𝟙 _ := by simp [app] +set_option backward.isDefEq.respectTransparency false in lemma lamObjFiberObjCompSigMap.app_fiber_eq (a : A.obj x) : (app A β f a).fiber = eqToHom (by simp; rfl) ≫ (β.map ((ιNatTrans f).app a)).fiber := by simp [app] +set_option backward.isDefEq.respectTransparency false in lemma lamObjFiberObjCompSigMap.app_fiber_heq (a : A.obj x) : (app A β f a).fiber ≍ (β.map ((ιNatTrans f).app a)).fiber := by simp [app] From 9a8113fd357914e2f09abba446ae9b1299ec4ca8 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 12:28:33 -0400 Subject: [PATCH 270/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 2b8f9c07..60e2fe4b 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1112,6 +1112,7 @@ lemma lamObjFiberObjCompSigMap.naturality {x y : Γ} (f : x ⟶ y) {a1 a2 : A.ob congr 3 aesop_cat +set_option backward.isDefEq.respectTransparency false in @[simp] lemma lamObjFiberObjCompSigMap.app_id (a) : lamObjFiberObjCompSigMap.app A β (𝟙 x) a = eqToHom (by simp) := by apply Hom.hext @@ -1123,6 +1124,7 @@ lemma lamObjFiberObjCompSigMap.naturality {x y : Γ} (f : x ⟶ y) {a1 a2 : A.ob eqToHom_trans] apply (eqToHom_heq_id_cod _ _ _).trans (eqToHom_heq_id_cod _ _ _).symm +set_option backward.isDefEq.respectTransparency false in lemma lamObjFiberObjCompSigMap.app_comp {x y z : Γ} (f : x ⟶ y) (g : y ⟶ z) (a) : app A β (f ≫ g) a = eqToHom (by simp) From 58fb6fdc4638aa8ea534c5cb1af1148af9209fe7 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 12:36:02 -0400 Subject: [PATCH 271/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 1 + 1 file changed, 1 insertion(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 60e2fe4b..ac9aee86 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1214,6 +1214,7 @@ lemma whiskerLeftInvLamObjObjSimgaMap_comp_aux {A A' B B' C C' : Type*} whiskerLeft G.inv lamG ≫ eqToHom (by aesop) := by aesop_cat +set_option backward.isDefEq.respectTransparency false in lemma whiskerLeftInvLamObjObjSigMap_comp {x y z} (f : x ⟶ y) (g : y ⟶ z) : whiskerLeftInvLamObjObjSigMap A β (f ≫ g) = eqToHom (by simp [Functor.assoc, sigmaMap_comp]) From d38104de7a04d7936ca026d0fce9762c0d2ba7bc Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 12:42:34 -0400 Subject: [PATCH 272/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index ac9aee86..32818dda 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1295,6 +1295,8 @@ lemma lam_comp_aux (x) : ι A (σ.obj x) ⋙ β ⋙ PGrpd.forgetToGrpd = ι (σ ⋙ A) x ⋙ pre A σ ⋙ β ⋙ PGrpd.forgetToGrpd := by simp [← Functor.assoc, ← ι_comp_pre] +-- Unfold bundled groupoid coercions when comparing the dependent section objects. +set_option backward.isDefEq.respectTransparency false in lemma lamObjFiberObj_naturality (x) : lamObjFiberObj A β (σ.obj x) ≍ lamObjFiberObj (σ ⋙ A) (pre A σ ⋙ β) x := by simp only [lamObjFiberObj, ← ι_comp_pre, comp_obj, Functor.assoc] @@ -1317,6 +1319,8 @@ theorem lamObjFiber_naturality (x : Δ) : lamObjFiber A β (σ.obj x) ≍ · simp only [sigma_obj, sigma.fstNatTrans_app, lamObjFiber_obj_obj, comp_obj] apply lamObjFiberObj_naturality +-- The fiber projection uses the same bundled groupoid coercions. +set_option backward.isDefEq.respectTransparency false in lemma lamObjFiberObjCompSigMap.app_naturality {x y} (f : x ⟶ y) (a) : lamObjFiberObjCompSigMap.app A β (σ.map f) a ≍ lamObjFiberObjCompSigMap.app (σ ⋙ A) (pre A σ ⋙ β) f a := by From 114cc0ff45c03656deff5df83d95036869886a28 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 12:48:58 -0400 Subject: [PATCH 273/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 32818dda..2b772a7b 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1669,6 +1669,7 @@ lemma equivInv_equivFun (F : Δ ⥤ ∫ pi A B) (hF : F ⋙ forget = σ) : apply (isPullback _).hom_ext · rw [Functor.IsPullback.fac_left, Functor.IsPullback.fac_left, lam_inversion] · rw! [Functor.IsPullback.fac_right, hF] + rfl lemma equivFun_equivInv (G : ∫ σ ⋙ A ⥤ ∫ B) (hG : G ⋙ forget = pre A σ) : equivFun B (equivInv B G hG) (equivInv_comp_forget B G hG) = G := by @@ -1677,6 +1678,7 @@ lemma equivFun_equivInv (G : ∫ σ ⋙ A ⥤ ∫ B) (hG : G ⋙ forget = pre A · have : pre A σ ⋙ B = (G ⋙ toPGrpd B) ⋙ PGrpd.forgetToGrpd := by rw [Functor.assoc, toPGrpd_forgetToGrpd, ← Functor.assoc, hG] rw! [Functor.IsPullback.fac_left, Functor.IsPullback.fac_left, this, inversion_lam] + rfl · rw [Functor.IsPullback.fac_right, hG] lemma equivFun_comp {Δ' : Type u} [Groupoid.{v} Δ'] {σ' : Δ' ⥤ Γ} (τ : Δ' ⥤ Δ) (hτ : τ ⋙ σ = σ') From 77c5e4b7b4979843c69715d56f83e3b46af2c4e9 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 17:11:31 -0400 Subject: [PATCH 274/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 2b772a7b..0e0d78e9 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -764,11 +764,14 @@ lemma strongTrans.twoCell_app_base {x y : Γ} (g : x ⟶ y) (a) : Category.id_comp, eqToHom_trans, eqToHom_app] at this rw [twoCell, this] +-- Map the section transport through its typed inclusion into the functor category. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma strongTrans.twoCell_id (x) : twoCell B s hs (𝟙 x) = eqToHom (by simp) := by - simp [twoCell] - rfl + have h := congrArg ((Section.ι ((sigma.fstNatTrans A B).app x)).map) + (PGrpd.mapFiber'_id hs (x := x)) + exact h.trans (eqToHom_map _ _) set_option maxHeartbeats 400000 in lemma strongTrans.pi_map_map {x y z} (f : x ⟶ y) (g : y ⟶ z) : @@ -778,6 +781,8 @@ lemma strongTrans.pi_map_map {x y z} (f : x ⟶ y) (g : y ⟶ z) : Section.functor_map_map (A := A) (B := sigma A B) (sigma.fstNatTrans A B) g (PGrpd.mapFiber' hs f) +-- Use the same typed inclusion for the composite section transport. +set_option backward.isDefEq.respectTransparency false in set_option maxHeartbeats 300000 in /-- ``` @@ -795,10 +800,14 @@ lemma strongTrans.twoCell_comp {x y z} (f : x ⟶ y) (g : y ⟶ z) : Functor.whiskerLeft (A.map (CategoryTheory.inv g)) (Functor.whiskerRight (twoCell B s hs f) (sigmaMap B g)) ≫ twoCell B s hs g := by - conv => left; simp only [twoCell, sigma_obj, pi_obj_α, Set.mem_setOf_eq, - PGrpd.mapFiber'_comp' hs f g, MorphismProperty.WideSubcategory.comp_def, - MorphismProperty.WideSubcategory.coe_eqToHom, pi_map_map] - rfl + have h := congrArg ((Section.ι ((sigma.fstNatTrans A B).app z)).map) + (PGrpd.mapFiber'_comp' hs f g) + simp only [Functor.map_comp, eqToHom_map] at h + change twoCell B s hs (f ≫ g) = + eqToHom _ ≫ (((pi A B).map g).map (PGrpd.mapFiber' hs f)).1.hom ≫ + twoCell B s hs g at h + rw [strongTrans.pi_map_map] at h + exact h def strongTrans.naturality {x y : Γ} (g : x ⟶ y) : A.map g ⋙ strongTrans.app B s hs y ≅ strongTrans.app B s hs x ⋙ sigmaMap B g := From de6a7a38b0b7712f0c1ff1f6e7d305cfcdbbcb0d Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 17:22:43 -0400 Subject: [PATCH 275/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 0e0d78e9..f4678df3 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -613,20 +613,24 @@ def sigma.fstNatTrans : sigma A B ⟶ A where lemma sigma.fstNatTrans_app (x) : (fstNatTrans A B).app x = Functor.Groupoidal.forget := rfl +-- The associator projections cross bundled groupoid coercions. +set_option backward.isDefEq.respectTransparency false in lemma sigma.map_fstNatTrans_eq : map (fstNatTrans A B) = (assoc B).inv ⋙ forget := by apply Functor.Groupoidal.FunctorTo.hext · simp [Functor.assoc, assoc_inv_comp_forget_comp_forget, map_forget] · intro x simp only [fstNatTrans, map_obj_fiber, sigma_obj, Functor.Groupoidal.forget_obj, assoc, - Functor.Iso.symm_inv, Functor.comp_obj, functorIsoFrom_hom_obj, assocFib, heq_eq_eq] + Functor.Iso.symm_inv, Functor.comp_obj, functorIsoFrom, + Functor.Grothendieck.functorIsoFrom, Functor.Grothendieck.functorFrom, assocFib, heq_eq_eq] rw! (castMode := .all) [pre_obj_base] simp rfl · intro x y f simp only [fstNatTrans, map_map_fiber, sigma_obj, Grpd.comp_eq_comp, Functor.comp_obj, Functor.Groupoidal.forget_obj, sigma_map, sigmaMap_obj_base, eqToHom_refl, forget_map, - Category.id_comp, assoc, Functor.Iso.symm_inv, functorIsoFrom_hom_obj, assocFib, - Functor.comp_map, functorIsoFrom_hom_map, comp_base, Functor.Groupoidal.comp_fiber, + Category.id_comp, assoc, Functor.Iso.symm_inv, functorIsoFrom, + Functor.Grothendieck.functorIsoFrom, Functor.Grothendieck.functorFrom, assocFib, + Functor.comp_map, comp_base, Functor.Groupoidal.comp_fiber, heq_eqToHom_comp_iff] rw! [pre_map_base] simp only [ι_map_base, ι_obj_base, assocHom, assocFib, assocIso, ι_map_fiber, ι_obj_fiber] From d0f62ac6d3f8c55e844e0795e6def93592a58e0f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 17:32:19 -0400 Subject: [PATCH 276/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index f4678df3..255023d4 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -964,22 +964,14 @@ def inversion : ∫(A) ⥤ PGrpd := mapStrongTrans B s hs ⋙ (sigma.assoc B).in lemma assocHom_app_base_base {Γ : Type u₂} [Groupoid Γ] {A : Γ ⥤ Grpd} (B : ∫ A ⥤ Grpd) {x y : Γ} (f : x ⟶ y) (a) : - ((sigma.assocHom B f).app a).base.base = f := by - simp [sigma.assocHom, sigma.assocIso, ιNatIso_hom] + ((sigma.assocHom B f).app a).base.base = f := + sigma.assocIso_hom_app_base_base B f a lemma assocHom_app_base_fiber {Γ : Type u₂} [Groupoid Γ] {A : Γ ⥤ Grpd} (B : ∫ A ⥤ Grpd) {x y : Γ} (f : x ⟶ y) (a) : - ((sigma.assocHom B f).app a).base.fiber = eqToHom (by - simp only [sigma.assocFib.eq_1, Functor.comp_obj, assocHom_app_base_base] - rw! (castMode := .all) [pre_obj_base B (ι A y) ((sigmaMap B f).obj a)] - rw! (castMode := .all) [pre_obj_base B (ι A x) a] - simp) := by - simp only [sigma.assocFib.eq_1, Functor.comp_obj, sigma.assocHom, - sigma.assocIso, eqToHom_refl] - rw! (castMode := .all) [preNatIso_hom_app_base, ιNatIso_hom] - simp - rfl + ((sigma.assocHom B f).app a).base.fiber = eqToHom (by rfl) := by + exact sigma.assocIso_hom_app_base_fiber B f a lemma mapStrongTrans_comp_map_fstNatTrans : mapStrongTrans B s hs ⋙ map (sigma.fstNatTrans A B) = 𝟭 _ := by From 1ddea012a5571c963a8d83090738fb74f564e167 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 17:41:09 -0400 Subject: [PATCH 277/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 255023d4..ecb6d857 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -866,6 +866,8 @@ lemma inv_heq_inv {C : Type*} [Category C] {X Y : C} {X' Y' : C} subst hX hY hf rfl +-- Use local transparency to unfold the bundled groupoid coercions. +set_option backward.isDefEq.respectTransparency false in lemma strongTrans.naturality_comp_hom {x y z : Γ} (g1 : x ⟶ y) (g2 : y ⟶ z) : (strongTrans.naturality B s hs (g1 ≫ g2)).hom = eqToHom (by simp [Functor.assoc]) ≫ @@ -878,6 +880,7 @@ lemma strongTrans.naturality_comp_hom {x y z : Γ} (g1 : x ⟶ y) (g2 : y ⟶ z) (twoCell B s hs g1) (twoCell B s hs g2) (twoCell B s hs (g1 ≫ g2)) ?_).trans · simp [naturality] + rfl · apply (strongTrans.twoCell_comp ..).trans rw [Functor.whiskerRight_whiskerLeft] simp only [sigma, eqToHom_refl] From e60b3883d05d5ae93c46b84d9c7ff24c05a5161b Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 17:50:59 -0400 Subject: [PATCH 278/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index ecb6d857..25315b65 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -890,24 +890,15 @@ lemma strongTrans.app_comp_fstNatTrans_app (x : Γ) : strongTrans.app B s hs x ⋙ (sigma.fstNatTrans A B).app x = 𝟭 ↑(A.obj x) := by simpa [strongTrans.app, IsSection] using (PGrpd.objFiber' hs x).obj.property +-- Unfold bundled groupoid coercions in the inverse-base projection. +set_option backward.isDefEq.respectTransparency false in lemma strongTrans.app_map_naturality_hom_app {x y : Γ} (f : x ⟶ y) (a : (A.obj x)) : ((sigma.fstNatTrans A B).app y).map (((strongTrans.naturality B s hs) f).hom.app a) = eqToHom (Section.strongTrans_comp_toStrongTrans'_self_aux (sigma.fstNatTrans A B) (app B s hs) (app_comp_fstNatTrans_app B s hs) f a) := by - simp only [sigma_obj, sigma.fstNatTrans, Functor.comp_obj, Functor.Groupoidal.forget_obj, - sigmaMap_obj_base, naturality, sigma_map, conjugatingObjNatTransEquiv₁, Grpd.Functor.iso, - Grpd.functorIsoOfIso_inv, Functor.mapIso_inv, asIso_inv, Grpd.functorIsoOfIso_hom, - Functor.mapIso_hom, asIso_hom, conjugatingObjNatTransEquiv', Groupoid.isoEquivHom, - Groupoid.inv_eq_inv, Equiv.toFun_as_coe, Equiv.trans_apply, Equiv.coe_fn_mk, - Equiv.coe_fn_symm_mk, IsIso.inv_comp, Functor.inv_whiskerLeft, inv_eqToHom, Iso.symm_mk, - NatTrans.comp_app, Functor.whiskerLeft_app, NatIso.isIso_inv_app, eqToHom_app, forget_map] - rw [Functor.Groupoidal.comp_base, Functor.Groupoidal.base_eqToHom, - ← Functor.Groupoidal.inv_base] - have h := NatTrans.congr_app ((PGrpd.mapFiber' hs f)).2 ((A.map f).obj a) - simp only [Set.mem_setOf_eq, IsOverId, sigma.fstNatTrans] at h - simp only [sigma_obj, pi_obj_α, Functor.comp_obj, Functor.Groupoidal.forget_obj, - Functor.whiskerRight_app, forget_map, Category.id_comp, eqToHom_trans, eqToHom_app] at h - simp [twoCell, h] + change Hom.base ((strongTrans.naturality B s hs f).hom.app a) = _ + rw [← NatIso.inv_inv_app, ← Functor.Groupoidal.inv_base] + simp only [strongTrans.naturality_inv_app_base, inv_eqToHom] def mapStrongTrans : ∫ A ⥤ ∫ sigma A B := Section.mapStrongTrans (strongTrans.app B s hs) (strongTrans.naturality B s hs) From 43d01c1ebda3bb1a02d193cbd1a1be9764f4cba5 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 18:00:09 -0400 Subject: [PATCH 279/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 25315b65..014feba3 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1084,6 +1084,7 @@ lemma lamObjFiberObjCompSigMap.app_fiber_heq (a : A.obj x) : (app A β f a).fibe (β.map ((ιNatTrans f).app a)).fiber := by simp [app] +set_option backward.isDefEq.respectTransparency false in lemma lamObjFiberObjCompSigMap.naturality {x y : Γ} (f : x ⟶ y) {a1 a2 : A.obj x} (h : a1 ⟶ a2) : (lamObjFiberObj A β x ⋙ sigmaMap (β ⋙ PGrpd.forgetToGrpd) f).map h ≫ lamObjFiberObjCompSigMap.app A β f a2 = @@ -1098,7 +1099,7 @@ lemma lamObjFiberObjCompSigMap.naturality {x y : Γ} (f : x ⟶ y) {a1 a2 : A.ob ≫ (β.map ((ιNatTrans f).app a2)).fiber ≍ (β.map ((ι A y).map ((A.map f).map h))).base.map (β.map ((ιNatTrans f).app a1)).fiber ≫ (β.map ((ι A y).map ((A.map f).map h))).fiber := by - simpa [← heq_eq_eq] using Grothendieck.Hom.congr β_ιNatTrans_naturality + simpa [← heq_eq_eq, Grpd.forgetToCat, Functor.comp_obj] using Grothendieck.Hom.congr β_ιNatTrans_naturality simp only [Grpd.forgetToCat.eq_1, sigmaObj, Grpd.coe_of, comp_obj, sigmaMap_obj_base, Functor.comp_map, comp_base, sigmaMap_map_base, sigmaMap_obj_fiber, comp_fiber, sigmaMap_map_fiber, lamObjFiberObj_map_fiber, map_comp, eqToHom_map, app_fiber_eq, Cat.of_α, From ee6c5c1a67ae93e567f470cba10b6998c1f9b6f0 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 18:09:50 -0400 Subject: [PATCH 280/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 014feba3..2e2c558e 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1229,9 +1229,11 @@ lemma whiskerLeftInvLamObjObjSigMap_comp {x y z} (f : x ⟶ y) (g : y ⟶ z) : _ _ _ (sigmaMap (β ⋙ PGrpd.forgetToGrpd) f) (sigmaMap (β ⋙ PGrpd.forgetToGrpd) g)] simp only [Category.assoc, eqToHom_trans, Grpd.Functor.iso_hom, Grpd.Functor.iso_inv] +-- Unfold bundled groupoid coercions in the section transport proofs. +set_option backward.isDefEq.respectTransparency false in def lamMapFiber : ((pi A (β ⋙ PGrpd.forgetToGrpd)).map f).obj (lamObjFiber A β x) ⟶ lamObjFiber A β y := - ⟨whiskerLeftInvLamObjObjSigMap A β f, by + ⟨⟨whiskerLeftInvLamObjObjSigMap A β f⟩, by ext simp only [sigma_obj, sigma.fstNatTrans_app, pi_obj_α, comp_obj, Groupoidal.forget_obj, lamObjFiber_obj_obj, whiskerLeftInvLamObjObjSigMap, lamObjFiberObjCompSigMap, @@ -1240,12 +1242,14 @@ def lamMapFiber : Category.comp_id] erw [Category.id_comp]⟩ +set_option backward.isDefEq.respectTransparency false in @[simp] lemma lamMapFiber_id (x : Γ) : lamMapFiber A β (𝟙 x) = eqToHom (by simp) := by - apply MorphismProperty.WideSubcategory.hom_ext - simp only [sigma_obj, sigma.fstNatTrans_app, pi_obj_α, Set.mem_setOf_eq, lamMapFiber, - whiskerLeftInvLamObjObjSigMap_id, MorphismProperty.WideSubcategory.coe_eqToHom] - rfl + apply (Section.ι ((sigma.fstNatTrans A (β ⋙ PGrpd.forgetToGrpd)).app x)).map_injective + rw [eqToHom_map] + change whiskerLeftInvLamObjObjSigMap A β (𝟙 x) = eqToHom _ + exact whiskerLeftInvLamObjObjSigMap_id A β x +set_option backward.isDefEq.respectTransparency false in lemma lamMapFiber_comp {x y z} (f : x ⟶ y) (g : y ⟶ z) : (lamMapFiber A β (f ≫ g)) = eqToHom (by @@ -1254,13 +1258,15 @@ lemma lamMapFiber_comp {x y z} (f : x ⟶ y) (g : y ⟶ z) : rw [← Grpd.comp_eq_comp, Functor.map_comp]) ≫ (((pi A (β ⋙ PGrpd.forgetToGrpd)).map g).map ((lamMapFiber A β) f)) ≫ (lamMapFiber A β g) := by - apply MorphismProperty.WideSubcategory.hom_ext - simp only [sigma_obj, pi, Set.mem_setOf_eq, lamMapFiber, whiskerLeftInvLamObjObjSigMap_comp] - rw [MorphismProperty.WideSubcategory.comp_def, - MorphismProperty.WideSubcategory.comp_def, - MorphismProperty.WideSubcategory.coe_eqToHom] - simp - rfl + apply (Section.ι ((sigma.fstNatTrans A (β ⋙ PGrpd.forgetToGrpd)).app z)).map_injective + simp only [Functor.map_comp, eqToHom_map] + change whiskerLeftInvLamObjObjSigMap A β (f ≫ g) = eqToHom _ ≫ + (((pi A (β ⋙ PGrpd.forgetToGrpd)).map g).map (lamMapFiber A β f)).1.hom ≫ + whiskerLeftInvLamObjObjSigMap A β g + simp only [pi] + rw [Section.functor_map_map (A := A) (B := sigma A (β ⋙ PGrpd.forgetToGrpd)) + (sigma.fstNatTrans A (β ⋙ PGrpd.forgetToGrpd)) g (lamMapFiber A β f)] + exact whiskerLeftInvLamObjObjSigMap_comp A β f g def lam : Γ ⥤ PGrpd.{u₁,u₁} := PGrpd.functorTo From 107109f8e38fec574801431cfc5bafde31924cac Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 18:17:46 -0400 Subject: [PATCH 281/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 2e2c558e..b357b4b3 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1407,6 +1407,8 @@ lemma strongTrans.app_lam_map_base {x y : ∫ A} (f : x ⟶ y) : f.fiber := rfl +-- Match bundled groupoid coercions in the section projections. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma strongTrans.app_lam_map_fiber {x y : ∫ A} (f : x ⟶ y) : ((strongTrans.app (β ⋙ PGrpd.forgetToGrpd) (lam A β) From 1232ac14fe7b02b4a93679bd69e9690f538930c4 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 18:26:22 -0400 Subject: [PATCH 282/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index b357b4b3..fe3bf517 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1460,6 +1460,8 @@ lemma strongTrans.twoCell_lam_app_fiber {x y : ∫ A} (f : x ⟶ y) : rw! [twoCell_lam_app] simp +-- Match bundled groupoid coercions when projecting the composite fiber. +set_option backward.isDefEq.respectTransparency false in lemma mapStrongTrans_map_lam_map_fiber_fiber_heq {x y} (f : x ⟶ y) : ((mapStrongTrans (β ⋙ PGrpd.forgetToGrpd) (lam A β) (lam_comp_forgetToGrpd ..)).map f).fiber.fiber ≍ @@ -1487,7 +1489,10 @@ lemma mapStrongTrans_map_lam_map_fiber_fiber_heq {x y} (f : x ⟶ y) : simp only [Grothendieck.Hom.id_base, Grpd.id_eq_id, id_obj, eqToHom_refl, Functor.id_map, Category.id_comp, heq_eq_eq] erw [Category.comp_id] + rfl +-- Match bundled groupoid coercions in the dependent fiber projections. +set_option backward.isDefEq.respectTransparency false in lemma inversion_lam : inversion (β ⋙ PGrpd.forgetToGrpd) (lam A β) (lam_comp_forgetToGrpd ..) = β := by apply PGrpd.Functor.hext From 7d41fc17482ade87022a3d9708d10425d97ddb5e Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 18:33:56 -0400 Subject: [PATCH 283/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index fe3bf517..ba8fe472 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1509,6 +1509,8 @@ section variable (B : ∫ A ⥤ Grpd) (s : Γ ⥤ PGrpd) (hs : s ⋙ PGrpd.forgetToGrpd = pi A B) +-- Match bundled groupoid coercions in the dependent functor projections. +set_option backward.isDefEq.respectTransparency false in lemma lamObjFiber_obj_obj_inversion_heq (x) : (lamObjFiber A (inversion B s hs) x).obj.obj ≍ strongTrans.app B s hs x := by dsimp only [lamObjFiber, lamObjFiberObj] @@ -1532,6 +1534,8 @@ lemma lamObjFiber_inversion_heq (x) : refine HEq.trans ?_ (PGrpd.objFiber'_heq hs) apply lamObjFiber_inversion_heq' +-- Match bundled groupoid coercions in the dependent functor projections. +set_option backward.isDefEq.respectTransparency false in lemma strongTrans.twoCell_app_inversion {x y} (f : x ⟶ y) (a) : (strongTrans.twoCell B s hs f).app ((A.map f).obj ((A.map (CategoryTheory.inv f)).obj a)) = eqToHom (by simp only [← Functor.comp_obj]; simp [← Grpd.comp_eq_comp]) ≫ @@ -1550,6 +1554,8 @@ lemma mapStrongTrans_obj_inversion_fiber {x y} (f : x ⟶ y) (a) : mapStrongTrans_obj_fiber, ι_obj_fiber, Functor.map_inv] simp [← Functor.comp_obj, ← Grpd.comp_eq_comp] +-- Match bundled groupoid coercions in the dependent functor projections. +set_option backward.isDefEq.respectTransparency false in lemma mapStrongTrans_map_inversion_fiber {x y} (f : x ⟶ y) (a) : ((mapStrongTrans B s hs).map ((ιNatTrans f).app ((A.map (CategoryTheory.inv f)).obj a))).fiber = (strongTrans.twoCell B s hs f).app a ≫ From 872abee7ff293dcaa115fabca2f6832d78462d1d Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 18:44:21 -0400 Subject: [PATCH 284/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index ba8fe472..526ef743 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1568,12 +1568,13 @@ lemma mapStrongTrans_map_inversion_fiber {x y} (f : x ⟶ y) (a) : rw! (castMode := .all) [h] simp [mapStrongTrans_map_fiber B s hs, strongTrans.twoCell_app_inversion] +-- Match bundled groupoid coercions in the dependent fiber projections. +set_option backward.isDefEq.respectTransparency false in lemma lamObjFiberObjCompSigMap_app_inversion {x y} (f : x ⟶ y) (a) : lamObjFiberObjCompSigMap.app A (inversion B s hs) f ((A.map (CategoryTheory.inv f)).obj a) ≍ (strongTrans.twoCell B s hs f).app a := by have h := mapStrongTrans_map_inversion_fiber A B s hs f a - simp [← heq_eq_eq] at h - apply HEq.trans _ h + apply HEq.trans _ ((heq_of_eq h).trans (comp_eqToHom_heq ..)) fapply Functor.Groupoidal.Hom.hext' · simp · simp only [Functor.map_inv, Functor.comp_obj, mapStrongTrans_obj_base, ι_obj_base, sigma_obj, @@ -1609,6 +1610,8 @@ lemma whiskerLeftInvLamObjObjSigMap_inversion_app {x y} (f : x ⟶ y) (a) : Functor.Groupoidal.forget_obj, Functor.id_obj] at h exact (comp_eqToHom_heq ..).trans (lamObjFiberObjCompSigMap_app_inversion ..) +-- Match bundled groupoid coercions in the dependent fiber projections. +set_option backward.isDefEq.respectTransparency false in lemma lamMapFiber_inversion_heq {x y} (f : x ⟶ y) : lamMapFiber A (pi.inversion B s hs) f ≍ PGrpd.mapFiber s f := by refine HEq.trans ?_ (PGrpd.mapFiber'_heq hs f) From 03ab13efb87345ebe2b86456ea92f4b462f3eb44 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 19:06:14 -0400 Subject: [PATCH 285/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 526ef743..5e0fb881 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -840,12 +840,25 @@ lemma strongTrans.naturality_inv_app_base {x y} (f : x ⟶ y) (a) : rw [strongTrans.naturality_inv_app, comp_base, base_eqToHom] simp +-- Reduce bundled groupoid projections in the dependent fiber equation. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma strongTrans.naturality_inv_app_fiber {x y} (f : x ⟶ y) (a) : ((strongTrans.naturality B s hs f).inv.app a).fiber = - eqToHom (by simp only [← Functor.comp_obj, naturality_inv_app_base, twoCell_app_base, - ← Grpd.comp_eq_comp]; rw! [← Functor.map_comp_assoc, IsIso.hom_inv_id, - CategoryTheory.Functor.map_id, Category.id_comp]) ≫ + eqToHom (by + simp only [← Functor.comp_obj, naturality_inv_app_base, twoCell_app_base, + ← Grpd.comp_eq_comp] + have h : A.map f ≫ A.map (inv f) ≫ app B s hs x ≫ sigmaMap B f = + app B s hs x ≫ sigmaMap B f := by + rw [← Functor.map_comp_assoc, IsIso.hom_inv_id, + CategoryTheory.Functor.map_id, Category.id_comp] + apply eq_of_heq + simp only [Grpd.map_eqToHom_obj, heq_cast_iff_heq, cast_heq_iff_heq] + have hf : ∀ {p q : ∫ (ι A y ⋙ B)}, p = q → p.fiber ≍ q.fiber := by + intro p q hpq + cases hpq + rfl + exact (hf (Functor.congr_obj h a)).symm) ≫ Hom.fiber ((twoCell B s hs f).app ((A.map f).obj a)) := by rw! [strongTrans.naturality_inv_app, comp_fiber, fiber_eqToHom, eqToHom_map] simp From caf34993d88aa633e9d80655845261de6469d1ee Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 19:18:04 -0400 Subject: [PATCH 286/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 5e0fb881..cf88390a 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1379,9 +1379,11 @@ lemma whiskerLeftInvLamObjObjSigMap_naturality_heq {x y} (f : x ⟶ y) : · apply sigmaMap_naturality_heq · apply lamObjFiberObjCompSigMap_naturality +-- Match bundled groupoid projections in the section naturality proof. +set_option backward.isDefEq.respectTransparency false in lemma lam_comp_map {x y} (f : x ⟶ y) : lamMapFiber A β (σ.map f) ≍ lamMapFiber (σ ⋙ A) (pre A σ ⋙ β) f := by - apply Section.hom_hext + apply Section.hom_hext' · simp [Functor.assoc, sigmaObj_naturality] · simp · simp [Functor.assoc] @@ -1394,7 +1396,23 @@ lemma lam_comp_map {x y} (f : x ⟶ y) : simp only [← heq_eq_eq, heq_cast_iff_heq] apply lamObjFiber_naturality · apply lamObjFiber_naturality - · apply whiskerLeftInvLamObjObjSigMap_naturality_heq + · intro k k' hk + have h := whiskerLeftInvLamObjObjSigMap_naturality_heq A β σ f + dsimp only [lamMapFiber] + cases hk + have happ {C D D' : Grpd.{u₁,u₁}} (hD : D ≍ D') + {F G : C ⥤ D} {F' G' : C ⥤ D'} (hF : F ≍ F') (hG : G ≍ G') + {α : F ⟶ G} {α' : F' ⟶ G'} (hα : α ≍ α') (a : C) : + α.app a ≍ α'.app a := by + subst hD hF hG hα + rfl + apply happ _ _ _ h k + any_goals apply Grpd.comp_hcongr + any_goals apply Grpd.comp_hcongr + any_goals simp only [comp_obj, Functor.comp_map, Functor.map_inv, heq_eq_eq, Functor.assoc] + any_goals apply sigmaObj_naturality + any_goals apply lamObjFiberObj_naturality + any_goals apply sigmaMap_naturality_heq theorem lam_comp : σ ⋙ lam A β = lam (σ ⋙ A) (pre A σ ⋙ β) := by apply PGrpd.Functor.hext From 11cadf5749b915b1b86b9a9752173fb6cfa25ca5 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 19:29:45 -0400 Subject: [PATCH 287/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 50 ++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 8 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index cf88390a..6d1bc078 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1447,6 +1447,8 @@ lemma strongTrans.app_lam_map_fiber {x y : ∫ A} (f : x ⟶ y) : PGrpd.mapFiber (ι A y.base ⋙ β) (Hom.fiber f) := by simp [lam, app, PGrpd.objFiber] +-- Reduce bundled groupoid projections in the dependent lambda equation. +set_option backward.isDefEq.respectTransparency false in lemma strongTrans.twoCell_lam_app {x y : ∫ A} (f : x ⟶ y) : ((strongTrans.twoCell (β ⋙ PGrpd.forgetToGrpd) (lam A β) (lam_comp_forgetToGrpd ..) (Hom.base f)).app ((A.map (Hom.base f)).obj x.fiber)) = @@ -1459,24 +1461,46 @@ lemma strongTrans.twoCell_lam_app {x y : ∫ A} (f : x ⟶ y) : Functor.Grothendieck.base_eqToHom, sigmaMap_obj_fiber, Grpd.eqToHom_obj, ← heq_eq_eq, cast_heq_iff_heq] simp only [← Functor.comp_obj, ← Grpd.comp_eq_comp] - rw! [← Functor.map_comp, IsIso.hom_inv_id, CategoryTheory.Functor.map_id, Category.id_comp] - rfl) ≫ + have h : (A.map (inv f.base)).obj ((A.map f.base).obj x.fiber) = x.fiber := by + simp [← Functor.comp_obj, ← Grpd.comp_eq_comp] + have hf : ∀ {a b : A.obj x.base}, a = b → + (β.map ((ιNatTrans f.base).app a)).base.obj (((ι A x.base ⋙ β).obj a).fiber) ≍ + (β.map ((ιNatTrans f.base).app b)).base.obj (((ι A x.base ⋙ β).obj b).fiber) := by + intro a b hab + cases hab + rfl + exact hf h) ≫ (β.map ((ιNatTrans (Hom.base f)).app x.fiber)).fiber) := by simp only [sigma_obj, lam, comp_obj, twoCell, sigma.fstNatTrans_app, pi_obj_α, PGrpd.objFiber'_rfl, Set.mem_setOf_eq, PGrpd.mapFiber'_rfl, sigmaMap_obj_base, Functor.Grothendieck.forget_obj, Functor.comp_map, Functor.Grothendieck.forget_map, sigmaMap_obj_fiber] - convert_to (whiskerLeftInvLamObjObjSigMap A β f.base).app ((A.map f.base).obj x.fiber) = _ + change (whiskerLeftInvLamObjObjSigMap A β f.base).app ((A.map f.base).obj x.fiber) = _ simp only [comp_obj, whiskerLeftInvLamObjObjSigMap, lamObjFiberObjCompSigMap, NatTrans.comp_app, whiskerLeft_app, lamObjFiberObjCompSigMap.app, sigmaMap_obj_base, Functor.Grothendieck.forget_obj, Functor.comp_map, Functor.Grothendieck.forget_map, sigmaMap_obj_fiber, eqToHom_app] have h : (A.map (CategoryTheory.inv (Hom.base f))).obj ((A.map (Hom.base f)).obj x.fiber) = x.fiber := by simp [← Functor.comp_obj, ← Grpd.comp_eq_comp] - rw! [h] - simp only [eqToHom_refl, Category.comp_id, ← heq_eq_eq] - congr 1 + apply eq_of_heq + apply (comp_eqToHom_heq ..).trans + have hf : ∀ {a b : A.obj x.base}, a = b → + lamObjFiberObjCompSigMap.app A β f.base a ≍ + lamObjFiberObjCompSigMap.app A β f.base b := by + intro a b hab + cases hab + rfl + apply (hf h).trans + apply Hom.hext' rfl + · exact heq_of_eq (congrArg + (lamObjFiberObj A β x.base ⋙ sigmaMap (β ⋙ PGrpd.forgetToGrpd) f.base).obj h).symm + · rfl + · simp only [lamObjFiberObjCompSigMap.app, homMk_base] + exact (eqToHom_heq_id_cod _ _ _).symm + · simp [lamObjFiberObjCompSigMap.app, eqToHom_comp_heq_iff] +-- Reduce bundled groupoid projections in the fiber projection. +set_option backward.isDefEq.respectTransparency false in lemma strongTrans.twoCell_lam_app_fiber {x y : ∫ A} (f : x ⟶ y) : ((strongTrans.twoCell (β ⋙ PGrpd.forgetToGrpd) (lam A β) (lam_comp_forgetToGrpd ..) (Hom.base f)).app ((A.map (Hom.base f)).obj x.fiber)).fiber = @@ -1485,8 +1509,18 @@ lemma strongTrans.twoCell_lam_app_fiber {x y : ∫ A} (f : x ⟶ y) : twoCell_app_base, Functor.comp_map, eqToHom_map, Functor.Grothendieck.forget_map, Functor.Grothendieck.base_eqToHom, sigmaMap_obj_fiber] simp only [← Functor.comp_obj, ← Grpd.comp_eq_comp] - rw! [← Functor.map_comp, IsIso.hom_inv_id, CategoryTheory.Functor.map_id, Category.id_comp] - rfl + apply eq_of_heq + simp only [Grpd.comp_eq_comp, Functor.comp_obj, Grpd.eqToHom_obj, + heq_cast_iff_heq, cast_heq_iff_heq] + have h : (A.map (inv f.base)).obj ((A.map f.base).obj x.fiber) = x.fiber := by + simp [← Functor.comp_obj, ← Grpd.comp_eq_comp] + have hf : ∀ {a b : A.obj x.base}, a = b → + (β.map ((ιNatTrans f.base).app a)).base.obj (((ι A x.base ⋙ β).obj a).fiber) ≍ + (β.map ((ιNatTrans f.base).app b)).base.obj (((ι A x.base ⋙ β).obj b).fiber) := by + intro a b hab + cases hab + rfl + exact hf h ) ≫ (β.map ((ιNatTrans (Hom.base f)).app x.fiber)).fiber := by rw! [twoCell_lam_app] simp From 7f815eedfd033a4dc2f1f7a03bdeee81d2ce1805 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 19:37:07 -0400 Subject: [PATCH 288/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 6d1bc078..2b7181bd 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -1824,6 +1824,8 @@ lemma lam_comp {Γ Δ : Ctx} (σ : Δ ⟶ Γ) {A : Γ ⟶ U.{v}.Ty} {σA : Δ lam (U.substWk σ A σA eq ≫ b) = σ ≫ lam b := USig.SigAux_comp pi.lam (by intros; rw [pi.lam_comp]) σ eq b +-- Allow reduction of bundled groupoid coercions in this proof. +set_option backward.isDefEq.respectTransparency false in lemma lam_tp {Γ : Ctx} {A : Γ ⟶ U.{v}.Ty} (B : U.ext A ⟶ U.Ty) (b : U.ext A ⟶ U.{v}.Tm) (b_tp : b ≫ U.tp = B) : UPi.lam b ≫ U.tp = Pi B := by subst b_tp @@ -1831,6 +1833,8 @@ lemma lam_tp {Γ : Ctx} {A : Γ ⟶ U.{v}.Ty} (B : U.ext A ⟶ U.Ty) (b : U.ext rw [← toCoreAsSmallEquiv_symm_apply_comp_right] rfl +-- Allow reduction of bundled groupoid coercions in this proof. +set_option backward.isDefEq.respectTransparency false in def unLam {Γ : Ctx} {A : Γ ⟶ U.{v}.Ty} (B : U.ext A ⟶ U.Ty) (f : Γ ⟶ U.Tm) (f_tp : f ≫ U.tp = UPi.Pi B) : U.ext A ⟶ U.{v}.Tm := toCoreAsSmallEquiv.symm <| pi.inversion (toCoreAsSmallEquiv B) (toCoreAsSmallEquiv f) (by @@ -1838,6 +1842,8 @@ def unLam {Γ : Ctx} {A : Γ ⟶ U.{v}.Ty} (B : U.ext A ⟶ U.Ty) (f : Γ ⟶ U. rw [← toCoreAsSmallEquiv_apply_comp_right, f_tp] simp [Pi]) +-- Allow reduction of bundled groupoid coercions in this proof. +set_option backward.isDefEq.respectTransparency false in lemma unLam_tp {Γ : Ctx} {A : Γ ⟶ U.{v}.Ty} (B : U.ext A ⟶ U.Ty) (f : Γ ⟶ U.Tm) (f_tp : f ≫ U.tp = UPi.Pi B) : UPi.unLam B f f_tp ≫ U.tp = B := by dsimp [unLam, U.tp] @@ -1845,6 +1851,8 @@ lemma unLam_tp {Γ : Ctx} {A : Γ ⟶ U.{v}.Ty} (B : U.ext A ⟶ U.Ty) (f : Γ pi.inversion_comp_forgetToGrpd] rfl +-- Allow reduction of bundled groupoid coercions in this proof. +set_option backward.isDefEq.respectTransparency false in lemma unLam_lam {Γ : Ctx} {A : Γ ⟶ U.{v}.Ty} (B : U.ext A ⟶ U.Ty) (b : U.ext A ⟶ U.Tm) (b_tp : b ≫ U.tp = B) : UPi.unLam B (UPi.lam b) (lam_tp _ _ b_tp) = b := by subst b_tp @@ -1854,6 +1862,8 @@ lemma unLam_lam {Γ : Ctx} {A : Γ ⟶ U.{v}.Ty} (B : U.ext A ⟶ U.Ty) (b : U.e rw [pi.inversion_lam (toCoreAsSmallEquiv A) (toCoreAsSmallEquiv b)] rfl +-- Allow reduction of bundled groupoid coercions in this proof. +set_option backward.isDefEq.respectTransparency false in lemma lam_unLam {Γ : Ctx} {A : Γ ⟶ U.{v}.Ty} (B : U.ext A ⟶ U.Ty) (f : Γ ⟶ U.Tm) (f_tp : f ≫ U.tp = UPi.Pi B) : UPi.lam (UPi.unLam B f f_tp) = f := by simp only [U_Tm, lam, USig.SigAux, unLam, toCoreAsSmallEquiv.symm_apply_eq] From bdcc961cd6541c93a19baf5338ab5867d26cb989 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 19:50:10 -0400 Subject: [PATCH 289/362] UNITY: integrate Bump repair repair-21855083110bf845 --- HoTTLean/Groupoids/Pi.lean | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 2b7181bd..c95f9bff 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -525,6 +525,8 @@ lemma strongTrans_comp_toStrongTrans'_self_aux (happ : ∀ x, app x ⋙ φ.app x erw [Functor.congr_obj (happ x)] simp +-- Unfold bundled groupoid projections in the Cat 2-cell equations. +set_option backward.isDefEq.respectTransparency false in open CategoryTheory.Pseudofunctor.StrongTrans in lemma strongTrans_comp_toStrongTrans'_self (happ : ∀ x, app x ⋙ φ.app x = 𝟭 _) (hnaturality : ∀ {x y} (f : x ⟶ y) (a : A.obj x), @@ -539,18 +541,39 @@ lemma strongTrans_comp_toStrongTrans'_self (happ : ∀ x, app x ⋙ φ.app x = apply Cat.ext exact happ x.as · intro x y f + change Discrete (x.as ⟶ y.as) at f + obtain ⟨g⟩ := f + apply Cat.Hom₂.ext ext a simp only [Grpd.forgetToCat, Functor.toPseudofunctor'_obj, Functor.comp_obj, Cat.of_α, Functor.toPseudofunctor'_map, Functor.comp_map, id_eq, strongTrans, comp_app, NatTrans.toStrongTrans'_app, Functor.whiskerRight_app, categoryStruct_id_app, categoryStruct_comp_naturality_hom, Bicategory.associator, NatTrans.toStrongTrans'_naturality, eqToIso.hom, Bicategory.whiskerLeft_eqToHom, - Category.assoc, Functor.associator_inv_app, Cat.whiskerRight_app, - Functor.associator_hom_app, Cat.eqToHom_app, Category.id_comp, eqToHom_trans, + Cat.Hom.toNatTrans_comp, Cat.Hom₂.eqToHom_toNatTrans, + Cat.whiskerLeft_toNatTrans, Cat.whiskerRight_toNatTrans, + NatTrans.comp_app, Functor.whiskerLeft_app, Functor.whiskerRight_app, + Category.assoc, Functor.associator_inv_app, + Functor.associator_hom_app, eqToHom_app, Category.id_comp, eqToHom_trans, categoryStruct_id_naturality_hom, Bicategory.rightUnitor, Bicategory.leftUnitor, Functor.rightUnitor_hom_app, Functor.leftUnitor_inv_app, Category.comp_id, ← heq_eq_eq, comp_eqToHom_heq_iff] + dsimp only [Cat.Hom.isoMk, NatTrans.toCatHom₂, Functor.toCatHom, + NatTrans.toStrongTrans', Functor.whiskerRight, Functor.toPseudofunctor', + pseudofunctorOfIsLocallyDiscrete, Grpd.forgetToCat] + simp only [Cat.Hom.toNatTrans_comp, Cat.Hom₂.eqToHom_toNatTrans, + Cat.whiskerLeft_toNatTrans, Cat.whiskerRight_toNatTrans, NatTrans.comp_app, + Functor.whiskerLeft_app, Functor.whiskerRight_app, Functor.associator_inv_app, + Functor.associator_hom_app, Functor.leftUnitor_inv_app, + Functor.rightUnitor_hom_app, Category.id_comp, Category.comp_id, + eqToHom_app, eqToHom_trans, comp_eqToHom_heq_iff] rw! [hnaturality] + dsimp only [Functor.comp_map, Grpd.forgetToCat, Functor.toCatHom, Functor.comp_obj] + -- Fix the category before simplifying the identity and transport maps. + change (𝟙 _ ≫ eqToHom _ ≫ 𝟙 _ ≫ eqToHom _ ≫ 𝟙 _ ≫ eqToHom _ : + _ ⟶ (A.map g).obj a) ≍ + (eqToHom _ ≫ 𝟙 _ : _ ⟶ (A.map g).obj a) + simp only [Category.id_comp, Category.comp_id, eqToHom_trans] apply eqToHom_heq_eqToHom rfl From ab3a78774b7a174a3d45609b34ba3e87420cb0e1 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 19:56:20 -0400 Subject: [PATCH 290/362] UNITY: integrate Bump repair repair-1c676dd9224110de --- HoTTLean/Groupoids/ClovenIsofibration.lean | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index e78e16d8..41ac061f 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -26,8 +26,7 @@ lemma functor_obj_fiberInclusion_obj (a : Fiber p S) : lemma functor_map_fiberInclusion_map {a b : Fiber p S} (f : a ⟶ b) : p.map (Fiber.fiberInclusion.map f) = eqToHom (by simp) := by - have H := f.2 - simpa using IsHomLift.fac' p (𝟙 S) f.1 + simp [IsHomLift.fac' p (𝟙 S) (Fiber.fiberInclusion.map f)] lemma hext {S'} (hS : S' ≍ S) {a : Fiber p S} {a' : Fiber p S'} (h : Fiber.fiberInclusion.obj a ≍ Fiber.fiberInclusion.obj a') : a ≍ a' := by From 542ec7e375d5dc179c0add5590f5e9808aafa64d Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 20:01:50 -0400 Subject: [PATCH 291/362] UNITY: integrate Bump repair repair-805e12cb32a7070b --- HoTTLean/Groupoids/ClovenIsofibration.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 41ac061f..368d312f 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -31,7 +31,7 @@ lemma functor_map_fiberInclusion_map {a b : Fiber p S} lemma hext {S'} (hS : S' ≍ S) {a : Fiber p S} {a' : Fiber p S'} (h : Fiber.fiberInclusion.obj a ≍ Fiber.fiberInclusion.obj a') : a ≍ a' := by subst hS - simpa using Subtype.ext h.eq + exact heq_of_eq (Subtype.ext h.eq) lemma hom_hext {S'} (hS : S' ≍ S) {a b : Fiber p S} {a' b' : Fiber p S'} (ha : a ≍ a') (hb : b ≍ b') {φ : a ⟶ b} From b4fa418a717e3d2ba864649b8737f4e5e4fce392 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 20:08:01 -0400 Subject: [PATCH 292/362] UNITY: integrate Bump repair repair-c2331e9c9aac2032 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 368d312f..630c407c 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -46,7 +46,13 @@ instance {X : Γ} : IsGroupoid (F.Fiber X) where all_isIso f := { out := have := f.2 - ⟨Fiber.homMk F _ (CategoryTheory.inv f.1), by cat_disch, by cat_disch⟩ } + ⟨Fiber.homMk F _ (CategoryTheory.inv f.1), by + apply Subtype.ext + change f.1 ≫ CategoryTheory.inv f.1 = 𝟙 _ + simp, by + apply Subtype.ext + change CategoryTheory.inv f.1 ≫ f.1 = 𝟙 _ + simp⟩ } instance {X : Γ} : Groupoid (F.Fiber X) := Groupoid.ofIsGroupoid From 23955eec2da87c690625af697155f828bffac87d Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 20:15:04 -0400 Subject: [PATCH 293/362] UNITY: integrate Bump repair repair-99d4d45186760364 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 630c407c..ade19bb5 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -151,6 +151,8 @@ variable {Γ : Type u} {E : Type u} [Groupoid.{v} Γ] [Groupoid.{v} E] {F : E def classifier.map.obj {X Y : Γ} (f : X ⟶ Y) (a : F.Fiber X) : F.Fiber Y := ⟨I.liftObj f a.2, ClovenIsofibration.obj_liftObj ..⟩ +-- Fiber is a semireducible subtype; allow its projections to elaborate in this proof. +set_option backward.isDefEq.respectTransparency false in def classifier.map.map {X Y} (f: X ⟶ Y) {a b : F.Fiber X} (m : a ⟶ b) : map.obj I f a ⟶ map.obj I f b := let i1 : a.1 ⟶ I.liftObj f a.2 := I.liftIso f a.2 @@ -158,7 +160,8 @@ def classifier.map.map {X Y} (f: X ⟶ Y) {a b : F.Fiber X} (m : a ⟶ b) : let i := Groupoid.inv i1 ≫ Fiber.fiberInclusion.map m ≫ i2 have e :𝟙 Y = eqToHom (by simp[obj_liftObj]) ≫ F.map (CategoryTheory.inv i1 ≫ Fiber.fiberInclusion.map m ≫ i2) ≫ eqToHom (by simp[obj_liftObj]) - := by simp[i1, i2, Fiber.functor_map_fiberInclusion_map, Functor.map_inv,map_liftIso'] + := by + simp [i1, i2, Fiber.functor_map_fiberInclusion_map, Functor.map_inv, map_liftIso'] have : F.IsHomLift (𝟙 Y) i := by simp only[i, e] apply IsHomLift.of_fac _ _ _ (ClovenIsofibration.obj_liftObj ..) From 73655b6b603f0d479ae6a308e50e1dce85d33c0b Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 20:22:40 -0400 Subject: [PATCH 294/362] UNITY: integrate Bump repair repair-b7232244be17ba53 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index ade19bb5..be75c305 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -172,9 +172,8 @@ def classifier.map.map {X Y} (f: X ⟶ Y) {a b : F.Fiber X} (m : a ⟶ b) : lemma classifier.map.map_id {X Y} (f : X ⟶ Y) (a: F.Fiber X): map.map I f (𝟙 a) = 𝟙 (map.obj I f a) := by ext - simp only [map, Fiber.fiberInclusion_homMk, Groupoid.inv_eq_inv, Functor.map_id, - IsIso.inv_comp_eq] - simp [Fiber.fiberInclusion, classifier.map.obj] + simp [map, Fiber.homMk, Fiber.fiberInclusion, classifier.map.obj] + rfl lemma classifier.map.map_comp {X Y} (f: X ⟶ Y) {a b c: F.Fiber X} (m1 : a ⟶ b) (m2: b ⟶ c): map.map I f (m1 ≫ m2) = map.map I f m1 ≫ map.map I f m2 := by From f8a56b744fab58fcce18fa0eb416b0a3c886b7f7 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 20:28:42 -0400 Subject: [PATCH 295/362] UNITY: integrate Bump repair repair-bc25b6a291bdb3b5 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index be75c305..d22ec2d1 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -175,10 +175,13 @@ lemma classifier.map.map_id {X Y} (f : X ⟶ Y) (a: F.Fiber X): simp [map, Fiber.homMk, Fiber.fiberInclusion, classifier.map.obj] rfl +-- Allow fiber projections to reduce when simplifying the conjugated composite. +set_option backward.isDefEq.respectTransparency false in lemma classifier.map.map_comp {X Y} (f: X ⟶ Y) {a b c: F.Fiber X} (m1 : a ⟶ b) (m2: b ⟶ c): map.map I f (m1 ≫ m2) = map.map I f m1 ≫ map.map I f m2 := by ext - simp[classifier.map.map] + simp only [Functor.map_comp] + simp [classifier.map.map, Fiber.homMk, Fiber.fiberInclusion, Category.assoc] @[simps] def classifier.map {X Y} (f : X ⟶ Y) : F.Fiber X ⥤ F.Fiber Y where From 6d6abffb9413be1fa220dd52b3946e62d7811aca Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 20:34:14 -0400 Subject: [PATCH 296/362] UNITY: integrate Bump repair repair-0e5765614bf098a8 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index d22ec2d1..3d470195 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -192,6 +192,8 @@ def classifier.map {X Y} (f : X ⟶ Y) : F.Fiber X ⥤ F.Fiber Y where variable [IsSplit I] +-- Fiber projections must unfold for the dependent functor extensionality proof. +set_option backward.isDefEq.respectTransparency false in lemma classifier.map_id (X : Γ) : classifier.map I (𝟙 X) = 𝟙 (Grpd.of (F.Fiber X)) := by fapply Functor.ext · intro a From cd1d2424073f0351bf8b7aa8b651cd10a22858c3 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 20:39:50 -0400 Subject: [PATCH 297/362] UNITY: integrate Bump repair repair-cc590e36172f0ddb --- HoTTLean/Groupoids/ClovenIsofibration.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 3d470195..1b11d1a5 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -204,6 +204,8 @@ lemma classifier.map_id (X : Γ) : classifier.map I (𝟙 X) = 𝟙 (Grpd.of (F. ext simp [map.map, liftIso_id, eqToHom_map] +-- Reduce fiber projections in the dependent composition proof. +set_option backward.isDefEq.respectTransparency false in lemma classifier.map_comp {X Y Z: Γ} (f : X⟶ Y) (g : Y ⟶ Z): classifier.map I (f ≫ g) = classifier.map I f ⋙ classifier.map I g := by fapply Functor.ext From 4b04f349623cc401a151efd567c9e37c91b1884f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 20:47:58 -0400 Subject: [PATCH 298/362] UNITY: integrate Bump repair repair-6f007c57ea95300d --- HoTTLean/Groupoids/ClovenIsofibration.lean | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 1b11d1a5..b33b05d1 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -229,7 +229,7 @@ def classifier : Γ ⥤ Grpd.{v,u} where @[simp] lemma fiberInclusion_obj_classifier_map_obj {x y} (f : x ⟶ y) (p) : Fiber.fiberInclusion.obj ((I.classifier.map f).obj p) = I.liftObj f p.2 := by - simp [classifier, classifier.map.obj, Fiber.fiberInclusion] + rfl open CategoryTheory.Functor.Groupoidal @@ -237,7 +237,7 @@ def grothendieckClassifierIso.hom.obj (pair: ∫ I.classifier) : E := pair.fiber lemma grothendieckClassifierIso.hom.map_aux {X Y: Γ} (f: X ⟶ Y) (a: I.classifier.obj X) : (I.classifier.map f).obj a = ⟨I.liftObj (X' := a.1) f a.2, obj_liftObj ..⟩ := by - simp[classifier,classifier.map.obj] + rfl lemma grothendieckClassifierIso.hom.map_aux2 (X: Γ) (a: I.classifier.obj X) : F.obj a.1 = X := by From d3e4bb495d194e27986dda6b1b7b0180b372f17f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 20:56:35 -0400 Subject: [PATCH 299/362] UNITY: integrate Bump repair repair-8dd0acad63e66de2 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index b33b05d1..0746ab97 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -255,10 +255,15 @@ def grothendieckClassifierIso.hom.map' {p1 p2: ∫ I.classifier} (h: p1 ⟶ p2) (eqToHom (by simp[grothendieckClassifierIso.hom.map_aux,Fiber.fiberInclusion] )) ≫ Fiber.fiberInclusion.map h.fiber ≫ (eqToHom (by simp[Fiber.fiberInclusion] )) +-- The fiber inclusion and classifier objects are definitionally equal at full transparency. +set_option backward.isDefEq.respectTransparency false in lemma grothendieckClassifierIso.hom.map_id (X : ∫ I.classifier) : hom.map I (𝟙 X) = 𝟙 _ := by - convert_to _ ≫ _ ≫ Fiber.fiberInclusion.map (Hom.fiber (𝟙 X)) = _ - simp [liftIso_id, eqToHom_map] + change I.liftIso (Hom.base (𝟙 X)) (hom.map_aux2 ..) ≫ + eqToHom (by simp [liftObj_id, Fiber.fiberInclusion]) ≫ Fiber.fiberInclusion.map (Hom.fiber (𝟙 X)) = 𝟙 _ + simp only [Groupoidal.id_base, liftIso_id, Groupoidal.id_fiber] + rw [eqToHom_map] + simp lemma grothendieckClassifierIso.hom.map_comp {X Y Z: ∫ I.classifier} (f : X ⟶ Y) (g : Y ⟶ Z) : hom.map' I (f ≫ g) = hom.map' I f ≫ hom.map' I g := by From 24e5476369137e3c55bf793882661b6a58a55ee3 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 21:05:16 -0400 Subject: [PATCH 300/362] UNITY: integrate Bump repair repair-c80b04f2be257796 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 0746ab97..97d786d7 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -265,6 +265,8 @@ lemma grothendieckClassifierIso.hom.map_id (X : ∫ I.classifier) : rw [eqToHom_map] simp +-- Reduce classifier and fiber projections in the dependent composition proof. +set_option backward.isDefEq.respectTransparency false in lemma grothendieckClassifierIso.hom.map_comp {X Y Z: ∫ I.classifier} (f : X ⟶ Y) (g : Y ⟶ Z) : hom.map' I (f ≫ g) = hom.map' I f ≫ hom.map' I g := by simp [map', liftIso_comp, eqToHom_map, classifier, classifier.map.map] From d42b913d7778caeff6a87a9444a6e2eda9e9fb78 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 21:11:16 -0400 Subject: [PATCH 301/362] UNITY: integrate Bump repair repair-ebeaf3660d609803 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 97d786d7..8081e16d 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -271,6 +271,8 @@ lemma grothendieckClassifierIso.hom.map_comp {X Y Z: ∫ I.classifier} (f : X hom.map' I (f ≫ g) = hom.map' I f ≫ hom.map' I g := by simp [map', liftIso_comp, eqToHom_map, classifier, classifier.map.map] +-- Reduce fiber projections in the naturality equation. +set_option backward.isDefEq.respectTransparency false in @[simps!] def grothendieckClassifierIso.hom.hom {X Y} (f : X ⟶ Y) : Fiber.fiberInclusion ⟶ I.classifier.map f ⋙ Fiber.fiberInclusion where From e72d1ae60826a5de374d319c1aac67ad125fe73c Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 21:17:00 -0400 Subject: [PATCH 302/362] UNITY: integrate Bump repair repair-0d9847304a4526c3 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 8081e16d..54fcdfed 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -281,6 +281,8 @@ def grothendieckClassifierIso.hom.hom {X Y} (f : X ⟶ Y) : intro a b g simp[Fiber.fiberInclusion,classifier,classifier.map.map,Fiber.homMk] +-- Reduce dependent classifier and fiber projections in the functor laws. +set_option backward.isDefEq.respectTransparency false in def grothendieckClassifierIso.hom : ∫ I.classifier ⥤ E := Groupoidal.functorFrom (fun x => Fiber.fiberInclusion) (grothendieckClassifierIso.hom.hom I) From 5277268a31f3f671c898bf2150ebee19a0431b47 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 21:23:21 -0400 Subject: [PATCH 303/362] UNITY: integrate Bump repair repair-e12c6898690c10db --- HoTTLean/Groupoids/ClovenIsofibration.lean | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 54fcdfed..c46f5b28 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -299,6 +299,8 @@ def grothendieckClassifierIso.inv.fibMap {X Y}(f : X ⟶ Y) : · rfl · simp[Functor.map_inv,ClovenIsofibration.map_liftIso'] +-- Reduce the bundled fiber projections in this dependent identity proof. +set_option backward.isDefEq.respectTransparency false in lemma grothendieckClassifierIso.inv.fibMap_id (x : E) : inv.fibMap I (𝟙 x) = eqToHom (by simp) := by apply Fiber.hom_ext @@ -306,6 +308,8 @@ lemma grothendieckClassifierIso.inv.fibMap_id (x : E) : rw![Functor.map_id,liftIso_id] simp[inv_eqToHom,eqToHom_map] +-- Reduce the same bundled fiber projections in the composition law. +set_option backward.isDefEq.respectTransparency false in lemma grothendieckClassifierIso.inv.fibMap_comp {x y z : E} (f : x ⟶ y) (g : y ⟶ z) : inv.fibMap I (f ≫ g) = eqToHom (by simp) ≫ From 013337d32d70d9e132b32285454f59ce1673eb99 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 21:29:37 -0400 Subject: [PATCH 304/362] UNITY: integrate Bump repair repair-e458c115674c7a37 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index c46f5b28..9f809ccd 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -319,13 +319,16 @@ lemma grothendieckClassifierIso.inv.fibMap_comp {x y z : E} (f : x ⟶ y) (g : y rw! [Functor.map_comp] simp [liftIso_comp, eqToHom_map,classifier,classifier.map.map] +-- Reduce classifier and fiber projections while comparing functor maps. +set_option backward.isDefEq.respectTransparency false in lemma ι_classifier_comp_forget {x} : ι I.classifier x ⋙ Groupoidal.forget = Fiber.fiberInclusion ⋙ F := by fapply Functor.ext · intro p exact p.2.symm · intro p q f - simpa using IsHomLift.fac .. + let : F.IsHomLift (𝟙 x) (Fiber.fiberInclusion.map f) := f.2 + simpa using IsHomLift.fac F (𝟙 x) (Fiber.fiberInclusion.map f) @[simp] lemma liftObj_map_fiberInclusion_map {S} {X Y : Fiber F S} {X' : E} (f : X ⟶ Y) From 041d02d19263ac7cc97af562b005a491a4637d22 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 21:35:04 -0400 Subject: [PATCH 305/362] UNITY: integrate Bump repair repair-082b0ac3fe3fbf7f --- HoTTLean/Groupoids/ClovenIsofibration.lean | 1 + 1 file changed, 1 insertion(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 9f809ccd..2324489e 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -336,6 +336,7 @@ lemma liftObj_map_fiberInclusion_map {S} {X Y : Fiber F S} {X' : E} (f : X ⟶ Y I.liftObj (F.map (Fiber.fiberInclusion.map f)) (X' := X') (by simp [hX']) = Fiber.fiberInclusion.obj X := by rw! [Fiber.functor_map_fiberInclusion_map, liftObj_eqToHom, hX'] + rfl @[simp] lemma liftIso_map_fiberInclusion_map {S} {X Y : Fiber F S} {X' : E} (f : X ⟶ Y) From cf0e402bda99f87a8bcdb08f352011258a371d38 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 21:40:55 -0400 Subject: [PATCH 306/362] UNITY: integrate Bump repair repair-faf7a3474ff22c25 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 1 + 1 file changed, 1 insertion(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 2324489e..564024b3 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -344,6 +344,7 @@ lemma liftIso_map_fiberInclusion_map {S} {X Y : Fiber F S} {X' : E} (f : X ⟶ Y I.liftIso (F.map (Fiber.fiberInclusion.map f)) (X' := X') (by simp [hX']) = eqToHom (by simp [hX']) := by rw! [Fiber.functor_map_fiberInclusion_map, liftIso_eqToHom] + rfl open grothendieckClassifierIso in /-- A split isofibration `F : E ⥤ Γ` is classified by the functor `I.classifier : Γ ⥤ Grpd`. From c157f95d60276e2e8b77f2c1f649ca26ece09503 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 21:48:19 -0400 Subject: [PATCH 307/362] UNITY: integrate Bump repair repair-6cc6d16c0eef4125 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 564024b3..9cb686ae 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -346,6 +346,8 @@ lemma liftIso_map_fiberInclusion_map {S} {X Y : Fiber F S} {X' : E} (f : X ⟶ Y rw! [Fiber.functor_map_fiberInclusion_map, liftIso_eqToHom] rfl +-- Reduce bundled fiber projections in the classifier isomorphism laws. +set_option backward.isDefEq.respectTransparency false in open grothendieckClassifierIso in /-- A split isofibration `F : E ⥤ Γ` is classified by the functor `I.classifier : Γ ⥤ Grpd`. This means that the (groupoidal) Grothendieck construction on `I.classifier` is isomorphic to @@ -382,7 +384,8 @@ def grothendieckClassifierIso : ∫ I.classifier ≅≅ E := any_goals simp · rw! [map_liftIso', liftObj_comp _ _ _ rfl, liftObj_comp _ _ _ rfl] simp [liftObj_eqToHom] - · rw! [map_liftIso', liftIso_comp _ _ _ rfl, liftIso_comp _ _ _ rfl] + · simp only [hom.hom] + rw! (castMode := .all) [map_liftIso', liftIso_comp _ _ _ rfl, liftIso_comp _ _ _ rfl] simp only [liftIso_eqToHom, eqToHom_refl, eqToHom_trans, Category.id_comp, Category.assoc, IsIso.inv_comp, inv_eqToHom, eqToHom_comp_liftIso, IsIso.inv_hom_id_assoc] rw! [eqToHom_heq_id_cod] From 6fbd7d310cdc469c7066cf4eca55aa2f97aef836 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 21:55:00 -0400 Subject: [PATCH 308/362] UNITY: integrate Bump repair repair-add14afcbb721cef --- HoTTLean/Groupoids/ClovenIsofibration.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 9cb686ae..bffe8f4f 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -419,6 +419,8 @@ def iso {A : Type u} [Category.{v} A] {B : Type u₁} [Category.{v₁} B] (F : A intro X Y f i X' hX' apply IsIso.comp_isIso +-- The split laws simplify dependent transports through the semireducible `iso` definition. +set_option backward.isDefEq.respectTransparency false in instance {A : Type u} [Category.{v} A] {B : Type u₁} [Category.{v₁} B] (F : A ≅≅ B) : IsSplit (iso F) where liftObj_id h := by simp [← h, ← Functor.comp_obj] liftIso_id := by simp From 7f1955f0c933b552a8d7421d1c15efbccc9575e2 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 22:01:02 -0400 Subject: [PATCH 309/362] UNITY: integrate Bump repair repair-88b5ccce734c35f2 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index bffe8f4f..edeaa07b 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -439,10 +439,13 @@ def forget.liftIso {X Y: C} (f : X ⟶ Y) {X' : F.Groupoidal} (hX': Groupoidal.f X' ⟶ forget.liftObj f hX' := Groupoidal.toTransport X' (eqToHom (by subst hX'; simp) ≫ f) +-- Unfold the semireducible transport and forgetful functor in the lift equation. +set_option backward.isDefEq.respectTransparency false in lemma forget.isHomLift {X Y: C} (f : X ⟶ Y) {X' : F.Groupoidal} (hX': Groupoidal.forget.obj X' = X) : Groupoidal.forget.IsHomLift f (forget.liftIso f hX') := by - apply IsHomLift.of_fac' (ha := hX') (hb := by simp[liftObj]) - simp[liftIso] + subst X + apply IsHomLift.of_fac' (ha := rfl) (hb := by simp [liftObj]) + simp [liftIso, Groupoidal.forget_map, Groupoidal.toTransport_base] def toTransport_IsIso (x : F.Groupoidal) {c : C} (t : x.base ⟶ c) : IsIso (Groupoidal.toTransport x t) := From 42de5c45e36dd8fba2c0fc469aa7bf802890d0a3 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 22:06:48 -0400 Subject: [PATCH 310/362] UNITY: integrate Bump repair repair-17b11e3e607877f2 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index edeaa07b..93fc5436 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -467,6 +467,8 @@ def forget.liftObj_id {X: C} {X' : F.Groupoidal} (hX': Groupoidal.forget.obj X' forget.liftObj (𝟙 X) hX' = X' := by simp [liftObj, Groupoidal.transport_eqToHom] +-- The cast and transport equations require unfolding semireducible definitions. +set_option backward.isDefEq.respectTransparency false in def forget.liftIso_id {X: C} {X' : F.Groupoidal} (hX': Groupoidal.forget.obj X' = X) : forget.liftIso (𝟙 X) hX' = eqToHom (by simp [forget.liftObj_id]) := by dsimp [liftIso] From a7b0d6e2a380791b386947224059ff146e771145 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 22:13:16 -0400 Subject: [PATCH 311/362] UNITY: integrate Bump repair repair-ca9b94caba0110d1 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 93fc5436..8bd36b31 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -476,21 +476,14 @@ def forget.liftIso_id {X: C} {X' : F.Groupoidal} (hX': Groupoidal.forget.obj X' simp only [Groupoidal.toTransport_eqToHom, ← heq_eq_eq, eqRec_heq_iff_heq] congr! +-- Unfold transport projections when simplifying dependent casts. +set_option backward.isDefEq.respectTransparency false in lemma forget.liftObj_comp {X Y Z: C} (f : X ⟶ Y) (g : Y ⟶ Z) {X' : F.Groupoidal} (hX' : X'.base = X) {Y' : F.Groupoidal} (hY' : forget.liftObj f hX' = Y') : forget.liftObj (f ≫ g) hX' = forget.liftObj g (liftObj_comp_aux (forget F) f hX' Y' hY') := by - simp only [liftObj,Groupoidal.transport_comp] - simp only [Groupoidal.transport, Grothendieck.transport, comp_obj, comp_map] - fapply Grothendieck.ext - · simp - simp only [Grpd.forgetToCat, Cat.of_α, id_eq, comp_obj, eqToHom_refl, comp_map, map_id, - Grpd.id_eq_id, id_obj] - congr! - simp only [← comp_obj,← Grpd.comp_eq_comp,← Functor.map_comp] - rw! [eqToHom_map] - subst hY' - simp [liftObj,Groupoidal.transport] + subst hX' hY' + simp [liftObj, Groupoidal.transport, Grothendieck.transport, Functor.map_comp, Grpd.comp_eq_comp, Grpd.forgetToCat] lemma forget.liftIso_comp {X Y Z: C} (f : X ⟶ Y) (g : Y ⟶ Z) {X' : F.Groupoidal} (hX' : X'.base = X) {Y' : F.Groupoidal} (hY' : forget.liftObj f hX' = Y') : From 6128173df1538f3a8f717f8a4f2bba0940d5004a Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 22:18:58 -0400 Subject: [PATCH 312/362] UNITY: integrate Bump repair repair-7bb2fb833ed83748 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 8bd36b31..741ae456 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -485,6 +485,8 @@ lemma forget.liftObj_comp {X Y Z: C} (f : X ⟶ Y) (g : Y ⟶ Z) subst hX' hY' simp [liftObj, Groupoidal.transport, Grothendieck.transport, Functor.map_comp, Grpd.comp_eq_comp, Grpd.forgetToCat] +-- Unfold transport projections when rewriting dependent casts. +set_option backward.isDefEq.respectTransparency false in lemma forget.liftIso_comp {X Y Z: C} (f : X ⟶ Y) (g : Y ⟶ Z) {X' : F.Groupoidal} (hX' : X'.base = X) {Y' : F.Groupoidal} (hY' : forget.liftObj f hX' = Y') : forget.liftIso (f ≫ g) hX' = forget.liftIso f hX' ≫ eqToHom hY' ≫ From 010039f1a44d7b2cc0208aa4b9d27ad1191a3de3 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 22:26:12 -0400 Subject: [PATCH 313/362] UNITY: integrate Bump repair repair-f1e50ba3c6f45ba6 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 741ae456..c6f6ca77 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -536,16 +536,13 @@ def comp.liftIso {X Y: C} (f: X ⟶ Y) [IsIso f] {X': A} (hX': (F ⋙ G).obj X' let f1 := IG.liftIso (X' := F.obj X') f (by simp at hX'; assumption) IF.liftIso (X' := X') f1 rfl +-- The composite lift contains dependent projections that must unfold during unification. +set_option backward.isDefEq.respectTransparency false in lemma comp.isHomLift {X Y: C} (f: X ⟶ Y) [IsIso f] {X': A} (hX': (F ⋙ G).obj X' = X) : (F ⋙ G).IsHomLift f (comp.liftIso IF IG f hX') := by - apply IsHomLift.of_fac - · let e := ClovenIsofibration.map_liftIso' (F := F) - simp only [comp_obj, liftIso, comp_map, e, eqToHom_refl, Category.id_comp, map_comp, - map_liftIso', eqToHom_map, Category.assoc, eqToHom_trans, eqToHom_trans_assoc] - rw![liftObj] - simp - · assumption - · simp [liftObj,ClovenIsofibration.obj_liftObj] + refine IsHomLift.of_fac (F ⋙ G) f (comp.liftIso IF IG f hX') hX' + (comp.obj_liftObj IF IG f hX') ?_ + simp [comp.liftIso, comp.liftObj, map_liftIso', eqToHom_map, Category.assoc] /-- `IsMultiplicative` 1/2 -/ @[simps!] From ed43a8b33157274bc593d46004418ca394b07af4 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 22:31:52 -0400 Subject: [PATCH 314/362] UNITY: integrate Bump repair repair-66f4ab3584a4744a --- HoTTLean/Groupoids/ClovenIsofibration.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index c6f6ca77..f05625d8 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -570,7 +570,9 @@ lemma comp.liftIso_id {X : C} {X' : A} (hX' : (F ⋙ G).obj X' = X) : comp.liftIso IF IG (𝟙 X) hX' = eqToHom (by simp[comp.liftObj_id]) := by dsimp [comp.liftIso] rw! (castMode := .all) [IsSplit.liftIso_id] - simp only [liftIso_eqToHom, ← heq_eq_eq, eqRec_heq_iff_heq] + simp only [liftIso_eqToHom] + apply eq_of_heq + apply (eqRec_heq_iff).2 apply HEq.trans (eqToHom_heq_id_dom _ _ _) (eqToHom_heq_id_dom _ _ _).symm lemma comp.liftObj_comp {X Y Z : C} (f : X ⟶ Y) [IsIso f] (g : Y ⟶ Z) [IsIso g] {X' : A} From df2d07f645763b424edfcffb0bccf35db1c8fb04 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 22:38:26 -0400 Subject: [PATCH 315/362] UNITY: integrate Bump repair repair-c53fac9d7770e7eb --- HoTTLean/Groupoids/ClovenIsofibration.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index f05625d8..8aa05468 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -575,6 +575,8 @@ lemma comp.liftIso_id {X : C} {X' : A} (hX' : (F ⋙ G).obj X' = X) : apply (eqRec_heq_iff).2 apply HEq.trans (eqToHom_heq_id_dom _ _ _) (eqToHom_heq_id_dom _ _ _).symm +-- The congruence proof compares dependent lifts after unfolding the composite. +set_option backward.isDefEq.respectTransparency false in lemma comp.liftObj_comp {X Y Z : C} (f : X ⟶ Y) [IsIso f] (g : Y ⟶ Z) [IsIso g] {X' : A} (hX' : (F ⋙ G).obj X' = X) : comp.liftObj IF IG (f ≫ g) hX' = From dbb444a78ba05efef57b13ab468183cbab8c1780 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 22:44:35 -0400 Subject: [PATCH 316/362] UNITY: integrate Bump repair repair-fb843d7bb5afc858 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 8aa05468..439cee2c 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -587,6 +587,8 @@ lemma comp.liftObj_comp {X Y Z : C} (f : X ⟶ Y) [IsIso f] (g : Y ⟶ Z) [IsIso congr! simp +-- The dependent rewrite compares casts whose definitions need semireducible unfolding. +set_option backward.isDefEq.respectTransparency false in lemma comp.liftIso_comp {X Y Z : C} (f : X ⟶ Y) [IsIso f] (g : Y ⟶ Z) [IsIso g] {X' : A} (hX' : (F ⋙ G).obj X' = X) (Y' : A) (hY' : comp.liftObj IF IG f hX' = Y') : From a4b19954c8e29d1ea2d16449c5c7e928aeabc82f Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 22:51:32 -0400 Subject: [PATCH 317/362] UNITY: integrate Bump repair repair-a5922dfad2539fb5 --- HoTTLean/Groupoids/ClovenIsofibration.lean | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 439cee2c..7889be7f 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -694,8 +694,10 @@ def tpClovenIsofibration : (GroupoidModel.U.{u}.tp).ClovenIsofibration := isoComp (Functor.ClovenIsofibration.forget _) i _ (Functor.IsPullback.isoIsPullback.hom_comp_right ..).symm +-- Instance search must unfold the functor data to match the split iso-composite. +set_option backward.isDefEq.respectTransparency false in instance : IsSplit tpClovenIsofibration := by - dsimp [tpClovenIsofibration] + dsimp only [tpClovenIsofibration] infer_instance end GroupoidModel From 065e1d10eebf69df0450a397100c23ff5f064757 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 22:58:11 -0400 Subject: [PATCH 318/362] UNITY: integrate Bump repair repair-47a1faa06c084896 --- HoTTLean/Groupoids/Id.lean | 1 + 1 file changed, 1 insertion(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 6b418552..ff97e754 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -31,6 +31,7 @@ lemma IdMap_id (X : Γ) : IdMap a0_tp a1_tp (𝟙 X) = 𝟙 (IdObj a0_tp a1_tp X intro g apply Discrete.ext simp [IdMap] + rfl lemma IdMap_comp {X Y Z : Γ} (f1 : X ⟶ Y) (f2 : Y ⟶ Z) : IdMap a0_tp a1_tp (f1 ≫ f2) = IdMap a0_tp a1_tp f1 ⋙ IdMap a0_tp a1_tp f2 := by From 95cb8f788cfe97d353edf1fc1d32683c46819849 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 23:09:30 -0400 Subject: [PATCH 319/362] UNITY: integrate Bump repair repair-47a1faa06c084896 --- HoTTLean/Groupoids/Id.lean | 31 ++++++++----------------------- 1 file changed, 8 insertions(+), 23 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index ff97e754..0259571c 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -35,32 +35,17 @@ lemma IdMap_id (X : Γ) : IdMap a0_tp a1_tp (𝟙 X) = 𝟙 (IdObj a0_tp a1_tp X lemma IdMap_comp {X Y Z : Γ} (f1 : X ⟶ Y) (f2 : Y ⟶ Z) : IdMap a0_tp a1_tp (f1 ≫ f2) = IdMap a0_tp a1_tp f1 ⋙ IdMap a0_tp a1_tp f2 := by - subst a0_tp apply Discrete.functor_ext intro g apply Discrete.ext - simp only [Functor.comp_obj, Functor.Grothendieck.forget_obj, PGrpd.objFiber'_rfl, IdMap, - Functor.comp_map, Functor.Grothendieck.forget_map, PGrpd.mapFiber'_rfl, - Discrete.functor_obj_eq_as, Functor.map_comp, Functor.map_inv, - Category.assoc, IsIso.eq_inv_comp] - simp only [PGrpd.mapFiber, PGrpd.map_comp_fiber, Functor.Grothendieck.forget_obj, - Functor.Grothendieck.forget_map, ← Category.assoc, IsIso.inv_comp, inv_eqToHom, - PGrpd.mapFiber', Functor.comp_obj, Functor.comp_map, PGrpd.objFiber'EqToHom, - PGrpd.mapFiber'EqToHom, Functor.map_comp, eqToHom_map, eqToHom_trans, IsIso.hom_inv_id, - Category.id_comp, Functor.Grothendieck.Hom.comp_base, Grpd.comp_eq_comp, eqToHom_naturality, - Category.comp_id, ← heq_eq_eq] - congr 1 - rw! [Functor.map_comp] - simp only [Functor.Grothendieck.Hom.comp_base, Grpd.comp_eq_comp, Functor.comp_obj, - eqToHom_refl, Functor.comp_map, Category.id_comp, Category.assoc, ← heq_eq_eq] - congr 1 - have h := Functor.congr_hom a1_tp f2 - simp only [Functor.comp_obj, Functor.Grothendieck.forget_obj, Functor.comp_map, - Functor.Grothendieck.forget_map, Grpd.comp_eq_comp] at h - rw! [h] - simp only [← Grpd.comp_eq_comp, Grpd.comp_obj, ← Functor.comp_map, ← heq_eq_eq, - heq_eqToHom_comp_iff, heq_comp_eqToHom_iff, eqToHom_comp_heq_iff] - simp [Grpd.eqToHom_hom] + change inv (PGrpd.mapFiber' a0_tp (f1 ≫ f2)) ≫ (A.map (f1 ≫ f2)).map g ≫ + PGrpd.mapFiber' a1_tp (f1 ≫ f2) = + inv (PGrpd.mapFiber' a0_tp f2) ≫ + (A.map f2).map (inv (PGrpd.mapFiber' a0_tp f1) ≫ (A.map f1).map g ≫ + PGrpd.mapFiber' a1_tp f1) ≫ PGrpd.mapFiber' a1_tp f2 + simp only [PGrpd.mapFiber'_comp', Grpd.map_comp_map, Functor.map_comp, + Functor.map_inv, IsIso.inv_comp, inv_eqToHom, Category.assoc] + simp only [← Category.assoc, eqToHom_trans, eqToHom_refl, Category.id_comp] @[simps!] def Id : Γ ⥤ Grpd where From 50997839cdce6586bebf551446b7f6b77abae459 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 23:15:38 -0400 Subject: [PATCH 320/362] UNITY: integrate Bump repair repair-bf6811b7d9af015e --- HoTTLean/Groupoids/Id.lean | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 0259571c..e39f83b3 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -83,12 +83,14 @@ variable {p} (p_tp : p ⋙ PGrpd.forgetToGrpd = snd _ _ ⋙ A) include p_tp in @[simp] lemma path0_comp_forgetToGrpd : path0 p ⋙ PGrpd.forgetToGrpd = A := by - rw [Functor.assoc, p_tp, ← Functor.assoc, sectR_comp_snd, Functor.id_comp] + rw [Functor.assoc, p_tp] + rfl include p_tp in @[simp] lemma path1_comp_forgetToGrpd : path1 p ⋙ PGrpd.forgetToGrpd = A := by - rw [Functor.assoc, p_tp, ← Functor.assoc, sectR_comp_snd, Functor.id_comp] + rw [Functor.assoc, p_tp] + rfl lemma objFiber'_path0 (x) : PGrpd.objFiber' (path0_comp_forgetToGrpd p_tp) x = PGrpd.objFiber' p_tp (ff x) := by From 793f39a18cf6af45d215d72bb5d4e2b643690f2a Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 23:22:06 -0400 Subject: [PATCH 321/362] UNITY: integrate Bump repair repair-3122c8aa592de7c7 --- HoTTLean/Groupoids/Id.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index e39f83b3..4fd415ae 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -94,7 +94,8 @@ lemma path1_comp_forgetToGrpd : path1 p ⋙ PGrpd.forgetToGrpd = A := by lemma objFiber'_path0 (x) : PGrpd.objFiber' (path0_comp_forgetToGrpd p_tp) x = PGrpd.objFiber' p_tp (ff x) := by - dsimp [PGrpd.objFiber', PGrpd.objFiber] + apply heq_iff_eq.mp + exact HEq.trans (PGrpd.objFiber'_heq (path0_comp_forgetToGrpd p_tp)) (HEq.symm (PGrpd.objFiber'_heq p_tp)) @[simp] abbrev pathId : Γ ⥤ Grpd := From f3dc208279a5db79eb50e52035c4cf6ada849cfd Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 23:27:49 -0400 Subject: [PATCH 322/362] UNITY: integrate Bump repair repair-182dbfdc3494f85d --- HoTTLean/Groupoids/Id.lean | 1 + 1 file changed, 1 insertion(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 4fd415ae..eba229b7 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -114,6 +114,7 @@ lemma pathFibObj_comp (x : Δ) : pathFibObj (A := σ ⋙ A) (p := Functor.prod ( Functor.prod_obj, Functor.id_obj, Functor.Grothendieck.forget_obj, PGrpd.objFiber'EqToHom, Functor.prod_map, Functor.id_map, PGrpd.mapFiber'EqToHom, Grpd.eqToHom_hom, eqToHom_trans_assoc] rw! [CategoryTheory.Functor.map_id] + rfl lemma IdMap_path {x y} (f : x ⟶ y) : ((IdMap (path0_comp_forgetToGrpd p_tp) (path1_comp_forgetToGrpd p_tp) f).obj From a81a7f0b95bfabb15ba4f44885bc53feaecff2fe Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 23:37:21 -0400 Subject: [PATCH 323/362] UNITY: integrate Bump repair repair-c3035c36a7478996 --- HoTTLean/Groupoids/Id.lean | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index eba229b7..c0d7d174 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -116,6 +116,8 @@ lemma pathFibObj_comp (x : Δ) : pathFibObj (A := σ ⋙ A) (p := Functor.prod ( rw! [CategoryTheory.Functor.map_id] rfl +-- The path proof unfolds bundled groupoid coercions during dependent simplification. +set_option backward.isDefEq.respectTransparency false in lemma IdMap_path {x y} (f : x ⟶ y) : ((IdMap (path0_comp_forgetToGrpd p_tp) (path1_comp_forgetToGrpd p_tp) f).obj (pathFibObj p_tp x)).as = (pathFibObj p_tp y).as := by @@ -129,6 +131,10 @@ lemma IdMap_path {x y} (f : x ⟶ y) : simp only [PGrpd.mapFiber'_naturality p_tp (sectR ⟨⟨.false⟩⟩ _), sectR_obj, sectR_map, Functor.map_comp, eqToHom_map, PGrpd.mapFiber'_naturality p_tp (sectR ⟨⟨.true⟩⟩ _), Category.assoc, IsIso.inv_comp_eq] + simp only [pathFibObj_as, sectR_map, Functor.map_comp, eqToHom_map, Category.assoc] + change eqToHom _ ≫ ((A.map f).map (PGrpd.mapFiber' p_tp (ft x)) ≫ + PGrpd.mapFiber' p_tp (ttm f)) = + PGrpd.mapFiber' p_tp (ffm f) ≫ eqToHom _ ≫ PGrpd.mapFiber' p_tp (ft y) rw! [h1] simp From 2e2fdf1a9654e975eeef15eda1284348214e8956 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 23:45:27 -0400 Subject: [PATCH 324/362] UNITY: integrate Bump repair repair-804e8b3297a97ce9 --- HoTTLean/Groupoids/Id.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index c0d7d174..3e792be4 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -141,7 +141,7 @@ lemma IdMap_path {x y} (f : x ⟶ y) : def pathFibMap {x y : Γ} (f : x ⟶ y) : (IdMap (path0_comp_forgetToGrpd p_tp) (path1_comp_forgetToGrpd p_tp) f).obj (pathFibObj p_tp x) ⟶ pathFibObj p_tp y := - ⟨⟨IdMap_path ..⟩⟩ + ⟨IdMap_path ..⟩ lemma pathFibMap_id (x : Γ) : pathFibMap p_tp (𝟙 x) = eqToHom (by simp [IdMap_id]) := by aesop_cat From 8da8649729e4d9958f1accf23802ed51ff46f751 Mon Sep 17 00:00:00 2001 From: Unity Date: Wed, 28 Oct 2026 23:52:48 -0400 Subject: [PATCH 325/362] UNITY: integrate Bump repair repair-fbc0dbee75d53b7c --- HoTTLean/Groupoids/Id.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 3e792be4..bf8733d4 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -154,7 +154,7 @@ lemma pathFibMap_comp {x y z : Γ} (f1 : x ⟶ y) (f2 : y ⟶ z) : def path : Γ ⥤ PGrpd := PGrpd.functorTo (pathId p_tp) (pathFibObj p_tp) (pathFibMap p_tp) - (pathFibMap_id p_tp) (fun f1 f2 => by dsimp only; aesop_cat) + (pathFibMap_id p_tp) (fun f1 f2 => by aesop_cat) lemma path_comp : path (A := σ ⋙ A) (p := Functor.prod (𝟭 _) σ ⋙ p) (by simp [Functor.assoc, p_tp]; rfl) = σ ⋙ path p_tp := by From cd3568c29d99958043a480e5b2d6cc46ba1a4d31 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 00:02:51 -0400 Subject: [PATCH 326/362] UNITY: integrate Bump repair repair-66b2649e4deda81f --- HoTTLean/Groupoids/Id.lean | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index bf8733d4..9f5747fe 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -162,21 +162,19 @@ lemma path_comp : path (A := σ ⋙ A) (p := Functor.prod (𝟭 _) σ ⋙ p) apply PGrpd.Functor.hext · rfl · intro x - simp only [path, Functor.comp_obj, heq_eq_eq] - -- rw [PGrpd.functorTo_obj_fiber] --FIXME why timeout? - convert_to pathFibObj (A := σ ⋙ A) (p := Functor.prod (𝟭 _) σ ⋙ p) - (by simp [Functor.assoc, p_tp]; rfl) x = - pathFibObj (A := A) (p := p) p_tp (σ.obj x) - rw [pathFibObj_comp] + dsimp only [path, Functor.comp_obj] + apply HEq.trans (heq_of_eq (PGrpd.functorTo_obj_fiber _ _ _ _ (pathFibMap_comp _) _)) + apply HEq.trans _ (heq_of_eq (PGrpd.functorTo_obj_fiber _ _ _ _ (pathFibMap_comp _) _).symm) + exact heq_of_eq (pathFibObj_comp σ p_tp x) · intro x y f - simp only [path, Functor.comp_map] - -- rw [PGrpd.functorTo_map_fiber] - convert_to pathFibMap (A := σ ⋙ A) (p := Functor.prod (𝟭 _) σ ⋙ p) - (by simp [Functor.assoc, p_tp]; rfl) f ≍ - pathFibMap (A := A) (p := p) p_tp (σ.map f) - rw! (castMode := .all) [pathFibObj_comp _ p_tp] - rw! (castMode := .all) [pathFibObj_comp _ p_tp] - rfl + dsimp only [path, Functor.comp_map] + apply HEq.trans (heq_of_eq (PGrpd.functorTo_map_fiber _ _ _ _ (pathFibMap_comp _) _)) + apply HEq.trans _ (heq_of_eq (PGrpd.functorTo_map_fiber _ _ _ _ (pathFibMap_comp _) _).symm) + apply Discrete.Hom.hext + · rfl + · rw! [pathFibObj_comp σ p_tp x] + rfl + · exact heq_of_eq (pathFibObj_comp σ p_tp y) @[simp] lemma path_comp_forgetToGrpd : path p_tp ⋙ PGrpd.forgetToGrpd = From 9db53ead97116766acd9e3ee200461ae4585b5e7 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 00:11:32 -0400 Subject: [PATCH 327/362] UNITY: integrate Bump repair repair-8903134c9e12a3b9 --- HoTTLean/Groupoids/Id.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 9f5747fe..9d9a049e 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -193,6 +193,8 @@ def unpathFibObj : (x : Grpd.Interval × Γ) → A.obj x.2 | ⟨⟨⟨.false⟩⟩, x2⟩ => PGrpd.objFiber' a0_tp x2 | ⟨⟨⟨.true⟩⟩, x2⟩ => PGrpd.objFiber' a1_tp x2 +-- The inverse uses the groupoid structure through the bundled fiber coercion. +set_option backward.isDefEq.respectTransparency false in def unpathFibMap : {x y : Grpd.Interval × Γ} → (f : x ⟶ y) → ((A.map f.2).obj (unpathFibObj a0_tp a1_tp x) ⟶ unpathFibObj a0_tp a1_tp y) | ⟨⟨⟨.false⟩⟩, _⟩, ⟨⟨⟨.false⟩⟩, _⟩, f => PGrpd.mapFiber' a0_tp f.2 From 671ad43da369aadd84fff86e3558540ebcc38155 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 00:19:13 -0400 Subject: [PATCH 328/362] UNITY: integrate Bump repair repair-89ea920cb252d92a --- HoTTLean/Groupoids/Id.lean | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 9d9a049e..abf70557 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -205,7 +205,7 @@ def unpathFibMap : {x y : Grpd.Interval × Γ} → (f : x ⟶ y) → lemma unpathFibMap_id (x : Grpd.Interval × Γ) : unpathFibMap a0_tp a1_tp p_tp (𝟙 x) = eqToHom (by simp) := by - rcases x with ⟨⟨⟨_|_⟩⟩ , x⟩ <;> simp [unpathFibMap] + rcases x with ⟨⟨⟨_|_⟩⟩ , x⟩ <;> simp [unpathFibMap] <;> rfl open PGrpd in lemma map_objFiber'_mapFiber' {x y} (f : x ⟶ y) : From c3010e17b5c41ee53d701a8308a76282c9e58c36 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 00:25:28 -0400 Subject: [PATCH 329/362] UNITY: integrate Bump repair repair-d91fe21cc7433434 --- HoTTLean/Groupoids/Id.lean | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index abf70557..f07863b0 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -211,7 +211,10 @@ open PGrpd in lemma map_objFiber'_mapFiber' {x y} (f : x ⟶ y) : (A.map f).map (objFiber' p_tp x).as ≫ mapFiber' a1_tp f = mapFiber' a0_tp f ≫ (objFiber' p_tp y).as := by - simpa using (mapFiber' p_tp f).1.1 + have h := (mapFiber' p_tp f).eq + change inv (mapFiber' a0_tp f) ≫ (A.map f).map (objFiber' p_tp x).as ≫ + mapFiber' a1_tp f = (objFiber' p_tp y).as at h + simpa [IsIso.inv_comp_eq] using h open PGrpd in lemma map_objFiber'_mapFiber'_inv_objFiber' {x y} (f : x ⟶ y) : From afc51e782d01f0584c3812d765199bae8acd5d95 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 00:36:31 -0400 Subject: [PATCH 330/362] UNITY: integrate Bump repair repair-2d482c9abf40a54e --- HoTTLean/Groupoids/Id.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index f07863b0..eeafdb07 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -230,6 +230,8 @@ lemma mapFiber'_inv_objFiber' {x y} (f : x ⟶ y) : mapFiber' a1_tp f ≫ inv (o slice_lhs 1 2 => rw [map_objFiber'_mapFiber'] simp +-- The bundled groupoid coercion requires unfolding while rewriting inverses. +set_option backward.isDefEq.respectTransparency false in attribute [simp] unpathFibMap unpathFibObj PGrpd.mapFiber'_comp' Grpd.forgetToCat in lemma unpathFibMap_comp {x y z : Grpd.Interval × Γ} (f : x ⟶ y) (g : y ⟶ z) : unpathFibMap a0_tp a1_tp p_tp (f ≫ g) = From ccc8f9e573ca2fbbabf38f86cf3ca2fe1dfa9431 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 00:47:14 -0400 Subject: [PATCH 331/362] UNITY: integrate Bump repair repair-f3504010c899c7d6 --- HoTTLean/Groupoids/Id.lean | 42 ++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index eeafdb07..4e7e7709 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -260,45 +260,39 @@ def unpath : Grpd.Interval × Γ ⥤ PGrpd := lemma unpath_comp_forgetToGrpd : unpath a0_tp a1_tp p_tp ⋙ PGrpd.forgetToGrpd = snd _ _ ⋙ A := by rfl +-- Unfold bundled functor projections when comparing dependent fibers. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma sectR_false_comp_unpath : sectR ⟨⟨.false⟩⟩ _ ⋙ unpath a0_tp a1_tp p_tp = a0 := by apply Functor.Grothendieck.FunctorTo.hext - · rw [Functor.assoc, unpath, Functor.Grothendieck.functorTo_forget, ← Functor.assoc, - sectR_comp_snd, a0_tp, Functor.id_comp] + · change (sectR ⟨⟨.false⟩⟩ _ ⋙ unpath a0_tp a1_tp p_tp) ⋙ PGrpd.forgetToGrpd = _ + rw [Functor.assoc, unpath_comp_forgetToGrpd, ← Functor.assoc, sectR_comp_snd, Functor.id_comp, a0_tp] · intro x - simp [unpath, PGrpd.objFiber', PGrpd.objFiber, Grpd.eqToHom_obj] + change HEq (PGrpd.objFiber' a0_tp x) (a0.obj x).fiber + exact PGrpd.objFiber'_heq a0_tp · intro x y f - simp [unpath, PGrpd.mapFiber', PGrpd.mapFiber'EqToHom, Grpd.eqToHom_hom] - apply HEq.trans (eqToHom_comp_heq _ _) - simp + change HEq (PGrpd.mapFiber' a0_tp f) (a0.map f).fiber + exact PGrpd.mapFiber'_heq a0_tp f +-- Unfold bundled functor projections when comparing dependent fibers. +set_option backward.isDefEq.respectTransparency false in @[simp] lemma sectR_true_comp_unpath : sectR ⟨⟨.true⟩⟩ _ ⋙ unpath a0_tp a1_tp p_tp = a1 := by apply Functor.Grothendieck.FunctorTo.hext - · rw [Functor.assoc, unpath, Functor.Grothendieck.functorTo_forget, ← Functor.assoc, - sectR_comp_snd, a1_tp, Functor.id_comp] + · change (sectR ⟨⟨.true⟩⟩ _ ⋙ unpath a0_tp a1_tp p_tp) ⋙ PGrpd.forgetToGrpd = _ + rw [Functor.assoc, unpath_comp_forgetToGrpd, ← Functor.assoc, sectR_comp_snd, Functor.id_comp, a1_tp] · intro x - simp [unpath, PGrpd.objFiber', PGrpd.objFiber, Grpd.eqToHom_obj] + change HEq (PGrpd.objFiber' a1_tp x) (a1.obj x).fiber + exact PGrpd.objFiber'_heq a1_tp · intro x y f - simp [unpath, PGrpd.mapFiber', PGrpd.mapFiber'EqToHom, Grpd.eqToHom_hom] - apply HEq.trans (eqToHom_comp_heq _ _) - simp + change HEq (PGrpd.mapFiber' a1_tp f) (a1.map f).fiber + exact PGrpd.mapFiber'_heq a1_tp f lemma path0_unpath : path0 (unpath a0_tp a1_tp p_tp) = a0 := by - apply Functor.Grothendieck.FunctorTo.hext - · simp - · intro x - simpa [unpath] using PGrpd.objFiber'_heq a0_tp - · intro x y f - simpa [unpath] using PGrpd.mapFiber'_heq a0_tp f + exact sectR_false_comp_unpath a0_tp a1_tp p_tp lemma path1_unpath : path1 (unpath a0_tp a1_tp p_tp) = a1 := by - apply Functor.Grothendieck.FunctorTo.hext - · simp - · intro x - simpa [unpath] using PGrpd.objFiber'_heq a1_tp - · intro x y f - simpa [unpath] using PGrpd.mapFiber'_heq a1_tp f + exact sectR_true_comp_unpath a0_tp a1_tp p_tp lemma pathFibObj_unpath (x) : pathFibObj (unpath_comp_forgetToGrpd a0_tp a1_tp p_tp) x = PGrpd.objFiber' p_tp x := by From 096d8f5c65a7ac5b3d4765fc34df8c4cf4bcbd29 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 00:53:27 -0400 Subject: [PATCH 332/362] UNITY: integrate Bump repair repair-2c42aafda3be730f --- HoTTLean/Groupoids/Id.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 4e7e7709..525a326b 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -294,6 +294,8 @@ lemma path0_unpath : path0 (unpath a0_tp a1_tp p_tp) = a0 := by lemma path1_unpath : path1 (unpath a0_tp a1_tp p_tp) = a1 := by exact sectR_true_comp_unpath a0_tp a1_tp p_tp +-- Allow unfolding bundled functor projections in dependent fiber simplification. +set_option backward.isDefEq.respectTransparency false in lemma pathFibObj_unpath (x) : pathFibObj (unpath_comp_forgetToGrpd a0_tp a1_tp p_tp) x = PGrpd.objFiber' p_tp x := by dsimp only [pathFibObj] From 59e3754c0be7890b9dde9046907abe5f899068f3 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 00:59:57 -0400 Subject: [PATCH 333/362] UNITY: integrate Bump repair repair-de9282f135146f80 --- HoTTLean/Groupoids/Id.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 525a326b..af067d42 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -302,6 +302,8 @@ lemma pathFibObj_unpath (x) : pathFibObj (unpath_comp_forgetToGrpd a0_tp a1_tp p apply Discrete.ext simp [PGrpd.mapFiber, unpath] +-- Unfold bundled functor projections for the dependent fiber equality. +set_option backward.isDefEq.respectTransparency false in lemma mapFiber_unpath_ft (x) : PGrpd.mapFiber (unpath a0_tp a1_tp p_tp) (ft x) = eqToHom (by simp [PGrpd.mapObjFiber, unpath, PGrpd.objFiber]) ≫ (PGrpd.objFiber' p_tp x).as := by From cfdf0132e1e71e3749989b7c1dc17e4fb90b44ac Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 01:08:36 -0400 Subject: [PATCH 334/362] UNITY: integrate Bump repair repair-de3a5e6c6e427044 --- HoTTLean/Groupoids/Id.lean | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index af067d42..bbc59d39 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -310,10 +310,14 @@ lemma mapFiber_unpath_ft (x) : PGrpd.mapFiber (unpath a0_tp a1_tp p_tp) (ft x) = dsimp [unpath, PGrpd.mapFiber] simp +-- Unfold bundled functor projections in the dependent fiber comparison. +set_option backward.isDefEq.respectTransparency false in lemma path_unpath : path (A := A) (unpath_comp_forgetToGrpd a0_tp a1_tp p_tp) = p := by apply Functor.Grothendieck.FunctorTo.hext · rw [path_comp_forgetToGrpd, p_tp] - rw! [path0_unpath, path1_unpath] + congr 1 + · exact path0_unpath .. + · exact path1_unpath .. · intro x exact heq_of_eq_of_heq (pathFibObj_unpath ..) (PGrpd.objFiber'_heq p_tp) · intro x y f From 69c6ace19d250aba32351cc77fd4901f9b9d38c2 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 01:14:32 -0400 Subject: [PATCH 335/362] UNITY: integrate Bump repair repair-ba53e6c2c04c7357 --- HoTTLean/Groupoids/Id.lean | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index bbc59d39..9980ed85 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -341,11 +341,13 @@ variable {p : Grpd.Interval × Γ ⥤ PGrpd} (p_tp : p ⋙ PGrpd.forgetToGrpd = include δ0_p p_tp in lemma a0_comp_forgetToGrpd : a0 ⋙ PGrpd.forgetToGrpd = A := by - rw [← δ0_p, path0, Functor.assoc, p_tp, ← Functor.assoc, sectR_comp_snd, Functor.id_comp] + rw [← δ0_p] + exact path0_comp_forgetToGrpd p_tp include δ1_p p_tp in lemma a1_comp_forgetToGrpd : a1 ⋙ PGrpd.forgetToGrpd = A := by - rw [← δ1_p, path1, Functor.assoc, p_tp, ← Functor.assoc, sectR_comp_snd, Functor.id_comp] + rw [← δ1_p] + exact path1_comp_forgetToGrpd p_tp lemma obj_ff_fiber (x) : (p.obj (ff x)).fiber ≍ PGrpd.objFiber' (a0_comp_forgetToGrpd p_tp δ0_p) x := by From 418d21540a99ecd11a3da18c0c15efb0cdb8d2a1 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 01:22:26 -0400 Subject: [PATCH 336/362] UNITY: integrate Bump repair repair-cc639f3703558044 --- HoTTLean/Groupoids/Id.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 9980ed85..5d817ba3 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -354,12 +354,14 @@ lemma obj_ff_fiber (x) : (p.obj (ff x)).fiber ≍ symm convert PGrpd.objFiber'_heq (path0_comp_forgetToGrpd p_tp) (x := x) rw [← δ0_p] + all_goals rfl lemma obj_tt_fiber (x) : (p.obj (tt x)).fiber ≍ PGrpd.objFiber' (a1_comp_forgetToGrpd p_tp δ1_p) x := by symm convert PGrpd.objFiber'_heq (path1_comp_forgetToGrpd p_tp) (x := x) rw [← δ1_p] + all_goals rfl lemma map_ff_fiber {x y : Γ} (f : ff x ⟶ ff y) : (p.map f).fiber ≍ PGrpd.mapFiber' (a0_comp_forgetToGrpd p_tp δ0_p) f.2 := by From 3a3cc67024f28a0cb0c01d47ae61f21ab481c69c Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 01:29:15 -0400 Subject: [PATCH 337/362] UNITY: integrate Bump repair repair-cc639f3703558044 --- HoTTLean/Groupoids/Id.lean | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 5d817ba3..420c5cb0 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -391,13 +391,13 @@ lemma map_tt_fiber {x y : Γ} (f : tt x ⟶ tt y) : (p.map f).fiber ≍ lemma mapFiber'_ffm {x y : Γ} (f : x ⟶ y) : PGrpd.mapFiber' p_tp (ffm f) ≍ PGrpd.mapFiber' (a0_comp_forgetToGrpd p_tp δ0_p) f := by - rw! [← δ0_p, PGrpd.mapFiber'_naturality p_tp (sectR ..)] - simp + subst a0 + exact (PGrpd.mapFiber'_heq p_tp _).trans (PGrpd.mapFiber'_heq (path0_comp_forgetToGrpd p_tp) f).symm lemma mapFiber'_ttm {x y : Γ} (f : x ⟶ y) : PGrpd.mapFiber' p_tp (ttm f) ≍ PGrpd.mapFiber' (a1_comp_forgetToGrpd p_tp δ1_p) f := by - rw! [← δ1_p, PGrpd.mapFiber'_naturality p_tp (sectR ..)] - simp + subst a1 + exact (PGrpd.mapFiber'_heq p_tp _).trans (PGrpd.mapFiber'_heq (path1_comp_forgetToGrpd p_tp) f).symm @[simp] lemma objFiber_path (x) : PGrpd.objFiber (path p_tp) x = pathFibObj p_tp x := From a983488dcbaaac0ce194b39c76c21c505182103b Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 01:35:58 -0400 Subject: [PATCH 338/362] UNITY: integrate Bump repair repair-cc639f3703558044 --- HoTTLean/Groupoids/Id.lean | 34 ++++++++++++++-------------------- 1 file changed, 14 insertions(+), 20 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 420c5cb0..1b55adb3 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -365,29 +365,23 @@ lemma obj_tt_fiber (x) : (p.obj (tt x)).fiber ≍ lemma map_ff_fiber {x y : Γ} (f : ff x ⟶ ff y) : (p.map f).fiber ≍ PGrpd.mapFiber' (a0_comp_forgetToGrpd p_tp δ0_p) f.2 := by - symm - convert PGrpd.mapFiber'_heq p_tp f - · rw! [← obj_ff_fiber p_tp δ0_p x] - rw! [PGrpd.objFiber'_heq p_tp] - · rw! [← obj_ff_fiber p_tp δ0_p y] - rw! [PGrpd.objFiber'_heq p_tp] - · rw! [← δ0_p, path0, PGrpd.mapFiber'_naturality p_tp (sectR { down := { as := false } } Γ)] - rw! [PGrpd.mapFiber'_heq p_tp] - rw! [PGrpd.mapFiber'_heq p_tp f] - rfl + subst a0 + have hf : f = ffm f.2 := by + ext + · rfl + · rfl + rw! [hf] + exact (PGrpd.mapFiber'_heq (path0_comp_forgetToGrpd p_tp) _).symm lemma map_tt_fiber {x y : Γ} (f : tt x ⟶ tt y) : (p.map f).fiber ≍ PGrpd.mapFiber' (a1_comp_forgetToGrpd p_tp δ1_p) f.2 := by - symm - convert PGrpd.mapFiber'_heq p_tp f - · rw! [← obj_tt_fiber p_tp δ1_p x] - rw! [PGrpd.objFiber'_heq p_tp] - · rw! [← obj_tt_fiber p_tp δ1_p y] - rw! [PGrpd.objFiber'_heq p_tp] - · rw! [← δ1_p, path1, PGrpd.mapFiber'_naturality p_tp (sectR { down := { as := true } } Γ)] - rw! [PGrpd.mapFiber'_heq p_tp] - rw! [PGrpd.mapFiber'_heq p_tp f] - rfl + subst a1 + have hf : f = ttm f.2 := by + ext + · rfl + · rfl + rw! [hf] + exact (PGrpd.mapFiber'_heq (path1_comp_forgetToGrpd p_tp) _).symm lemma mapFiber'_ffm {x y : Γ} (f : x ⟶ y) : PGrpd.mapFiber' p_tp (ffm f) ≍ PGrpd.mapFiber' (a0_comp_forgetToGrpd p_tp δ0_p) f := by From 0552d165f3261b2255f43ee78236855d36139489 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 01:42:49 -0400 Subject: [PATCH 339/362] UNITY: integrate Bump repair repair-55ff026e001ac7c6 --- HoTTLean/Groupoids/Id.lean | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 1b55adb3..15cdf966 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -409,7 +409,8 @@ lemma mapFiber_ft (x) : PGrpd.mapFiber p (ft x) ≍ Grpd.forgetToCat, Functor.Grothendieck.forget_obj, PGrpd.objFiber'EqToHom, PGrpd.mapFiber'EqToHom, Grpd.eqToHom_hom, eqToHom_trans_assoc, PGrpd.mapFiber] apply HEq.trans (eqToHom_comp_heq ..) - simp + apply HEq.trans (eqToHom_comp_heq ..) + exact (Grpd.eqToHom_hom _ _).heq.trans (cast_heq _ _) include p_tp in lemma map_ft_base (x) : (p.map (ft x)).base = eqToHom (by From 15bc1e9ede076c6c87f34800516aeac1156a3eca Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 01:49:36 -0400 Subject: [PATCH 340/362] UNITY: integrate Bump repair repair-ef7a988a90f072e2 --- HoTTLean/Groupoids/Id.lean | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 15cdf966..a12dfb77 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -412,6 +412,8 @@ lemma mapFiber_ft (x) : PGrpd.mapFiber p (ft x) ≍ apply HEq.trans (eqToHom_comp_heq ..) exact (Grpd.eqToHom_hom _ _).heq.trans (cast_heq _ _) +-- The functor congruence reduces through the bundled forgetful functor. +set_option backward.isDefEq.respectTransparency false in include p_tp in lemma map_ft_base (x) : (p.map (ft x)).base = eqToHom (by have h0 := Functor.congr_obj p_tp (ff x) @@ -420,6 +422,7 @@ lemma map_ft_base (x) : (p.map (ft x)).base = eqToHom (by rw [h0, h1]) := by simpa using Functor.congr_hom p_tp (ft x) +set_option backward.isDefEq.respectTransparency false in include p_tp in lemma map_tf_base (x) : (p.map (tf x)).base = eqToHom (by have h0 := Functor.congr_obj p_tp (ff x) From 49e9da66a1afcf9b7b137f1f595848bbaa1d2d67 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 01:56:07 -0400 Subject: [PATCH 341/362] UNITY: integrate Bump repair repair-d37c68006475fa25 --- HoTTLean/Groupoids/Id.lean | 3 +++ 1 file changed, 3 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index a12dfb77..bc49d269 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -431,6 +431,8 @@ lemma map_tf_base (x) : (p.map (tf x)).base = eqToHom (by rw [h0, h1]) := by simpa using Functor.congr_hom p_tp (tf x) +-- Matching `eqToHom` through the bundled groupoid functor requires reducible projections. +set_option backward.isDefEq.respectTransparency false in include p_tp in lemma inv_mapFiber_tf_heq (y : Γ) : inv (PGrpd.mapFiber p (tf y)) ≍ PGrpd.mapFiber p (ft y) := by @@ -443,6 +445,7 @@ lemma inv_mapFiber_tf_heq (y : Γ) : rw! [PGrpd.inv_mapFiber_heq] simp only [Grpd.forgetToCat, Functor.Grothendieck.forget_obj, Functor.comp_obj, Functor.comp_map, Functor.Grothendieck.forget_map, Cat.of_α, id_eq, cast_heq_iff_heq] + dsimp only [PGrpd.forgetToGrpd, Functor.Grothendieck.forget] rw! [map_tf_base p_tp, Grpd.eqToHom_hom] simp only [Grpd.forgetToCat, PGrpd.mapFiber, cast_heq_iff_heq] rw! (castMode := .all) [Functor.map_inv] From 74a774daf9477dd5e43b95f930069aaa5a85caf3 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 02:10:53 -0400 Subject: [PATCH 342/362] UNITY: integrate Bump repair repair-40116517f3bc1af2 --- HoTTLean/Groupoids/Id.lean | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index bc49d269..796decb2 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -451,6 +451,8 @@ lemma inv_mapFiber_tf_heq (y : Γ) : rw! (castMode := .all) [Functor.map_inv] simp +-- Dependent fiber rewrites need the bundled functor projections to reduce. +set_option backward.isDefEq.respectTransparency false in open PGrpd in lemma unpath_map_ft_fiber {x y} (f : ff x ⟶ tt y) : ((unpath (a0_comp_forgetToGrpd p_tp δ0_p) (a1_comp_forgetToGrpd p_tp δ1_p) @@ -463,9 +465,11 @@ lemma unpath_map_ft_fiber {x y} (f : ff x ⟶ tt y) : -- have hf : f = ttm f.2 ≫ ft y := by aesop_cat -- TODO: mwe and report: this should not type check have hf : f = ffm f.2 ≫ ft y := by aesop_cat - conv => rhs; rw! (castMode := .all) [hf] - simp only [heq_eqRec_iff_heq] - convert_to _ ≍ mapFiber _ _ + have hmap (g h : ff x ⟶ tt y) (e : g = h) : + mapFiber p h ≍ (p.map g).fiber := by + cases e + rfl + apply HEq.trans _ (hmap f _ hf) erw [mapFiber_comp] rw! [← mapFiber'_ffm p_tp δ0_p] apply HEq.trans _ (eqToHom_comp_heq ..).symm @@ -479,15 +483,16 @@ lemma unpath_map_ft_fiber {x y} (f : ff x ⟶ tt y) : erw [Functor.congr_hom p_tp (ft y)] rw! [← δ0_p, path0, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq] simp [mapObjFiber, Grpd.eqToHom_obj, objFiber, Functor.congr_obj H, - Grpd.eqToHom_obj] + Grpd.eqToHom_obj] <;> rfl · simp only [Functor.Grothendieck.forget_map] rw! [← δ0_p, path0, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq, map_ft_base p_tp, Grpd.eqToHom_obj] - simp [objFiber] + simp [objFiber] <;> rfl · rw! [← δ1_p, path1, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq] - simp [objFiber] + simp [objFiber] <;> rfl · simp only [Functor.comp_obj, snd_obj, Functor.comp_map, snd_map, Grpd.forgetToCat, Functor.Grothendieck.forget_obj, Functor.Grothendieck.forget_map, cast_heq_iff_heq] + change _ ≍ (p.map (ft y)).base.map _ rw! [map_ft_base p_tp, mapFiber'_heq] simp [Grpd.eqToHom_hom, mapFiber] · rw! [mapFiber_ft p_tp y] @@ -500,6 +505,8 @@ lemma unpath_map_ft_fiber {x y} (f : ff x ⟶ tt y) : · apply (objFiber'_heq ..).trans simp [objFiber] +-- Dependent fiber rewrites need the bundled functor projections to reduce. +set_option backward.isDefEq.respectTransparency false in open PGrpd in lemma unpath_map_tf_fiber {x y} (f : tt x ⟶ ff y) : ((unpath (a0_comp_forgetToGrpd p_tp δ0_p) (a1_comp_forgetToGrpd p_tp δ1_p) @@ -510,16 +517,18 @@ lemma unpath_map_tf_fiber {x y} (f : tt x ⟶ ff y) : Functor.Grothendieck.functorTo_obj_fiber, unpathFibObj, Functor.Grothendieck.functorTo_map_fiber, unpathFibMap] have hf : f = ttm f.2 ≫ tf y := by aesop_cat - conv => rhs; rw! (castMode := .all) [hf] - simp only [heq_eqRec_iff_heq] - convert_to _ ≍ mapFiber _ _ + have hmap (g h : tt x ⟶ ff y) (e : g = h) : + mapFiber p h ≍ (p.map g).fiber := by + cases e + rfl + apply HEq.trans _ (hmap f _ hf) erw [mapFiber_comp] rw! [← mapFiber'_ttm p_tp δ1_p f.2] apply HEq.trans _ (eqToHom_comp_heq ..).symm have : A.obj y ≍ forgetToGrpd.obj (p.obj (ff y)) := by erw [Functor.congr_obj p_tp (ff y)]; simp have : objFiber' (a0_comp_forgetToGrpd p_tp δ0_p) y ≍ objFiber p (ff y) := by rw! [← δ0_p, path0, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq] - simp [objFiber] + simp [objFiber] <;> rfl apply Grpd.comp_heq_comp · assumption · have H := Functor.congr_hom p_tp (ttm f.2) @@ -529,14 +538,15 @@ lemma unpath_map_tf_fiber {x y} (f : tt x ⟶ ff y) : erw [Functor.congr_hom p_tp (tf y)] rw! [← δ1_p, path1, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq] simp [mapObjFiber, Grpd.eqToHom_obj, objFiber, Functor.congr_obj H, - Grpd.eqToHom_obj] + Grpd.eqToHom_obj] <;> rfl · simp only [Functor.Grothendieck.forget_map] rw! [← δ1_p, path1, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq, map_tf_base p_tp, Grpd.eqToHom_obj] - simp [objFiber] + simp [objFiber] <;> rfl · assumption · simp only [Functor.comp_obj, snd_obj, Functor.comp_map, snd_map, Grpd.forgetToCat, Functor.Grothendieck.forget_obj, Functor.Grothendieck.forget_map, cast_heq_iff_heq] + change _ ≍ (p.map (tf y)).base.map _ rw! [map_tf_base p_tp, mapFiber'_heq] simp [Grpd.eqToHom_hom, mapFiber] · apply Grpd.inv_heq_of_heq_inv From e99c33f1093b2489a48cccb5abac9e287350623b Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 02:19:58 -0400 Subject: [PATCH 343/362] UNITY: integrate Bump repair repair-8a9d255099135d6c --- HoTTLean/Groupoids/Id.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 796decb2..eb0cf6c3 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -568,6 +568,8 @@ lemma unpath_map_tf_fiber {x y} (f : tt x ⟶ ff y) : rw! [inv_mapFiber_tf_heq p_tp, mapFiber'_heq] simp [mapFiber] +-- Dependent fiber projections must unfold when comparing the two functors. +set_option backward.isDefEq.respectTransparency false in lemma unpath_path : unpath (a0_comp_forgetToGrpd p_tp δ0_p) (a1_comp_forgetToGrpd p_tp δ1_p) (p := FunctorOperation.Path.path p_tp) (by rw [path_comp_forgetToGrpd]; congr) = p := by apply Functor.Grothendieck.FunctorTo.hext From 55df0e67cc248fc9b9a074909128632c21eb1c07 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 02:26:44 -0400 Subject: [PATCH 344/362] UNITY: integrate Bump repair repair-90745f7117794ccb --- HoTTLean/Groupoids/Id.lean | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index eb0cf6c3..a0787daa 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -606,7 +606,10 @@ variable {Γ Δ : Grpd} (σ : Δ ⟶ Γ) {A : Γ ⟶ U.{v}.Ty} (a0 a1 : Γ ⟶ U include a0_tp in lemma pt_tp : toCoreAsSmallEquiv a0 ⋙ PGrpd.forgetToGrpd = toCoreAsSmallEquiv A := by - rw [← a0_tp, Grpd.comp_eq_comp, U.tp, toCoreAsSmallEquiv_apply_comp_right] + have h := congrArg toCoreAsSmallEquiv a0_tp + change toCoreAsSmallEquiv (a0 ⋙ Ctx.coreAsSmallFunctor PGrpd.forgetToGrpd) = + toCoreAsSmallEquiv A at h + exact (toCoreAsSmallEquiv_apply_comp_right a0 PGrpd.forgetToGrpd).symm.trans h def Id : Γ ⟶ U.{v}.Ty := toCoreAsSmallEquiv.symm (FunctorOperation.Id (A := toCoreAsSmallEquiv A) From ff68527d4af3ef5e261d5a2a9cd1dd8ef5097a46 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 02:38:10 -0400 Subject: [PATCH 345/362] UNITY: integrate Bump repair repair-1df21d03eeded566 --- HoTTLean/Groupoids/Id.lean | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index a0787daa..36335738 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -617,9 +617,11 @@ def Id : Γ ⟶ U.{v}.Ty := (pt_tp a0 a0_tp) (pt_tp a1 a1_tp)) +-- Restore transparency for the bundled groupoid coercion in the composition rewrites. +set_option backward.isDefEq.respectTransparency false in lemma Id_comp : - UId.Id (A := σ ≫ A) (σ ≫ a0) (σ ≫ a1) (by simp only [Category.assoc, a0_tp, U_Ty]) - (by simp only [Category.assoc, a1_tp, U_Ty]) = σ ≫ UId.Id a0 a1 a0_tp a1_tp := by + UId.Id (A := σ ≫ A) (σ ≫ a0) (σ ≫ a1) (by simp only [Category.assoc, a0_tp]) + (by simp only [Category.assoc, a1_tp]) = σ ≫ UId.Id a0 a1 a0_tp a1_tp := by dsimp only [U_Ty, comp_eq_comp, Id] rw [← toCoreAsSmallEquiv_symm_apply_comp_left, ← FunctorOperation.Id_comp] From 9fb3edd8f33819525fa4dedf93bfb0acf94c81fb Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 02:43:03 -0400 Subject: [PATCH 346/362] UNITY: integrate Bump repair repair-49f58165a326fab1 --- HoTTLean/Groupoids/Id.lean | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 36335738..7dfc24e4 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -631,10 +631,11 @@ variable (p : cylinder.I.obj Γ ⟶ U.Tm) (p_tp : p ≫ U.tp = cylinder.π.app def path : Γ ⟶ U.{v}.Tm := toCoreAsSmallEquiv.symm <| FunctorOperation.Path.path (A := toCoreAsSmallEquiv A) (p := toCoreAsSmallEquiv p) (by - rw [← toCoreAsSmallEquiv_apply_comp_left] - rw [← toCoreAsSmallEquiv_apply_comp_right, - EmbeddingLike.apply_eq_iff_eq] - exact p_tp) + have h := congrArg toCoreAsSmallEquiv p_tp + change toCoreAsSmallEquiv (p ⋙ Ctx.coreAsSmallFunctor PGrpd.forgetToGrpd) = + toCoreAsSmallEquiv (CategoryTheory.Prod.snd Interval Γ ⋙ A) at h + exact (toCoreAsSmallEquiv_apply_comp_right p PGrpd.forgetToGrpd).symm.trans + (h.trans (toCoreAsSmallEquiv_apply_comp_left _ _))) lemma path_comp : path (A := σ ≫ A) (cylinder.I.map σ ≫ p) (by rw [Category.assoc, p_tp, ← Category.assoc, cylinder.π.naturality, Category.assoc, Functor.id_map]) = From 40e7640ddd898d62a60a5f78cdb27e702ac8505e Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 02:47:17 -0400 Subject: [PATCH 347/362] UNITY: integrate Bump repair repair-fa43b8eb554aa523 --- HoTTLean/Groupoids/Id.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 7dfc24e4..2b4721b0 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -637,6 +637,8 @@ def path : Γ ⟶ U.{v}.Tm := toCoreAsSmallEquiv.symm <| exact (toCoreAsSmallEquiv_apply_comp_right p PGrpd.forgetToGrpd).symm.trans (h.trans (toCoreAsSmallEquiv_apply_comp_left _ _))) +-- The composition rewrite needs the same bundled groupoid transparency as Id_comp. +set_option backward.isDefEq.respectTransparency false in lemma path_comp : path (A := σ ≫ A) (cylinder.I.map σ ≫ p) (by rw [Category.assoc, p_tp, ← Category.assoc, cylinder.π.naturality, Category.assoc, Functor.id_map]) = σ ≫ path p p_tp := by From 595abcd0105ca3d4ec2af2a712a34f8e76ec9e04 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 02:51:31 -0400 Subject: [PATCH 348/362] UNITY: integrate Bump repair repair-7df0b77d596defc6 --- HoTTLean/Groupoids/Id.lean | 2 ++ 1 file changed, 2 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 2b4721b0..17ed241a 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -645,6 +645,8 @@ lemma path_comp : path (A := σ ≫ A) (cylinder.I.map σ ≫ p) (by rw [Categor dsimp [path] rw [← toCoreAsSmallEquiv_symm_apply_comp_left, ← FunctorOperation.Path.path_comp] +-- The endpoint composition rewrites require bundled groupoid transparency. +set_option backward.isDefEq.respectTransparency false in lemma path_tp (δ0_p : cylinder.δ0.app Γ ≫ p = a0) (δ1_p : cylinder.δ1.app Γ ≫ p = a1) : path p p_tp ≫ U.tp = UId.Id (A := A) a0 a1 (by rw [← δ0_p, Category.assoc, p_tp, Cylinder.δ0_π'_app_assoc]) From 4dc02b0264844821c61d78f62a9cb11a4cd793aa Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 02:56:05 -0400 Subject: [PATCH 349/362] UNITY: integrate Bump repair repair-0ff5078be5be8bf2 --- HoTTLean/Groupoids/Id.lean | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 17ed241a..77842a1e 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -665,6 +665,8 @@ section variable (p : Γ ⟶ U.Tm) (p_tp : p ≫ U.tp = UId.Id a0 a1 a0_tp a1_tp) +-- The composition rewrite needs bundled groupoid transparency. +set_option backward.isDefEq.respectTransparency false in def unpath : cylinder.I.obj Γ ⟶ U.{v}.Tm := have p_tp' : toCoreAsSmallEquiv p ⋙ PGrpd.forgetToGrpd = FunctorOperation.Id (pt_tp a0 a0_tp) (pt_tp a1 a1_tp) := by @@ -672,22 +674,30 @@ def unpath : cylinder.I.obj Γ ⟶ U.{v}.Tm := rw [← toCoreAsSmallEquiv_apply_comp_right, p_tp, Equiv.apply_symm_apply] toCoreAsSmallEquiv.symm <| FunctorOperation.Path.unpath _ _ p_tp' +-- The unpath composition rewrites require bundled groupoid transparency. +set_option backward.isDefEq.respectTransparency false in lemma unpath_tp : unpath a0 a1 a0_tp a1_tp p p_tp ≫ U.tp = cylinder.π.app Γ ≫ A := by dsimp [unpath, U.tp] rw [← toCoreAsSmallEquiv_symm_apply_comp_right, toCoreAsSmallEquiv.symm_apply_eq, toCoreAsSmallEquiv_apply_comp_left, FunctorOperation.Path.unpath_comp_forgetToGrpd] rfl +-- The unpath composition rewrites require bundled groupoid transparency. +set_option backward.isDefEq.respectTransparency false in lemma δ0_unpath : cylinder.δ0.app Γ ≫ unpath a0 a1 a0_tp a1_tp p p_tp = a0 := by dsimp [unpath] rw [← toCoreAsSmallEquiv_symm_apply_comp_left, toCoreAsSmallEquiv.symm_apply_eq] apply FunctorOperation.Path.sectR_false_comp_unpath +-- The unpath composition rewrites require bundled groupoid transparency. +set_option backward.isDefEq.respectTransparency false in lemma δ1_unpath : cylinder.δ1.app Γ ≫ unpath a0 a1 a0_tp a1_tp p p_tp = a1 := by dsimp [unpath] rw [← toCoreAsSmallEquiv_symm_apply_comp_left, toCoreAsSmallEquiv.symm_apply_eq] apply FunctorOperation.Path.sectR_true_comp_unpath +-- The unpath composition rewrites require bundled groupoid transparency. +set_option backward.isDefEq.respectTransparency false in lemma path_unpath : path (A := A) (unpath a0 a1 a0_tp a1_tp p p_tp) (unpath_tp ..) = p := by dsimp [path, unpath] rw [toCoreAsSmallEquiv.symm_apply_eq] @@ -696,6 +706,8 @@ lemma path_unpath : path (A := A) (unpath a0 a1 a0_tp a1_tp p p_tp) (unpath_tp . end +-- The unpath composition rewrites require bundled groupoid transparency. +set_option backward.isDefEq.respectTransparency false in lemma unpath_path (p : cylinder.I.obj Γ ⟶ U.Tm) (p_tp : p ≫ U.tp = cylinder.π.app Γ ≫ A) (δ0_p : cylinder.δ0.app Γ ≫ p = a0) (δ1_p : cylinder.δ1.app Γ ≫ p = a1) : unpath (A := A) a0 a1 (by simp [← δ0_p, - Grpd.comp_eq_comp, p_tp]) From fc30b391252be27d27942252372a4fb48885e287 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 03:02:34 -0400 Subject: [PATCH 350/362] UNITY: integrate Bump repair repair-afc67ab7eb9f0f79 --- HoTTLean/Groupoids/Id.lean | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 77842a1e..f17de899 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -729,18 +729,22 @@ attribute [local irreducible] tpClovenIsofibration variable (σ : Δ ⟶ Γ) (p0 : Γ ⟶ U.{v}.Tm) (p : cylinder.I.obj Γ ⟶ U.Ty) (p0_tp : p0 ≫ U.tp = cylinder.δ0.app Γ ≫ p) +-- Unfold bundled groupoid instances while elaborating the lift. +set_option backward.isDefEq.respectTransparency false in @[simp] def liftObj : Grpd.Interval × Γ → U.{v}.Tm | ⟨⟨⟨.false⟩⟩, x2⟩ => p0.obj x2 | ⟨⟨⟨.true⟩⟩, x2⟩ => tpClovenIsofibration.liftObj (p.map (FunctorOperation.Path.ft x2)) (Functor.congr_obj p0_tp x2) +set_option backward.isDefEq.respectTransparency false in @[simp] abbrev liftMap0 {x2 : Γ} {y : Grpd.Interval × Γ} (f : FunctorOperation.Path.ff x2 ⟶ y) := tpClovenIsofibration.liftIso (X' := p0.obj x2) (p.map f) (Functor.congr_obj p0_tp x2) open FunctorOperation.Path +set_option backward.isDefEq.respectTransparency false in @[simp] def liftMap : {x y : Grpd.Interval × Γ} → (f : x ⟶ y) → liftObj p0 p p0_tp x ⟶ liftObj p0 p p0_tp y From 5a9c7035c76ceb5f254c2c46d43491b4ec5290d1 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 03:08:40 -0400 Subject: [PATCH 351/362] UNITY: integrate Bump repair repair-afc67ab7eb9f0f79 --- HoTTLean/Groupoids/Id.lean | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index f17de899..4da0c132 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -771,13 +771,15 @@ def lift : cylinder.I.obj Γ ⟶ U.{v}.Tm where map_id := liftMap_id p0 p p0_tp map_comp := liftMap_comp p0 p p0_tp +-- These functor equations need bundled groupoid instances unfolded during elaboration. +set_option backward.isDefEq.respectTransparency false in lemma lift_comp_tp : hurewiczUTp.lift p0 p p0_tp ≫ U.tp = p := by fapply CategoryTheory.Functor.ext · intro x rcases x with ⟨⟨⟨_|_⟩⟩, x⟩ - · simpa using Functor.congr_obj p0_tp x - · simp + · exact Functor.congr_obj p0_tp x + · exact Functor.ClovenIsofibration.obj_liftObj tpClovenIsofibration _ _ · intro x y f rcases x with ⟨⟨⟨_|_⟩⟩, x⟩ · rcases y with ⟨⟨⟨_|_⟩⟩, y⟩ @@ -821,46 +823,53 @@ lemma lift_comp_tp : conv => rhs; rw [this] rfl +-- As above, expose the bundled instances locally when comparing functor components. +set_option backward.isDefEq.respectTransparency false in lemma δ0_comp_lift : cylinder.δ0.app Γ ≫ hurewiczUTp.lift p0 p p0_tp = p0 := by fapply CategoryTheory.Functor.ext · intro x - convert_to (lift p0 p p0_tp).obj ⟨⟨⟨.false⟩⟩, x⟩ = _ - simp + rfl · intro x y f - convert_to (lift p0 p p0_tp).map (ffm f) = _ - simp + simp only [eqToHom_refl, Category.id_comp, Category.comp_id] + rfl @[simp] lemma I_map_obj_ff (x : Δ) : (cylinder.I.map σ).obj ({ down := { as := false } }, x) = ({ down := { as := false } }, σ.obj x) := by rfl +-- The following component equations also elaborate through bundled groupoid instances. +set_option backward.isDefEq.respectTransparency false in lemma lift_map_ffm {x y : Δ} (f : x ⟶ y) : (lift p0 p p0_tp).map (ffm (σ.map f)) = p0.map (σ.map f) := by simp [liftMap] +set_option backward.isDefEq.respectTransparency false in lemma lift_map_ft (x : Δ) : (lift p0 p p0_tp).map (ft (σ.obj x)) = tpClovenIsofibration.liftIso (p.map (ft (σ.obj x))) - (by simpa using Functor.congr_obj p0_tp (σ.obj x)) := by + (by exact Functor.congr_obj p0_tp (σ.obj x)) := by simp [liftObj, liftMap] +set_option backward.isDefEq.respectTransparency false in lemma lift_map_ft' (x : Δ) : (lift p0 p p0_tp).map (ft (σ.obj x)) = tpClovenIsofibration.liftIso (p.map (⟨⟨⟨⟩⟩, σ.map (𝟙 _)⟩ : ff (σ.obj x) ⟶ tt (σ.obj x))) - (by simpa using Functor.congr_obj p0_tp (σ.obj x)) ≫ eqToHom (by simp) := by + (by exact Functor.congr_obj p0_tp (σ.obj x)) ≫ eqToHom (by simp) := by simp only [U_Tm, lift_obj, liftObj, U_Ty, U_tp, ft, lift_map, liftMap, CategoryTheory.Functor.map_id, liftMap0, Category.id_comp, ← heq_eq_eq, heq_comp_eqToHom_iff] rw! (castMode := .all) [← CategoryTheory.Functor.map_id] rfl +set_option backward.isDefEq.respectTransparency false in lemma lift_map_tf (x : Δ) : (lift p0 p p0_tp).map (tf (σ.obj x)) = eqToHom (by simp; rfl) ≫ inv (tpClovenIsofibration.liftIso (p.map (ft (σ.obj x))) - (by simpa using Functor.congr_obj p0_tp (σ.obj x))) := by + (by exact Functor.congr_obj p0_tp (σ.obj x))) := by simp [liftMap] +set_option backward.isDefEq.respectTransparency false in lemma lift_map_tf' (x : Δ) : (lift p0 p p0_tp).map (tf (σ.obj x)) = eqToHom (by simp [ft]; rfl) ≫ inv (tpClovenIsofibration.liftIso (p.map (⟨⟨⟨⟩⟩, σ.map (𝟙 _)⟩ : ff (σ.obj x) ⟶ tt (σ.obj x))) - (by simpa using Functor.congr_obj p0_tp (σ.obj x))) := by + (by exact Functor.congr_obj p0_tp (σ.obj x))) := by simp only [U_Tm, lift_obj, liftObj, U_Ty, U_tp, ft, tf, lift_map, liftMap, liftMap0, CategoryTheory.Functor.map_id, Category.comp_id, ← heq_eq_eq, heq_eqToHom_comp_iff] rw! (castMode := .all) [← CategoryTheory.Functor.map_id] From 7b30cd47dd6760cb6106c8e346bca98a99d0d8b7 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 03:14:32 -0400 Subject: [PATCH 352/362] UNITY: integrate Bump repair repair-afc67ab7eb9f0f79 --- HoTTLean/Groupoids/Id.lean | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 4da0c132..9b40c447 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -875,20 +875,22 @@ lemma lift_map_tf' (x : Δ) : (lift p0 p p0_tp).map (tf (σ.obj x)) = rw! (castMode := .all) [← CategoryTheory.Functor.map_id] rfl +-- Expose bundled groupoid instances while elaborating cylinder components. +set_option backward.isDefEq.respectTransparency false in lemma lift_comp : lift (σ ≫ p0) (cylinder.I.map σ ≫ p) (by simp [p0_tp, - Grpd.comp_eq_comp, ← cylinder.δ0.naturality_assoc]) = cylinder.I.map σ ≫ lift p0 p p0_tp := by fapply CategoryTheory.Functor.ext · intro x rcases x with ⟨⟨⟨_|_⟩⟩, x⟩ - · convert_to _ = (lift p0 p p0_tp).obj (ff (σ.obj x)) - simp - · convert_to _ = (lift p0 p p0_tp).obj (tt (σ.obj x)) - simp only [U_Tm, comp_eq_comp, lift_obj, liftObj, U_Ty, U_tp, Functor.comp_obj, - Functor.comp_map] - congr - conv => rhs; rw [ft, ← CategoryTheory.Functor.map_id] - rfl + · rfl + · simp only [comp_eq_comp, lift_obj, liftObj, Functor.comp_obj, Functor.comp_map] + congr 1 + change p.map ((cylinder.I.map σ).map (ft x)) = p.map (ft (σ.obj x)) + congr 1 + simp only [ft] + change (⟨⟨⟨⟩⟩, σ.map (𝟙 x)⟩ : ff (σ.obj x) ⟶ tt (σ.obj x)) = _ + exact congrArg (fun g => (⟨⟨⟨⟩⟩, g⟩ : ff (σ.obj x) ⟶ tt (σ.obj x))) (σ.map_id x) · intro x y f rcases x with ⟨⟨⟨_|_⟩⟩, x⟩ · rcases y with ⟨⟨⟨_|_⟩⟩, y⟩ From be2b48a157868a3b5fa570551607098633100e51 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 03:30:20 -0400 Subject: [PATCH 353/362] UNITY: integrate Bump repair repair-afc67ab7eb9f0f79 --- HoTTLean/Groupoids/Id.lean | 47 ++++++++++++++++++++++++++++++-------- 1 file changed, 37 insertions(+), 10 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 9b40c447..47923330 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -917,17 +917,31 @@ lemma lift_comp : lift (σ ≫ p0) (cylinder.I.map σ ≫ p) erw [IsIso.hom_inv_id_assoc] rfl +-- Unfold bundled groupoid instances for the component equations. +set_option backward.isDefEq.respectTransparency false in open Functor.ClovenIsofibration.IsSplit in lemma isNormal (A : Γ ⟶ U.Ty) (π_A : p = CategoryTheory.Prod.snd _ Γ ≫ A) : lift p0 p p0_tp = CategoryTheory.Prod.snd _ Γ ≫ p0 := by have : tpClovenIsofibration.IsSplit := inferInstance -- FIXME subst π_A - fapply CategoryTheory.Functor.ext + have norm (z : Γ) (g : A.obj z ⟶ A.obj z) [IsIso g] (hg : g = 𝟙 _) + (hh : U.tp.obj (p0.obj z) = A.obj z) : + tpClovenIsofibration.liftIso g hh ≍ 𝟙 (p0.obj z) := by + subst g + rw [liftIso_id] + exact eqToHom_heq_id_dom _ _ _ + have norm_inv (z : Γ) (g : A.obj z ⟶ A.obj z) [IsIso g] (hg : g = 𝟙 _) + (hh : U.tp.obj (p0.obj z) = A.obj z) : + inv (tpClovenIsofibration.liftIso g hh) ≍ 𝟙 (p0.obj z) := by + subst g + simp only [liftIso_id, inv_eqToHom] + exact eqToHom_heq_id_cod _ _ _ + fapply CategoryTheory.Functor.hext · intro x rcases x with ⟨⟨⟨_|_⟩⟩, x⟩ - · simp - · simp [ft] - rw [liftObj_id] + · rfl + · change tpClovenIsofibration.liftObj (A.map (𝟙 x)) _ = p0.obj x + exact (congrArg (fun f => tpClovenIsofibration.liftObj f _) (A.map_id x)).trans (liftObj_id _) · intro x y f rcases x with ⟨⟨⟨_|_⟩⟩, x⟩ · rcases y with ⟨⟨⟨_|_⟩⟩, y⟩ @@ -935,17 +949,30 @@ lemma isNormal (A : Γ ⟶ U.Ty) (π_A : p = CategoryTheory.Prod.snd _ Γ ≫ A) · simp only [U_Tm, comp_eq_comp, lift_obj, liftObj, U_Ty, U_tp, Functor.comp_obj, Prod.snd_obj, Functor.comp_map, Prod.snd_map, lift_map, liftMap, liftMap0, eqToHom_refl, Category.id_comp] - rw! [CategoryTheory.Functor.map_id, liftIso_id] + have hy : U.tp.obj (p0.obj y) = A.obj y := Functor.congr_obj p0_tp y + have hh := norm y (A.map (𝟙 y)) (A.map_id y) hy + have ho := (congrArg (fun g => tpClovenIsofibration.liftObj g hy) (A.map_id y)).trans (liftObj_id hy) + have hc := heq_comp rfl rfl ho (show p0.map f.2 ≍ p0.map f.2 from HEq.rfl) hh + simpa using hc · rcases y with ⟨⟨⟨_|_⟩⟩, y⟩ · simp only [U_Tm, comp_eq_comp, lift_obj, liftObj, U_Ty, U_tp, Functor.comp_obj, Prod.snd_obj, Functor.comp_map, Prod.snd_map, lift_map, liftMap, liftMap0, eqToHom_refl, Category.comp_id, IsIso.inv_comp_eq] - rw! [CategoryTheory.Functor.map_id, liftIso_id] - simp + have hx : U.tp.obj (p0.obj x) = A.obj x := Functor.congr_obj p0_tp x + have hi := norm_inv x (A.map (𝟙 x)) (A.map_id x) hx + have ho := (congrArg (fun g => tpClovenIsofibration.liftObj g hx) (A.map_id x)).trans (liftObj_id hx) + have hc := heq_comp ho rfl rfl hi (show p0.map f.2 ≍ p0.map f.2 from HEq.rfl) + simpa using hc · simp - rw! [CategoryTheory.Functor.map_id, liftIso_id] - slice_rhs 1 2 => rw! [CategoryTheory.Functor.map_id, liftIso_id] - simp + have hx : U.tp.obj (p0.obj x) = A.obj x := Functor.congr_obj p0_tp x + have hy : U.tp.obj (p0.obj y) = A.obj y := Functor.congr_obj p0_tp y + have hi := norm_inv x (A.map (𝟙 x)) (A.map_id x) hx + have hj := norm y (A.map (𝟙 y)) (A.map_id y) hy + have ho := (congrArg (fun g => tpClovenIsofibration.liftObj g hx) (A.map_id x)).trans (liftObj_id hx) + have hp := (congrArg (fun g => tpClovenIsofibration.liftObj g hy) (A.map_id y)).trans (liftObj_id hy) + have hc := heq_comp ho rfl rfl hi (show p0.map f.2 ≍ p0.map f.2 from HEq.rfl) + have hd := heq_comp ho rfl hp hc hj + simpa using hd end hurewiczUTp From 0607f4c0906b1afc5864b0d0f0c1f0213f70dda4 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 04:02:33 -0400 Subject: [PATCH 354/362] UNITY: integrate Bump repair command-b9440462fdc351bf --- .../Model/Unstructured/Interpretation.lean | 11 ++++---- HoTTLeanTest/unitt.lean | 28 +++++++++---------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/HoTTLean/Model/Unstructured/Interpretation.lean b/HoTTLean/Model/Unstructured/Interpretation.lean index 57eeea12..6e4f9781 100644 --- a/HoTTLean/Model/Unstructured/Interpretation.lean +++ b/HoTTLean/Model/Unstructured/Interpretation.lean @@ -22,7 +22,7 @@ namespace Model.UnstructuredUniverse open SynthLean -variable {𝒞 : Type u} [Category 𝒞] (M : UnstructuredUniverse 𝒞) +variable {𝒞 : Type u} [Category.{v} 𝒞] (M : UnstructuredUniverse 𝒞) variable [ChosenTerminal 𝒞] open ChosenTerminal @@ -58,7 +58,7 @@ where `Γ` is a prefix of `Γ'`. It witnesses a sequence of context extension operations in `s` that built `Γ'` on top of `Γ`. We write `Γ ≤ Γ'`. -/ -inductive ExtSeq (s : UHomSeq 𝒞) (Γ : 𝒞) : 𝒞 → Type u where +inductive ExtSeq (s : UHomSeq 𝒞) (Γ : 𝒞) : 𝒞 → Type (max u v) where | nil : s.ExtSeq Γ Γ | snoc {Γ'} {l : Nat} (d : s.ExtSeq Γ Γ') (llen : l < s.length + 1) (A : Γ' ⟶ s[l].Ty) : s.ExtSeq Γ (s[l].ext A) @@ -211,7 +211,7 @@ i.e., one of the form `1.Aₙ₋₁.….A₀`, together with the extension sequence `[Aₙ₋₁ :: … :: A₀]`. This kind of object can be destructured. -/ -def CObj (s : UHomSeq 𝒞) : Type u := Σ Γ : 𝒞, s.ExtSeq (𝟭_ 𝒞) Γ +def CObj (s : UHomSeq 𝒞) : Type (max u v) := Σ Γ : 𝒞, s.ExtSeq (𝟭_ 𝒞) Γ def nilCObj (s : UHomSeq 𝒞) : s.CObj := ⟨𝟭_ 𝒞, .nil⟩ @@ -403,8 +403,9 @@ def ofCtx : Ctx χ → Part s.CObj | (A,l) :: Γ => do Part.assert (l < s.length + 1) fun llen => do let sΓ ← ofCtx Γ - let sA ← I.ofType sΓ l A - return sΓ.snoc llen sA + -- Use the universe-polymorphic bind: contexts and homs may live at different levels. + (I.ofType sΓ l A).bind fun sA => + return sΓ.snoc llen sA @[simp] theorem mem_ofType_pi {Γ l i j A B} {llen : l < s.length + 1} {x} : diff --git a/HoTTLeanTest/unitt.lean b/HoTTLeanTest/unitt.lean index 9024b7b1..a3263bc3 100644 --- a/HoTTLeanTest/unitt.lean +++ b/HoTTLeanTest/unitt.lean @@ -1,6 +1,6 @@ import HoTTLean.Frontend.Commands -import HoTTLean.Model.Interpretation -import HoTTLean.Groupoids.NaturalModelBase +import HoTTLean.Model.Unstructured.Interpretation +import HoTTLean.Groupoids.UHom import HoTTLean.Groupoids.Pi import HoTTLean.Groupoids.Sigma import HoTTLean.Groupoids.Id @@ -29,29 +29,26 @@ unitt def uniq_fn {A : Type} (f g : A → Unit) : Identity f g := by /-! ## Interpretation -/ open SynthLean -open CategoryTheory MonoidalCategory NaturalModel Universe GroupoidModel +open CategoryTheory MonoidalCategory Model.UnstructuredUniverse GroupoidModel ChosenTerminal instance : uHomSeq.IdSeq := sorry theorem slen : univMax ≤ uHomSeq.length := by grind [uHomSeq, univMax] -def Groupoid.asTy (G : Type 0) [Groupoid.{0,0} G] : y(𝟙_ Ctx) ⟶ uHomSeq[0].Ty := - yonedaEquiv.symm <| ULift.up { - obj _ := Core.mk <| ULift.up <| Grpd.of G - map _ := CoreHom.mk <| Iso.refl _ - } +def Groupoid.asTy (G : Type 0) [Groupoid.{0,0} G] : (𝟭_ Ctx) ⟶ uHomSeq[0].Ty := + GroupoidModel.toCoreAsSmallEquiv.symm ((Functor.const _).obj (Grpd.of G)) -def sUnit : y(𝟙_ Ctx) ⟶ uHomSeq[0].Ty := +def sUnit : (𝟭_ Ctx) ⟶ uHomSeq[0].Ty := Groupoid.asTy (Discrete _root_.Unit) -def sUnit' : y(𝟙_ Ctx) ⟶ uHomSeq[1].Tm := +def sUnit' : (𝟭_ Ctx) ⟶ uHomSeq[1].Tm := uHomSeq.code (Nat.zero_lt_succ _) sUnit @[simp] def sUnit'_tp : sUnit' ≫ uHomSeq[1].tp = (uHomSeq.homSucc 0).wkU _ := by - simp [sUnit'] + exact uHomSeq.code_tp _ _ -def I : Universe.Interpretation Lean.Name uHomSeq where +def I : Interpretation Lean.Name uHomSeq where ax := fun | ``Unit, 1, _ => some sUnit' | _, _, _ => none @@ -65,7 +62,10 @@ theorem I_wf : I.Wf slen Unit.snocAxioms where subst_vars unfold Unit simp [I, Interpretation.ofType, UHomSeq.nilCObj] - rfl + -- The axiom lookup proof contains reducible dependent projections. + set_option backward.isDefEq.respectTransparency false in + simp [Part.mem_assert_iff] + exact sUnit'_tp instance : Fact (I.Wf slen Unit.snocAxioms) := ⟨I_wf⟩ @@ -73,4 +73,4 @@ example : I.interpTm Unit.wf_val = sUnit' := by unfold Interpretation.interpTm Interpretation.ofTerm CheckedAx.val I Unit simp only [Part.pure_eq_some, Part.get_some] conv => rhs; rw [← Category.id_comp sUnit'] - congr 1; apply Limits.IsTerminal.hom_ext ChosenTerminal.isTerminal_yUnit + congr 1 From 7fcd22f04b4480790a83d5da7c03d693165caef1 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 04:38:08 -0400 Subject: [PATCH 355/362] UNITY: integrate Bump repair command-d18c1332a9c5ca2b --- HoTTLean/Frontend/EnvExt.lean | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/HoTTLean/Frontend/EnvExt.lean b/HoTTLean/Frontend/EnvExt.lean index 648c683f..43ca5349 100644 --- a/HoTTLean/Frontend/EnvExt.lean +++ b/HoTTLean/Frontend/EnvExt.lean @@ -70,10 +70,33 @@ For the initial shallow environment, we pull in a custom prelude with `Type`-valued identity types. -/ def mkInitTheoryData (modNm mainModule : Name) : m TheoryData := do -- TODO: check if the `.olean` exists and print a better error if not. - -- Imports reset this flag. Enable it for each shallow environment import. - liftM (m := IO) (unsafe Lean.enableInitializersExecution) - let mut thyEnv ← importModules #[{ module := `HoTTLean.Prelude }] - (← getOptions) (leakEnv := true) (loadExts := true) + let opts ← getOptions + let imports := #[{ module := `HoTTLean.Prelude : Import }] + -- Read module data without changing the process-wide import flags. + let (_, state) ← liftM (m := IO) <| (importModulesCore imports).run + let mut thyEnv ← finalizeImport state imports opts (leakEnv := true) (loadExts := false) + -- Lean has already initialized Init in the host process. The custom prelude + -- must not require more initializers. Check this before restoring extensions. + for mod in thyEnv.header.modules, i in [0:thyEnv.header.modules.size] do + if mod.module == `HoTTLean.Prelude then + let preludeImports := thyEnv.header.moduleData[i]!.imports + if preludeImports.isEmpty || preludeImports.any (·.module != `Init) then + liftM (m := IO) <| throw <| IO.userError "the theory prelude must import only Init" + if !(regularInitAttr.ext.getModuleEntries thyEnv i).isEmpty || + !(regularInitAttr.ext.getModuleIREntries thyEnv i).isEmpty || + !(builtinInitAttr.ext.getModuleEntries thyEnv i).isEmpty || + !(builtinInitAttr.ext.getModuleIREntries thyEnv i).isEmpty then + liftM (m := IO) <| throw <| IO.userError "the theory prelude must not contain initializers" + else if !(`Init).isPrefixOf mod.module then + liftM (m := IO) <| throw <| IO.userError s!"unsupported theory prelude import '{mod.module}'" + -- Restore only extension data from Init and the custom prelude. Do not run + -- module initializers, load native code, or change global import flags here. + -- These operations must also work inside another extension's addImportedFn. + for ext in (← liftM (m := IO) persistentEnvExtensionsRef.get) do + let s := ext.toEnvExtension.getState (asyncMode := .sync) thyEnv + if s.importedEntries.all Array.isEmpty then continue + let newState ← ext.addImportedFn s.importedEntries { env := thyEnv, opts } + thyEnv := ext.toEnvExtension.setState (asyncMode := .sync) thyEnv { s with state := newState } thyEnv := thyEnv.setMainModule mainModule return { modNm From 39e8eb63b49801689b5e6db7ceac55950d4ad1d9 Mon Sep 17 00:00:00 2001 From: Unity Date: Thu, 29 Oct 2026 04:49:50 -0400 Subject: [PATCH 356/362] UNITY: integrate Bump repair review-repair-a6f46faa101d8383 --- .../Bicategory/Grothendieck.lean | 44 +++++++++++++------ 1 file changed, 31 insertions(+), 13 deletions(-) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index d888ccc1..2d0fe91b 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -916,7 +916,7 @@ variable (F) -- Match the bundled Cat transports when elaborating the identity laws. @[simps!] -def toPseudofunctor'Iso.hom : ∫ F ⥤ F.toPseudofunctor'.Grothendieck where +def toPseudoFunctor'Iso.hom : ∫ F ⥤ F.toPseudofunctor'.Grothendieck where obj x := ⟨ x.base, x.fiber ⟩ map f := ⟨ f.base, f.fiber ⟩ map_id x := by @@ -928,7 +928,7 @@ def toPseudofunctor'Iso.hom : ∫ F ⥤ F.toPseudofunctor'.Grothendieck where all_goals rfl @[simps!] -def toPseudofunctor'Iso.inv : F.toPseudofunctor'.Grothendieck ⥤ ∫ F where +def toPseudoFunctor'Iso.inv : F.toPseudofunctor'.Grothendieck ⥤ ∫ F where obj x := ⟨ x.base, x.fiber ⟩ map f := ⟨ f.base, f.fiber ⟩ map_id x := by @@ -939,34 +939,52 @@ def toPseudofunctor'Iso.inv : F.toPseudofunctor'.Grothendieck ⥤ ∫ F where apply Hom.ext <;> simp all_goals rfl -def toPseudofunctor'Iso : ∫ F ≅≅ F.toPseudofunctor'.Grothendieck where - hom := toPseudofunctor'Iso.hom F - inv := toPseudofunctor'Iso.inv F +def toPseudoFunctor'Iso : ∫ F ≅≅ F.toPseudofunctor'.Grothendieck where + hom := toPseudoFunctor'Iso.hom F + inv := toPseudoFunctor'Iso.inv F -def toPseudofunctor'Equivalence : ∫ F ≌ F.toPseudofunctor'.Grothendieck := - (toPseudofunctor'Iso F).toEquivalence +def toPseudoFunctor'Equivalence : ∫ F ≌ F.toPseudofunctor'.Grothendieck := + (toPseudoFunctor'Iso F).toEquivalence -lemma toPseudofunctor'Iso.hom_comp_forget : toPseudofunctor'Iso.hom F ⋙ +lemma toPseudoFunctor'Iso.hom_comp_forget : toPseudoFunctor'Iso.hom F ⋙ Pseudofunctor.Grothendieck.forget _ = forget _ := rfl -lemma toPseudofunctor'Iso.inv_comp_forget : toPseudofunctor'Iso.inv F ⋙ forget _ = +lemma toPseudoFunctor'Iso.inv_comp_forget : toPseudoFunctor'Iso.inv F ⋙ forget _ = Pseudofunctor.Grothendieck.forget _ := rfl -lemma map_eq_pseudofunctor_map {G} (α : F ⟶ G) : map α = (toPseudofunctor'Iso F).hom ⋙ +-- Keep the migration spelling available to downstream code while restoring the +-- original project API (including the `simps` lemmas generated above). +abbrev toPseudofunctor'Iso.hom : ∫ F ⥤ F.toPseudofunctor'.Grothendieck := + toPseudoFunctor'Iso.hom F +abbrev toPseudofunctor'Iso.inv : F.toPseudofunctor'.Grothendieck ⥤ ∫ F := + toPseudoFunctor'Iso.inv F +abbrev toPseudofunctor'Iso : ∫ F ≅≅ F.toPseudofunctor'.Grothendieck := + toPseudoFunctor'Iso F +abbrev toPseudofunctor'Equivalence : ∫ F ≌ F.toPseudofunctor'.Grothendieck := + toPseudoFunctor'Equivalence F + +lemma toPseudofunctor'Iso.hom_comp_forget : toPseudofunctor'Iso.hom F ⋙ + Pseudofunctor.Grothendieck.forget _ = forget _ := + toPseudoFunctor'Iso.hom_comp_forget F +lemma toPseudofunctor'Iso.inv_comp_forget : toPseudofunctor'Iso.inv F ⋙ forget _ = + Pseudofunctor.Grothendieck.forget _ := + toPseudoFunctor'Iso.inv_comp_forget F + +lemma map_eq_pseudofunctor_map {G} (α : F ⟶ G) : map α = (toPseudoFunctor'Iso F).hom ⋙ Pseudofunctor.Grothendieck.map α.toStrongTrans' ⋙ - (toPseudofunctor'Iso G).inv := by + (toPseudoFunctor'Iso G).inv := by fapply Functor.ext · aesop · intro X Y f -- Match the wrapped Cat transports before applying naturality. set_option backward.isDefEq.respectTransparency false in apply Hom.ext - · simp [map, toPseudofunctor'Iso, toPseudofunctor'Iso.hom, toPseudofunctor'Iso.inv, Pseudofunctor.Grothendieck.map, NatTrans.toStrongTrans'] + · simp [map, toPseudoFunctor'Iso, toPseudoFunctor'Iso.hom, toPseudoFunctor'Iso.inv, Pseudofunctor.Grothendieck.map, NatTrans.toStrongTrans'] rw [← NatIso.naturality_2 (eqToIso (congrArg Cat.Hom.toFunctor (G.map_id Y.base))) ((α.app Y.base).toFunctor.map f.fiber)] simp - · simp [map, toPseudofunctor'Iso, toPseudofunctor'Iso.hom, toPseudofunctor'Iso.inv, Pseudofunctor.Grothendieck.map, NatTrans.toStrongTrans'] + · simp [map, toPseudoFunctor'Iso, toPseudoFunctor'Iso.hom, toPseudoFunctor'Iso.inv, Pseudofunctor.Grothendieck.map, NatTrans.toStrongTrans'] end Pseudofunctor From 240afaaf0724d9e612174046c944795a4d5d8ffb Mon Sep 17 00:00:00 2001 From: openhands Date: Thu, 29 Oct 2026 08:54:12 -0400 Subject: [PATCH 357/362] Clean Pi and Id migration proofs --- HoTTLean/Groupoids/Id.lean | 113 ++++++++++++------------ HoTTLean/Groupoids/Pi.lean | 172 ++++++++++++++++++------------------- 2 files changed, 144 insertions(+), 141 deletions(-) diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 47923330..7e7bd7a9 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -95,7 +95,8 @@ lemma path1_comp_forgetToGrpd : path1 p ⋙ PGrpd.forgetToGrpd = A := by lemma objFiber'_path0 (x) : PGrpd.objFiber' (path0_comp_forgetToGrpd p_tp) x = PGrpd.objFiber' p_tp (ff x) := by apply heq_iff_eq.mp - exact HEq.trans (PGrpd.objFiber'_heq (path0_comp_forgetToGrpd p_tp)) (HEq.symm (PGrpd.objFiber'_heq p_tp)) + exact HEq.trans (PGrpd.objFiber'_heq (path0_comp_forgetToGrpd p_tp)) + (HEq.symm (PGrpd.objFiber'_heq p_tp)) @[simp] abbrev pathId : Γ ⥤ Grpd := @@ -111,8 +112,8 @@ lemma pathFibObj_comp (x : Δ) : pathFibObj (A := σ ⋙ A) (p := Functor.prod ( (by simp [Functor.assoc, p_tp]; rfl) x = pathFibObj p_tp (σ.obj x) := by apply Discrete.ext simp only [Functor.comp_obj, pathFibObj_as, Functor.comp_map, PGrpd.mapFiber', snd_obj, snd_map, - Functor.prod_obj, Functor.id_obj, Functor.Grothendieck.forget_obj, PGrpd.objFiber'EqToHom, - Functor.prod_map, Functor.id_map, PGrpd.mapFiber'EqToHom, Grpd.eqToHom_hom, eqToHom_trans_assoc] + Functor.prod_obj, PGrpd.objFiber'EqToHom, + Functor.prod_map, PGrpd.mapFiber'EqToHom] rw! [CategoryTheory.Functor.map_id] rfl @@ -128,10 +129,10 @@ lemma IdMap_path {x y} (f : x ⟶ y) : simp only [Functor.comp_obj, snd_obj, prod_comp, Functor.comp_map, snd_map, Grpd.map_id_map, Category.assoc, eqToHom_trans_assoc, ← heq_eq_eq, heq_eqToHom_comp_iff, eqToHom_comp_heq_iff] at h1 - simp only [PGrpd.mapFiber'_naturality p_tp (sectR ⟨⟨.false⟩⟩ _), sectR_obj, sectR_map, - Functor.map_comp, eqToHom_map, PGrpd.mapFiber'_naturality p_tp (sectR ⟨⟨.true⟩⟩ _), - Category.assoc, IsIso.inv_comp_eq] - simp only [pathFibObj_as, sectR_map, Functor.map_comp, eqToHom_map, Category.assoc] + simp only [PGrpd.mapFiber'_naturality p_tp (sectR ⟨⟨.false⟩⟩ _), + PGrpd.mapFiber'_naturality p_tp (sectR ⟨⟨.true⟩⟩ _), + IsIso.inv_comp_eq] + simp only [pathFibObj_as, Functor.map_comp, eqToHom_map, Category.assoc] change eqToHom _ ≫ ((A.map f).map (PGrpd.mapFiber' p_tp (ft x)) ≫ PGrpd.mapFiber' p_tp (ttm f)) = PGrpd.mapFiber' p_tp (ffm f) ≫ eqToHom _ ≫ PGrpd.mapFiber' p_tp (ft y) @@ -266,7 +267,8 @@ set_option backward.isDefEq.respectTransparency false in lemma sectR_false_comp_unpath : sectR ⟨⟨.false⟩⟩ _ ⋙ unpath a0_tp a1_tp p_tp = a0 := by apply Functor.Grothendieck.FunctorTo.hext · change (sectR ⟨⟨.false⟩⟩ _ ⋙ unpath a0_tp a1_tp p_tp) ⋙ PGrpd.forgetToGrpd = _ - rw [Functor.assoc, unpath_comp_forgetToGrpd, ← Functor.assoc, sectR_comp_snd, Functor.id_comp, a0_tp] + rw [Functor.assoc, unpath_comp_forgetToGrpd, ← Functor.assoc, + sectR_comp_snd, Functor.id_comp, a0_tp] · intro x change HEq (PGrpd.objFiber' a0_tp x) (a0.obj x).fiber exact PGrpd.objFiber'_heq a0_tp @@ -280,7 +282,8 @@ set_option backward.isDefEq.respectTransparency false in lemma sectR_true_comp_unpath : sectR ⟨⟨.true⟩⟩ _ ⋙ unpath a0_tp a1_tp p_tp = a1 := by apply Functor.Grothendieck.FunctorTo.hext · change (sectR ⟨⟨.true⟩⟩ _ ⋙ unpath a0_tp a1_tp p_tp) ⋙ PGrpd.forgetToGrpd = _ - rw [Functor.assoc, unpath_comp_forgetToGrpd, ← Functor.assoc, sectR_comp_snd, Functor.id_comp, a1_tp] + rw [Functor.assoc, unpath_comp_forgetToGrpd, ← Functor.assoc, + sectR_comp_snd, Functor.id_comp, a1_tp] · intro x change HEq (PGrpd.objFiber' a1_tp x) (a1.obj x).fiber exact PGrpd.objFiber'_heq a1_tp @@ -386,12 +389,14 @@ lemma map_tt_fiber {x y : Γ} (f : tt x ⟶ tt y) : (p.map f).fiber ≍ lemma mapFiber'_ffm {x y : Γ} (f : x ⟶ y) : PGrpd.mapFiber' p_tp (ffm f) ≍ PGrpd.mapFiber' (a0_comp_forgetToGrpd p_tp δ0_p) f := by subst a0 - exact (PGrpd.mapFiber'_heq p_tp _).trans (PGrpd.mapFiber'_heq (path0_comp_forgetToGrpd p_tp) f).symm + exact (PGrpd.mapFiber'_heq p_tp _).trans + (PGrpd.mapFiber'_heq (path0_comp_forgetToGrpd p_tp) f).symm lemma mapFiber'_ttm {x y : Γ} (f : x ⟶ y) : PGrpd.mapFiber' p_tp (ttm f) ≍ PGrpd.mapFiber' (a1_comp_forgetToGrpd p_tp δ1_p) f := by subst a1 - exact (PGrpd.mapFiber'_heq p_tp _).trans (PGrpd.mapFiber'_heq (path1_comp_forgetToGrpd p_tp) f).symm + exact (PGrpd.mapFiber'_heq p_tp _).trans + (PGrpd.mapFiber'_heq (path1_comp_forgetToGrpd p_tp) f).symm @[simp] lemma objFiber_path (x) : PGrpd.objFiber (path p_tp) x = pathFibObj p_tp x := @@ -406,8 +411,8 @@ lemma mapFiber_ft (x) : PGrpd.mapFiber p (ft x) ≍ symm rw [objFiber'_path_as] simp only [Functor.comp_obj, snd_obj, Functor.comp_map, snd_map, PGrpd.mapFiber', - Grpd.forgetToCat, Functor.Grothendieck.forget_obj, PGrpd.objFiber'EqToHom, - PGrpd.mapFiber'EqToHom, Grpd.eqToHom_hom, eqToHom_trans_assoc, PGrpd.mapFiber] + Grpd.forgetToCat, PGrpd.objFiber'EqToHom, + PGrpd.mapFiber'EqToHom, PGrpd.mapFiber] apply HEq.trans (eqToHom_comp_heq ..) apply HEq.trans (eqToHom_comp_heq ..) exact (Grpd.eqToHom_hom _ _).heq.trans (cast_heq _ _) @@ -443,8 +448,8 @@ lemma inv_mapFiber_tf_heq (y : Γ) : rw [PGrpd.mapFiber_inv] apply HEq.trans _ (eqToHom_comp_heq ..).symm rw! [PGrpd.inv_mapFiber_heq] - simp only [Grpd.forgetToCat, Functor.Grothendieck.forget_obj, Functor.comp_obj, Functor.comp_map, - Functor.Grothendieck.forget_map, Cat.of_α, id_eq, cast_heq_iff_heq] + simp only [Grpd.forgetToCat, Functor.comp_obj, Functor.comp_map, + Cat.of_α, cast_heq_iff_heq] dsimp only [PGrpd.forgetToGrpd, Functor.Grothendieck.forget] rw! [map_tf_base p_tp, Grpd.eqToHom_hom] simp only [Grpd.forgetToCat, PGrpd.mapFiber, cast_heq_iff_heq] @@ -458,9 +463,9 @@ lemma unpath_map_ft_fiber {x y} (f : ff x ⟶ tt y) : ((unpath (a0_comp_forgetToGrpd p_tp δ0_p) (a1_comp_forgetToGrpd p_tp δ1_p) (p := FunctorOperation.Path.path p_tp) (by rw [path_comp_forgetToGrpd]; congr)).map f).fiber ≍ (p.map f).fiber := by - simp only [Grpd.forgetToCat, unpath, Functor.Grothendieck.functorTo_obj_base, - Functor.comp_obj, snd_obj, Cat.of_α, Functor.Grothendieck.functorTo_map_base, - Functor.comp_map, snd_map, id_eq, Functor.Grothendieck.functorTo_obj_fiber, unpathFibObj, + simp only [Grpd.forgetToCat, unpath, + Cat.of_α, + unpathFibObj, Functor.Grothendieck.functorTo_map_fiber, unpathFibMap] -- have hf : f = ttm f.2 ≫ ft y := by aesop_cat -- TODO: mwe and report: this should not type check @@ -477,26 +482,26 @@ lemma unpath_map_ft_fiber {x y} (f : ff x ⟶ tt y) : · erw [Functor.congr_obj p_tp (tt y)] simp · have H := Functor.congr_hom p_tp (ffm f.2) - simp only [Grpd.forgetToCat, Functor.comp_obj, Functor.Grothendieck.forget_obj, + simp only [Grpd.forgetToCat, Functor.comp_obj, Functor.comp_map, Functor.Grothendieck.forget_map, snd_obj, snd_map, Grpd.comp_eq_comp] at H erw [Functor.congr_hom p_tp (ft y)] rw! [← δ0_p, path0, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq] simp [mapObjFiber, Grpd.eqToHom_obj, objFiber, Functor.congr_obj H, - Grpd.eqToHom_obj] <;> rfl + Grpd.eqToHom_obj]; rfl · simp only [Functor.Grothendieck.forget_map] rw! [← δ0_p, path0, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq, map_ft_base p_tp, Grpd.eqToHom_obj] - simp [objFiber] <;> rfl + simp [objFiber]; rfl · rw! [← δ1_p, path1, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq] - simp [objFiber] <;> rfl - · simp only [Functor.comp_obj, snd_obj, Functor.comp_map, snd_map, Grpd.forgetToCat, - Functor.Grothendieck.forget_obj, Functor.Grothendieck.forget_map, cast_heq_iff_heq] + simp [objFiber]; rfl + · simp only [Functor.comp_obj, snd_obj, Functor.comp_map, snd_map, + cast_heq_iff_heq] change _ ≍ (p.map (ft y)).base.map _ rw! [map_ft_base p_tp, mapFiber'_heq] simp [Grpd.eqToHom_hom, mapFiber] · rw! [mapFiber_ft p_tp y] - simp only [Grpd.forgetToCat, Functor.Grothendieck.forget_obj, Functor.Grothendieck.forget_map, + simp only [ objFiber'_rfl, heq_cast_iff_heq] apply Discrete.as_heq_as · congr @@ -512,9 +517,9 @@ lemma unpath_map_tf_fiber {x y} (f : tt x ⟶ ff y) : ((unpath (a0_comp_forgetToGrpd p_tp δ0_p) (a1_comp_forgetToGrpd p_tp δ1_p) (p := FunctorOperation.Path.path p_tp) (by rw [path_comp_forgetToGrpd]; congr)).map f).fiber ≍ (p.map f).fiber := by - simp only [Grpd.forgetToCat, unpath, Functor.Grothendieck.functorTo_obj_base, Functor.comp_obj, - snd_obj, Cat.of_α, Functor.Grothendieck.functorTo_map_base, Functor.comp_map, snd_map, id_eq, - Functor.Grothendieck.functorTo_obj_fiber, unpathFibObj, Functor.Grothendieck.functorTo_map_fiber, + simp only [Grpd.forgetToCat, unpath, + Cat.of_α, + unpathFibObj, Functor.Grothendieck.functorTo_map_fiber, unpathFibMap] have hf : f = ttm f.2 ≫ tf y := by aesop_cat have hmap (g h : tt x ⟶ ff y) (e : g = h) : @@ -528,24 +533,24 @@ lemma unpath_map_tf_fiber {x y} (f : tt x ⟶ ff y) : have : A.obj y ≍ forgetToGrpd.obj (p.obj (ff y)) := by erw [Functor.congr_obj p_tp (ff y)]; simp have : objFiber' (a0_comp_forgetToGrpd p_tp δ0_p) y ≍ objFiber p (ff y) := by rw! [← δ0_p, path0, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq] - simp [objFiber] <;> rfl + simp [objFiber]; rfl apply Grpd.comp_heq_comp · assumption · have H := Functor.congr_hom p_tp (ttm f.2) - simp only [Grpd.forgetToCat, Functor.comp_obj, Functor.Grothendieck.forget_obj, + simp only [Grpd.forgetToCat, Functor.comp_obj, Functor.comp_map, Functor.Grothendieck.forget_map, snd_obj, snd_map, Grpd.comp_eq_comp] at H erw [Functor.congr_hom p_tp (tf y)] rw! [← δ1_p, path1, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq] simp [mapObjFiber, Grpd.eqToHom_obj, objFiber, Functor.congr_obj H, - Grpd.eqToHom_obj] <;> rfl + Grpd.eqToHom_obj]; rfl · simp only [Functor.Grothendieck.forget_map] rw! [← δ1_p, path1, objFiber'_naturality (sectR ..) p_tp, objFiber'_heq, map_tf_base p_tp, Grpd.eqToHom_obj] - simp [objFiber] <;> rfl + simp [objFiber]; rfl · assumption - · simp only [Functor.comp_obj, snd_obj, Functor.comp_map, snd_map, Grpd.forgetToCat, - Functor.Grothendieck.forget_obj, Functor.Grothendieck.forget_map, cast_heq_iff_heq] + · simp only [Functor.comp_obj, snd_obj, Functor.comp_map, snd_map, + cast_heq_iff_heq] change _ ≍ (p.map (tf y)).base.map _ rw! [map_tf_base p_tp, mapFiber'_heq] simp [Grpd.eqToHom_hom, mapFiber] @@ -786,10 +791,10 @@ lemma lift_comp_tp : · erw [Functor.congr_hom p0_tp f.2] simp rfl - · simp only [U_Tm, comp_eq_comp, Functor.comp_obj, lift_obj, liftObj, U_Ty, U_tp, + · simp only [comp_eq_comp, Functor.comp_obj, liftObj, Functor.comp_map, lift_map, liftMap, liftMap0, Functor.map_comp] erw [Functor.congr_hom p0_tp f.2] - simp only [U_Tm, comp_eq_comp, Functor.comp_obj, Functor.id_obj, Functor.comp_map, + simp only [comp_eq_comp, Functor.comp_obj, Functor.id_obj, Functor.comp_map, Category.assoc] have : f = ffm f.2 ≫ ft y := by aesop conv => rhs; rw [this] @@ -798,24 +803,24 @@ lemma lift_comp_tp : simp [← Category.assoc] rfl · rcases y with ⟨⟨⟨_|_⟩⟩, y⟩ - · simp only [U_Tm, comp_eq_comp, Functor.comp_obj, lift_obj, liftObj, U_Ty, U_tp, + · simp only [comp_eq_comp, Functor.comp_obj, liftObj, Functor.comp_map, lift_map, liftMap, liftMap0, Functor.map_comp, Functor.map_inv, IsIso.inv_comp_eq] erw [Functor.congr_hom p0_tp f.2] have : f = tf x ≫ ffm f.2 := by aesop slice_rhs 2 3 => rw [this] rw [Functor.ClovenIsofibration.map_liftIso', Functor.map_comp] - simp only [U_Tm, comp_eq_comp, Functor.comp_obj, Functor.id_obj, Functor.comp_map, + simp only [comp_eq_comp, Functor.comp_obj, Functor.id_obj, Functor.comp_map, Category.assoc, eqToHom_trans_assoc, eqToHom_refl, Category.id_comp] have : ft x ≫ tf x = 𝟙 _ := by aesop slice_rhs 2 3 => rw [← Functor.map_comp, this, CategoryTheory.Functor.map_id] rfl - · simp only [U_Tm, comp_eq_comp, Functor.comp_obj, lift_obj, liftObj, U_Ty, U_tp, + · simp only [comp_eq_comp, Functor.comp_obj, liftObj, Functor.comp_map, lift_map, liftMap, liftMap0, Functor.map_comp, Functor.map_inv, IsIso.inv_comp_eq] erw [Functor.congr_hom p0_tp f.2] rw [Functor.ClovenIsofibration.map_liftIso', Functor.ClovenIsofibration.map_liftIso'] - simp only [U_Tm, comp_eq_comp, Functor.comp_obj, Functor.id_obj, Functor.comp_map, + simp only [comp_eq_comp, Functor.comp_obj, Functor.id_obj, Functor.comp_map, ← Category.assoc, ← heq_eq_eq, heq_comp_eqToHom_iff, comp_eqToHom_heq_iff] simp only [Category.assoc, eqToHom_trans, eqToHom_refl, Category.comp_id, ← Functor.map_comp, heq_eq_eq] @@ -854,7 +859,7 @@ set_option backward.isDefEq.respectTransparency false in lemma lift_map_ft' (x : Δ) : (lift p0 p p0_tp).map (ft (σ.obj x)) = tpClovenIsofibration.liftIso (p.map (⟨⟨⟨⟩⟩, σ.map (𝟙 _)⟩ : ff (σ.obj x) ⟶ tt (σ.obj x))) (by exact Functor.congr_obj p0_tp (σ.obj x)) ≫ eqToHom (by simp) := by - simp only [U_Tm, lift_obj, liftObj, U_Ty, U_tp, ft, lift_map, liftMap, + simp only [liftObj, ft, lift_map, liftMap, CategoryTheory.Functor.map_id, liftMap0, Category.id_comp, ← heq_eq_eq, heq_comp_eqToHom_iff] rw! (castMode := .all) [← CategoryTheory.Functor.map_id] rfl @@ -870,7 +875,7 @@ lemma lift_map_tf' (x : Δ) : (lift p0 p p0_tp).map (tf (σ.obj x)) = eqToHom (by simp [ft]; rfl) ≫ inv (tpClovenIsofibration.liftIso (p.map (⟨⟨⟨⟩⟩, σ.map (𝟙 _)⟩ : ff (σ.obj x) ⟶ tt (σ.obj x))) (by exact Functor.congr_obj p0_tp (σ.obj x))) := by - simp only [U_Tm, lift_obj, liftObj, U_Ty, U_tp, ft, tf, lift_map, liftMap, liftMap0, + simp only [liftObj, ft, tf, lift_map, liftMap, liftMap0, CategoryTheory.Functor.map_id, Category.comp_id, ← heq_eq_eq, heq_eqToHom_comp_iff] rw! (castMode := .all) [← CategoryTheory.Functor.map_id] rfl @@ -911,7 +916,7 @@ lemma lift_comp : lift (σ ≫ p0) (cylinder.I.map σ ≫ p) · have : (cylinder.I.map σ).map f = tf (σ.obj x) ≫ ffm (σ.map f.2) ≫ ft (σ.obj y) := by aesop slice_rhs 2 3 => simp only [Grpd.comp_eq_comp, Functor.comp_map, this, Functor.map_comp, lift_map_ffm, lift_map_tf', lift_map_ft'] - simp only [U_Tm, comp_eq_comp, lift_obj, liftObj, U_Ty, U_tp, Functor.comp_obj, ft, + simp only [comp_eq_comp, liftObj, Functor.comp_obj, ft, Functor.comp_map, lift_map, liftMap, liftMap0, Category.assoc, eqToHom_trans, eqToHom_refl, Category.comp_id, eqToHom_trans_assoc, Category.id_comp, IsIso.eq_inv_comp] erw [IsIso.hom_inv_id_assoc] @@ -946,21 +951,21 @@ lemma isNormal (A : Γ ⟶ U.Ty) (π_A : p = CategoryTheory.Prod.snd _ Γ ≫ A) rcases x with ⟨⟨⟨_|_⟩⟩, x⟩ · rcases y with ⟨⟨⟨_|_⟩⟩, y⟩ · simp - · simp only [U_Tm, comp_eq_comp, lift_obj, liftObj, U_Ty, U_tp, Functor.comp_obj, - Prod.snd_obj, Functor.comp_map, Prod.snd_map, lift_map, liftMap, liftMap0, - eqToHom_refl, Category.id_comp] + · simp only [comp_eq_comp, liftObj, Functor.comp_obj, + Prod.snd_obj, Functor.comp_map, Prod.snd_map, lift_map, liftMap, liftMap0] have hy : U.tp.obj (p0.obj y) = A.obj y := Functor.congr_obj p0_tp y have hh := norm y (A.map (𝟙 y)) (A.map_id y) hy - have ho := (congrArg (fun g => tpClovenIsofibration.liftObj g hy) (A.map_id y)).trans (liftObj_id hy) + have ho := (congrArg (fun g => tpClovenIsofibration.liftObj g hy) + (A.map_id y)).trans (liftObj_id hy) have hc := heq_comp rfl rfl ho (show p0.map f.2 ≍ p0.map f.2 from HEq.rfl) hh simpa using hc · rcases y with ⟨⟨⟨_|_⟩⟩, y⟩ - · simp only [U_Tm, comp_eq_comp, lift_obj, liftObj, U_Ty, U_tp, Functor.comp_obj, - Prod.snd_obj, Functor.comp_map, Prod.snd_map, lift_map, liftMap, liftMap0, - eqToHom_refl, Category.comp_id, IsIso.inv_comp_eq] + · simp only [comp_eq_comp, liftObj, Functor.comp_obj, + Prod.snd_obj, Functor.comp_map, Prod.snd_map, lift_map, liftMap, liftMap0] have hx : U.tp.obj (p0.obj x) = A.obj x := Functor.congr_obj p0_tp x have hi := norm_inv x (A.map (𝟙 x)) (A.map_id x) hx - have ho := (congrArg (fun g => tpClovenIsofibration.liftObj g hx) (A.map_id x)).trans (liftObj_id hx) + have ho := (congrArg (fun g => tpClovenIsofibration.liftObj g hx) + (A.map_id x)).trans (liftObj_id hx) have hc := heq_comp ho rfl rfl hi (show p0.map f.2 ≍ p0.map f.2 from HEq.rfl) simpa using hc · simp @@ -968,8 +973,10 @@ lemma isNormal (A : Γ ⟶ U.Ty) (π_A : p = CategoryTheory.Prod.snd _ Γ ≫ A) have hy : U.tp.obj (p0.obj y) = A.obj y := Functor.congr_obj p0_tp y have hi := norm_inv x (A.map (𝟙 x)) (A.map_id x) hx have hj := norm y (A.map (𝟙 y)) (A.map_id y) hy - have ho := (congrArg (fun g => tpClovenIsofibration.liftObj g hx) (A.map_id x)).trans (liftObj_id hx) - have hp := (congrArg (fun g => tpClovenIsofibration.liftObj g hy) (A.map_id y)).trans (liftObj_id hy) + have ho := (congrArg (fun g => tpClovenIsofibration.liftObj g hx) + (A.map_id x)).trans (liftObj_id hx) + have hp := (congrArg (fun g => tpClovenIsofibration.liftObj g hy) + (A.map_id y)).trans (liftObj_id hy) have hc := heq_comp ho rfl rfl hi (show p0.map f.2 ≍ p0.map f.2 from HEq.rfl) have hd := heq_comp ho rfl hp hc hj simpa using hd diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index c95f9bff..5e8c7c85 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -277,8 +277,8 @@ lemma conjugatingObjNatTransEquiv'_comp' {x y z : Γ} (f1 : x ⟶ y) (f2 : y ⟶ (whiskerLeft (A.map f1) (conjugatingObjNatTransEquiv' A B f2 S1 S2 g12)) ≫ eqToHom (by simp [← Grpd.comp_eq_comp, Grpd.Functor.iso]) := by subst h - simp only [Grpd.Functor.iso, Grpd.functorIsoOfIso_hom, mapIso_hom, asIso_hom, - Grpd.functorIsoOfIso_inv, mapIso_inv, asIso_inv, conjugatingObjNatTransEquiv', eqToHom_refl, + simp only [Grpd.Functor.iso, + conjugatingObjNatTransEquiv', eqToHom_refl, Category.id_comp, Equiv.coe_fn_mk, whiskerLeft_comp, whiskerLeft_eqToHom, eqToHom_trans_assoc, whiskerRight_comp, eqToHom_whiskerRight, whiskerLeft_twice, associator_eq, CategoryTheory.Iso.refl_inv, CategoryTheory.Iso.refl_hom, Category.comp_id, Category.assoc] at * @@ -411,28 +411,27 @@ def functorMap : functorObj φ x ⥤ functorObj φ y := _ = A.map (inv f) ⋙ (s.obj.obj ⋙ φ.app x) ⋙ A.map f := by rw [Functor.assoc, Functor.assoc, hn] simp only [Functor.assoc] - _ = _ := by rw [hsec]; simp [← Grpd.comp_eq_comp, ← A.map_comp] + _ = _ := by rw [hsec]; simp [← Grpd.comp_eq_comp] ) ) (by intro s t α have h := α.property ext a - simp only [IsOverId, Set.mem_setOf_eq] at h ⊢ + simp only [IsOverId, Set.mem_ofPred_eq] at h ⊢ simp only [ObjectProperty.lift_map, Functor.comp_map, MorphismProperty.wideSubcategoryInclusion.map, ObjectProperty.ι_map, conjugating_map, - Functor.whiskerRight_app, Functor.whiskerLeft_app, NatTrans.comp_app, - NatTrans.id_app, Category.comp_id, Category.id_comp, eqToHom_app] at * + Functor.whiskerRight_app, NatTrans.comp_app, + Category.id_comp, eqToHom_app] at * dsimp only [ObjectProperty.homMk] at * - simp only [Functor.comp_map, MorphismProperty.wideSubcategoryInclusion.map, - ObjectProperty.ι_map, conjugating_map, Functor.whiskerRight_app, Functor.whiskerLeft_app, - eqToHom_app] at * + simp only [ + Functor.whiskerRight_app, Functor.whiskerLeft_app] at * have hn : B.map f ⋙ φ.app y = φ.app x ⋙ A.map f := by simpa only [Grpd.comp_eq_comp] using φ.naturality f have hh := congrArg (fun η => η.app ((A.map (inv f)).obj a)) h simp only [Functor.whiskerRight_app, NatTrans.comp_app, eqToHom_app] at hh rw [← Functor.comp_map, Functor.congr_hom hn, Functor.comp_map, hh] - simp only [Functor.map_comp, eqToHom_map, Category.assoc, eqToHom_trans] + simp only [eqToHom_map, eqToHom_trans] ) def functor : Γ ⥤ Grpd.{u₁,u₁} where @@ -483,8 +482,8 @@ def strongTrans : (A ⋙ Grpd.forgetToCat).toPseudofunctor'.StrongTrans intro x y f g η have := LocallyDiscrete.eq_of_hom η subst this - simp only [Functor.toPseudofunctor', Functor.comp_obj, Functor.comp_map, LocallyDiscrete.id_as, - LocallyDiscrete.comp_as, pseudofunctorOfIsLocallyDiscrete, Bicategory.whiskerRight, + simp only [Functor.toPseudofunctor', Functor.comp_obj, Functor.comp_map, + pseudofunctorOfIsLocallyDiscrete, Bicategory.whiskerRight, eqToHom_refl, Bicategory.whiskerLeft] apply Cat.Hom₂.ext simp [Cat.Hom.toNatTrans_comp] @@ -492,13 +491,13 @@ def strongTrans : (A ⋙ Grpd.forgetToCat).toPseudofunctor'.StrongTrans intro x apply Cat.Hom₂.ext simp only [Functor.toPseudofunctor', Functor.comp_obj, Functor.comp_map, LocallyDiscrete.id_as, - LocallyDiscrete.comp_as, pseudofunctorOfIsLocallyDiscrete, Bicategory.whiskerLeft, + pseudofunctorOfIsLocallyDiscrete, Bicategory.whiskerLeft, eqToIso.hom, Bicategory.whiskerRight, Bicategory.leftUnitor, Bicategory.rightUnitor] simp only [Cat.Hom.toNatTrans_comp, Cat.Hom₂.eqToHom_toNatTrans] at * - dsimp only [Cat.Hom.isoMk, NatTrans.toCatHom₂, Functor.toCatHom] + dsimp only [Cat.Hom.isoMk, NatTrans.toCatHom₂, Functor.toCatHom] rw [Functor.eqToHom_whiskerRight, Functor.leftUnitor_hom_comp_rightUnitor_inv, Functor.whiskerLeft_eqToHom, naturality_id] - simp [Cat.Hom.toNatTrans_comp] + simp [] naturality_comp := by intro x y z f g change Discrete (x.as ⟶ y.as) at f @@ -507,10 +506,10 @@ def strongTrans : (A ⋙ Grpd.forgetToCat).toPseudofunctor'.StrongTrans cases g with | mk g => apply Cat.Hom₂.ext simp only [Grpd.forgetToCat, Functor.toPseudofunctor', Functor.comp_obj, Functor.comp_map, - id_eq, LocallyDiscrete.id_as, LocallyDiscrete.comp_as, pseudofunctorOfIsLocallyDiscrete, - naturality_comp, eqToHom_refl, Category.id_comp, Bicategory.whiskerLeft, Cat.of_α, - eqToIso.hom, Category.assoc, Bicategory.whiskerRight, Bicategory.associator, - Functor.associator_eq, Iso.refl_hom, Iso.refl_inv] + LocallyDiscrete.comp_as, pseudofunctorOfIsLocallyDiscrete, + Bicategory.whiskerLeft, Cat.of_α, + eqToIso.hom, Bicategory.whiskerRight, Bicategory.associator, + Functor.associator_eq] simp only [Cat.Hom.toNatTrans_comp, Cat.Hom₂.eqToHom_toNatTrans] at * rw [Functor.eqToHom_whiskerRight, Functor.whiskerLeft_eqToHom] erw [Category.id_comp, Category.id_comp, Category.comp_id] @@ -536,8 +535,8 @@ lemma strongTrans_comp_toStrongTrans'_self (happ : ∀ x, app x ⋙ φ.app x = (Functor.whiskerRight φ Grpd.forgetToCat).toStrongTrans' = 𝟙 _ := by fapply Pseudofunctor.StrongTrans.ext · intro x - simp only [Grpd.forgetToCat, Functor.toPseudofunctor'_obj, Functor.comp_obj, strongTrans, - comp_app, NatTrans.toStrongTrans'_app, Functor.whiskerRight_app, id_eq, categoryStruct_id_app] + simp only [Grpd.forgetToCat, strongTrans, + comp_app, NatTrans.toStrongTrans'_app, Functor.whiskerRight_app, categoryStruct_id_app] apply Cat.ext exact happ x.as · intro x y f @@ -545,28 +544,23 @@ lemma strongTrans_comp_toStrongTrans'_self (happ : ∀ x, app x ⋙ φ.app x = obtain ⟨g⟩ := f apply Cat.Hom₂.ext ext a - simp only [Grpd.forgetToCat, Functor.toPseudofunctor'_obj, Functor.comp_obj, Cat.of_α, - Functor.toPseudofunctor'_map, Functor.comp_map, id_eq, strongTrans, comp_app, - NatTrans.toStrongTrans'_app, Functor.whiskerRight_app, categoryStruct_id_app, + simp only [Grpd.forgetToCat, + strongTrans, comp_app, + Functor.whiskerRight_app, categoryStruct_comp_naturality_hom, Bicategory.associator, NatTrans.toStrongTrans'_naturality, eqToIso.hom, Bicategory.whiskerLeft_eqToHom, Cat.Hom.toNatTrans_comp, Cat.Hom₂.eqToHom_toNatTrans, - Cat.whiskerLeft_toNatTrans, Cat.whiskerRight_toNatTrans, - NatTrans.comp_app, Functor.whiskerLeft_app, Functor.whiskerRight_app, - Category.assoc, Functor.associator_inv_app, - Functor.associator_hom_app, eqToHom_app, Category.id_comp, eqToHom_trans, + Cat.whiskerRight_toNatTrans, + NatTrans.comp_app, Functor.whiskerRight_app, + Category.assoc, + eqToHom_app, categoryStruct_id_naturality_hom, Bicategory.rightUnitor, Bicategory.leftUnitor, - Functor.rightUnitor_hom_app, Functor.leftUnitor_inv_app, Category.comp_id, ← heq_eq_eq, - comp_eqToHom_heq_iff] + ← heq_eq_eq] dsimp only [Cat.Hom.isoMk, NatTrans.toCatHom₂, Functor.toCatHom, NatTrans.toStrongTrans', Functor.whiskerRight, Functor.toPseudofunctor', pseudofunctorOfIsLocallyDiscrete, Grpd.forgetToCat] - simp only [Cat.Hom.toNatTrans_comp, Cat.Hom₂.eqToHom_toNatTrans, - Cat.whiskerLeft_toNatTrans, Cat.whiskerRight_toNatTrans, NatTrans.comp_app, - Functor.whiskerLeft_app, Functor.whiskerRight_app, Functor.associator_inv_app, - Functor.associator_hom_app, Functor.leftUnitor_inv_app, - Functor.rightUnitor_hom_app, Category.id_comp, Category.comp_id, - eqToHom_app, eqToHom_trans, comp_eqToHom_heq_iff] + simp only [Functor.associator_inv_app, Functor.associator_hom_app, + Functor.leftUnitor_inv_app, Functor.rightUnitor_hom_app, Category.comp_id] rw! [hnaturality] dsimp only [Functor.comp_map, Grpd.forgetToCat, Functor.toCatHom, Functor.comp_obj] -- Fix the category before simplifying the identity and transport maps. @@ -642,15 +636,15 @@ lemma sigma.map_fstNatTrans_eq : map (fstNatTrans A B) = (assoc B).inv ⋙ forge apply Functor.Groupoidal.FunctorTo.hext · simp [Functor.assoc, assoc_inv_comp_forget_comp_forget, map_forget] · intro x - simp only [fstNatTrans, map_obj_fiber, sigma_obj, Functor.Groupoidal.forget_obj, assoc, + simp only [fstNatTrans, map_obj_fiber, Functor.Groupoidal.forget_obj, assoc, Functor.Iso.symm_inv, Functor.comp_obj, functorIsoFrom, Functor.Grothendieck.functorIsoFrom, Functor.Grothendieck.functorFrom, assocFib, heq_eq_eq] rw! (castMode := .all) [pre_obj_base] simp rfl · intro x y f - simp only [fstNatTrans, map_map_fiber, sigma_obj, Grpd.comp_eq_comp, Functor.comp_obj, - Functor.Groupoidal.forget_obj, sigma_map, sigmaMap_obj_base, eqToHom_refl, forget_map, + simp only [fstNatTrans, map_map_fiber, Grpd.comp_eq_comp, Functor.comp_obj, + Functor.Groupoidal.forget_obj, eqToHom_refl, forget_map, Category.id_comp, assoc, Functor.Iso.symm_inv, functorIsoFrom, Functor.Grothendieck.functorIsoFrom, Functor.Grothendieck.functorFrom, assocFib, Functor.comp_map, comp_base, Functor.Groupoidal.comp_fiber, @@ -737,7 +731,7 @@ theorem pi_comp : pi (σ ⋙ A) (pre A σ ⋙ B) = σ ⋙ pi A B := by apply sigma_naturality · rfl · intro x - simp only [sigma_obj, Functor.comp_obj, sigma.fstNatTrans, Functor.whiskerLeft_app] + simp only [Functor.comp_obj, sigma.fstNatTrans, Functor.whiskerLeft_app] congr 1 rw [← Functor.assoc, ι_comp_pre] @@ -777,7 +771,7 @@ set_option backward.isDefEq.respectTransparency false in lemma strongTrans.twoCell_app_base_aux {x y : Γ} (g : x ⟶ y) (a) : base ((A.map (CategoryTheory.inv g) ⋙ app B s hs x ⋙ sigmaMap B g).obj a) = base ((app B s hs y).obj a) := by - simp only [Functor.map_inv, sigma_obj, Functor.comp_obj, sigmaMap_obj_base, app_obj_base] + simp only [Functor.map_inv, Functor.comp_obj, sigmaMap_obj_base, app_obj_base] simp [← Functor.comp_obj, ← Grpd.comp_eq_comp] -- The bundled groupoid coercions in the whiskered component require backward unfolding. @@ -786,8 +780,8 @@ set_option backward.isDefEq.respectTransparency false in lemma strongTrans.twoCell_app_base {x y : Γ} (g : x ⟶ y) (a) : ((strongTrans.twoCell B s hs g).app a).base = eqToHom (twoCell_app_base_aux ..) := by have := NatTrans.congr_app (PGrpd.mapFiber' hs g).2 a - simp only [sigma_obj, sigma.fstNatTrans_app, pi_obj_α, Functor.comp_obj, - Functor.Groupoidal.forget_obj, IsOverId, Set.mem_setOf_eq, Functor.whiskerRight_app, forget_map, + simp only [sigma.fstNatTrans_app, Functor.comp_obj, + Functor.Groupoidal.forget_obj, IsOverId, Functor.whiskerRight_app, forget_map, Category.id_comp, eqToHom_trans, eqToHom_app] at this rw [twoCell, this] @@ -846,9 +840,8 @@ lemma strongTrans.naturality_inv_app {x y} (f : x ⟶ y) (a) : (strongTrans.naturality B s hs f).inv.app a = eqToHom (by simp [← Functor.comp_obj]; simp [← Grpd.comp_eq_comp]) ≫ (twoCell B s hs f).app ((A.map f).obj a) := by - simp only [sigma_obj, Functor.comp_obj, naturality, sigma_map, - conjugatingObjNatTransEquiv₁, Grpd.Functor.iso, Grpd.functorIsoOfIso_inv, Functor.mapIso_inv, - asIso_inv, Grpd.functorIsoOfIso_hom, Functor.mapIso_hom, asIso_hom, + simp only [Functor.comp_obj, naturality, + conjugatingObjNatTransEquiv₁, Grpd.Functor.iso, conjugatingObjNatTransEquiv', Groupoid.isoEquivHom, Groupoid.inv_eq_inv, Equiv.toFun_as_coe, Equiv.trans_apply, Equiv.coe_fn_mk, Equiv.coe_fn_symm_mk, IsIso.inv_comp, Functor.inv_whiskerLeft, inv_eqToHom, Iso.symm_mk, NatTrans.comp_app, eqToHom_app, @@ -893,7 +886,7 @@ lemma strongTrans.naturality_id_hom (x : Γ) : (strongTrans.naturality B s hs (𝟙 x)).hom = eqToHom (by simp) := by dsimp [strongTrans.naturality] erw [conjugatingObjNatTransEquiv₁_id_inv] - simp [sigma_obj, sigma_map, eqToHom_trans, twoCell_id] + simp [eqToHom_trans, twoCell_id] lemma inv_heq_inv {C : Type*} [Category C] {X Y : C} {X' Y' : C} (hX : X = X') (hY : Y = Y') {f : X ⟶ Y} {f' : X' ⟶ Y'} (hf : f ≍ f') [IsIso f] : @@ -977,7 +970,8 @@ set_option backward.isDefEq.respectTransparency false in @[simp] lemma mapStrongTrans_map_fiber_base {x y} (f : x ⟶ y) : ((mapStrongTrans B s hs).map f).fiber.base = - eqToHom (by simp only [mapStrongTrans_map_base, mapStrongTrans_obj_fiber, sigma_map, sigmaMap_obj_base, strongTrans.app_obj_base]) ≫ + eqToHom (by simp only [mapStrongTrans_map_base, mapStrongTrans_obj_fiber, + sigma_map, sigmaMap_obj_base, strongTrans.app_obj_base]) ≫ f.fiber ≫ eqToHom (by simp only [mapStrongTrans_obj_fiber, strongTrans.app_obj_base]) := by rw [mapStrongTrans_map_fiber, comp_base, comp_base, base_eqToHom, strongTrans.twoCell_app_base] simp @@ -1029,7 +1023,7 @@ lemma mapStrongTrans_map_ι_map_fiber_fiber_heq {x : Γ} {a b : A.obj x} (h : a · simp · conv => left; right; rw [ι_map_fiber, Functor.map_comp, eqToHom_map] rw! (castMode := .all) [ι_obj_base] - simp only [mapStrongTrans_obj_base, ι_obj_base, ι_map_base, sigma_obj, ι_obj_fiber, + simp only [mapStrongTrans_obj_base, ι_obj_base, ι_map_base, ι_obj_fiber, Functor.comp_obj, strongTrans.twoCell_id, eqToHom_app, eqToHom_trans_assoc] apply HEq.trans (eqToHom_comp_heq ..) rfl @@ -1043,13 +1037,13 @@ lemma ι_comp_inversion {x} : ι A x ⋙ inversion B s hs = erw [toPGrpd_forgetToGrpd, ← Functor.assoc, strongTrans.app_comp_fstNatTrans_app, Functor.id_comp] · intro a - simp only [Functor.comp_obj, inversion_obj_base, inversion_obj_fiber, ι_obj_base, sigma_obj, + simp only [Functor.comp_obj, inversion_obj_fiber, ι_obj_base, toPGrpd_obj_base, toPGrpd_obj_fiber, heq_eq_eq] rw! (castMode := .all) [mapStrongTrans_obj_fiber] simp · intro a b h - simp only [Functor.comp_obj, inversion_obj_base, Functor.comp_map, inversion_map_base, - inversion_obj_fiber, ι_obj_base, inversion_map_fiber, ι_map_base, sigma_obj, toPGrpd_obj_base, + simp only [Functor.comp_obj, Functor.comp_map, + ι_obj_base, inversion_map_fiber, ι_map_base, toPGrpd_obj_base, toPGrpd_map_base, toPGrpd_obj_fiber, toPGrpd_map_fiber, eqToHom_comp_heq_iff] apply mapStrongTrans_map_ι_map_fiber_fiber_heq @@ -1135,11 +1129,12 @@ lemma lamObjFiberObjCompSigMap.naturality {x y : Γ} (f : x ⟶ y) {a1 a2 : A.ob ≫ (β.map ((ιNatTrans f).app a2)).fiber ≍ (β.map ((ι A y).map ((A.map f).map h))).base.map (β.map ((ιNatTrans f).app a1)).fiber ≫ (β.map ((ι A y).map ((A.map f).map h))).fiber := by - simpa [← heq_eq_eq, Grpd.forgetToCat, Functor.comp_obj] using Grothendieck.Hom.congr β_ιNatTrans_naturality - simp only [Grpd.forgetToCat.eq_1, sigmaObj, Grpd.coe_of, comp_obj, sigmaMap_obj_base, + simpa [← heq_eq_eq, Grpd.forgetToCat, Functor.comp_obj] using + Grothendieck.Hom.congr β_ιNatTrans_naturality + simp only [sigmaObj, Grpd.coe_of, comp_obj, sigmaMap_obj_base, Functor.comp_map, comp_base, sigmaMap_map_base, sigmaMap_obj_fiber, comp_fiber, - sigmaMap_map_fiber, lamObjFiberObj_map_fiber, map_comp, eqToHom_map, app_fiber_eq, Cat.of_α, - id_eq, Category.assoc, eqToHom_trans_assoc, heq_eqToHom_comp_iff, eqToHom_comp_heq_iff] + sigmaMap_map_fiber, lamObjFiberObj_map_fiber, map_comp, eqToHom_map, app_fiber_eq, + Category.assoc, eqToHom_trans_assoc, heq_eqToHom_comp_iff, eqToHom_comp_heq_iff] rw [← Category.assoc] apply HEq.trans _ h_naturality apply heq_comp _ rfl rfl _ HEq.rfl @@ -1167,15 +1162,15 @@ lemma lamObjFiberObjCompSigMap.app_comp {x y z : Γ} (f : x ⟶ y) (g : y ⟶ z) ≫ (sigmaMap (β ⋙ PGrpd.forgetToGrpd) g).map (app A β f a) ≫ app A β g ((A.map f).obj a) ≫ eqToHom (by simp) := by fapply Hom.hext - · simp only [Grpd.forgetToCat.eq_1, sigmaObj, Grpd.coe_of, comp_obj, sigmaMap_obj_base, app_base, + · simp only [sigmaObj, Grpd.coe_of, comp_obj, sigmaMap_obj_base, app_base, comp_base, base_eqToHom, sigmaMap_map_base, map_id, lamObjFiberObj_obj_base, map_comp, Grpd.comp_eq_comp, eqToHom_naturality, Category.comp_id, eqToHom_trans, eqToHom_refl] · have : (β.map ((ιNatTrans (f ≫ g)).app a)) = β.map ((ιNatTrans f).app a) ≫ β.map ((ιNatTrans g).app ((A.map f).obj a)) ≫ eqToHom (by simp) := by simp [ιNatTrans_comp_app] - simp only [Grpd.forgetToCat.eq_1, sigmaObj, Grpd.coe_of, comp_obj, sigmaMap_obj_base, app, - Functor.comp_map, PGrpd.forgetToGrpd_map, sigmaMap_obj_fiber, Cat.of_α, id_eq, homMk_base, + simp only [sigmaObj, Grpd.coe_of, comp_obj, sigmaMap_obj_base, app, + Functor.comp_map, PGrpd.forgetToGrpd_map, sigmaMap_obj_fiber, homMk_base, homMk_fiber, Grothendieck.Hom.congr this, Grothendieck.Hom.comp_base, Grpd.comp_eq_comp, Grothendieck.Hom.comp_fiber, eqToHom_refl, Functor.Grothendieck.fiber_eqToHom, Category.id_comp, eqToHom_trans_assoc, comp_base, sigmaMap_map_base, comp_fiber, @@ -1271,7 +1266,7 @@ def lamMapFiber : ((pi A (β ⋙ PGrpd.forgetToGrpd)).map f).obj (lamObjFiber A β x) ⟶ lamObjFiber A β y := ⟨⟨whiskerLeftInvLamObjObjSigMap A β f⟩, by ext - simp only [sigma_obj, sigma.fstNatTrans_app, pi_obj_α, comp_obj, Groupoidal.forget_obj, + simp only [sigma.fstNatTrans_app, comp_obj, Groupoidal.forget_obj, lamObjFiber_obj_obj, whiskerLeftInvLamObjObjSigMap, lamObjFiberObjCompSigMap, whiskerRight_comp, eqToHom_whiskerRight, NatTrans.comp_app, whiskerRight_app, whiskerLeft_app, forget_map, lamObjFiberObjCompSigMap.app_base, sigmaMap_obj_base, eqToHom_app, eqToHom_refl, @@ -1356,9 +1351,9 @@ theorem lamObjFiber_naturality (x : Δ) : lamObjFiber A β (σ.obj x) ≍ apply Section.obj_hext · simp [sigmaObj_naturality, Functor.assoc] · simp - · simp only [sigma_obj, sigma.fstNatTrans_app, comp_obj] + · simp only [sigma.fstNatTrans_app, comp_obj] apply naturality_forget_heq_forget - · simp only [sigma_obj, sigma.fstNatTrans_app, lamObjFiber_obj_obj, comp_obj] + · simp only [sigma.fstNatTrans_app, lamObjFiber_obj_obj, comp_obj] apply lamObjFiberObj_naturality -- The fiber projection uses the same bundled groupoid coercions. @@ -1381,7 +1376,7 @@ lemma lamObjFiberObjCompSigMap_naturality {x y} (f : x ⟶ y) : lamObjFiberObjCompSigMap (σ ⋙ A) (pre A σ ⋙ β) f := by apply Grpd.NatTrans.hext any_goals apply Grpd.comp_hcongr - any_goals simp only [comp_obj, Functor.comp_map, heq_eq_eq, eqToHom_refl] + any_goals simp only [comp_obj, Functor.comp_map, heq_eq_eq] any_goals apply sigmaObj_naturality any_goals apply lamObjFiberObj_naturality · apply sigmaMap_naturality_heq @@ -1411,9 +1406,9 @@ lemma lam_comp_map {x y} (f : x ⟶ y) : · simp · simp [Functor.assoc] apply naturality_forget_heq_forget - · simp only [sigma_obj, sigma.fstNatTrans_app, pi_obj_α, comp_obj, Functor.assoc] + · simp only [sigma.fstNatTrans_app, comp_obj, Functor.assoc] rw [Functor.congr_obj (Functor.congr_hom (pi_comp A (β ⋙ PGrpd.forgetToGrpd) σ) f)] - simp only [pi_obj_α, comp_obj, Functor.comp_map, Grpd.comp_eq_comp, Grpd.eqToHom_obj, + simp only [comp_obj, Functor.comp_map, Grpd.comp_eq_comp, Grpd.eqToHom_obj, heq_cast_iff_heq, heq_eq_eq] congr 1 simp only [← heq_eq_eq, heq_cast_iff_heq] @@ -1476,10 +1471,10 @@ lemma strongTrans.twoCell_lam_app {x y : ∫ A} (f : x ⟶ y) : ((strongTrans.twoCell (β ⋙ PGrpd.forgetToGrpd) (lam A β) (lam_comp_forgetToGrpd ..) (Hom.base f)).app ((A.map (Hom.base f)).obj x.fiber)) = homMk (eqToHom (by - simp only [Functor.map_inv, sigma_obj, comp_obj, sigmaMap_obj_base, app_obj_base] + simp only [Functor.map_inv, comp_obj, sigmaMap_obj_base, app_obj_base] simp [← Functor.comp_obj, ← Grpd.comp_eq_comp])) (eqToHom (by - simp only [comp_obj, Functor.Grothendieck.forget_obj, sigma_obj, sigmaMap_obj_base, + simp only [comp_obj, sigmaMap_obj_base, Functor.comp_map, eqToHom_map, Functor.Grothendieck.forget_map, Functor.Grothendieck.base_eqToHom, sigmaMap_obj_fiber, Grpd.eqToHom_obj, ← heq_eq_eq, cast_heq_iff_heq] @@ -1494,14 +1489,14 @@ lemma strongTrans.twoCell_lam_app {x y : ∫ A} (f : x ⟶ y) : rfl exact hf h) ≫ (β.map ((ιNatTrans (Hom.base f)).app x.fiber)).fiber) := by - simp only [sigma_obj, lam, comp_obj, twoCell, sigma.fstNatTrans_app, pi_obj_α, - PGrpd.objFiber'_rfl, Set.mem_setOf_eq, PGrpd.mapFiber'_rfl, sigmaMap_obj_base, - Functor.Grothendieck.forget_obj, Functor.comp_map, Functor.Grothendieck.forget_map, + simp only [lam, comp_obj, twoCell, sigma.fstNatTrans_app, + PGrpd.objFiber'_rfl, PGrpd.mapFiber'_rfl, sigmaMap_obj_base, + Functor.comp_map, sigmaMap_obj_fiber] change (whiskerLeftInvLamObjObjSigMap A β f.base).app ((A.map f.base).obj x.fiber) = _ simp only [comp_obj, whiskerLeftInvLamObjObjSigMap, lamObjFiberObjCompSigMap, NatTrans.comp_app, whiskerLeft_app, lamObjFiberObjCompSigMap.app, sigmaMap_obj_base, - Functor.Grothendieck.forget_obj, Functor.comp_map, Functor.Grothendieck.forget_map, + Functor.comp_map, sigmaMap_obj_fiber, eqToHom_app] have h : (A.map (CategoryTheory.inv (Hom.base f))).obj ((A.map (Hom.base f)).obj x.fiber) = x.fiber := by simp [← Functor.comp_obj, ← Grpd.comp_eq_comp] @@ -1528,13 +1523,13 @@ lemma strongTrans.twoCell_lam_app_fiber {x y : ∫ A} (f : x ⟶ y) : ((strongTrans.twoCell (β ⋙ PGrpd.forgetToGrpd) (lam A β) (lam_comp_forgetToGrpd ..) (Hom.base f)).app ((A.map (Hom.base f)).obj x.fiber)).fiber = eqToHom (by - simp only [comp_obj, sigma_obj, sigmaMap_obj_base, Functor.Grothendieck.forget_obj, + simp only [comp_obj, sigmaMap_obj_base, twoCell_app_base, Functor.comp_map, eqToHom_map, Functor.Grothendieck.forget_map, Functor.Grothendieck.base_eqToHom, sigmaMap_obj_fiber] simp only [← Functor.comp_obj, ← Grpd.comp_eq_comp] apply eq_of_heq simp only [Grpd.comp_eq_comp, Functor.comp_obj, Grpd.eqToHom_obj, - heq_cast_iff_heq, cast_heq_iff_heq] + cast_heq_iff_heq] have h : (A.map (inv f.base)).obj ((A.map f.base).obj x.fiber) = x.fiber := by simp [← Functor.comp_obj, ← Grpd.comp_eq_comp] have hf : ∀ {a b : A.obj x.base}, a = b → @@ -1560,8 +1555,8 @@ lemma mapStrongTrans_map_lam_map_fiber_fiber_heq {x y} (f : x ⟶ y) : rw [strongTrans.twoCell_lam_app_fiber] slice_lhs 2 3 => rw [Functor.map_comp, eqToHom_map] rw [strongTrans.app_lam_map_fiber] - simp only [mapStrongTrans_obj_base, comp_obj, Functor.Grothendieck.forget_obj, sigma_obj, - sigmaMap_obj_base, Functor.comp_map, Functor.Grothendieck.forget_map, sigmaMap_obj_fiber, + simp only [mapStrongTrans_obj_base, comp_obj, + sigmaMap_obj_base, Functor.comp_map, sigmaMap_obj_fiber, comp_base, strongTrans.app_lam_map_base, Category.assoc, eqToHom_trans_assoc, eqToHom_comp_heq_iff] simp [← Functor.comp_map, PGrpd.mapFiber] @@ -1574,7 +1569,7 @@ lemma mapStrongTrans_map_lam_map_fiber_fiber_heq {x y} (f : x ⟶ y) : have := Functor.congr_map β this simp [Functor.Grothendieck.Hom.congr this] rw! [Category.comp_id, CategoryTheory.Functor.map_id] - simp only [Grothendieck.Hom.id_base, Grpd.id_eq_id, id_obj, eqToHom_refl, Functor.id_map, + simp only [Grothendieck.Hom.id_base, Grpd.id_eq_id, eqToHom_refl, Category.id_comp, heq_eq_eq] erw [Category.comp_id] rfl @@ -1603,7 +1598,7 @@ lemma lamObjFiber_obj_obj_inversion_heq (x) : (lamObjFiber A (inversion B s hs) x).obj.obj ≍ strongTrans.app B s hs x := by dsimp only [lamObjFiber, lamObjFiberObj] rw! (castMode := .all) [pi.inversion_comp_forgetToGrpd B s hs] - simp [sec_eq_lift, Grpd.forgetToCat.eq_1, heq_eq_eq] + simp [sec_eq_lift, heq_eq_eq] symm apply Functor.IsPullback.lift_uniq · symm @@ -1636,9 +1631,10 @@ lemma strongTrans.twoCell_app_inversion {x y} (f : x ⟶ y) (a) : simp lemma mapStrongTrans_obj_inversion_fiber {x y} (f : x ⟶ y) (a) : - ((mapStrongTrans B s hs).obj ((A.map f ⋙ ι A y).obj ((A.map (CategoryTheory.inv f)).obj a))).fiber = + ((mapStrongTrans B s hs).obj + ((A.map f ⋙ ι A y).obj ((A.map (CategoryTheory.inv f)).obj a))).fiber = (strongTrans.app B s hs y).obj a := by - simp only [Functor.comp_obj, mapStrongTrans_obj_base, ι_obj_base, sigma_obj, + simp only [Functor.comp_obj, mapStrongTrans_obj_base, ι_obj_base, mapStrongTrans_obj_fiber, ι_obj_fiber, Functor.map_inv] simp [← Functor.comp_obj, ← Grpd.comp_eq_comp] @@ -1665,19 +1661,19 @@ lemma lamObjFiberObjCompSigMap_app_inversion {x y} (f : x ⟶ y) (a) : apply HEq.trans _ ((heq_of_eq h).trans (comp_eqToHom_heq ..)) fapply Functor.Groupoidal.Hom.hext' · simp - · simp only [Functor.map_inv, Functor.comp_obj, mapStrongTrans_obj_base, ι_obj_base, sigma_obj, + · simp only [Functor.map_inv, Functor.comp_obj, mapStrongTrans_obj_base, ι_obj_base, mapStrongTrans_map_base, Functor.Groupoidal.ιNatTrans_app_base, sigma_map] apply Grpd.Functor.hcongr_obj · rw [inversion_comp_forgetToGrpd] · rw [inversion_comp_forgetToGrpd] · rw [inversion_comp_forgetToGrpd] · rw [Functor.map_inv] - simp only [mapStrongTrans_obj_fiber, ι_obj_base, sigma_obj, ι_obj_fiber] + simp only [mapStrongTrans_obj_fiber, ι_obj_base, ι_obj_fiber] apply Grpd.Functor.hcongr_obj rfl _ _ HEq.rfl · simp [inversion_comp_forgetToGrpd] · apply lamObjFiber_obj_obj_inversion_heq · simp only [Functor.map_inv, Functor.comp_obj, mapStrongTrans_obj_base, ι_obj_base, - mapStrongTrans_obj_fiber, sigma_obj, ι_obj_fiber] + mapStrongTrans_obj_fiber, ι_obj_fiber] apply Grpd.Functor.hcongr_obj · rfl · simp @@ -1694,8 +1690,8 @@ lemma whiskerLeftInvLamObjObjSigMap_inversion_app {x y} (f : x ⟶ y) (a) : (strongTrans.twoCell B s hs f).app a := by simp [whiskerLeftInvLamObjObjSigMap, lamObjFiberObjCompSigMap] have h := Functor.congr_obj (((pi A B).map f).obj (PGrpd.objFiber' hs x)).obj.property a - simp only [sigma_obj, sigma.fstNatTrans_app, pi_obj_α, Functor.comp_obj, - Functor.Groupoidal.forget_obj, Functor.id_obj] at h + simp only [sigma.fstNatTrans_app, + Functor.id_obj] at h exact (comp_eqToHom_heq ..).trans (lamObjFiberObjCompSigMap_app_inversion ..) -- Match bundled groupoid coercions in the dependent fiber projections. @@ -1710,13 +1706,13 @@ lemma lamMapFiber_inversion_heq {x y} (f : x ⟶ y) : · rw! (castMode := .all) [inversion_comp_forgetToGrpd] congr 1 rw! [lamObjFiber_inversion_heq, PGrpd.objFiber'_heq] - simp only [pi_obj_α, Functor.Grothendieck.forget_obj, Grpd.coe_of, ← heq_eq_eq, - heq_cast_iff_heq, eqRec_heq_iff_heq, cast_heq_iff_heq] + simp only [Grpd.coe_of, ← heq_eq_eq, + heq_cast_iff_heq, eqRec_heq_iff, cast_heq_iff_heq] rfl · apply lamObjFiber_inversion_heq' · intro a a' ha subst ha - simp only [sigma_obj, sigma.fstNatTrans_app, pi_obj_α, Set.mem_setOf_eq, + simp only [sigma.fstNatTrans_app, lamMapFiber] exact whiskerLeftInvLamObjObjSigMap_inversion_app A B s hs f a @@ -1889,7 +1885,7 @@ lemma unLam_lam {Γ : Ctx} {A : Γ ⟶ U.{v}.Ty} (B : U.ext A ⟶ U.Ty) (b : U.e set_option backward.isDefEq.respectTransparency false in lemma lam_unLam {Γ : Ctx} {A : Γ ⟶ U.{v}.Ty} (B : U.ext A ⟶ U.Ty) (f : Γ ⟶ U.Tm) (f_tp : f ≫ U.tp = UPi.Pi B) : UPi.lam (UPi.unLam B f f_tp) = f := by - simp only [U_Tm, lam, USig.SigAux, unLam, toCoreAsSmallEquiv.symm_apply_eq] + simp only [lam, USig.SigAux, unLam, toCoreAsSmallEquiv.symm_apply_eq] erw [toCoreAsSmallEquiv.apply_symm_apply] rw [pi.lam_inversion] From 05a5ab39beda9e52ce4cf1a81c0626c3b760722a Mon Sep 17 00:00:00 2001 From: openhands Date: Thu, 29 Oct 2026 08:58:58 -0400 Subject: [PATCH 358/362] Add migration guidance and functor map probe --- .gitignore | 4 ++++ HoTTLean/Frontend/Commands.lean | 3 ++- README.md | 13 +++++++++---- docs/lean-v4.34.1/evidence/FunctorMapProbe.lean | 11 +++++++++++ 4 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 docs/lean-v4.34.1/evidence/FunctorMapProbe.lean diff --git a/.gitignore b/.gitignore index 193bae23..f832eac1 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,7 @@ docs/_includes/sorries.md *.pdfsync *.json *.auctex-auto + +## Local repair workspaces +.unity/ +.worktrees/ diff --git a/HoTTLean/Frontend/Commands.lean b/HoTTLean/Frontend/Commands.lean index 8533da46..28b3e017 100644 --- a/HoTTLean/Frontend/Commands.lean +++ b/HoTTLean/Frontend/Commands.lean @@ -21,7 +21,8 @@ def envDiff (old new : Environment) : Array ConstantInfo := Id.run do and return them as an axiom environment. Assumes that all such axioms are present in the ambient environment as definitions of type `CheckedAx _` under the same name. -/ -def computeAxioms (thyEnv : Environment) (constNm : Name) : MetaM ((E : Q(Axioms Name)) × Q(($E).Wf)) := do +def computeAxioms (thyEnv : Environment) (constNm : Name) : + MetaM ((E : Q(Axioms Name)) × Q(($E).Wf)) := do let axioms ← withEnv thyEnv <| collectAxioms constNm -- The output includes `constNm` if it is itself an axiom. let axioms := axioms.filter (· != constNm) diff --git a/README.md b/README.md index 4d899b32..8c1488ee 100644 --- a/README.md +++ b/README.md @@ -32,7 +32,7 @@ Mathematics in Lean](https://voidma.in/assets/papers/2026nawrocki_certifying_pro ### Dependencies We rely on [Mathlib](https://github.com/leanprover-community/mathlib4) -and [Poly](https://github.com/sinhp/Poly/), +and [Poly](https://github.com/sosudo/Poly/), a formalization of polynomial functors. ### How can I try out HoTTLean? @@ -46,17 +46,22 @@ then in a terminal execute lake exe cache get # Build the project lake build +# Build the natural model modules +lake build NaturalModel # Run tests (optional) lake test ``` Examples demonstrating the usage of SynthLean (for internal reasoning) and of our model definitions (for external reasoning) -can be found under `test/`: -- `test/unitt` specifies a type theory with a unit type. -- `test/hott0` defines HoTT0, +can be found under `HoTTLeanTest/`: +- `HoTTLeanTest/unitt.lean` specifies a type theory with a unit type. +- `HoTTLeanTest/hott0.lean` defines HoTT0, a version of HoTT where univalence only holds for h-sets. +The [Lean v4.34.1 migration record](docs/lean-v4.34.1/hottlean-changes.md) +lists the source changes, checks, and remaining limits. + ### Can I contribute to HoTTLean? Contributions are very welcome! diff --git a/docs/lean-v4.34.1/evidence/FunctorMapProbe.lean b/docs/lean-v4.34.1/evidence/FunctorMapProbe.lean new file mode 100644 index 00000000..d53dd930 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/FunctorMapProbe.lean @@ -0,0 +1,11 @@ +import HoTTLean.ForMathlib.Tactic.CategoryTheory.FunctorMap +universe u v +namespace CategoryTheory +variable {C : Type u} [Category.{v} C] +@[functor_map (attr := reassoc (attr := simp))] +theorem functorMapMigrationProbe {X Y : C} (f g : X ⟶ Y) (h : f = g) : f ≫ 𝟙 Y = g := by simpa using h +#check functorMapMigrationProbe_functor_map +#check functorMapMigrationProbe_functor_map_assoc +example {D : Type u} [Category.{v} D] (F : C ⥤ D) {X Y : C} (f g : X ⟶ Y) (h : f = g) : + F.map f = F.map g := (functor_map_of% (functorMapMigrationProbe f g h)) F +end CategoryTheory From d6c18f7280d669413d9050f65ec5c78600555fc1 Mon Sep 17 00:00:00 2001 From: openhands Date: Thu, 29 Oct 2026 08:58:59 -0400 Subject: [PATCH 359/362] Clean model and typechecker warnings --- HoTTLean/ForPoly.lean | 7 ++-- HoTTLean/Groupoids/ClovenIsofibration.lean | 14 +++++--- HoTTLean/Groupoids/IsPullback.lean | 2 +- HoTTLean/Groupoids/Sigma.lean | 36 +++++++++---------- HoTTLean/Model/Natural/Interpretation.lean | 6 ++-- HoTTLean/Model/Unstructured/Hurewicz.lean | 30 +++++++++------- .../Model/Unstructured/Interpretation.lean | 3 +- HoTTLean/Model/Unstructured/UHom.lean | 6 ++-- HoTTLean/Syntax/InversionLemmas.lean | 3 +- HoTTLean/Syntax/Synth.lean | 2 +- HoTTLean/Typechecker/Cache.lean | 9 +++-- HoTTLean/Typechecker/Evaluate.lean | 6 ++-- HoTTLean/Typechecker/Value.lean | 3 +- HoTTLean/Typechecker/ValueInversion.lean | 6 ++-- HoTTLeanTest/unitt.lean | 2 -- 15 files changed, 75 insertions(+), 60 deletions(-) diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 55cec0d1..34816105 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -359,7 +359,8 @@ theorem fst_comp_right (pair : Γ ⟶ P @ X) : fst P Y (pair ≫ P.functor.map f -- Simplification must see the apex of the polynomial fan. set_option backward.isDefEq.respectTransparency false in lemma snd'_eq (pair : Γ ⟶ P @ X) {R f g} (H : IsPullback (P := R) f g (fst P X pair) P.p) : - snd' P X pair H = pullback.lift (f ≫ pair) g (by simpa only [fst_eq, fan_fst, Category.assoc] using H.w) ≫ (fan P X).snd := by + snd' P X pair H = pullback.lift (f ≫ pair) g + (by simpa only [fst_eq, fan_fst, Category.assoc] using H.w) ≫ (fan P X).snd := by simp [snd', snd] simp only [← Category.assoc]; congr! 2 ext <;> simp @@ -545,12 +546,12 @@ lemma mk'_comp_cartesianNatTrans_app {E' B' Γ X : C} {P' : UvPoly E' B'} refine .trans ?_ this simp only [← Category.assoc]; congr 1; ext · change _ = _ ≫ pullback.fst (P'.fstProj X) P'.p - simp only [pullback.map, pullback.lift_fst, Category.assoc, pullback.lift_fst_assoc] + simp only [pullback.map, pullback.lift_fst, Category.assoc] symm slice_lhs 1 2 => apply pullback.lift_fst exact Category.assoc _ _ _ · change _ = _ ≫ pullback.snd (P'.fstProj X) P'.p - simp only [pullback.map, pullback.lift_snd, Category.assoc, pullback.lift_snd_assoc] + simp only [pullback.map, pullback.lift_snd, Category.assoc] rw [← Category.assoc] exact congrArg (fun k => k ≫ e) (pullback.lift_snd (f := P.fstProj X) (g := P.p) (f ≫ mk' P X y H x) g _).symm diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index 7889be7f..a1f9ebf0 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -159,7 +159,8 @@ def classifier.map.map {X Y} (f: X ⟶ Y) {a b : F.Fiber X} (m : a ⟶ b) : let i2 := I.liftIso f b.2 let i := Groupoid.inv i1 ≫ Fiber.fiberInclusion.map m ≫ i2 have e :𝟙 Y = eqToHom (by simp[obj_liftObj]) ≫ - F.map (CategoryTheory.inv i1 ≫ Fiber.fiberInclusion.map m ≫ i2) ≫ eqToHom (by simp[obj_liftObj]) + F.map (CategoryTheory.inv i1 ≫ Fiber.fiberInclusion.map m ≫ i2) ≫ + eqToHom (by simp[obj_liftObj]) := by simp [i1, i2, Fiber.functor_map_fiberInclusion_map, Functor.map_inv, map_liftIso'] have : F.IsHomLift (𝟙 Y) i := by @@ -260,7 +261,8 @@ set_option backward.isDefEq.respectTransparency false in lemma grothendieckClassifierIso.hom.map_id (X : ∫ I.classifier) : hom.map I (𝟙 X) = 𝟙 _ := by change I.liftIso (Hom.base (𝟙 X)) (hom.map_aux2 ..) ≫ - eqToHom (by simp [liftObj_id, Fiber.fiberInclusion]) ≫ Fiber.fiberInclusion.map (Hom.fiber (𝟙 X)) = 𝟙 _ + eqToHom (by simp [liftObj_id, Fiber.fiberInclusion]) ≫ + Fiber.fiberInclusion.map (Hom.fiber (𝟙 X)) = 𝟙 _ simp only [Groupoidal.id_base, liftIso_id, Groupoidal.id_fiber] rw [eqToHom_map] simp @@ -421,7 +423,8 @@ def iso {A : Type u} [Category.{v} A] {B : Type u₁} [Category.{v₁} B] (F : A -- The split laws simplify dependent transports through the semireducible `iso` definition. set_option backward.isDefEq.respectTransparency false in -instance {A : Type u} [Category.{v} A] {B : Type u₁} [Category.{v₁} B] (F : A ≅≅ B) : IsSplit (iso F) where + instance {A : Type u} [Category.{v} A] {B : Type u₁} [Category.{v₁} B] + (F : A ≅≅ B) : IsSplit (iso F) where liftObj_id h := by simp [← h, ← Functor.comp_obj] liftIso_id := by simp liftObj_comp := by simp @@ -473,7 +476,7 @@ def forget.liftIso_id {X: C} {X' : F.Groupoidal} (hX': Groupoidal.forget.obj X' forget.liftIso (𝟙 X) hX' = eqToHom (by simp [forget.liftObj_id]) := by dsimp [liftIso] rw! (castMode :=.all)[Category.comp_id] - simp only [Groupoidal.toTransport_eqToHom, ← heq_eq_eq, eqRec_heq_iff_heq] + simp only [Groupoidal.toTransport_eqToHom, ← heq_eq_eq, eqRec_heq_iff] congr! -- Unfold transport projections when simplifying dependent casts. @@ -483,7 +486,8 @@ lemma forget.liftObj_comp {X Y Z: C} (f : X ⟶ Y) (g : Y ⟶ Z) {Y' : F.Groupoidal} (hY' : forget.liftObj f hX' = Y') : forget.liftObj (f ≫ g) hX' = forget.liftObj g (liftObj_comp_aux (forget F) f hX' Y' hY') := by subst hX' hY' - simp [liftObj, Groupoidal.transport, Grothendieck.transport, Functor.map_comp, Grpd.comp_eq_comp, Grpd.forgetToCat] + simp [liftObj, Groupoidal.transport, Grothendieck.transport, Functor.map_comp, + Grpd.comp_eq_comp, Grpd.forgetToCat] -- Unfold transport projections when rewriting dependent casts. set_option backward.isDefEq.respectTransparency false in diff --git a/HoTTLean/Groupoids/IsPullback.lean b/HoTTLean/Groupoids/IsPullback.lean index 27524208..d73a2908 100644 --- a/HoTTLean/Groupoids/IsPullback.lean +++ b/HoTTLean/Groupoids/IsPullback.lean @@ -150,7 +150,7 @@ def isPullbackClassifierOfAsSmall : Functor.Groupoidal.forget (AsSmall.down ⋙ PGrpd.forgetToGrpd ⋙ AsSmall.up) (functorToAsSmallEquiv.symm A) := Functor.IsPullback.Paste.ofRight - (by simp [functorToAsSmallEquiv, ← Functor.assoc, ← toPGrpd_forgetToGrpd]; rfl) + (by simp [functorToAsSmallEquiv, ← Functor.assoc]; rfl) (by rfl) isPullbackAsSmall (isPullbackClassifier A) diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index 4fbc0ce3..b662115a 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -49,7 +49,8 @@ def sigmaMap : sigmaObj B x ⥤ sigmaObj B y := @[simp] theorem sigmaMap_obj_fiber (a) : ((sigmaMap B f).obj a).fiber = (B.map ((ιNatTrans f).app a.base)).obj (a.fiber) := rfl -theorem ιNatTrans_app_base (a : sigmaObj B x) : ((ιNatTrans f).app a.base) = homMk f (𝟙 (A.map f).obj a.base) := +theorem ιNatTrans_app_base (a : sigmaObj B x) : ((ιNatTrans f).app a.base) = + homMk f (𝟙 (A.map f).obj a.base) := rfl @[simp] theorem sigmaMap_map_base {a b : sigmaObj B x} {p : a ⟶ b} : @@ -121,7 +122,8 @@ set_option backward.isDefEq.respectTransparency false in apply hext · simp · simp only [sigmaObj, Functor.comp_obj, pre_obj_fiber, map_obj_fiber, Functor.whiskerRight_app, - ιNatTrans_comp_app, Functor.map_comp, eqToHom_map, Grpd.comp_eq_comp, Grpd.eqToHom_obj, cast_heq_iff_heq, heq_eq_eq] + ιNatTrans_comp_app, Functor.map_comp, eqToHom_map, Grpd.comp_eq_comp, Grpd.eqToHom_obj, + cast_heq_iff_heq, heq_eq_eq] aesop_cat -- Unfold bundled groupoids when elaborating dependent transport projections. @@ -352,7 +354,7 @@ lemma assocFibMap_comp {x y z : ∫ B} (f : x ⟶ y) (g : y ⟶ z) : · simp · simp conv => left; rw! (castMode := .all) [this] - simp only [Functor.comp_obj, Grpd.map_comp_map, Category.assoc, eqRec_heq_iff_heq, + simp only [Functor.comp_obj, Grpd.map_comp_map, Category.assoc, eqRec_heq_iff, eqToHom_comp_heq_iff, heq_eq_eq] congr 1 simp [← heq_eq_eq] @@ -439,14 +441,12 @@ lemma assocFibMap_assocHom_app {c c' : Γ} (f : c ⟶ c') (x : sigmaObj B c) : dsimp [assocFibMap, assocHom, assocIso] fapply Hom.hext' rfl HEq.rfl HEq.rfl · rfl - · simp only [objMk_base, Functor.comp_obj, sigmaMap_obj_base, homMk_base, Functor.comp_map, - sigmaMap_obj_fiber, objMk_fiber, homMk_fiber, preNatIso_hom_app_fiber, pre_comp, - Category.comp_id, heq_eq_eq] + · simp only [Functor.comp_obj, Functor.comp_map] symm -- The dependent fiber types require unfolding the bundled groupoid coercion. rw! (transparency := .default) (castMode := .all) [Functor.Groupoidal.id_fiber] rw! (transparency := .default) (castMode := .all) [homMk_fiber, preNatIso_hom_app_fiber] - simp [ιNatIso_hom] + simp rw! (transparency := .default) (castMode := .all) [homMk_fiber, Category.comp_id] apply eqToHom_heq_eqToHom rfl @@ -520,9 +520,8 @@ lemma assoc_inv_obj_fiber (x) : ((assoc B).inv.obj x).fiber = x.fiber.fiber := set_option backward.isDefEq.respectTransparency false in @[simp] lemma assoc_inv_map_base_base {x y} (f : x ⟶ y) : ((assoc B).inv.map f).base.base = f.base := by - simp only [assoc, Functor.Iso.symm_inv, functorIsoFrom_hom_obj, sigma_obj, assocFib, - functorIsoFrom_hom_map, sigma_map, comp_base, pre_map_base, assocIso_hom_app_base_base, - ι_map_base, ι_obj_base] + simp only [assoc, Functor.Iso.symm_inv, assocFib, functorIsoFrom_hom_map, comp_base, + pre_map_base, assocIso_hom_app_base_base, ι_map_base, ι_obj_base] erw [Category.comp_id] rfl @@ -531,10 +530,7 @@ set_option backward.isDefEq.respectTransparency false in @[simp] lemma assoc_inv_map_base_fiber {x y} (f : x ⟶ y) : ((assoc B).inv.map f).base.fiber = eqToHom (by simp) ≫ f.fiber.base := by - simp only [assoc, Functor.Iso.symm_inv, functorIsoFrom_hom_obj, sigma_obj, assocFib, - functorIsoFrom_hom_map, sigma_map, comp_base, assocIso_hom_app_base_base, - Functor.Groupoidal.comp_fiber, assocIso_hom_app_base_fiber, Functor.comp_obj, - CategoryTheory.Functor.map_id, Category.id_comp] + simp only [assoc, Functor.Iso.symm_inv] rw! (transparency := .default) [functorIsoFrom_hom_map] simp only [comp_base, Functor.Groupoidal.comp_fiber, assocIso_hom_app_base_base, assocHom, assocIso_hom_app_base_fiber, assocFib] @@ -550,15 +546,15 @@ set_option backward.isDefEq.respectTransparency false in @[simp] lemma assoc_inv_map_fiber {x y} (f : x ⟶ y) : ((assoc B).inv.map f).fiber = eqToHom (by - simp only [assoc_inv_obj_fiber, sigma_map, - Functor.comp_map, sigmaMap_obj_fiber] - conv => rhs; rw! (transparency := .default) [← Functor.comp_obj, ← Grpd.comp_eq_comp, ← Functor.map_comp] + simp only [assoc_inv_obj_fiber, Functor.comp_map] + conv => rhs; rw! (transparency := .default) [← Functor.comp_obj, ← Grpd.comp_eq_comp, + ← Functor.map_comp] rfl) ≫ f.fiber.fiber := by simp only [assoc, Functor.Iso.symm_inv] rw! (transparency := .default) [functorIsoFrom_hom_map] simp [assocFib, assocHom] rw! (transparency := .default) [CategoryTheory.Functor.map_id] - simp only [Category.id_comp, Category.assoc, eqToHom_trans] + simp only [Category.id_comp] rfl -- Unfold the bundled groupoid wrappers when matching dependent projections. @@ -600,7 +596,7 @@ set_option backward.isDefEq.respectTransparency false in lemma assoc_comp_fiber {Δ : Type u₄} [Groupoid.{v₄} Δ] (σ : Δ ⥤ Γ) {x y} (f : x ⟶ y) : Hom.fiber (((assoc (pre A σ ⋙ B)).hom ⋙ map (eqToHom (sigma_naturality ..).symm) ⋙ pre (sigma A B) σ).map f) ≍ Hom.fiber ((pre B (pre A σ) ⋙ (assoc B).hom).map f) := by - simp only [assoc_hom, Functor.comp_obj, sigma_obj, Functor.comp_map, sigma_map, pre_map_fiber, + simp only [assoc_hom, Functor.comp_obj, Functor.comp_map, pre_map_fiber, map_map_fiber, Functor.Groupoidal.functorTo_obj_base, Functor.Groupoidal.forget_obj, Functor.Groupoidal.functorTo_map_base, forget_map, Grpd.comp_eq_comp, Functor.Groupoidal.functorTo_obj_fiber, assocFibObj, Functor.Groupoidal.functorTo_map_fiber, @@ -625,7 +621,7 @@ lemma assoc_comp {Δ : Type u₄} [Groupoid.{v₄} Δ] (σ : Δ ⥤ Γ) : conv => right; rw [← Functor.assoc, pre_comp_forget] simp only [Functor.assoc, pre_comp_forget] · intro x - simp only [Functor.comp_obj, sigma_obj, pre_obj_fiber, map_obj_fiber, assoc_hom_obj_base, + simp only [Functor.comp_obj, pre_obj_fiber, map_obj_fiber, assoc_hom_obj_base, eqToHom_app, heq_eq_eq] rw [eqToHom_eq_homOf_map] apply Functor.Groupoidal.hext diff --git a/HoTTLean/Model/Natural/Interpretation.lean b/HoTTLean/Model/Natural/Interpretation.lean index ea27fa40..415bf644 100644 --- a/HoTTLean/Model/Natural/Interpretation.lean +++ b/HoTTLean/Model/Natural/Interpretation.lean @@ -1094,7 +1094,8 @@ theorem EqTmIH.idRec {Γ A M M' t t' r r' u u' h h' l l'} : refine ⟨_, hΓ, _, _, (I.mem_ofType_ofTerm_subst _ (.snoc (.sub1 _ _ _ utp hu) _ _ _ ?_ hh) ?_).1 hM, _, I.mem_ofTerm_idRec.2 ⟨_, _, ht, _, ttp, B, ?b, _, hM, _, hr, ?a, _, hu, utp, _, hh, htp, rfl⟩, - I.mem_ofTerm_idRec.2 ⟨_, _, ht', _, ttp, B, ?b, _, hM', _, hr', ?a, _, hu', utp, _, hh', htp, rfl⟩, + I.mem_ofTerm_idRec.2 + ⟨_, _, ht', _, ttp, B, ?b, _, hM', _, hr', ?a, _, hu', utp, _, hh', htp, rfl⟩, mkIdRec_tp ..⟩ · rw [htp, Beq, comp_mkId] · congr 1 <;> simp @@ -1208,7 +1209,8 @@ theorem EqTmIH.pair_fst_snd {Γ A B p l l'} : exact have h1 := I.mem_ofTerm_fst.2 ⟨by omega, _, hA, _, hB, _, hp, ptp, rfl⟩ have h2 := I.mem_ofTerm_snd.2 ⟨by omega, _, hA, _, hB, _, hp, ptp, rfl⟩ - have pr := I.mem_ofTerm_pair.2 ⟨rfl, _, h1, _, mkFst_tp .., _, hB, _, h2, mkSnd_tp .., by simp⟩ + have pr := I.mem_ofTerm_pair.2 + ⟨rfl, _, h1, _, mkFst_tp .., _, hB, _, h2, mkSnd_tp .., by simp⟩ ⟨_, hΓ, _, _, hP, _, hp, pr, ptp⟩ theorem EqTmIH.code_el {Γ a l} : diff --git a/HoTTLean/Model/Unstructured/Hurewicz.lean b/HoTTLean/Model/Unstructured/Hurewicz.lean index cb7b4bd5..491df329 100644 --- a/HoTTLean/Model/Unstructured/Hurewicz.lean +++ b/HoTTLean/Model/Unstructured/Hurewicz.lean @@ -76,7 +76,8 @@ lemma δ0_app_I_obj_comp_symm_app (X) : cyl.δ0.app (cyl.I.obj X) ≫ cyl.symm.a NatTrans.congr_app (cyl.whiskerLeft_I_δ0_symm) X @[reassoc (attr := simp)] -lemma δ1_app_I_obj_comp_symm_app (X) : cyl.δ1.app (cyl.I.obj X) ≫ cyl.symm.app X = cyl.I.map (cyl.δ1.app X) := +lemma δ1_app_I_obj_comp_symm_app (X) : + cyl.δ1.app (cyl.I.obj X) ≫ cyl.symm.app X = cyl.I.map (cyl.δ1.app X) := NatTrans.congr_app (cyl.whiskerLeft_I_δ1_symm) X @[reassoc (attr := simp)] @@ -364,7 +365,8 @@ open PolymorphicIdIntro section connection -variable (hrwcz0 : Hurewicz cyl U0.tp) {Γ Δ : Ctx} (σ : Δ ⟶ Γ) {A : Γ ⟶ U0.Ty} (a : Γ ⟶ U0.Tm) (a_tp : a ≫ U0.tp = A) +variable (hrwcz0 : Hurewicz cyl U0.tp) {Γ Δ : Ctx} (σ : Δ ⟶ Γ) + {A : Γ ⟶ U0.Ty} (a : Γ ⟶ U0.Tm) (a_tp : a ≫ U0.tp = A) /-- Fixing `Γ ⊢ a : A`, `ev` / `substConsEv` can be viewed as the cubical substitution `(i : I);(x : A).(p : Id(a,x)) ⊢ p' i : A`, @@ -430,7 +432,8 @@ lemma substConsEv_var : P0.substConsEv a a_tp ≫ var .. = P0.unpath (A := disp simp [substConsEv] @[reassoc (attr := simp)] -lemma δ0_substConsEv : cyl.δ0.app _ ≫ P0.substConsEv a a_tp = disp .. ≫ disp .. ≫ U0.sec A a a_tp := by +lemma δ0_substConsEv : cyl.δ0.app _ ≫ P0.substConsEv a a_tp = + disp .. ≫ disp .. ≫ U0.sec A a a_tp := by apply (disp_pullback ..).hom_ext · simp [substConsEv] · simp [substConsEv] @@ -582,7 +585,7 @@ lemma symmConnection_tp : P0.symmConnection hrwcz0 a a_tp ≫ U0.tp = @[simp] lemma δ0_symmConnection : cyl.δ0.app _ ≫ P0.symmConnection hrwcz0 a a_tp = cyl.π.app _ ≫ disp .. ≫ U0.disp A ≫ a := by - simp only [motiveCtx, polymorphicIdIntro_Id, Functor.id_obj, symmConnection, Functor.comp_obj, + simp only [motiveCtx, Functor.id_obj, symmConnection, Functor.comp_obj, δ0_app_I_obj_comp_symm_app_assoc] erw [I_δ0_connection] -- FIXME @@ -596,7 +599,7 @@ lemma I_δ0_symmConnection : cyl.I.map (cyl.δ0.app _) ≫ P0.symmConnection hrw @[simp] lemma I_δ1_symmConnection : cyl.I.map (cyl.δ1.app _) ≫ P0.symmConnection hrwcz0 a a_tp = P0.ev a a_tp := by - simp only [motiveCtx, polymorphicIdIntro_Id, Functor.id_obj, symmConnection, Functor.comp_obj, + simp only [motiveCtx, Functor.id_obj, symmConnection, Functor.comp_obj, I_map_δ1_app_comp_symm_app_assoc] erw [δ1_connection] -- FIXME @@ -631,7 +634,7 @@ lemma pathSymmConnection_tp : P0.pathSymmConnection hrwcz0 a a_tp ≫ U0.tp = @[simp] lemma δ0_pathSymmConnection : cyl.δ0.app _ ≫ P0.pathSymmConnection hrwcz0 a a_tp = disp .. ≫ disp .. ≫ P0.polymorphicIdIntro.refl a a_tp := by - simp only [polymorphicIdIntro_Id, Functor.id_obj, pathSymmConnection, motiveCtx, ← path_comp, + simp only [Functor.id_obj, pathSymmConnection, motiveCtx, ← path_comp, δ0_π'_app_assoc, polymorphicIdIntro_refl, NatTrans.naturality_assoc, Functor.id_map] rw! (transparency := .default) [I_δ0_symmConnection] simp @@ -639,7 +642,7 @@ lemma δ0_pathSymmConnection : cyl.δ0.app _ ≫ P0.pathSymmConnection hrwcz0 a @[simp] lemma δ1_pathSymmConnection : cyl.δ1.app _ ≫ P0.pathSymmConnection hrwcz0 a a_tp = U0.var _ := by - simp only [polymorphicIdIntro_Id, Functor.id_obj, pathSymmConnection, motiveCtx, ← path_comp, + simp only [Functor.id_obj, pathSymmConnection, motiveCtx, ← path_comp, δ1_π'_app_assoc] rw! (transparency := .default) [I_δ1_symmConnection] simp @@ -685,13 +688,13 @@ lemma substConnection_var : P0.substConnection hrwcz0 a a_tp ≫ var .. = @[reassoc (attr := simp)] lemma δ0_substConnection : cyl.δ0.app _ ≫ P0.substConnection hrwcz0 a a_tp = disp .. ≫ disp .. ≫ reflInst _ a a_tp := by - simp only [polymorphicIdIntro_Id, Functor.id_obj, motiveCtx, substConnection, comp_substCons, + simp only [Functor.id_obj, motiveCtx, substConnection, comp_substCons, δ0_π'_app_assoc, ← cyl.δ1_naturality_assoc, polymorphicIdIntro_refl] rw! (transparency := .default) [δ0_pathSymmConnection] apply (disp_pullback ..).hom_ext · simp · apply (disp_pullback ..).hom_ext - · simp only [substCons_disp, substCons_var, Category.assoc, sec_var] + · simp only [substCons_disp, substCons_var] rw! (transparency := .default) [I_δ0_symmConnection] simp · simp @@ -702,7 +705,7 @@ lemma δ1_substConnection : cyl.δ1.app _ ≫ P0.substConnection hrwcz0 a a_tp = apply (disp_pullback ..).hom_ext · simp only [substCons_var, Category.id_comp] · apply (disp_pullback ..).hom_ext - · simp only [symmConnection, motiveCtx, polymorphicIdIntro_Id, Functor.comp_obj, + · simp only [symmConnection, motiveCtx, Functor.comp_obj, δ1_app_I_obj_comp_symm_app_assoc, cyl.δ1_naturality_assoc] rw! (transparency := .default) [δ1_connection] simp @@ -712,7 +715,7 @@ lemma δ1_substConnection : cyl.δ1.app _ ≫ P0.substConnection hrwcz0 a a_tp = lemma substConnection_comp_motiveSubst [hrwcz0.IsUniform] : P0.substConnection hrwcz0 (σ ≫ a) (by simp [a_tp]) ≫ motiveSubst _ σ a a_tp rfl = cyl.I.map (motiveSubst _ σ a a_tp) ≫ P0.substConnection hrwcz0 a a_tp := by - simp only [polymorphicIdIntro_Id, motiveCtx, motiveSubst] + simp only [motiveCtx, motiveSubst] apply (disp_pullback ..).hom_ext · simp only [Category.assoc, substWk_var] erw [substConnection_var] @@ -739,7 +742,8 @@ def polymorphicIdElim (hrwcz0 : Hurewicz cyl U0.tp) [hrwcz0.IsUniform] [hrwcz0.I (U1 : UnstructuredUniverse Ctx) (hrwcz1 : Hurewicz cyl U1.tp) [Hurewicz.IsUniform hrwcz1] [Hurewicz.IsNormal hrwcz1] : PolymorphicIdElim (polymorphicIdIntro P0) U1 where jElim a a_tp C c c_tp := cyl.δ1.app _ ≫ hrwcz1.lift (disp .. ≫ disp .. ≫ c) - (substConnection P0 hrwcz0 a a_tp ≫ C) (by rw [δ0_substConnection_assoc]; simp [c_tp]) -- FIXME simp failed + (substConnection P0 hrwcz0 a a_tp ≫ C) + (by rw [δ0_substConnection_assoc]; simp [c_tp]) -- FIXME simp failed jElim_comp σ A a a_tp C c c_tp := by slice_rhs 1 2 => rw [← δ1_naturality] slice_rhs 2 3 => rw [← hrwcz1.lift_comp] @@ -747,7 +751,7 @@ def polymorphicIdElim (hrwcz0 : Hurewicz cyl U0.tp) [hrwcz0.IsUniform] [hrwcz0.I · simp [motiveSubst, substWk_disp_assoc] · rw [substConnection_comp_motiveSubst_assoc] jElim_tp a a_tp C c c_tp := by - simp only [motiveCtx, polymorphicIdIntro_Id, Category.assoc, Hurewicz.lift_comp_self'] + simp only [motiveCtx, Category.assoc, Hurewicz.lift_comp_self'] erw [δ1_substConnection_assoc] -- FIXME simp, rw failed reflSubst_jElim {Γ A} a a_tp C c c_tp := calc _ _ = cyl.δ1.app Γ ≫ cyl.I.map (reflInst _ a a_tp) ≫ diff --git a/HoTTLean/Model/Unstructured/Interpretation.lean b/HoTTLean/Model/Unstructured/Interpretation.lean index 6e4f9781..fdd82111 100644 --- a/HoTTLean/Model/Unstructured/Interpretation.lean +++ b/HoTTLean/Model/Unstructured/Interpretation.lean @@ -1084,7 +1084,8 @@ theorem EqTmIH.idRec {Γ A M M' t t' r r' u u' h h' l l'} : refine ⟨_, hΓ, _, _, (I.mem_ofType_ofTerm_subst _ (.snoc (.sub1 _ _ _ utp hu) _ _ _ ?_ hh) ?_).1 hM, _, I.mem_ofTerm_idRec.2 ⟨_, _, ht, _, ttp, B, ?b, _, hM, _, hr, ?a, _, hu, utp, _, hh, htp, rfl⟩, - I.mem_ofTerm_idRec.2 ⟨_, _, ht', _, ttp, B, ?b, _, hM', _, hr', ?a, _, hu', utp, _, hh', htp, rfl⟩, + I.mem_ofTerm_idRec.2 + ⟨_, _, ht', _, ttp, B, ?b, _, hM', _, hr', ?a, _, hu', utp, _, hh', htp, rfl⟩, idRec_tp (I_eq := _) ..⟩ · rw [htp, Beq, ← Id_comp] congr 1 <;> simp [sAeq] diff --git a/HoTTLean/Model/Unstructured/UHom.lean b/HoTTLean/Model/Unstructured/UHom.lean index c5d215c8..bdd1e4cd 100644 --- a/HoTTLean/Model/Unstructured/UHom.lean +++ b/HoTTLean/Model/Unstructured/UHom.lean @@ -55,7 +55,8 @@ def Hom.subst (M : UnstructuredUniverse Ctx) Hom (M.pullback ((σ) ≫ A)) (M.pullback A) := let Aσ := (σ) ≫ A { mapTm := - (M.disp_pullback A).lift (M.var Aσ) (M.disp Aσ ≫ σ) (by exact (M.disp_pullback Aσ).w.trans (Category.assoc _ _ _).symm) + (M.disp_pullback A).lift (M.var Aσ) (M.disp Aσ ≫ σ) + (by exact (M.disp_pullback Aσ).w.trans (Category.assoc _ _ _).symm) mapTy := (σ) pb := by change IsPullback _ (M.disp Aσ) (M.disp A) σ @@ -100,7 +101,8 @@ def UHom.comp {M N O : UnstructuredUniverse Ctx} (α : UHom M N) (β : UHom N O) asTm := α.asTm ≫ β.mapTm U_pb := α.U_pb.paste_horiz β.pb -def UHom.comp_assoc {M N O P : UnstructuredUniverse Ctx} (α : UHom M N) (β : UHom N O) (γ : UHom O P) : +def UHom.comp_assoc {M N O P : UnstructuredUniverse Ctx} (α : UHom M N) (β : UHom N O) + (γ : UHom O P) : comp (comp α β) γ = comp α (comp β γ) := by simp [comp, Hom.comp] diff --git a/HoTTLean/Syntax/InversionLemmas.lean b/HoTTLean/Syntax/InversionLemmas.lean index 663ff739..a5bccf5b 100644 --- a/HoTTLean/Syntax/InversionLemmas.lean +++ b/HoTTLean/Syntax/InversionLemmas.lean @@ -289,7 +289,8 @@ theorem WfTm.inv_pair {Γ B C t u l₀ l l'} : E ∣ Γ ⊢[l₀] .pair l l' B t (E ∣ Γ ⊢[l₂] u' : B.subst t'.toSb) ∧ (E ∣ Γ ⊢[l] C ≡ .sigma l₁ l₂ A B) from fun h => this h rfl - mutual_induction WfCtx <;> grind [WfTp.sigma, WfTm.wf_tp, EqTp.refl_tp, EqTp.symm_tp, EqTp.trans_tp] + mutual_induction WfCtx <;> + grind [WfTp.sigma, WfTm.wf_tp, EqTp.refl_tp, EqTp.symm_tp, EqTp.trans_tp] theorem WfTm.inv_fst {Γ A B C p l₀ l l'} : E ∣ Γ ⊢[l₀] .fst l l' A B p : C → l₀ = l ∧ (E ∣ Γ ⊢[max l l'] p : .sigma l l' A B) ∧ (E ∣ Γ ⊢[l₀] C ≡ A) := by diff --git a/HoTTLean/Syntax/Synth.lean b/HoTTLean/Syntax/Synth.lean index b168d9eb..4e8f9257 100644 --- a/HoTTLean/Syntax/Synth.lean +++ b/HoTTLean/Syntax/Synth.lean @@ -133,7 +133,7 @@ theorem WfTm.tp_eq_synthTp : ∀ {Γ l A t}, E ∣ Γ ⊢[l] t : A → E ∣ Γ case snd' => grind [WfTp.subst, WfSb.toSb, WfTm.fst] case refl' => simp only [synthTp] - gcongr <;> grind + gcongr case idRec' C _ _ _ _ _ _ _ _ _ => unfold synthTp apply EqTp.refl_tp <| C.subst <| WfSb.snoc (WfSb.toSb ..) .. diff --git a/HoTTLean/Typechecker/Cache.lean b/HoTTLean/Typechecker/Cache.lean index 23e70989..d7ec9b39 100644 --- a/HoTTLean/Typechecker/Cache.lean +++ b/HoTTLean/Typechecker/Cache.lean @@ -9,7 +9,8 @@ structure Caches where checkTm : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq × ExprStructEq) Expr := {} synthTm : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq) (Expr × Expr) := {} equateTp : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq × ExprStructEq) Expr := {} - equateTm : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq × ExprStructEq × ExprStructEq) Expr := {} + equateTm : Std.HashMap + (ExprStructEq × ExprStructEq × ExprStructEq × ExprStructEq × ExprStructEq) Expr := {} equateNeutTm : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq) Expr := {} evalTp : Std.HashMap (ExprStructEq × ExprStructEq) (Expr × Expr) := {} evalTm : Std.HashMap (ExprStructEq × ExprStructEq) (Expr × Expr) := {} @@ -19,14 +20,16 @@ structure Caches where evalClosTp : Std.HashMap (ExprStructEq × ExprStructEq) (Expr × Expr) := {} forceClosTp : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq) (Expr × Expr) := {} evalClos₂Tp : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq) (Expr × Expr) := {} - forceClos₂Tp : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq × ExprStructEq) (Expr × Expr) := {} + forceClos₂Tp : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq × ExprStructEq) + (Expr × Expr) := {} evalClosTm : Std.HashMap (ExprStructEq × ExprStructEq) (Expr × Expr) := {} forceClosTm : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq) (Expr × Expr) := {} evalEl : Std.HashMap (ExprStructEq) (Expr × Expr) := {} evalApp : Std.HashMap (ExprStructEq × ExprStructEq) (Expr × Expr) := {} evalFst : Std.HashMap (ExprStructEq) (Expr × Expr) := {} evalSnd : Std.HashMap (ExprStructEq) (Expr × Expr) := {} - evalIdRec : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq × ExprStructEq) (Expr × Expr) := {} + evalIdRec : Std.HashMap (ExprStructEq × ExprStructEq × ExprStructEq × ExprStructEq) + (Expr × Expr) := {} inductive TypecheckerM.CacheEntry | checkTp (vΓ l T : ExprStructEq) diff --git a/HoTTLean/Typechecker/Evaluate.lean b/HoTTLean/Typechecker/Evaluate.lean index e35a212c..260980ca 100644 --- a/HoTTLean/Typechecker/Evaluate.lean +++ b/HoTTLean/Typechecker/Evaluate.lean @@ -720,7 +720,7 @@ partial def evalFst (vp : Q(Val $χ)) : TypecheckerM ((v : Q(Val $χ)) × apply EqTm.fst_pair Beq.wf_left t u |>.symm_tm.trans_tm gcongr apply EqTm.trans_tm _ eqt.symm_tm - gcongr <;> assumption + gcongr apply v.conv_nf (this.conv_eq Aeq) Aeq.symm_tp )⟩ | ~q(.neut $n (.sigma $k $k' $vA $vB)) => @@ -754,14 +754,14 @@ partial def evalSnd (vp : Q(Val $χ)) : TypecheckerM ((v : Q(Val $χ)) × apply EqTm.fst_pair Beq.wf_left t u |>.symm_tm.trans_tm gcongr apply EqTm.trans_tm _ eqt.symm_tm - gcongr <;> assumption + gcongr replace w := w.conv_tp <| Beq.symm_tp.subst_eq (EqSb.toSb feq) apply w.conv_tm apply EqTm.snd_pair Beq.wf_left t u |>.symm_tm.conv_eq (Beq'.wf_left.subst_eq (EqSb.toSb feq)) |>.trans_tm _ apply EqTm.symm_tm; gcongr apply eqt.trans_tm - apply EqTm.symm_tm; gcongr <;> assumption + apply EqTm.symm_tm; gcongr )⟩ | ~q(.neut $n (.sigma $k $k' $vA $vB)) => do let ⟨vf, vfpost⟩ ← evalFst q($vp) diff --git a/HoTTLean/Typechecker/Value.lean b/HoTTLean/Typechecker/Value.lean index 425f3924..f2ddc000 100644 --- a/HoTTLean/Typechecker/Value.lean +++ b/HoTTLean/Typechecker/Value.lean @@ -311,7 +311,8 @@ private theorem wf_expr : (∀ {Γ l vt t A}, ValEqTm E Γ l vt t A → E ∣ Γ ⊢[l] t : A) ∧ (∀ {Γ l vt t A}, NeutEqTm E Γ l vt t A → E ∣ Γ ⊢[l] t : A) ∧ (∀ {Γ l l' A vB B}, ClosEqTp E Γ l l' A vB B → E ∣ (A, l) :: Γ ⊢[l'] B) ∧ - (∀ {Γ A l B l' l'' cC C}, Clos₂EqTp E Γ A l B l' l'' cC C → E ∣ (B, l') :: (A, l) :: Γ ⊢[l''] C) ∧ + (∀ {Γ A l B l' l'' cC C}, Clos₂EqTp E Γ A l B l' l'' cC C → + E ∣ (B, l') :: (A, l) :: Γ ⊢[l''] C) ∧ (∀ {Γ l l' A B vb b}, ClosEqTm E Γ l l' A B vb b → E ∣ (A, l) :: Γ ⊢[l'] b : B) ∧ (∀ {Γ Eᵥ σ Γ'}, EnvEqSb E Γ Eᵥ σ Γ' → WfSb E Γ σ Γ') := by mutual_induction ValEqTp diff --git a/HoTTLean/Typechecker/ValueInversion.lean b/HoTTLean/Typechecker/ValueInversion.lean index 3707e4b9..a3c8041c 100644 --- a/HoTTLean/Typechecker/ValueInversion.lean +++ b/HoTTLean/Typechecker/ValueInversion.lean @@ -203,10 +203,12 @@ theorem NeutEqTm.inv_fst {Γ C vp f l₀ l l'} : NeutEqTm E Γ l₀ (.fst l l' v theorem NeutEqTm.inv_snd {Γ C vp s l₀ l l'} : NeutEqTm E Γ l₀ (.snd l l' vp) s C → l₀ = l' ∧ ∃ A B p, NeutEqTm E Γ (max l l') vp p (.sigma l l' A B) ∧ - (E ∣ Γ ⊢[l'] s ≡ .snd l l' A B p : C) ∧ (E ∣ Γ ⊢[l'] C ≡ B.subst (Expr.fst l l' A B p).toSb) := by + (E ∣ Γ ⊢[l'] s ≡ .snd l l' A B p : C) ∧ + (E ∣ Γ ⊢[l'] C ≡ B.subst (Expr.fst l l' A B p).toSb) := by suffices ∀ {Γ l₀ vn n C}, NeutEqTm E Γ l₀ vn n C → ∀ {vp l l'}, vn = .snd l l' vp → l₀ = l' ∧ ∃ A B p, NeutEqTm E Γ (max l l') vp p (.sigma l l' A B) ∧ - (E ∣ Γ ⊢[l'] n ≡ .snd l l' A B p : C) ∧ (E ∣ Γ ⊢[l'] C ≡ B.subst (Expr.fst l l' A B p).toSb) from + (E ∣ Γ ⊢[l'] n ≡ .snd l l' A B p : C) ∧ + (E ∣ Γ ⊢[l'] C ≡ B.subst (Expr.fst l l' A B p).toSb) from fun h => this h rfl mutual_induction NeutEqTm all_goals intros; try exact True.intro diff --git a/HoTTLeanTest/unitt.lean b/HoTTLeanTest/unitt.lean index a3263bc3..54ee242c 100644 --- a/HoTTLeanTest/unitt.lean +++ b/HoTTLeanTest/unitt.lean @@ -31,8 +31,6 @@ unitt def uniq_fn {A : Type} (f g : A → Unit) : Identity f g := by open SynthLean open CategoryTheory MonoidalCategory Model.UnstructuredUniverse GroupoidModel ChosenTerminal -instance : uHomSeq.IdSeq := sorry - theorem slen : univMax ≤ uHomSeq.length := by grind [uHomSeq, univMax] def Groupoid.asTy (G : Type 0) [Groupoid.{0,0} G] : (𝟭_ Ctx) ⟶ uHomSeq[0].Ty := From 20c4b230b0e0ae41e8fe2e8cb020a80908a3de57 Mon Sep 17 00:00:00 2001 From: openhands Date: Thu, 29 Oct 2026 09:01:40 -0400 Subject: [PATCH 360/362] Clean category migration warnings --- HoTTLean/ForMathlib.lean | 13 +-- .../Bicategory/Grothendieck.lean | 89 ++++++++++++------- HoTTLean/ForMathlib/CategoryTheory/Core.lean | 10 ++- .../CategoryTheory/FreeGroupoid.lean | 2 +- .../CategoryTheory/Functor/IsPullback.lean | 39 +++++--- .../MorphismProperty/WideSubcategory.lean | 2 +- .../ForMathlib/CategoryTheory/NatTrans.lean | 2 +- .../CategoryTheory/RepPullbackCone.lean | 17 ++-- HoTTLean/Grothendieck/Groupoidal/Basic.lean | 8 +- HoTTLean/Grothendieck/IsPullback.lean | 13 +-- HoTTLean/Pointed/Basic.lean | 6 +- 11 files changed, 124 insertions(+), 77 deletions(-) diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 02fb4478..56884213 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -19,8 +19,10 @@ to be upstreamed. -/ This comment space is for notes about mathlib definitions/theorems that should be fixed, refactored, or redesigned. -- AsSmall.down and AsSmall.up should have their universe level order changed so that the third value comes first. -- currently I often write AsSmall.{_,_,w} because the first two can be inferred but not the max universe. +- AsSmall.down and AsSmall.up should have their universe level order changed + so that the third value comes first. +- currently I often write AsSmall.{_,_,w} because the first two can be inferred + but not the max universe. -/ @@ -391,7 +393,7 @@ lemma functorToAsSmallEquiv_symm_apply_comp_right (F : C ⥤ E) : end -open ULift +open _root_.CategoryTheory.ULift instance (C : Type u) [Category.{v} C] : (downFunctor : ULift.{w} C ⥤ C).ReflectsIsomorphisms := @@ -600,7 +602,8 @@ theorem NatTrans.yonedaMk_app {X : C} (α : yoneda.obj X ⟶ F) : namespace Functor -theorem precomp_heq_of_heq_id {A B : Type u} {C : Type*} [Category.{v} A] [Category.{v} B] [Category C] +theorem precomp_heq_of_heq_id {A B : Type u} {C : Type*} + [Category.{v} A] [Category.{v} B] [Category C] (hAB : A = B) (h0 : HEq (inferInstance : Category A) (inferInstance : Category B)) {F : A ⥤ B} (h : HEq F (𝟭 B)) (G : B ⥤ C) : HEq (F ⋙ G) G := by subst hAB @@ -675,7 +678,7 @@ lemma Discrete.Hom.hext {α β : Type u} {x y : Discrete α} (x' y' : Discrete (hx : x ≍ x') (hy : y ≍ y') (f : x ⟶ y) (f' : x' ⟶ y') : f ≍ f' := by aesop_cat -open Prod in +open _root_.CategoryTheory.Prod in lemma Prod.sectR_comp_snd {C : Type u₁} [Category.{v₁} C] (Z : C) (D : Type u₂) [Category.{v₂} D] : sectR Z D ⋙ snd C D = 𝟭 D := rfl diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 2d0fe91b..0c0f50e4 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -64,7 +64,8 @@ variable (F : Pseudofunctor B Cat) {a b : B} end -lemma _root_.CategoryTheory.Functor.toPseudofunctor'_map₂ {C : Type u₁} [Category.{v₁} C] (F : C ⥤ Cat) +lemma _root_.CategoryTheory.Functor.toPseudofunctor'_map₂ + {C : Type u₁} [Category.{v₁} C] (F : C ⥤ Cat) {a b : LocallyDiscrete C} {f g : a ⟶ b} (η : f ⟶ g) : F.toPseudofunctor'.map₂ η = eqToHom (by obtain ⟨f⟩ := f @@ -75,7 +76,8 @@ lemma _root_.CategoryTheory.Functor.toPseudofunctor'_map₂ {C : Type u₁} [Cat -- Match the bundled Cat operations while elaborating these coherence laws. set_option backward.isDefEq.respectTransparency false in @[simps] -def _root_.CategoryTheory.NatTrans.toStrongTrans' {C : Type u₁} [Category.{v₁} C] (F G : C ⥤ Cat) (α : F ⟶ G) : +def _root_.CategoryTheory.NatTrans.toStrongTrans' {C : Type u₁} [Category.{v₁} C] + (F G : C ⥤ Cat) (α : F ⟶ G) : F.toPseudofunctor' ⟶ G.toPseudofunctor' where app x := α.app x.as naturality _ := eqToIso (α.naturality _) @@ -209,7 +211,8 @@ def map (α : F ⟶ G) : ∫ F ⥤ ∫ G where fiber := (α.app ⟨a.base⟩).toFunctor.obj a.fiber } map {a b} f := { base := f.1 - fiber := (α.naturality f.1.toLoc).inv.toNatTrans.app a.fiber ≫ (α.app ⟨b.base⟩).toFunctor.map f.2 } + fiber := (α.naturality f.1.toLoc).inv.toNatTrans.app a.fiber ≫ + (α.app ⟨b.base⟩).toFunctor.map f.2 } map_id a := by set_option backward.isDefEq.respectTransparency false in ext @@ -392,11 +395,13 @@ namespace Hom variable {X Y : ∫ F} (f g : Hom X Y) @[simp] -lemma mk_base (b : X.base ⟶ Y.base) (f : (F.map b).toFunctor.obj X.fiber ⟶ Y.fiber) : (mk b f).base = b := +lemma mk_base (b : X.base ⟶ Y.base) + (f : (F.map b).toFunctor.obj X.fiber ⟶ Y.fiber) : (mk b f).base = b := rfl @[simp] -lemma mk_fiber (b : X.base ⟶ Y.base) (f : (F.map b).toFunctor.obj X.fiber ⟶ Y.fiber) : (mk b f).fiber = f := +lemma mk_fiber (b : X.base ⟶ Y.base) + (f : (F.map b).toFunctor.obj X.fiber ⟶ Y.fiber) : (mk b f).fiber = f := rfl @[ext (iff := false)] @@ -435,7 +440,8 @@ end Hom attribute [local simp] eqToHom_map --- Cat functor projections in these dependent transport laws require the legacy elaborator transparency. +-- Cat functor projections in these dependent transport laws require the +-- legacy elaborator transparency. set_option backward.isDefEq.respectTransparency false in instance : Category (∫ F) where Hom X Y := Hom X Y @@ -715,7 +721,8 @@ lemma transportIso_hom_fiber (x : ∫ F) {c : C} (α : x.base ≅ c) : change (F.map α.inv).toFunctor.obj ((F.map α.hom).toFunctor.obj x.fiber) = x.fiber rw [← Cat.Hom.comp_obj, ← F.map_comp, α.hom_inv_id, F.map_id] rfl) := by - simp only [transportIso, CategoryTheory.Iso.symm_hom, isoMk_inv_fiber, CategoryTheory.Iso.refl_inv] + simp only [transportIso, CategoryTheory.Iso.symm_hom, isoMk_inv_fiber, + CategoryTheory.Iso.refl_inv] erw [Functor.map_id] simp @@ -783,7 +790,9 @@ a functor `Grothendieck.map : Grothendieck F ⥤ Grothendieck G`. def map (α : F ⟶ G) : Grothendieck F ⥤ Grothendieck G := functorTo (forget F) (fun X => (α.app X.base).toFunctor.obj X.fiber) - (fun {X Y} f => (eqToHom (congrArg Cat.Hom.toFunctor (α.naturality f.base).symm)).app X.fiber ≫ (α.app Y.base).toFunctor.map f.fiber) + (fun {X Y} f => + (eqToHom (congrArg Cat.Hom.toFunctor (α.naturality f.base).symm)).app X.fiber ≫ + (α.app Y.base).toFunctor.map f.fiber) (by -- Normalize the wrapped Cat functor transports during elaboration. set_option backward.isDefEq.respectTransparency false in @@ -833,7 +842,9 @@ end over category `Over E`. -/ def functor {E : Cat.{v, u}} : (E ⥤ Cat.{v,u}) ⥤ Over (T := Cat.{v,u}) E where obj F := Over.mk (X := E) (Y := Cat.of (∫ F)) (Grothendieck.forget F).toCatHom - map {_ _} α := Over.homMk (X:= E) (Grothendieck.map α).toCatHom (congrArg Functor.toCatHom Grothendieck.map_comp_forget) + map {_ _} α := + Over.homMk (X := E) (Grothendieck.map α).toCatHom + (congrArg Functor.toCatHom Grothendieck.map_comp_forget) map_id F := by ext exact Grothendieck.map_id_eq (F := F) @@ -981,10 +992,13 @@ lemma map_eq_pseudofunctor_map {G} (α : F ⟶ G) : map α = (toPseudoFunctor'Is -- Match the wrapped Cat transports before applying naturality. set_option backward.isDefEq.respectTransparency false in apply Hom.ext - · simp [map, toPseudoFunctor'Iso, toPseudoFunctor'Iso.hom, toPseudoFunctor'Iso.inv, Pseudofunctor.Grothendieck.map, NatTrans.toStrongTrans'] - rw [← NatIso.naturality_2 (eqToIso (congrArg Cat.Hom.toFunctor (G.map_id Y.base))) ((α.app Y.base).toFunctor.map f.fiber)] + · simp [map, toPseudoFunctor'Iso, toPseudoFunctor'Iso.hom, toPseudoFunctor'Iso.inv, + Pseudofunctor.Grothendieck.map, NatTrans.toStrongTrans'] + rw [← NatIso.naturality_2 (eqToIso (congrArg Cat.Hom.toFunctor (G.map_id Y.base))) + ((α.app Y.base).toFunctor.map f.fiber)] simp - · simp [map, toPseudoFunctor'Iso, toPseudoFunctor'Iso.hom, toPseudoFunctor'Iso.inv, Pseudofunctor.Grothendieck.map, NatTrans.toStrongTrans'] + · simp [map, toPseudoFunctor'Iso, toPseudoFunctor'Iso.hom, toPseudoFunctor'Iso.inv, + Pseudofunctor.Grothendieck.map, NatTrans.toStrongTrans'] end Pseudofunctor @@ -1026,8 +1040,9 @@ def preNatIso : pre F G ≅ map (whiskerRight α.hom F) ⋙ (pre F H) := Hom.comp_fiber, pre_map_fiber, eqToHom_trans_assoc, map_map_fiber, whiskerRight_app] erw [Category.comp_id, Functor.map_id, - Functor.congr_hom (congrArg Cat.Hom.toFunctor (F.congr_map (transportIso_inv_base (mk (G.obj Y.base) Y.fiber) - (α.app Y.base))))] + Functor.congr_hom (congrArg Cat.Hom.toFunctor + (F.congr_map (transportIso_inv_base (mk (G.obj Y.base) Y.fiber) + (α.app Y.base))))] simp) set_option backward.isDefEq.respectTransparency false in @@ -1048,7 +1063,7 @@ theorem preNatIso_congr {G H : D ⥤ C} {α β : G ≅ H} (h : α = β) : set_option backward.isDefEq.respectTransparency false in @[simp] theorem preNatIso_eqToIso {G H : D ⥤ C} {h : G = H} : preNatIso F (eqToIso h) = - eqToIso (by subst h; simp [map_id_eq, Cat.id_eq_id, Functor.id_comp]) := by + eqToIso (by subst h; simp [map_id_eq, Functor.id_comp]) := by subst h ext fapply Hom.ext @@ -1192,7 +1207,9 @@ inclusion `ι F X` to the composition `F.map f ⋙ ι F Y`. -/ @[simps!] def ιNatTrans : ι F X ⟶ (F.map f).toFunctor ⋙ ι F Y where app _ := Hom.mk f (𝟙 _) - naturality _ _ _ := Hom.ext _ _ (by exact (Category.id_comp f).trans (Category.comp_id f).symm) (by simp [eqToHom_map]) + naturality _ _ _ := Hom.ext _ _ + (by exact (Category.id_comp f).trans (Category.comp_id f).symm) + (by simp [eqToHom_map]) set_option backward.isDefEq.respectTransparency false in @[simp] @@ -1218,7 +1235,8 @@ theorem cast_eq {F G : C ⥤ Cat} section -variable (fib : ∀ c, F.obj c ⥤ E) (hom : ∀ {c c' : C} (f : c ⟶ c'), fib c ⟶ (F.map f).toFunctor ⋙ fib c') +variable (fib : ∀ c, F.obj c ⥤ E) + (hom : ∀ {c c' : C} (f : c ⟶ c'), fib c ⟶ (F.map f).toFunctor ⋙ fib c') variable (hom_id : ∀ c, hom (𝟙 c) = eqToHom (by simp only [Functor.map_id]; rfl)) variable (hom_comp : ∀ c₁ c₂ c₃ (f : c₁ ⟶ c₂) (g : c₂ ⟶ c₃), hom (f ≫ g) = hom f ≫ whiskerLeft (F.map f).toFunctor (hom g) ≫ eqToHom (by simp only [Functor.map_comp]; rfl)) @@ -1282,7 +1300,7 @@ theorem asFunctorFrom : Grothendieck.functorFrom (asFunctorFromFib K) (asFunctor · intro X rfl · intro x y f - simp only [functorFrom_obj, asFunctorFromFib, Functor.comp_obj, functorFrom_map, + simp only [asFunctorFromFib, Functor.comp_obj, functorFrom_map, asFunctorFromHom, Functor.whiskerRight_app, Functor.comp_map, ← Functor.map_comp, eqToHom_refl, Category.comp_id, Category.id_comp] change K.map ((ιNatTrans f.base).app x.fiber ≫ (ι F y.base).map f.fiber) = K.map f @@ -1306,7 +1324,7 @@ def functorFromCompHom {c c' : C} (f : c ⟶ c') : set_option backward.isDefEq.respectTransparency false in include hom_id in lemma functorFromCompHom_id (c : C) : functorFromCompHom fib hom G (𝟙 c) - = eqToHom (by simp [Cat.id_eq_id, Functor.id_comp]) := by + = eqToHom (by simp [Functor.id_comp]) := by ext x simp [hom_id, functorFromCompHom] @@ -1317,7 +1335,7 @@ lemma functorFromCompHom_comp (c₁ c₂ c₃ : C) (f : c₁ ⟶ c₂) (g : c₂ functorFromCompHom fib hom G (f ≫ g) = functorFromCompHom fib hom G f ≫ Functor.whiskerLeft (F.map f).toFunctor (functorFromCompHom fib hom G g) ≫ - eqToHom (by simp[Cat.comp_eq_comp, Functor.map_comp, Functor.assoc]) := by + eqToHom (by simp[Functor.map_comp, Functor.assoc]) := by ext simp [functorFromCompHom, hom_comp] @@ -1336,10 +1354,12 @@ theorem functorFrom_comp : functorFrom fib hom hom_id hom_comp ⋙ G = end section -variable (fib' : ∀ c, F.obj c ⥤ E) (hom' : ∀ {c c' : C} (f : c ⟶ c'), fib' c ⟶ (F.map f).toFunctor ⋙ fib' c') +variable (fib' : ∀ c, F.obj c ⥤ E) + (hom' : ∀ {c c' : C} (f : c ⟶ c'), fib' c ⟶ (F.map f).toFunctor ⋙ fib' c') variable (hom_id' : ∀ c, hom' (𝟙 c) = eqToHom (by simp only [Functor.map_id]; rfl)) variable (hom_comp' : ∀ c₁ c₂ c₃ (f : c₁ ⟶ c₂) (g : c₂ ⟶ c₃), hom' (f ≫ g) = - hom' f ≫ Functor.whiskerLeft (F.map f).toFunctor (hom' g) ≫ eqToHom (by simp only [Functor.map_comp]; rfl)) + hom' f ≫ Functor.whiskerLeft (F.map f).toFunctor (hom' g) ≫ + eqToHom (by simp only [Functor.map_comp]; rfl)) theorem functorFrom_eq_of (ef : fib = fib') (hhom : ∀ {c c' : C} (f : c ⟶ c'), hom f ≫ eqToHom (by rw[ef]) = eqToHom (by rw[ef]) ≫ hom' f) : @@ -1421,7 +1441,8 @@ def functorIsoFrom (fib_comp : ∀ c, fib c ⋙ A = ι F c ⋙ forget F) (fib (A.obj y)).map (fibMap f) ≍ f) (obj_fib_obj : ∀ c x, A.obj ((fib c).obj x) = c) (map_hom_app : ∀ {c c'} (f : c ⟶ c') x, A.map ((hom f).app x) ≍ f) - (fibMap_hom_app : ∀ {c c'} (f : c ⟶ c') x, fibMap ((hom f).app x) ≍ 𝟙 ((F.map f).toFunctor.obj x)) : + (fibMap_hom_app : ∀ {c c'} (f : c ⟶ c') x, + fibMap ((hom f).app x) ≍ 𝟙 ((F.map f).toFunctor.obj x)) : ∫ F ≅≅ E where hom := functorFrom fib hom hom_id hom_comp inv := functorTo A fibObj fibMap map_id map_comp @@ -1432,21 +1453,20 @@ def functorIsoFrom (fib_comp : ∀ c, fib c ⋙ A = ι F c ⋙ forget F) apply FunctorTo.hext · simp only [Functor.assoc, functorTo_forget, Functor.id_comp, fib_comp] · apply fibObj_fib_obj - · simp only [comp_obj, functorTo_obj_base, comp_map, functorTo_map_base, functorTo_obj_fiber, - functorTo_map_fiber, id_obj, ι_obj_base, id_map, ι_map_base, ι_obj_fiber, ι_map_fiber] + · simp only [comp_obj, comp_map, functorTo_map_fiber, id_obj, id_map, ι_map_fiber] intro x y f rw! [eqToHom_comp_heq, heq_cast_iff_heq] apply fibMap_fib_map · intro c c' f apply NatTrans.ext ext x - simp only [comp_obj, functorFrom_obj, ι_obj_base, ι_obj_fiber, id_obj, comp_whiskerRight, + simp only [comp_obj, id_obj, comp_whiskerRight, whiskerRight_ιNatTrans_functorFrom, whiskerRight_comp, eqToHom_whiskerRight, Category.assoc, eqToHom_trans, NatTrans.comp_app, eqToHom_app, eqToHom_refl, whiskerRight_app, Category.id_comp, id_whiskerRight, ← heq_eq_eq, heq_eqToHom_comp_iff, comp_eqToHom_heq_iff] apply Grothendieck.Hom.hext' rfl any_goals apply Grothendieck.hext' rfl - all_goals simp [functorFrom, functorTo, ι, obj_fib_obj, fibObj_fib_obj, fibMap_hom_app, map_hom_app] + all_goals simp [functorTo, ι, obj_fib_obj, fibObj_fib_obj, fibMap_hom_app, map_hom_app] inv_hom_id := by fapply Functor.ext · intro x @@ -1461,14 +1481,17 @@ end FunctorFrom -- Normalize wrapped Cat projections in the inclusion naturality equation. set_option backward.isDefEq.respectTransparency false in -/-- The fiber inclusion `ι F c` composed with `map α` is isomorphic to `(α.app c).toFunctor ⋙ ι F' c`. -/ +/-- The fiber inclusion `ι F c` composed with `map α` is isomorphic to +`(α.app c).toFunctor ⋙ ι F' c`. +-/ @[simps!] def ιCompMap {F' : C ⥤ Cat} (α : F ⟶ F') (c : C) : ι F c ⋙ map α ≅ (α.app c).toFunctor ⋙ ι F' c := NatIso.ofComponents (fun X => CategoryTheory.Iso.refl _) (fun f => by simp only [CategoryTheory.Iso.refl_hom, Category.comp_id] apply Hom.ext <;> simp [map, functorTo, ι, forget]) -lemma ι_comp_map {F' : C ⥤ Cat} (α : F ⟶ F') (c : C) : ι F c ⋙ map α = (α.app c).toFunctor ⋙ ι F' c := +lemma ι_comp_map {F' : C ⥤ Cat} (α : F ⟶ F') (c : C) : + ι F c ⋙ map α = (α.app c).toFunctor ⋙ ι F' c := Functor.ext_of_iso (ιCompMap ..) (by intro; rfl) section AsSmall @@ -1564,10 +1587,8 @@ def mapWhiskerRightAsSmallFunctor (α : F ⟶ G) : NatIso.ofComponents (fun X => CategoryTheory.Iso.refl _) (fun f => by - simp only [compAsSmallFunctorEquivalence_functor, compAsSmallFunctorEquivalenceFunctor, - comp_obj, forget_obj, comp_map, forget_map, compAsSmallFunctorEquivalence_inverse, - compAsSmallFunctorEquivalenceInverse, CategoryTheory.Iso.refl_hom, Category.comp_id, - Category.id_comp] + simp only [comp_obj, comp_map, CategoryTheory.Iso.refl_hom, + Category.comp_id, Category.id_comp] apply Hom.ext <;> simp [compAsSmallFunctorEquivalence, compAsSmallFunctorEquivalenceInverse, compAsSmallFunctorEquivalenceFunctor, functorTo, map] rfl @@ -1596,7 +1617,7 @@ lemma fiber_comp_invFiber : f.fiber ≫ invFiber f = 𝟙 ((F.map f.base).toFunc have h := Functor.Grothendieck.Hom.comp_fiber f (CategoryTheory.inv f) rw! [IsIso.hom_inv_id] at h have h0 : (F.map (CategoryTheory.inv f).base).toFunctor ⋙ (F.map f.base).toFunctor = 𝟭 _ := by - simp [← Cat.comp_eq_comp, ← Functor.map_comp, ← Grothendieck.Hom.comp_base, Cat.id_eq_id] + simp [← Cat.comp_eq_comp, ← Functor.map_comp, ← Grothendieck.Hom.comp_base] have h1 := Functor.congr_map (F.map f.base).toFunctor h simp [← heq_eq_eq, eqToHom_map, ← Functor.comp_map, Functor.congr_hom h0] at h1 dsimp [invFiber] diff --git a/HoTTLean/ForMathlib/CategoryTheory/Core.lean b/HoTTLean/ForMathlib/CategoryTheory/Core.lean index 1279f3ca..06d30875 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Core.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Core.lean @@ -22,7 +22,8 @@ variable {C : Type u} [Category.{v} C] {D : Type u₁} [Category.{v₁} D] subst h rfl -def comp_inclusion_injective {l0 l1 : D ⥤ Core C} (hl : l0 ⋙ inclusion C = l1 ⋙ inclusion C) : l0 = l1 := by +def comp_inclusion_injective {l0 l1 : D ⥤ Core C} + (hl : l0 ⋙ inclusion C = l1 ⋙ inclusion C) : l0 = l1 := by fapply Functor.ext · intro x ext @@ -105,7 +106,7 @@ instance {G : Type u} [Groupoid.{v} G] : end Adjunction -open Functor +open _root_.CategoryTheory.Functor instance : IsLeftAdjoint Grpd.forgetToCat := IsLeftAdjoint.mk ⟨ Core.map , ⟨ adjunction ⟩ ⟩ @@ -145,7 +146,8 @@ def fac_right : lift F En Ew hE ⋙ F.core = Ew := by exact hE def universal : (lift : E ⥤ Core C) ×' lift ⋙ inclusion C = En ∧ lift ⋙ F.core = Ew ∧ - ∀ {l0 l1 : E ⥤ Core C}, l0 ⋙ inclusion C = l1 ⋙ inclusion C → l0 ⋙ F.core = l1 ⋙ F.core → l0 = l1 := + ∀ {l0 l1 : E ⥤ Core C}, l0 ⋙ inclusion C = l1 ⋙ inclusion C → + l0 ⋙ F.core = l1 ⋙ F.core → l0 = l1 := ⟨ lift F En Ew hE, fac_left _ _ _ _, fac_right _ _ _ _, fun hl _ => comp_inclusion_injective hl ⟩ @@ -154,7 +156,7 @@ end IsPullback variable {C : Type u} [Category.{v} C] {D : Type u} [Category.{v} D] (F : C ⥤ D) [F.ReflectsIsomorphisms] -open IsPullback +open _root_.CategoryTheory.Core.IsPullback /-- In the category of categories, diff --git a/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean b/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean index a4fa88e3..0f9971de 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean @@ -122,7 +122,7 @@ def lift (φ : C ⥤ G) : Category.FreeGroupoid C ⥤ G := · have hf := Prefunctor.congr_hom (Quiver.FreeGroupoid.lift_spec φ.toPrefunctor) f have hg := Prefunctor.congr_hom (Quiver.FreeGroupoid.lift_spec φ.toPrefunctor) g have hfg := Prefunctor.congr_hom (Quiver.FreeGroupoid.lift_spec φ.toPrefunctor) (f ≫ g) - simp only [Functor.toPrefunctor_obj, Prefunctor.comp_obj, Prefunctor.comp_map, + simp only [Prefunctor.comp_map, Functor.toPrefunctor_map, Quiver.homOfEq_rfl, Functor.map_comp] at * rw [hf, hg, hfg]) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean index 7a235f03..5d25e158 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean @@ -66,7 +66,8 @@ def morphismProperty : MorphismProperty (ChosenObjects east south) := instance : MorphismProperty.IsMultiplicative (morphismProperty east south) where id_mem x := by - change east.map (𝟙 x.obj.1) = eqToHom x.property ≫ south.map (𝟙 x.obj.2) ≫ eqToHom x.property.symm + change east.map (𝟙 x.obj.1) = + eqToHom x.property ≫ south.map (𝟙 x.obj.2) ≫ eqToHom x.property.symm simp comp_mem f g hf hg := by change east.map (f.hom.1 ≫ g.hom.1) = @@ -178,7 +179,7 @@ end Chosen end IsPullback -open IsPullback +open _root_.CategoryTheory.Functor.IsPullback /-- A pullback structure on a type `Libya` over a pair of functors @@ -746,16 +747,25 @@ def universal : (lift : C ⥤ Algeria) ×' by constructor . apply esah_pb.hom_ext . calc - (outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ esah_pb.lift north (west ⋙ so) outer) ⋙ rth = - outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ esah_pb.lift north (west ⋙ so) outer ⋙ rth := by rw[Functor.assoc] - _ = outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ north := by rw[esah_pb.fac_left north (west ⋙ so) outer] - _ = Cn ⋙ rth := by rw[outer_pb.fac_left (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC)] + (outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ + esah_pb.lift north (west ⋙ so) outer) ⋙ rth = + outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ + esah_pb.lift north (west ⋙ so) outer ⋙ rth := by rw [Functor.assoc] + _ = outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ north := + by rw [esah_pb.fac_left north (west ⋙ so) outer] + _ = Cn ⋙ rth := + by rw [outer_pb.fac_left (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC)] . calc - (outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ esah_pb.lift north (west ⋙ so) outer) ⋙ sah = - outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ esah_pb.lift north (west ⋙ so) outer ⋙ sah := by rw[Functor.assoc] - _ = outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ (west ⋙ so) := by rw[esah_pb.fac_right north (west ⋙ so) outer] - _ = Cw ⋙ so := by rw[← Functor.assoc, outer_pb.fac_right (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC)] - _ = Cn ⋙ sah := by rw[hC] + (outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ + esah_pb.lift north (west ⋙ so) outer) ⋙ sah = + outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ + esah_pb.lift north (west ⋙ so) outer ⋙ sah := by rw [Functor.assoc] + _ = outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ (west ⋙ so) := + by rw [esah_pb.fac_right north (west ⋙ so) outer] + _ = Cw ⋙ so := + by rw [← Functor.assoc, + outer_pb.fac_right (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC)] + _ = Cn ⋙ sah := by rw [hC] . constructor . exact outer_pb.fac_right (Cn⋙rth) Cw (ofRight.hCLeft esah Cn Cw hC) . intro l0 l1 hll hlw @@ -854,7 +864,7 @@ end CategoryTheory namespace CategoryTheory.Cat -open Functor Limits +open _root_.CategoryTheory.Functor Limits section variable {Libya Egypt Chad Sudan : Type u} [Category.{v} Libya] @@ -865,7 +875,8 @@ variable {Libya Egypt Chad Sudan : Type u} [Category.{v} Libya] (h : Functor.IsPullback north west east south) (s : Limits.PullbackCone (homOf east) (homOf south)) -def lift : s.pt ⟶ of Libya := homOf (h.lift s.fst.toFunctor s.snd.toFunctor (congrArg Cat.Hom.toFunctor s.condition)) +def lift : s.pt ⟶ of Libya := + homOf (h.lift s.fst.toFunctor s.snd.toFunctor (congrArg Cat.Hom.toFunctor s.condition)) def fac_left : lift h s ≫ (homOf north) = s.fst := Cat.Hom.ext (h.fac_left _ _ _) @@ -907,7 +918,7 @@ end Cat namespace Grpd -open Functor Limits +open _root_.CategoryTheory.Functor Limits variable {Libya Egypt Chad Sudan : Type u} [Groupoid.{v} Libya] [Groupoid.{v} Egypt] [Groupoid.{v} Chad] [Groupoid.{v} Sudan] diff --git a/HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/WideSubcategory.lean b/HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/WideSubcategory.lean index d9792de1..256318be 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/WideSubcategory.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/WideSubcategory.lean @@ -135,7 +135,7 @@ lemma WideSubcategory.hext {X X' : P.WideSubcategory} (hX : X.1 ≍ X'.1) : X lemma WideSubcategory.hom_hext {X X' Y Y' : P.WideSubcategory} (hX : X.1 ≍ X'.1) (hY : Y.1 ≍ Y'.1) (f : X ⟶ Y) (f' : X' ⟶ Y') (hf : f.1 ≍ f'.1) : f ≍ f' := by cases X; cases X'; cases Y; cases Y'; subst hX hY - simp only [Set.mem_setOf_eq, heq_eq_eq] at * + simp only [Set.mem_ofPred_eq, heq_eq_eq] at * apply hom_ext assumption diff --git a/HoTTLean/ForMathlib/CategoryTheory/NatTrans.lean b/HoTTLean/ForMathlib/CategoryTheory/NatTrans.lean index d0be4c98..6769e3f2 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/NatTrans.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/NatTrans.lean @@ -29,7 +29,7 @@ def inv : G ⟶ F := h.isoOfCodGroupoid.inv end -open Functor +open _root_.CategoryTheory.Functor lemma hext {A : Type u} [Category.{v} A] {B : Type u₁} [Category.{v₁} B] {F F' G G' : A ⥤ B} (α : F ⟶ G) (β : F' ⟶ G') diff --git a/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean b/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean index d066bf1a..ede76784 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean @@ -20,7 +20,7 @@ variable {J : Type u₁} [Category.{v₁} J] {K : Type u₂} [Category.{v₂} K] variable {C : Type u₃} [Category.{v₃} C] open CategoryTheory -open Functor +open _root_.CategoryTheory.Functor /-- A `c : RepCone F` is: * an object `c.pt` and @@ -170,7 +170,8 @@ lemma snd_mk (W : C) (fst : yoneda.obj W ⟶ X) (snd : yoneda.obj W ⟶ Y) theorem condition : t.fst ≫ f = t.snd ≫ g := t.pullbackCone.condition -open WalkingSpan.Hom WalkingCospan.Hom WidePullbackShape.Hom WidePushoutShape.Hom Limits.PullbackCone +open WalkingSpan.Hom WalkingCospan.Hom +open WidePullbackShape.Hom WidePushoutShape.Hom Limits.PullbackCone def repIsLimitAux (t : PullbackCone f g) (lift : ∀ s : RepPullbackCone f g, yoneda.obj s.pt ⟶ t.pt) (fac_left : ∀ s : RepPullbackCone f g, lift s ≫ t.fst = s.fst) @@ -185,8 +186,9 @@ def repIsLimitAux (t : PullbackCone f g) (lift : ∀ s : RepPullbackCone f g, yo fun j' => WalkingPair.casesOn j' (fac_left s) (fac_right s) uniq := uniq } -/-- To show that a `PullbackCone` in a presheaf category constructed using `PullbackCone.mk` is a limit cone, - it suffices to show its universal property among representable cones. +/-- To show that a `PullbackCone` in a presheaf category constructed using +`PullbackCone.mk` is a limit cone, it suffices to show its universal property +among representable cones. -/ def RepIsLimit.mk {fst : W ⟶ X} {snd : W ⟶ Y} (eq : fst ≫ f = snd ≫ g) (lift : ∀ s : RepPullbackCone f g, yoneda.obj s.pt ⟶ W) @@ -229,7 +231,8 @@ open Opposite def repPullbackCone (c : C) (x : G.obj (op c)) : RepPullbackCone f g := .mk c (yonedaEquiv.symm $ a.app (op c) x) (yonedaEquiv.symm $ b.app (op c) x) (by - simpa [yonedaEquiv_symm_naturality_right] using ConcreteCategory.congr_hom (NatTrans.congr_app hab (op c)) x) + simpa [yonedaEquiv_symm_naturality_right] using + ConcreteCategory.congr_hom (NatTrans.congr_app hab (op c)) x) def lift'.app (c : C) : G.obj (op c) ⟶ W.obj (op c) := TypeCat.ofHom fun x => yonedaEquiv (lift (repPullbackCone a b hab c x)) @@ -246,9 +249,9 @@ lemma lift'.naturality ⦃c d : C⦄ (σ : c ⟶ d) : G.map σ.op ≫ lift'.app dsimp only [repPullbackCone, π_app_left, fst_mk, π_app_right, snd_mk] congr 3 · erw [yonedaEquiv_symm_naturality_left σ] - simpa using ConcreteCategory.congr_hom (a.naturality σ.op) x + simp · erw [yonedaEquiv_symm_naturality_left σ] - simpa using ConcreteCategory.congr_hom (b.naturality σ.op) x + simp include lift_naturality in def lift' : G ⟶ W where diff --git a/HoTTLean/Grothendieck/Groupoidal/Basic.lean b/HoTTLean/Grothendieck/Groupoidal/Basic.lean index fdad722d..edab8aa8 100644 --- a/HoTTLean/Grothendieck/Groupoidal/Basic.lean +++ b/HoTTLean/Grothendieck/Groupoidal/Basic.lean @@ -498,7 +498,8 @@ variable {D : Type*} [Category D] def fib' (c) : (F ⋙ Grpd.forgetToCat).obj c ⥤ E := fib c variable {fib} in -def hom' {c c' : C} (f : c ⟶ c') : fib' fib c ⟶ ((F ⋙ Grpd.forgetToCat).map f).toFunctor ⋙ fib' fib c' := +def hom' {c c' : C} (f : c ⟶ c') : + fib' fib c ⟶ ((F ⋙ Grpd.forgetToCat).map f).toFunctor ⋙ fib' fib c' := hom f variable (G : E ⥤ D) @@ -510,7 +511,8 @@ def functorFromCompFib (c : C) : F.obj c ⥤ D := functorFromCompFib' fib G c def functorFromCompHom' {c c' : C} (f : c ⟶ c') : - functorFromCompFib' fib G c ⟶ ((F ⋙ Grpd.forgetToCat).map f).toFunctor ⋙ functorFromCompFib' fib G c' := + functorFromCompFib' fib G c ⟶ + ((F ⋙ Grpd.forgetToCat).map f).toFunctor ⋙ functorFromCompFib' fib G c' := Grothendieck.functorFromCompHom (fib' fib) (hom' hom) _ _ def functorFromCompHom {c c' : C} (f : c ⟶ c') : @@ -833,7 +835,7 @@ lemma map_map_eqToHom {α : F ⟶ G} {X Y : ∫(F)} (f : X ⟶ Y) : @[simp] theorem eqToHom_comp_fiber {C : Type u} [Category.{v} C] {A : C ⥤ Grpd.{v₁, u₁}} {p q r : ∫(A)} (h : p = q) {f : q ⟶ r} : (eqToHom h ≫ f).fiber = eqToHom (by subst h; simp) ≫ f.fiber := by - simp only [comp_fiber, fiber_eqToHom, eqToHom_map, Category.assoc, eqToHom_trans_assoc] + simp only [comp_fiber, fiber_eqToHom, eqToHom_map, eqToHom_trans_assoc] end diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index 5e1ff59b..8d89d268 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -12,7 +12,7 @@ namespace CategoryTheory namespace Functor.Grothendieck -open Functor.IsPullback +open _root_.CategoryTheory.Functor.IsPullback section @@ -88,7 +88,8 @@ theorem liftMapFiber_comp {x y z} (f : x ⟶ y) (g : y ⟶ z) : eqToHom (by simp) ≫ (A.map (snd.map g)).toFunctor.map (liftMapFiber w f) ≫ liftMapFiber w g := by - have hgNatNatF := (eqToHom ((eqToHom w).naturality g).symm).toNatTrans.naturality (fst.map f).fiber + have hgNatNatF := + (eqToHom ((eqToHom w).naturality g).symm).toNatTrans.naturality (fst.map f).fiber have h := congr_arg (λ x ↦ x ≫ ((eqToHom w).app z).toFunctor.map (fst.map g).fiber) hgNatNatF dsimp at h simp only [Category.assoc, Cat.Hom₂.eqToHom_toNatTrans, eqToHom_app] at h @@ -172,7 +173,7 @@ def aux {C : Type*} [inst : Category C] (Cn : C ⥤ PCat) (Cw : C ⥤ Γ) end IsPullback -open IsPullback +open _root_.CategoryTheory.Functor.Grothendieck.IsPullback /-- The following square is a (meta-theoretic) pullback of functors @@ -297,14 +298,16 @@ end -- (s.snd ⋙ downFunctor) -- condition' --- theorem lift_uniq (s : PullbackCone uLiftPCatForgetToCat.{v,u} (uLiftA.{v,u} A)) (m : s.pt ⥤ Grothendieck A) +-- theorem lift_uniq (s : PullbackCone uLiftPCatForgetToCat.{v,u} +-- (uLiftA.{v,u} A)) (m : s.pt ⥤ Grothendieck A) -- (hl : m ⋙ Grothendieck.toPCat A = s.fst ⋙ downFunctor) -- (hr : m ⋙ Grothendieck.forget A = s.snd ⋙ downFunctor) : -- m = lift s := -- IsMegaPullback.lift_uniq -- (s.fst ⋙ downFunctor) (s.snd ⋙ downFunctor) condition' m hl hr --- theorem lift_uniq' (s : PullbackCone uLiftPCatForgetToCat.{v,u} (uLiftA.{v,u} A)) (m : s.pt ⟶ uLiftGrothendieck A) +-- theorem lift_uniq' (s : PullbackCone uLiftPCatForgetToCat.{v,u} +-- (uLiftA.{v,u} A)) (m : s.pt ⟶ uLiftGrothendieck A) -- (hl : m ≫ uLiftToPCat A = s.fst) (hr : m ≫ uLiftGrothendieckForget A = s.snd) : -- m = lift' s := by -- unfold lift' diff --git a/HoTTLean/Pointed/Basic.lean b/HoTTLean/Pointed/Basic.lean index 36da93a9..d84cd665 100644 --- a/HoTTLean/Pointed/Basic.lean +++ b/HoTTLean/Pointed/Basic.lean @@ -17,7 +17,7 @@ set_option backward.isDefEq.respectTransparency false attribute [local simp] eqToHom_map Grpd.id_eq_id Grpd.comp_eq_comp Functor.id_comp -open Functor +open _root_.CategoryTheory.Functor abbrev PCat := ∫ 𝟭 Cat.{v,u} @@ -126,7 +126,9 @@ theorem mapFiber_inv {x y} (f : x ⟶ y) [IsIso f] : end theorem eqToHom_base_map {x y : PCat} (eq : x = y) {a b} (f : a ⟶ b) : - (eqToHom eq).base.toFunctor.map f = eqToHom (by simp) ≫ (eqToHom (by simp [eq] : x.base = y.base)).toFunctor.map f ≫ eqToHom (by simp) := by + (eqToHom eq).base.toFunctor.map f = eqToHom (by simp) ≫ + (eqToHom (by simp [eq] : x.base = y.base)).toFunctor.map f ≫ + eqToHom (by simp) := by cases eq simp From 6d171a58c095239ecbb325872a398e95d234578f Mon Sep 17 00:00:00 2001 From: openhands Date: Thu, 29 Oct 2026 09:13:24 -0400 Subject: [PATCH 361/362] Record combined migration validation --- docs/lean-v4.34.1/evidence/api-docs.txt | 1628 +++++++++++++++++ .../evidence/command-receipts.txt | 111 ++ docs/lean-v4.34.1/evidence/compatibility.txt | 4 + docs/lean-v4.34.1/evidence/default-config.txt | 4 + .../evidence/dependency-checkouts.txt | 15 + .../lean-v4.34.1/evidence/dependency-pins.txt | 35 + docs/lean-v4.34.1/evidence/docs-update.txt | 7 + docs/lean-v4.34.1/evidence/functor-map.txt | 9 + .../evidence/legacy-test-root.txt | 3 + .../lean-v4.34.1/evidence/module-coverage.txt | 85 + docs/lean-v4.34.1/evidence/natural.txt | 78 + docs/lean-v4.34.1/evidence/project.txt | 274 +++ docs/lean-v4.34.1/evidence/review.txt | 11 + docs/lean-v4.34.1/evidence/source-audit.txt | 74 + docs/lean-v4.34.1/evidence/source-hashes.txt | 73 + docs/lean-v4.34.1/evidence/style.txt | 1 + docs/lean-v4.34.1/evidence/tests.txt | 286 +++ .../evidence/verification-input-hashes.txt | 3 + docs/lean-v4.34.1/evidence/warnings.txt | 128 ++ docs/lean-v4.34.1/evidence/whitespace.txt | 3 + docs/lean-v4.34.1/hottlean-changes.md | 120 ++ 21 files changed, 2952 insertions(+) create mode 100644 docs/lean-v4.34.1/evidence/api-docs.txt create mode 100644 docs/lean-v4.34.1/evidence/command-receipts.txt create mode 100644 docs/lean-v4.34.1/evidence/compatibility.txt create mode 100644 docs/lean-v4.34.1/evidence/default-config.txt create mode 100644 docs/lean-v4.34.1/evidence/dependency-checkouts.txt create mode 100644 docs/lean-v4.34.1/evidence/dependency-pins.txt create mode 100644 docs/lean-v4.34.1/evidence/docs-update.txt create mode 100644 docs/lean-v4.34.1/evidence/functor-map.txt create mode 100644 docs/lean-v4.34.1/evidence/legacy-test-root.txt create mode 100644 docs/lean-v4.34.1/evidence/module-coverage.txt create mode 100644 docs/lean-v4.34.1/evidence/natural.txt create mode 100644 docs/lean-v4.34.1/evidence/project.txt create mode 100644 docs/lean-v4.34.1/evidence/review.txt create mode 100644 docs/lean-v4.34.1/evidence/source-audit.txt create mode 100644 docs/lean-v4.34.1/evidence/source-hashes.txt create mode 100644 docs/lean-v4.34.1/evidence/style.txt create mode 100644 docs/lean-v4.34.1/evidence/tests.txt create mode 100644 docs/lean-v4.34.1/evidence/verification-input-hashes.txt create mode 100644 docs/lean-v4.34.1/evidence/warnings.txt create mode 100644 docs/lean-v4.34.1/evidence/whitespace.txt create mode 100644 docs/lean-v4.34.1/hottlean-changes.md diff --git a/docs/lean-v4.34.1/evidence/api-docs.txt b/docs/lean-v4.34.1/evidence/api-docs.txt new file mode 100644 index 00000000..4f27b47a --- /dev/null +++ b/docs/lean-v4.34.1/evidence/api-docs.txt @@ -0,0 +1,1628 @@ +$ lake -R -Kenv=dev build HoTTLean:docs +⚠ [1163/1520] Replayed HoTTLean.Syntax.Substitution +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.refl_tp` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.trans_tp` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.refl_tm` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.trans_tm'` annotated with `@[grind .]` +✔ [1170/2229] Built HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.WideSubcategory (2.0s) +✔ [1171/2229] Built HoTTLean.Typechecker.Cache (2.2s) +⚠ [1172/2229] Built HoTTLean.ForMathlib.CategoryTheory.FreeGroupoid (2.4s) +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:7: Variable name `C` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _C + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:9: Variable name `D` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _D + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:195:9: Variable name `C` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _C + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +✔ [1173/2229] Built HoTTLean.ForMathlib.CategoryTheory.RepPullbackCone (2.0s) +✔ [1174/2229] Built Cli.Basic (3.9s) +⚠ [1175/2229] Built HoTTLean.ForMathlib (3.5s) +warning: HoTTLean/ForMathlib.lean:352:0: Definition `CategoryTheory.Equivalence.chosenFiniteProducts` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. +warning: HoTTLean/ForMathlib.lean:352:4: Overlapping instance parameters in `chosenFiniteProducts`: + +⚠️ There are 2 `[CartesianMonoidalCategory C]` instances; one is sufficient. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/ForMathlib.lean:462:0: Definition `sigmaCongr_apply_snd` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +✔ [1176/2229] Built Cli.Extensions (624ms) +✔ [1177/2229] Built Cli (505ms) +✔ [1180/2229] Built Cli.Extensions:c.o (504ms) +✔ [1181/2229] Built HoTTLean.Syntax.InversionLemmas (4.6s) +✔ [1182/2229] Built Cli:c.o (69ms) +✔ [1183/2229] Built HoTTLean.ForMathlib.CategoryTheory.NatTrans (1.9s) +⚠ [1184/2229] Built HoTTLean.ForMathlib.CategoryTheory.Grpd (2.2s) +warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:154:0: Definition `Grpd.Functor.iso_hom` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:159:0: Definition `Grpd.Functor.iso_inv` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +✔ [1185/2229] Built HoTTLean.Syntax.GCongr (1.6s) +✔ [1186/2229] Built Cli.Basic:c.o (3.1s) +⚠ [1188/2229] Built HoTTLean.ForMathlib.CategoryTheory.Functor.IsPullback (3.8s) +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:657:0: Definition `hCLeft` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:881:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:884:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:887:0: Definition `uniq` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:894:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:932:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:935:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:938:0: Definition `uniq` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:944:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +ℹ [1189/2229] Built «doc-gen4»/bibPrepass (1.2s) +info: stdout: +INFO: reference page disabled +✔ [1190/2229] Built HoTTLean.Syntax.Synth (2.6s) +✔ [1191/2229] Built HoTTLean.Model.Unstructured.UnstructuredUniverse (5.6s) +⚠ [1192/2229] Built HoTTLean.ForMathlib.CategoryTheory.Core (2.0s) +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:25:0: Definition `comp_inclusion_injective` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:142:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:144:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1193/2229] Built HoTTLean.Syntax.Axioms (2.3s) +warning: HoTTLean/Syntax/Axioms.lean:33:7: Variable name `E` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _E + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +⚠ [1194/2229] Built HoTTLean.Model.Unstructured.UHom (3.0s) +warning: HoTTLean/Model/Unstructured/UHom.lean:38:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Model/Unstructured/UHom.lean:104:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Model/Unstructured/UHom.lean:139:0: automatically included section variable(s) unused in theorem `Model.UnstructuredUniverse.Hom.extCompMapTyIsoExt_hom_comp_substWk`: + [ChosenTerminal Ctx] +consider restructuring your `variable` declarations so that the variables are not in scope or explicitly omit them: + omit [ChosenTerminal Ctx] in theorem ... + +Note: This linter can be disabled with `set_option linter.unusedSectionVars false` +warning: HoTTLean/Model/Unstructured/UHom.lean:374:0: Definition `Model.UnstructuredUniverse.UHomSeq.PiSeq.ofMonomorphic` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. +✔ [1195/2229] Built HoTTLean.Model.Unstructured.Hurewicz (5.5s) +✔ [1196/2229] Built HoTTLean.Typechecker.Value (3.0s) +✔ [1197/2229] Built HoTTLean.Frontend.Checked (1.6s) +✔ [1198/2229] Built HoTTLean.Typechecker.ValueInversion (2.7s) +⚠ [1199/2229] Built HoTTLean.ForMathlib.CategoryTheory.Bicategory.Grothendieck (12s) +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:587:0: Definition `transport_base` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:591:0: Definition `transport_fiber` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:605:0: Definition `toTransport_base` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:609:0: Definition `toTransport_fiber` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1200/2229] Built HoTTLean.Frontend.EnvExt (2.2s) +warning: HoTTLean/Frontend/EnvExt.lean:65:15: Overlapping instance parameters in `TheoryExt`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:71:4: Overlapping instance parameters in `mkInitTheoryData`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:106:19: Overlapping instance parameters in `theoryExt`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:106:0: Overlapping instance parameters in `initFn✝`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:151:4: Overlapping instance parameters in `saveTheoryDecl`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:164:4: Overlapping instance parameters in `saveShallowTheoryConst`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:170:4: Overlapping instance parameters in `getTheoryData`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:177:4: Overlapping instance parameters in `setTheoryData`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +✔ [1201/2229] Built HoTTLean.Frontend.Translation (2.1s) +⚠ [1202/2229] Built HoTTLean.Grothendieck.Groupoidal.Basic (5.5s) +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:46:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpIdComp`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:52:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpCompId`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:176:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.eta`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:180:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.Hom.eta`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:485:0: Definition `ι_comp_functorFrom` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +✔ [1203/2229] Built HoTTLean.Typechecker.Evaluate (7.9s) +⚠ [1204/2229] Built HoTTLean.Pointed.Basic (3.5s) +warning: HoTTLean/Pointed/Basic.lean:22:0: `PCat`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +warning: HoTTLean/Pointed/Basic.lean:152:0: `PGrpd`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +✔ [1205/2229] Built HoTTLean.Grothendieck.IsPullback (2.5s) +✔ [1206/2229] Built HoTTLean.Pointed.IsPullback (1.8s) +✔ [1207/2229] Built HoTTLean.Model.Unstructured.Interpretation (18s) +✔ [1208/2229] Built HoTTLean.Typechecker.Equate (7.2s) +⚠ [1209/2229] Built HoTTLean.Grothendieck.Groupoidal.IsPullback (2.4s) +warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:173:0: Definition `sec_toPGrpd` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:182:0: Definition `sec_forget` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1210/2229] Built HoTTLean.Groupoids.Basic (2.5s) +warning: HoTTLean/Groupoids/Basic.lean:37:0: Definition `pGrpdToGroupoidalAsSmallFunctor_groupoidalAsSmallFunctorToPGrpd` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Basic.lean:41:0: Definition `groupoidalAsSmallFunctorToPGrpd_pGrpdToGroupoidalAsSmallFunctor` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Basic.lean:45:0: Definition `pGrpdToGroupoidalAsSmallFunctor_forget` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Basic.lean:120:0: `Ty`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +warning: HoTTLean/Groupoids/Basic.lean:124:0: `Tm`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +✔ [1211/2229] Built HoTTLean.Groupoids.IsPullback (3.1s) +✔ [1212/2229] Built HoTTLean.Typechecker.Synth (6.9s) +⚠ [1213/2229] Built HoTTLean.Groupoids.UnstructuredModel (2.7s) +warning: HoTTLean/Groupoids/UnstructuredModel.lean:22:0: `U`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +✔ [1214/2229] Built HoTTLean.Frontend.Commands (3.9s) +✔ [1215/2229] Built HoTTLean.Groupoids.Sigma (28s) +⚠ [1216/2229] Built HoTTLean.Groupoids.Pi (36s) +warning: HoTTLean/Groupoids/Pi.lean:350:0: Definition `obj_hext` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Pi.lean:355:0: Definition `hom_hext` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Pi.lean:365:0: Definition `hom_hext'` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1217/2229] Built HoTTLean.Groupoids.ClovenIsofibration (5.0s) +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:156:4: The namespace `map` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.classifier.map.map`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:279:4: The namespace `hom` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.grothendieckClassifierIso.hom.hom`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `CategoryTheory.Functor.ClovenIsofibration.toTransport_IsIso` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `toTransport_IsIso` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:469:0: Definition `forget.liftObj_id` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:474:0: Definition `forget.liftIso_id` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1218/2229] Built HoTTLean.Groupoids.Id (9.4s) +warning: HoTTLean/Groupoids/Id.lean:841:0: `I_map_obj_ff`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +✔ [1219/2229] Built HoTTLean (2.4s) +ℹ [1220/2232] Built «doc-gen4»/coreDocs (435s) +info: stdout: +WARNING: Failed to calculate equational lemmata for Std.Time.DateTime.weekOfYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekday: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekOfYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +info: stdout: +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeValueArray: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeDateTime: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeTable: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lake.lowerHexUInt64: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeBool: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeInt: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeFloat: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeString: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeNat: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +info: stdout: +WARNING: Failed to calculate equational lemmata for Lean.Elab.Command.elabElabRulesAux: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Compiler.LCNF.CodeDecl.collectUsed: Tactic `simp` failed with a nested error: +(deterministic) timeout at `simp`, maximum number of heartbeats (5000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit. + +Hint: Additional diagnostic information may be available using the `set_option diagnostics true` command. +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ensureEvalTerm: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Meta.simpHaveTelescope: failed to generate equational theorem for `Lean.Meta.simpHaveTelescope` +m : Type → Type +inst : Monad m +inst_1 : MonadLiftT Lean.MetaM m +inst_2 : MonadControlT Lean.MetaM m +inst_3 : Lean.Meta.MonadSimp m +e : Lean.Expr +⊢ (do + let info ← liftM (Lean.Meta.getHaveTelescopeInfo e) + if (!info.haveInfo.isEmpty) = true then do + let __x ← liftM (info.computeFixedUsed true) + let r ← Lean.Meta.simpHaveTelescopeAux✝ info __x.fst __x.snd e 0 (Array.mkEmpty info.haveInfo.size) + liftM (Lean.Meta.SimpHaveResult.toResult✝ info.level e r true) + else + panicWithPosWithDecl "Lean.Meta.HaveTelescope" "Lean.Meta.simpHaveTelescope" 456 2 + ("assertion violation: " ++ "!info.haveInfo.isEmpty\n ")) = + do + let info ← liftM (Lean.Meta.getHaveTelescopeInfo e) + if (!info.haveInfo.isEmpty) = true then do + let __x ← liftM (info.computeFixedUsed false) + let r ← Lean.Meta.simpHaveTelescopeAux✝ info __x.fst __x.snd e 0 (Array.mkEmpty info.haveInfo.size) + liftM (Lean.Meta.SimpHaveResult.toResult✝ info.level e r true) + else + panicWithPosWithDecl "Lean.Meta.HaveTelescope" "Lean.Meta.simpHaveTelescope" 456 2 + ("assertion violation: " ++ "!info.haveInfo.isEmpty\n ") +WARNING: Failed to calculate equational lemmata for Lean.Doc.leanRole: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs: failed to generate equational theorem for `Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs` + no progress at goal + α : Type + m : Type → Type + inst✝² : Monad m + inst✝¹ : MonadReaderOf Lean.SubExpr m + inst✝ : MonadWithReaderOf Lean.SubExpr m + maxArgs : Nat + xf : m α + xa : α → m α + r : Nat.below maxArgs := + (Nat.brecOn.go maxArgs (Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs._f xf xa)).2 + ⊢ (do + let __do_lift ← Lean.PrettyPrinter.Delaborator.SubExpr.getExpr + (match (motive := (maxArgs : Nat) → Lean.Expr → Nat.rec PUnit (fun n n_ih => m α ×' n_ih) maxArgs → m α) + maxArgs, __do_lift with + | maxArgs'.succ, fn.app arg => fun x => do + let acc ← Lean.PrettyPrinter.Delaborator.SubExpr.withAppFn x.1 + Lean.PrettyPrinter.Delaborator.SubExpr.withAppArg (xa acc) + | x, x_1 => fun x => xf) + r) = + do + let __do_lift ← Lean.PrettyPrinter.Delaborator.SubExpr.getExpr + match maxArgs, __do_lift with + | maxArgs'.succ, fn.app arg => do + let acc ← + Lean.PrettyPrinter.Delaborator.SubExpr.withAppFn + (Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs maxArgs' xf xa) + Lean.PrettyPrinter.Delaborator.SubExpr.withAppArg (xa acc) + | x, x_1 => xf +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ConfigItem.throwInvalidOption: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ensureEvalExpr: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Elab.Term.mkCoe: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.evalMetaEval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ConfigItem.throwCannotSetOption: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Meta.Grind.pushNot: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Server.Completion.dotIdCompletion: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Syntax.asNode: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.CodeAction.holeCodeActionProvider: failed to generate equality theorems for `match` expression `_private.Lean.Server.CodeActions.Provider.0.Lean.CodeAction.holeCodeActionProvider.match_7` +case isTrue +motive✝ : Array (Lean.Elab.ContextInfo × Lean.Elab.TermInfo) → Sort u_1 +x✝¹ : Array (Lean.Elab.ContextInfo × Lean.Elab.TermInfo) +h_1✝ : (ctx : Lean.Elab.ContextInfo) → (info : Lean.Elab.TermInfo) → motive✝ #[(ctx, info)] +h_2✝ : (x : Array (Lean.Elab.ContextInfo × Lean.Elab.TermInfo)) → motive✝ x +x✝ : ∀ (ctx : Lean.Elab.ContextInfo) (info : Lean.Elab.TermInfo), x✝¹ = #[(ctx, info)] → False +h✝ : x✝¹.size = 1 +⊢ (⋯ ▸ fun h => ⋯ ▸ Prod.casesOn (x✝¹.getLit 0 ⋯ ⋯) fun fst snd => h_1✝ fst snd) ⋯ = h_2✝ x✝¹ +WARNING: Failed to calculate equational lemmata for Lean.Elab.Tactic.evalGrindCore: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Meta.Tactic.TryThis.addRewriteSuggestion: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Level.collectMVars: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.deriveEvalExprUsingMetaEval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +ℹ [1221/2352] Ran Qq:srcUri.github +info: Found git remote for Qq at https://github.com/leanprover-community/quote4 @ 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 +ℹ [1222/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1223/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1224/2352] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1226/2352] Ran importGraph:srcUri.github +info: Found git remote for importGraph at https://github.com/leanprover-community/import-graph @ e928b72544873815af278d38681b31c0293588e3 +ℹ [1230/2352] Ran plausible:srcUri.github +info: Found git remote for plausible at https://github.com/leanprover-community/plausible @ 118aa17ee84656b8bd727fef7c458ee8c833385c +ℹ [1231/2352] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1232/2352] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1233/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1235/2352] Ran Qq:srcUri.github +info: Found git remote for Qq at https://github.com/leanprover-community/quote4 @ 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 +ℹ [1236/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1237/2352] Ran importGraph:srcUri.github +info: Found git remote for importGraph at https://github.com/leanprover-community/import-graph @ e928b72544873815af278d38681b31c0293588e3 +ℹ [1238/2352] Ran proofwidgets:srcUri.github +info: Found git remote for proofwidgets at https://github.com/leanprover-community/ProofWidgets4 @ 106ff4fafc74ef4ac99d81dbf3ab399118f497a5 +ℹ [1241/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1242/2352] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1243/2352] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1244/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1245/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1246/2352] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1247/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1248/2352] Ran plausible:srcUri.github +info: Found git remote for plausible at https://github.com/leanprover-community/plausible @ 118aa17ee84656b8bd727fef7c458ee8c833385c +ℹ [1249/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1250/2352] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1251/2352] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1252/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1253/2352] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1254/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1256/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1258/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1259/2352] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1260/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1261/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1263/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1264/2352] Ran Qq:srcUri.github +info: Found git remote for Qq at https://github.com/leanprover-community/quote4 @ 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 +ℹ [1265/2352] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1266/2352] Ran importGraph:srcUri.github +info: Found git remote for importGraph at https://github.com/leanprover-community/import-graph @ e928b72544873815af278d38681b31c0293588e3 +ℹ [1267/2352] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1305/2475] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1381/2475] Ran Qq:srcUri.github +info: Found git remote for Qq at https://github.com/leanprover-community/quote4 @ 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 +ℹ [1382/2475] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1396/2475] Ran LeanSearchClient:srcUri.github +info: Found git remote for LeanSearchClient at https://github.com/leanprover-community/LeanSearchClient @ ddf04cf3949fa556442341e87d47f9f6e6074707 +ℹ [1397/2475] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1398/2475] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1399/2475] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1412/2475] Ran mathlib:srcUri.github +info: Found git remote for mathlib at https://github.com/leanprover-community/mathlib4 @ d13f23b723b8a846827a245b89c10fc7d3f11612 +ℹ [1413/2475] Ran proofwidgets:srcUri.github +info: Found git remote for proofwidgets at https://github.com/leanprover-community/ProofWidgets4 @ 106ff4fafc74ef4ac99d81dbf3ab399118f497a5 +✔ [1420/2476] Built aesop/Aesop.Forward.PremiseIndex:docInfo (2.7s) +✔ [1421/2476] Built aesop/Aesop.Util.UnionFind:docInfo (3.2s) +✔ [1422/2476] Built batteries/Batteries.Lean.TagAttribute:docInfo (3.3s) +✔ [1423/2476] Built plausible/Plausible.Shrinkable:docInfo (3.3s) +ℹ [1424/2476] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1425/2476] Ran plausible:srcUri.github +info: Found git remote for plausible at https://github.com/leanprover-community/plausible @ 118aa17ee84656b8bd727fef7c458ee8c833385c +ℹ [1426/2476] Ran hottlean:srcUri.github +info: Found git remote for hottlean at https://github.com/sosudo/HoTTLean @ 20c4b230b0e0ae41e8fe2e8cb020a80908a3de57 +ℹ [1427/2476] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1428/2476] Ran hottlean:srcUri.github +info: Found git remote for hottlean at https://github.com/sosudo/HoTTLean @ 20c4b230b0e0ae41e8fe2e8cb020a80908a3de57 +ℹ [1448/2476] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +✔ [1452/2478] Built importGraph/ImportGraph.Lean.Environment:docInfo (3.4s) +✔ [1453/2478] Built batteries/Batteries.Lean.Syntax:docInfo (3.5s) +✔ [1454/2478] Built batteries/Batteries.Lean.Meta.Basic:docInfo (3.8s) +✔ [1455/2478] Built aesop/Aesop.Check:docInfo (3.8s) +✔ [1456/2478] Built batteries/Batteries.Tactic.SeqFocus:docInfo (3.5s) +✔ [1457/2478] Built Qq/Qq.ForLean.ToExpr:docInfo (3.8s) +ℹ [1460/2479] Ran aesop:srcUri.github +info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 +ℹ [1461/2479] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1472/2480] Ran batteries:srcUri.github +info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +ℹ [1475/2480] Ran hottlean:srcUri.github +info: Found git remote for hottlean at https://github.com/sosudo/HoTTLean @ 20c4b230b0e0ae41e8fe2e8cb020a80908a3de57 +✔ [1482/2481] Built importGraph/ImportGraph.Graph.TransitiveClosure:docInfo (4.0s) +✔ [1483/2481] Built batteries/Batteries.Lean.PersistentHashMap:docInfo (4.0s) +✔ [1484/2481] Built batteries/Batteries.Lean.HashSet:docInfo (3.9s) +✔ [1485/2481] Built proofwidgets/ProofWidgets.Compat:docInfo (4.0s) +✔ [1486/2481] Built batteries/Batteries.Control.LawfulMonadState:docInfo (3.0s) +✔ [1488/2482] Built importGraph/ImportGraph.Imports.ImportGraph:docInfo (4.2s) +✔ [1489/2482] Built Qq/Qq.SortLocalDecls:docInfo (4.2s) +✔ [1490/2482] Built batteries/Batteries.Tactic.Congr:docInfo (4.2s) +✔ [1492/2485] Built aesop/Aesop.Script.GoalWithMVars:docInfo (4.2s) +✔ [1493/2485] Built Qq/Qq.Typ:docInfo (4.3s) +✔ [1497/2488] Built batteries/Batteries.Tactic.Lint.Basic:docInfo (4.4s) +✔ [1498/2488] Built aesop/Aesop.Nanos:docInfo (4.4s) +✔ [1499/2488] Built aesop/Aesop.RuleSet.Name:docInfo (3.3s) +✔ [1503/2488] Built batteries/Batteries.Tactic.OpenPrivate:docInfo (4.5s) +✔ [1504/2490] Built aesop/Aesop.Index.DiscrTreeConfig:docInfo (4.8s) +✔ [1505/2490] Built Qq/Qq.ForLean.ReduceEval:docInfo (4.8s) +✔ [1506/2490] Built LeanSearchClient/LeanSearchClient.Basic:docInfo (4.8s) +✔ [1509/2491] Built aesop/Aesop.Percent:docInfo (3.9s) +✔ [1510/2491] Built aesop/Aesop.Util.OrderedHashSet:docInfo (4.9s) +✔ [1511/2491] Built batteries/Batteries.Lean.Meta.Expr:docInfo (4.8s) +✔ [1513/2492] Built batteries/Batteries.Lean.Position:docInfo (5.1s) +✔ [1514/2492] Built batteries/Batteries.Lean.MonadBacktrack:docInfo (5.1s) +✔ [1515/2492] Built plausible/Plausible.DeriveShrinkable:docInfo (1.3s) +✔ [1517/2494] Built mathlib/Mathlib.Tactic.Linter.DirectoryDependency:docInfo (5.3s) +✔ [1518/2494] Built batteries/Batteries.Control.ForInStep.Basic:docInfo (4.1s) +✔ [1519/2494] Built batteries/Batteries.Lean.Except:docInfo (5.3s) +✔ [1522/2494] Built aesop/Aesop.Script.Tactic:docInfo (5.4s) +✔ [1523/2494] Built aesop/Aesop.Frontend.Basic:docInfo (5.4s) +✔ [1524/2494] Built batteries/Batteries.Tactic.Case:docInfo (5.4s) +✔ [1525/2494] Built batteries/Batteries.Tactic.Lint.TypeClass:docInfo (1.1s) +✔ [1526/2494] Built batteries/Batteries.Lean.Meta.Inaccessible:docInfo (5.6s) +✔ [1527/2494] Built aesop/Aesop.Forward.LevelIndex:docInfo (5.7s) +✔ [1528/2494] Built batteries/Batteries.Data.Nat.Basic:docInfo (5.8s) +✔ [1529/2494] Built batteries/Batteries.Tactic.PermuteGoals:docInfo (5.9s) +✔ [1530/2494] Built batteries/Batteries.Lean.NameMapAttribute:docInfo (5.9s) +✔ [1531/2496] Built importGraph/ImportGraph.Imports.Redundant:docInfo (1.8s) +✔ [1532/2496] Built batteries/Batteries.Control.Lemmas:docInfo (6.0s) +✔ [1533/2496] Built batteries/Batteries.Control.OptionT:docInfo (1.9s) +✔ [1536/2500] Built batteries/Batteries.Data.Array.Merge:docInfo (4.9s) +✔ [1537/2500] Built batteries/Batteries.CodeAction.Deprecated:docInfo (6.1s) +✔ [1538/2500] Built aesop/Aesop.ElabM:docInfo (4.0s) +✔ [1539/2500] Built batteries/Batteries.Util.ExtendedBinder:docInfo (6.1s) +✔ [1540/2500] Built batteries/Batteries.Util.Cache:docInfo (6.1s) +✔ [1545/2502] Built aesop/Aesop.Options.Public:docInfo (5.0s) +✔ [1546/2502] Built batteries/Batteries.Lean.Meta.UnusedNames:docInfo (5.0s) +✔ [1547/2502] Built batteries/Batteries.Lean.PersistentHashSet:docInfo (6.2s) +✔ [1548/2502] Built aesop/Aesop.Exception:docInfo (6.2s) +✔ [1549/2502] Built batteries/Batteries.Tactic.Trans:docInfo (6.2s) +✔ [1550/2502] Built plausible/Plausible.Attr:docInfo (6.2s) +✔ [1551/2502] Built proofwidgets/ProofWidgets.Util:docInfo (6.2s) +✔ [1552/2502] Built hottlean/HoTTLean.Syntax.Basic:docInfo (6.2s) +✔ [1555/2505] Built batteries/Batteries.Tactic.Unreachable:docInfo (6.3s) +✔ [1556/2505] Built importGraph/ImportGraph.Imports.RequiredModules:docInfo (2.5s) +✔ [1560/2507] Built batteries/Batteries.Tactic.Lint.Misc:docInfo (2.0s) +✔ [1561/2507] Built batteries/Batteries.Tactic.Init:docInfo (6.4s) +✔ [1562/2507] Built aesop/Aesop.Util.Tactic:docInfo (5.4s) +✔ [1563/2507] Built batteries/Batteries.Lean.Meta.InstantiateMVars:docInfo (2.5s) +✔ [1564/2507] Built plausible/Plausible.Random:docInfo (6.4s) +✔ [1567/2509] Built aesop/Aesop.Script.TacticState:docInfo (2.3s) +✔ [1568/2509] Built aesop/Aesop.Rule.Name:docInfo (6.6s) +✔ [1571/2512] Built aesop/Aesop.Forward.SlotIndex:docInfo (6.7s) +✔ [1572/2512] Built Qq/Qq.ForLean.Do:docInfo (6.8s) +✔ [1573/2512] Built proofwidgets/ProofWidgets.Component.Basic:docInfo (2.5s) +✔ [1577/2514] Built importGraph/ImportGraph.Tools.RedundantImports:docInfo (1.0s) +✔ [1578/2514] Built Qq/Qq.Macro:docInfo (2.2s) +✔ [1581/2521] Built batteries/Batteries.Util.LibraryNote:docInfo (7.4s) +✔ [1582/2521] Built batteries/Batteries.Tactic.Alias:docInfo (1.2s) +✔ [1583/2521] Built batteries/Batteries.Lean.AttributeExtra:docInfo (3.9s) +✔ [1591/2521] Built batteries/Batteries.Control.ForInStep.Lemmas:docInfo (2.2s) +✔ [1592/2523] Built importGraph/ImportGraph.Tools.MinImports:docInfo (1.2s) +✔ [1593/2523] Built aesop/Aesop.Util.Unfold:docInfo (6.7s) +✔ [1594/2523] Built aesop/Aesop.Search.Expansion.Simp:docInfo (6.4s) +✔ [1595/2523] Built batteries/Batteries.Control.AlternativeMonad:docInfo (1.6s) +✔ [1598/2523] Built hottlean/HoTTLean.Tactic.MutualInduction:docInfo (7.5s) +✔ [1599/2525] Built aesop/Aesop.Util.UnorderedArraySet:docInfo (1.7s) +✔ [1600/2525] Built aesop/Aesop.Constants:docInfo (2.8s) +✔ [1601/2525] Built plausible/Plausible.Gen:docInfo (1.4s) +✔ [1604/2525] Built aesop/Aesop.RuleTac.ElabRuleTerm:docInfo (1.8s) +✔ [1605/2525] Built aesop/Aesop.Options.Internal:docInfo (1.8s) +✔ [1606/2525] Built aesop/Aesop.Script.OptimizeSyntax:docInfo (7.0s) +✔ [1607/2527] Built batteries/Batteries.Lean.Meta.SavedState:docInfo (2.9s) +✔ [1608/2527] Built batteries/Batteries.Linter.UnreachableTactic:docInfo (1.7s) +✔ [1609/2527] Built aesop/Aesop.RuleTac.RuleTerm:docInfo (1.5s) +✔ [1610/2527] Built batteries/Batteries.CodeAction.Attr:docInfo (8.0s) +✔ [1613/2553] Built mathlib/Mathlib.Tactic.Linter.Header:docInfo (2.9s) +✔ [1614/2553] Built importGraph/ImportGraph.Tools.ImportDiff:docInfo (3.0s) +✔ [1615/2553] Built hottlean/HoTTLean.Tactic.GrindCases:docInfo (7.3s) +✔ [1642/2554] Built batteries/Batteries.Lean.Meta.DiscrTree:docInfo (2.2s) +✔ [1644/2554] Built batteries/Batteries.Util.ProofWanted:docInfo (1.0s) +✔ [1645/2554] Built proofwidgets/ProofWidgets.Component.MakeEditLink:docInfo (1.6s) +✔ [1646/2554] Built proofwidgets/ProofWidgets.Cancellable:docInfo (2.4s) +✔ [1647/2555] Built aesop/Aesop.RuleSet.Filter:docInfo (2.2s) +✔ [1648/2555] Built batteries/Batteries.Lean.Expr:docInfo (8.7s) +✔ [1649/2555] Built proofwidgets/ProofWidgets.Component.Panel.Basic:docInfo (1.0s) +✔ [1651/2555] Built batteries/Batteries.Tactic.HelpCmd:docInfo (1.4s) +✔ [1652/2555] Built batteries/Batteries.Tactic.Lint.Simp:docInfo (1.5s) +✔ [1653/2555] Built aesop/Aesop.Util.EqualUpToIds:docInfo (4.8s) +✔ [1654/2555] Built aesop/Aesop.Util.Tactic.Unfold:docInfo (1.2s) +✔ [1655/2556] Built Qq/Qq.Delab:docInfo (1.9s) +✔ [1656/2556] Built Qq/Qq.Commands:docInfo (1.9s) +✔ [1658/2557] Built plausible/Plausible.Arbitrary:docInfo (1.3s) +✔ [1660/2558] Built batteries/Batteries.Logic:docInfo (1.9s) +✔ [1662/2559] Built LeanSearchClient/LeanSearchClient.Syntax:docInfo (4.4s) +✔ [1663/2559] Built batteries/Batteries.Tactic.Exact:docInfo (1.9s) +✔ [1665/2559] Built mathlib/Mathlib.Tactic.Linter.AuxLemma:docInfo (1.4s) +✔ [1666/2559] Built mathlib/Mathlib.Tactic.Linter.TacticDocumentation:docInfo (1.4s) +✔ [1667/2560] Built mathlib/Mathlib.Lean.Linter:docInfo (1.5s) +✔ [1668/2560] Built mathlib/Mathlib.Tactic.Linter.DeprecatedSyntaxLinter:docInfo (1.4s) +✔ [1669/2560] Built mathlib/Mathlib.Tactic.Linter.UnusedTacticExtension:docInfo (1.4s) +✔ [1671/2560] Built mathlib/Mathlib.Tactic.Linter.PrivateModule:docInfo (1.5s) +✔ [1672/2560] Built mathlib/Mathlib.Util.ParseCommand:docInfo (1.6s) +✔ [1673/2561] Built batteries/Batteries.Data.Nat.Lemmas:docInfo (2.5s) +✔ [1675/2564] Built mathlib/Mathlib.Tactic.Linter.Multigoal:docInfo (1.8s) +✔ [1676/2564] Built proofwidgets/ProofWidgets.Data.Html:docInfo (3.2s) +✔ [1680/2565] Built batteries/Batteries.Linter.UnnecessarySeqFocus:docInfo (2.9s) +✔ [1682/2568] Built mathlib/Mathlib.Tactic.AdaptationNote:docInfo (2.1s) +✔ [1683/2568] Built plausible/Plausible.Sampleable:docInfo (1.2s) +✔ [1684/2568] Built plausible/Plausible.ArbitraryFueled:docInfo (1.2s) +✔ [1688/2568] Built mathlib/Mathlib.Tactic.Linter.DocPrime:docInfo (2.2s) +✔ [1689/2568] Built mathlib/Mathlib.Tactic.Linter.GlobalAttributeIn:docInfo (2.2s) +✔ [1690/2568] Built mathlib/Mathlib.Tactic.Linter.HaveILetI:docInfo (2.2s) +✔ [1691/2568] Built hottlean/HoTTLean.Typechecker.Cache:docInfo (10s) +✔ [1692/2571] Built mathlib/Mathlib.Lean.Elab.Tactic.Meta:docInfo (2.5s) +✔ [1693/2571] Built Qq/Qq.MetaM:docInfo (1.7s) +✔ [1697/2572] Built batteries/Batteries.Tactic.GeneralizeProofs:docInfo (2.0s) +✔ [1699/2574] Built mathlib/Mathlib.Util.CodeActions.BinderPlicity:docInfo (2.7s) +✔ [1700/2574] Built LeanSearchClient/LeanSearchClient.LoogleSyntax:docInfo (1.6s) +✔ [1701/2574] Built proofwidgets/ProofWidgets.Component.FilterDetails:docInfo (967ms) +✔ [1704/2575] Built batteries/Batteries.Tactic.Lint.Frontend:docInfo (6.6s) +✔ [1705/2575] Built batteries/Batteries.CodeAction.Misc:docInfo (2.9s) +✔ [1707/2576] Built mathlib/Mathlib.Tactic.Linter.DocString:docInfo (2.9s) +✔ [1708/2576] Built batteries/Batteries.Data.MLList.Basic:docInfo (3.5s) +✔ [1710/2576] Built batteries/Batteries.Data.Fin.Basic:docInfo (1.5s) +✔ [1711/2576] Built mathlib/Mathlib.Tactic.Linter.HashCommandLinter:docInfo (3.3s) +✔ [1712/2576] Built mathlib/Mathlib.Tactic.Linter.Whitespace:docInfo (3.3s) +✔ [1713/2576] Built proofwidgets/ProofWidgets.Component.RefreshComponent:docInfo (1.5s) +✔ [1714/2577] Built mathlib/Mathlib.Tactic.Linter.OldObtain:docInfo (3.4s) +✔ [1715/2577] Built mathlib/Mathlib.Tactic.Linter.UnusedTactic:docInfo (1.0s) +✔ [1716/2577] Built mathlib/Mathlib.Tactic.TypeStar:docInfo (3.4s) +✔ [1717/2577] Built proofwidgets/ProofWidgets.Component.OfRpcMethod:docInfo (1.7s) +✔ [1719/2583] Built aesop/Aesop.Util.Basic:docInfo (3.9s) +✔ [1720/2583] Built plausible/Plausible.Functions:docInfo (1.5s) +✔ [1727/2585] Built mathlib/Mathlib.Tactic.Linter.InternalConstructor:docInfo (3.6s) +✔ [1728/2585] Built mathlib/Mathlib.Tactic.MinImports:docInfo (3.6s) +✔ [1731/2585] Built plausible/Plausible.DeriveArbitrary:docInfo (1.6s) +✔ [1732/2586] Built plausible/Plausible.Testable:docInfo (1.7s) +✔ [1734/2589] Built mathlib/Mathlib.Lean.Expr.Basic:docInfo (3.9s) +✔ [1735/2589] Built mathlib/Mathlib.Lean.Environment:docInfo (3.9s) +✔ [1736/2589] Built mathlib/Mathlib.Lean.ContextInfo:docInfo (1.4s) +✔ [1737/2589] Built batteries/Batteries.CodeAction.Basic:docInfo (4.1s) +✔ [1741/2589] Built mathlib/Mathlib.Tactic.Lemma:docInfo (4.1s) +✔ [1742/2589] Built mathlib/Mathlib.Tactic.Linter.EmptyLine:docInfo (3.0s) +✔ [1743/2589] Built mathlib/Mathlib.Util.CodeActions:docInfo (1.3s) +✔ [1744/2591] Built batteries/Batteries.Linter:docInfo (2.1s) +✔ [1745/2591] Built Qq/Qq.Simp:docInfo (1.6s) +ℹ [1746/2591] Built Qq/Qq.MatchImpl:docInfo (1.6s) +info: stdout: +WARNING: Failed to calculate equational lemmata for Qq.Impl.mkIsDefEqResult: failed +WARNING: Failed to obtain information for: Qq.Impl.mkLambdaQ: failed +✔ [1747/2591] Built Qq/Qq.AssertInstancesCommute:docInfo (1.6s) +✔ [1748/2591] Built LeanSearchClient/LeanSearchClient:docInfo (1.4s) +✔ [1751/2592] Built mathlib/Mathlib.Tactic.Linter.FlexibleLinter:docInfo (4.3s) +✔ [1752/2592] Built mathlib/Mathlib.Tactic.DeclarationNames:docInfo (4.2s) +✔ [1754/2596] Built batteries/Batteries.Data.List.Basic:docInfo (5.2s) +✔ [1759/2597] Built batteries/Batteries.Tactic.Lint:docInfo (1.8s) +✔ [1761/2597] Built mathlib/Mathlib.Tactic.ExtractGoal:docInfo (1.2s) +✔ [1762/2597] Built aesop/Aesop.RuleTac.Forward.Basic:docInfo (1.3s) +✔ [1763/2597] Built batteries/Batteries.Control.Nondet.Basic:docInfo (1.9s) +✔ [1764/2599] Built aesop/Aesop.Forward.Substitution:docInfo (1.5s) +✔ [1765/2599] Built mathlib/Mathlib.Tactic.Lift:docInfo (1.6s) +✔ [1766/2599] Built mathlib/Mathlib.Util.PrintSorries:docInfo (1.1s) +✔ [1769/2602] Built mathlib/Mathlib.Lean.Elab.InfoTree:docInfo (1.3s) +✔ [1770/2602] Built mathlib/Mathlib.Tactic.TacticAnalysis:docInfo (1.2s) +✔ [1771/2602] Built aesop/Aesop.Script.Util:docInfo (1.6s) +✔ [1772/2602] Built aesop/Aesop.Script.CtorNames:docInfo (1.6s) +✔ [1773/2602] Built plausible/Plausible.Tactic:docInfo (1.3s) +✔ [1777/2605] Built aesop/Aesop.Tracing:docInfo (1.7s) +✔ [1778/2605] Built aesop/Aesop.EMap:docInfo (1.7s) +✔ [1782/2605] Built mathlib/Mathlib.Tactic.Linter.MinImports:docInfo (1.7s) +✔ [1783/2605] Built batteries/Batteries.Data.List.Pairwise:docInfo (1.0s) +✔ [1784/2607] Built mathlib/Mathlib.Tactic.Linter.Lint:docInfo (905ms) +✔ [1785/2607] Built batteries/Batteries.Tactic.Basic:docInfo (1.4s) +✔ [1786/2607] Built batteries/Batteries.CodeAction.Match:docInfo (1.2s) +✔ [1787/2607] Built batteries/Batteries.Data.Fin.Lemmas:docInfo (1.3s) +✔ [1790/2609] Built mathlib/Mathlib.Tactic.Linter.Style:docInfo (1.4s) +ℹ [1791/2609] Built Qq/Qq.Match:docInfo (1.6s) +info: stdout: +WARNING: Failed to calculate equational lemmata for Qq.Impl.makeMatchCode: failed +WARNING: Failed to obtain information for: Qq.Impl.withLetHave: failed +WARNING: Failed to calculate equational lemmata for Qq.Impl.mkQqLets: failed +✔ [1792/2609] Built batteries/Batteries.Data.List.Lemmas:docInfo (1.4s) +✔ [1795/2609] Built aesop/Aesop.Index.Basic:docInfo (939ms) +✔ [1796/2610] Built mathlib/Mathlib.Tactic.Linter.UnusedInstancesInType:docInfo (907ms) +✔ [1798/2610] Built aesop/Aesop.RulePattern.Cache:docInfo (1.1s) +✔ [1799/2610] Built aesop/Aesop.Util.Tactic.Ext:docInfo (963ms) +✔ [1800/2610] Built plausible/Plausible:docInfo (1.0s) +✔ [1801/2612] Built aesop/Aesop.Script.Step:docInfo (1.1s) +✔ [1804/2615] Built mathlib/Mathlib.Tactic.TacticAnalysis.Declarations:docInfo (1.1s) +✔ [1805/2615] Built aesop/Aesop.Stats.Basic:docInfo (1.1s) +✔ [1809/2616] Built batteries/Batteries.Classes.Order:docInfo (999ms) +✔ [1810/2616] Built batteries/Batteries.CodeAction:docInfo (937ms) +✔ [1812/2618] Built Qq/Qq:docInfo (853ms) +✔ [1815/2619] Built batteries/Batteries.Data.List.Count:docInfo (989ms) +✔ [1817/2619] Built mathlib/Mathlib.Tactic.Linter.OverlappingInstances:docInfo (840ms) +✔ [1818/2621] Built aesop/Aesop.Script.UScript:docInfo (886ms) +✔ [1819/2621] Built aesop/Aesop.Script.SScript:docInfo (921ms) +✔ [1822/2625] Built aesop/Aesop.BaseM:docInfo (887ms) +✔ [1823/2625] Built aesop/Aesop.Stats.Extension:docInfo (943ms) +✔ [1824/2625] Built aesop/Aesop.Stats.File:docInfo (937ms) +✔ [1829/2625] Built hottlean/HoTTLean.Typechecker.Util:docInfo (808ms) +✔ [1830/2626] Built batteries/Batteries.Data.UInt:docInfo (984ms) +✔ [1832/2626] Built batteries/Batteries.Data.List.Perm:docInfo (1.0s) +✔ [1833/2626] Built batteries/Batteries.Data.BinomialHeap.Basic:docInfo (1.3s) +✔ [1834/2628] Built aesop/Aesop.Script.Check:docInfo (883ms) +✔ [1835/2628] Built aesop/Aesop.Script.UScriptToSScript:docInfo (885ms) +✔ [1838/2631] Built aesop/Aesop.RuleTac.GoalDiff:docInfo (923ms) +✔ [1839/2631] Built aesop/Aesop.RulePattern:docInfo (963ms) +✔ [1840/2631] Built aesop/Aesop.Script.ScriptM:docInfo (964ms) +✔ [1841/2631] Built aesop/Aesop.Stats.Report:docInfo (909ms) +✔ [1845/2632] Built batteries/Batteries.Data.Array.Basic:docInfo (957ms) +✔ [1847/2633] Built aesop/Aesop.Script.StructureDynamic:docInfo (880ms) +✔ [1848/2633] Built aesop/Aesop.Script.StructureStatic:docInfo (880ms) +✔ [1850/2633] Built aesop/Aesop.Index.RulePattern:docInfo (924ms) +✔ [1851/2635] Built aesop/Aesop.RuleTac.Basic:docInfo (996ms) +✔ [1854/2639] Built aesop/Aesop.Forward.RuleInfo:docInfo (990ms) +✔ [1855/2639] Built aesop/Aesop.Script.SpecificTactics:docInfo (1.2s) +✔ [1860/2639] Built aesop/Aesop.Script.Main:docInfo (1.0s) +✔ [1861/2639] Built aesop/Aesop.RuleTac.Tactic:docInfo (899ms) +✔ [1862/2639] Built aesop/Aesop.Search.Expansion.Basic:docInfo (910ms) +✔ [1863/2639] Built aesop/Aesop.RuleTac.Cases:docInfo (965ms) +✔ [1864/2639] Built aesop/Aesop.RuleTac.Preprocess:docInfo (1.1s) +✔ [1865/2640] Built aesop/Aesop.Rule.Forward:docInfo (1.2s) +ℹ [1867/2641] Built importGraph/ImportGraph.Tools.FindHome:docInfo (13s) +info: stdout: +WARNING: Failed to calculate equational lemmata for Lean.Name.findHome: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +✔ [1869/2643] Built aesop/Aesop.Forward.Match.Types:docInfo (994ms) +✔ [1872/2644] Built importGraph/ImportGraph.Tools:docInfo (838ms) +✔ [1874/2645] Built aesop/Aesop.RuleTac.Descr:docInfo (952ms) +✔ [1875/2645] Built aesop/Aesop.Index.Forward:docInfo (965ms) +✔ [1877/2645] Built aesop/Aesop.RuleTac.Apply:docInfo (3.3s) +✔ [1878/2686] Built mathlib/Mathlib.Init:docInfo (988ms) +✔ [1990/2757] Built aesop/Aesop.Rule.Basic:docInfo (1.1s) +✔ [1991/2757] Built mathlib/Mathlib.Tactic.ApplyWith:docInfo (1.3s) +✔ [1992/2757] Built mathlib/Mathlib.Tactic.ClearExclamation:docInfo (1.7s) +✔ [1993/2757] Built mathlib/Mathlib.Tactic.GCongr.ForwardAttr:docInfo (2.6s) +✔ [1994/2757] Built mathlib/Mathlib.Tactic.NthRewrite:docInfo (3.3s) +✔ [1995/2757] Built mathlib/Mathlib.Lean.FoldEnvironment:docInfo (3.4s) +✔ [1996/2757] Built mathlib/Mathlib.Lean.Meta.RefinedDiscrTree.Basic:docInfo (2.6s) +✔ [1997/2757] Built mathlib/Mathlib.Lean.GoalsLocation:docInfo (2.8s) +✔ [1998/2757] Built mathlib/Mathlib.Tactic.Coe:docInfo (1.6s) +✔ [1999/2757] Built mathlib/Mathlib.Tactic.Constructor:docInfo (2.9s) +✔ [2000/2757] Built mathlib/Mathlib.Tactic.DeprecateTo:docInfo (1.5s) +✔ [2001/2757] Built mathlib/Mathlib.Tactic.ExistsI:docInfo (1.7s) +✔ [2002/2757] Built mathlib/Mathlib.Tactic.Find:docInfo (4.6s) +✔ [2003/2757] Built mathlib/Mathlib.Tactic.FunProp.Mor:docInfo (3.6s) +✔ [2004/2757] Built mathlib/Mathlib.Tactic.FunProp.ToBatteries:docInfo (4.7s) +✔ [2005/2757] Built mathlib/Mathlib.Tactic.InferParam:docInfo (4.2s) +✔ [2006/2757] Built mathlib/Mathlib.Tactic.GrindAttrs:docInfo (4.1s) +✔ [2007/2757] Built mathlib/Mathlib.Tactic.GuardHypNums:docInfo (4.6s) +✔ [2008/2757] Built mathlib/Mathlib.Tactic.Linter.PPRoundtrip:docInfo (2.6s) +✔ [2009/2757] Built mathlib/Mathlib.Tactic.Observe:docInfo (4.7s) +✔ [2010/2757] Built mathlib/Mathlib.Tactic.OfNat:docInfo (4.8s) +✔ [2011/2757] Built mathlib/Mathlib.Tactic.RSuffices:docInfo (1.8s) +✔ [2012/2757] Built mathlib/Mathlib.Tactic.Recover:docInfo (4.4s) +✔ [2013/2757] Built mathlib/Mathlib.Tactic.Rename:docInfo (4.9s) +✔ [2014/2757] Built mathlib/Mathlib.Util.Tactic:docInfo (4.5s) +✔ [2015/2757] Built mathlib/Mathlib.Tactic.Set:docInfo (3.4s) +✔ [2016/2757] Built mathlib/Mathlib.Tactic.Simproc.ExistsAndEq:docInfo (2.1s) +✔ [2017/2757] Built mathlib/Mathlib.Tactic.Spread:docInfo (4.0s) +✔ [2018/2757] Built mathlib/Mathlib.Tactic.Substs:docInfo (4.6s) +✔ [2019/2757] Built mathlib/Mathlib.Tactic.SudoSetOption:docInfo (5.2s) +✔ [2020/2757] Built mathlib/Mathlib.Tactic.ToExpr:docInfo (2.7s) +✔ [2021/2757] Built mathlib/Mathlib.Tactic.Trace:docInfo (3.8s) +✔ [2022/2757] Built mathlib/Mathlib.Tactic.UnsetOption:docInfo (2.2s) +✔ [2023/2757] Built mathlib/Mathlib.Util.CountHeartbeats:docInfo (2.9s) +✔ [2024/2757] Built mathlib/Mathlib.Util.TransImports:docInfo (1.5s) +✔ [2025/2757] Built mathlib/Mathlib.Util.WhatsNew:docInfo (1.7s) +✔ [2026/2757] Built mathlib/Mathlib.Tactic.CategoryTheory.CategoryStar:docInfo (1.4s) +✔ [2027/2757] Built mathlib/Mathlib.Data.Ordering.Basic:docInfo (3.6s) +✔ [2028/2757] Built mathlib/Mathlib.Tactic.FastInstance:docInfo (3.2s) +✔ [2029/2757] Built mathlib/Mathlib.Logic.Function.ULift:docInfo (2.1s) +✔ [2030/2757] Built mathlib/Mathlib.Data.Int.Notation:docInfo (4.3s) +✔ [2031/2757] Built mathlib/Mathlib.Control.ULift:docInfo (4.2s) +✔ [2032/2757] Built mathlib/Mathlib.Data.Prod.PProd:docInfo (1.3s) +✔ [2033/2757] Built mathlib/Mathlib.Util.PPOptions:docInfo (3.4s) +✔ [2034/2757] Built mathlib/Mathlib.CategoryTheory.ConcreteCategory.Notation:docInfo (2.3s) +✔ [2035/2757] Built mathlib/Mathlib.Data.List.Monad:docInfo (1.9s) +✔ [2036/2757] Built mathlib/Mathlib.Data.Int.DivMod:docInfo (2.6s) +✔ [2037/2757] Built mathlib/Mathlib.Data.List.TFAE:docInfo (1.7s) +✔ [2038/2757] Built mathlib/Mathlib.Tactic.CategoryTheory.Coherence.Datatypes:docInfo (2.8s) +✔ [2048/2767] Built mathlib/Mathlib.Tactic.Core:docInfo (5.8s) +✔ [2049/2767] Built mathlib/Mathlib.Tactic.ApplyCongr:docInfo (2.7s) +✔ [2050/2767] Built mathlib/Mathlib.Tactic.CasesM:docInfo (3.7s) +✔ [2051/2767] Built mathlib/Mathlib.Tactic.DSimpPercent:docInfo (5.6s) +✔ [2052/2767] Built mathlib/Mathlib.Tactic.Linter.UpstreamableDecl:docInfo (5.3s) +✔ [2053/2767] Built mathlib/Mathlib.Tactic.SwapVar:docInfo (5.6s) +✔ [2054/2767] Built mathlib/Mathlib.Tactic.Variable:docInfo (6.0s) +✔ [2055/2767] Built mathlib/Mathlib.Tactic.TryThis:docInfo (5.6s) +✔ [2056/2767] Built mathlib/Mathlib.Util.CompileInductive:docInfo (5.5s) +✔ [2057/2767] Built mathlib/Mathlib.Data.Option.NAry:docInfo (5.8s) +✔ [2060/2767] Built mathlib/Mathlib.Tactic.DepRewrite:docInfo (3.3s) +✔ [2061/2767] Built mathlib/Mathlib.Tactic.HigherOrder:docInfo (6.4s) +✔ [2062/2767] Built mathlib/Mathlib.Tactic.Conv:docInfo (2.4s) +✔ [2063/2767] Built mathlib/Mathlib.Tactic.FailIfNoProgress:docInfo (6.5s) +✔ [2064/2767] Built mathlib/Mathlib.Util.AddRelatedDecl:docInfo (2.4s) +✔ [2065/2767] Built mathlib/Mathlib.Tactic.ClearExcept:docInfo (4.6s) +✔ [2066/2770] Built mathlib/Mathlib.Basic.Nonempty:docInfo (2.1s) +✔ [2067/2770] Built mathlib/Mathlib.Tactic.Push.Attr:docInfo (2.2s) +✔ [2068/2770] Built mathlib/Mathlib.Lean.Meta:docInfo (2.0s) +✔ [2069/2770] Built mathlib/Mathlib.Lean.MessageData.Trace:docInfo (4.6s) +✔ [2073/2770] Built mathlib/Mathlib.Lean.Meta.Simp:docInfo (2.2s) +✔ [2074/2770] Built mathlib/Mathlib.Tactic.Eqns:docInfo (2.6s) +✔ [2075/2770] Built mathlib/Mathlib.Data.Option.Defs:docInfo (6.9s) +✔ [2076/2770] Built mathlib/Mathlib.Data.Nat.BinaryRec:docInfo (6.9s) +✔ [2077/2772] Built mathlib/Mathlib.Basic.ExistsUnique:docInfo (2.3s) +✔ [2078/2772] Built mathlib/Mathlib.Tactic.DefEqTransformations:docInfo (4.5s) +✔ [2079/2772] Built mathlib/Mathlib.Util.TermReduce:docInfo (7.0s) +✔ [2080/2772] Built mathlib/Mathlib.Tactic.Widget.SelectInsertParamsClass:docInfo (7.0s) +✔ [2083/2772] Built mathlib/Mathlib.Util.AtLocation:docInfo (4.5s) +✔ [2084/2772] Built mathlib/Mathlib.Tactic.Use:docInfo (3.2s) +✔ [2085/2773] Built mathlib/Mathlib.Basic.IsEmpty.Defs:docInfo (2.5s) +✔ [2087/2774] Built mathlib/Mathlib.Util.WithWeakNamespace:docInfo (3.0s) +✔ [2089/2774] Built mathlib/Mathlib.Lean.Elab.Term:docInfo (4.0s) +✔ [2090/2774] Built mathlib/Mathlib.Tactic.FunProp.Decl:docInfo (7.5s) +✔ [2091/2774] Built mathlib/Mathlib.Tactic.GuardGoalNums:docInfo (2.5s) +✔ [2092/2776] Built mathlib/Mathlib.Data.String.Defs:docInfo (3.1s) +✔ [2093/2776] Built mathlib/Mathlib.Tactic.Simps.NotationClass:docInfo (3.6s) +✔ [2094/2776] Built mathlib/Mathlib.Lean.Name:docInfo (3.8s) +✔ [2095/2776] Built mathlib/Mathlib.Logic.OpClass:docInfo (7.6s) +✔ [2098/2777] Built mathlib/Mathlib.Tactic.Inhabit:docInfo (3.6s) +✔ [2099/2777] Built mathlib/Mathlib.Lean.Meta.Basic:docInfo (4.9s) +✔ [2100/2777] Built mathlib/Mathlib.Tactic.Monotonicity.Attr:docInfo (7.7s) +✔ [2101/2777] Built mathlib/Mathlib.CategoryTheory.ConcreteCategory.Bundled:docInfo (7.7s) +✔ [2103/2777] Built mathlib/Mathlib.Tactic.ExtendDoc:docInfo (3.6s) +✔ [2104/2779] Built mathlib/Mathlib.Tactic.PPWithUniv:docInfo (4.7s) +✔ [2107/2779] Built mathlib/Mathlib.Tactic.SimpIntro:docInfo (8.1s) +✔ [2108/2779] Built mathlib/Mathlib.Tactic.SuccessIfFailWithMsg:docInfo (8.1s) +✔ [2109/2779] Built mathlib/Mathlib.Tactic.Translate.Reorder:docInfo (3.9s) +✔ [2110/2783] Built mathlib/Mathlib.Tactic.Attr.Register:docInfo (3.7s) +✔ [2111/2783] Built mathlib/Mathlib.Lean.Meta.RefinedDiscrTree.Encode:docInfo (2.5s) +✔ [2116/2783] Built mathlib/Mathlib.Lean.Meta.KAbstractPositions:docInfo (6.9s) +✔ [2117/2783] Built mathlib/Mathlib.Data.List.Induction:docInfo (8.4s) +✔ [2118/2784] Built mathlib/Mathlib.Tactic.Linter.HaveLetLinter:docInfo (8.5s) +✔ [2120/2787] Built aesop/Aesop.Rule:docInfo (3.3s) +✔ [2121/2787] Built mathlib/Mathlib.Basic.Nontrivial.Defs:docInfo (1.8s) +✔ [2125/2788] Built mathlib/Mathlib.Lean.Meta.CongrTheorems:docInfo (1.3s) +✔ [2127/2788] Built mathlib/Mathlib.Tactic.CrossRefAttribute:docInfo (5.4s) +✔ [2128/2788] Built mathlib/Mathlib.Tactic.DefEqAbuse:docInfo (1.0s) +✔ [2129/2789] Built mathlib/Mathlib.Lean.Meta.RefinedDiscrTree.Initialize:docInfo (3.3s) +✔ [2130/2789] Built mathlib/Mathlib.Tactic.Relation.Rfl:docInfo (5.7s) +✔ [2131/2789] Built mathlib/Mathlib.Lean.Elab.Tactic.Basic:docInfo (2.2s) +✔ [2133/2791] Built mathlib/Mathlib.Data.Nat.Notation:docInfo (9.3s) +✔ [2136/2794] Built mathlib/Mathlib.Tactic.ToLevel:docInfo (1.4s) +✔ [2137/2794] Built mathlib/Mathlib.Tactic.Widget.SelectPanelUtils:docInfo (2.4s) +✔ [2141/2794] Built mathlib/Mathlib.Tactic.SplitIfs:docInfo (3.5s) +ℹ [2142/2794] Built mathlib/Mathlib.Tactic.MkIffOfInductiveProp:docInfo (1.0s) +info: stdout: +WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.MkIff.nCasesSum: failed to generate equational theorem for `Mathlib.Tactic.MkIff.nCasesSum` + failed to generate equality theorems for `match` expression `_private.Mathlib.Tactic.MkIffOfInductiveProp.0.Mathlib.Tactic.MkIff.nCasesSum.match_4` + case isTrue + motive✝ : Array Lean.Meta.CasesSubgoal → Sort u_1 + x✝¹ : Array Lean.Meta.CasesSubgoal + h_1✝ : (sg1 sg2 : Lean.Meta.CasesSubgoal) → motive✝ #[sg1, sg2] + h_2✝ : (x : Array Lean.Meta.CasesSubgoal) → motive✝ x + x✝ : ∀ (sg1 sg2 : Lean.Meta.CasesSubgoal), x✝¹ = #[sg1, sg2] → False + h✝ : x✝¹.size = 2 + ⊢ (⋯ ▸ fun h => ⋯ ▸ h_1✝ (x✝¹.getLit 0 ⋯ ⋯) (x✝¹.getLit 1 ⋯ ⋯)) ⋯ = h_2✝ x✝¹ +WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.MkIff.nCasesProd: failed to generate equational theorem for `Mathlib.Tactic.MkIff.nCasesProd` + failed to generate equality theorems for `match` expression `_private.Mathlib.Tactic.MkIffOfInductiveProp.0.Mathlib.Tactic.MkIff.nCasesProd.match_5` + case isTrue + motive✝ : Array Lean.Meta.CasesSubgoal → Sort u_1 + x✝¹ : Array Lean.Meta.CasesSubgoal + h_1✝ : (sg : Lean.Meta.CasesSubgoal) → motive✝ #[sg] + h_2✝ : (x : Array Lean.Meta.CasesSubgoal) → motive✝ x + x✝ : ∀ (sg : Lean.Meta.CasesSubgoal), x✝¹ = #[sg] → False + h✝ : x✝¹.size = 1 + ⊢ (⋯ ▸ fun h => ⋯ ▸ h_1✝ (x✝¹.getLit 0 ⋯ ⋯)) ⋯ = h_2✝ x✝¹ +✔ [2143/2794] Built mathlib/Mathlib.Tactic.ScopedNS:docInfo (2.1s) +✔ [2144/2794] Built mathlib/Mathlib.Tactic.Clear_:docInfo (7.7s) +✔ [2145/2796] Built mathlib/Mathlib.Tactic.Translate.GuessName:docInfo (2.0s) +✔ [2146/2796] Built mathlib/Mathlib.Tactic.Translate.Attributes:docInfo (5.3s) +✔ [2147/2796] Built mathlib/Mathlib.Tactic.Translate.UnfoldBoundary:docInfo (5.4s) +✔ [2150/2798] Built mathlib/Mathlib.Tactic.Basic:docInfo (1.7s) +✔ [2153/2798] Built mathlib/Mathlib.Tactic.Check:docInfo (4.9s) +✔ [2154/2798] Built mathlib/Mathlib.Tactic.SimpRw:docInfo (6.3s) +✔ [2155/2798] Built mathlib/Mathlib.Control.Combinators:docInfo (8.3s) +✔ [2156/2798] Built mathlib/Mathlib.Tactic.ApplyAt:docInfo (2.3s) +✔ [2157/2799] Built mathlib/Mathlib.Logic.Function.Defs:docInfo (1.8s) +✔ [2159/2800] Built mathlib/Mathlib.Tactic.Attr.Core:docInfo (1.9s) +✔ [2160/2800] Built mathlib/Mathlib.Tactic.RenameBVar:docInfo (4.4s) +✔ [2162/2800] Built mathlib/Mathlib.Tactic.Linter:docInfo (1.9s) +✔ [2163/2804] Built mathlib/Mathlib.Basic.Logic.Basic:docInfo (2.2s) +✔ [2168/2807] Built aesop/Aesop.RuleSet.Member:docInfo (1.0s) +✔ [2169/2807] Built mathlib/Mathlib.Lean.Meta.RefinedDiscrTree.Lookup:docInfo (2.3s) +✔ [2170/2807] Built mathlib/Mathlib.Tactic.FunProp.FunctionData:docInfo (4.7s) +✔ [2171/2807] Built mathlib/Mathlib.Tactic.IrreducibleDef:docInfo (3.7s) +✔ [2175/2807] Built aesop/Aesop.Tree.UnsafeQueue:docInfo (2.1s) +✔ [2176/2807] Built mathlib/Mathlib.Util.Delaborators:docInfo (5.1s) +✔ [2177/2810] Built mathlib/Mathlib.Lean.PrettyPrinter.Delaborator:docInfo (6.2s) +✔ [2178/2810] Built mathlib/Mathlib.Tactic.TermCongr:docInfo (2.2s) +✔ [2179/2810] Built mathlib/Mathlib.Data.Nat.Init:docInfo (1.5s) +✔ [2183/2810] Built mathlib/Mathlib.Tactic.Widget.Calc:docInfo (1.4s) +✔ [2184/2810] Built mathlib/Mathlib.Tactic.CategoryTheory.Coherence.PureCoherence:docInfo (5.4s) +✔ [2185/2810] Built aesop/Aesop.Index:docInfo (5.9s) +✔ [2186/2813] Built mathlib/Mathlib.Tactic.Translate.Core:docInfo (1.6s) +✔ [2187/2813] Built mathlib/Mathlib.Tactic.Hint:docInfo (1.5s) +✔ [2188/2813] Built mathlib/Mathlib.Tactic.FBinop:docInfo (5.7s) +✔ [2192/2816] Built aesop/Aesop.Forward.Match:docInfo (3.0s) +✔ [2193/2816] Built mathlib/Mathlib.Logic.Relator:docInfo (1.5s) +✔ [2194/2816] Built mathlib/Mathlib.Tactic.Setm:docInfo (2.6s) +✔ [2198/2817] Built mathlib/Mathlib.Tactic.Simps.Basic:docInfo (2.2s) +✔ [2199/2817] Built mathlib/Mathlib.Tactic.Says:docInfo (1.0s) +✔ [2200/2817] Built mathlib/Mathlib.Tactic.Subsingleton:docInfo (1.3s) +✔ [2201/2817] Built mathlib/Mathlib.Tactic.Widget.CongrM:docInfo (2.2s) +✔ [2203/2818] Built mathlib/Mathlib.Tactic.FunProp.Types:docInfo (1.4s) +✔ [2204/2818] Built mathlib/Mathlib.Tactic.Widget.Conv:docInfo (2.5s) +✔ [2206/2818] Built mathlib/Mathlib.Data.Int.Init:docInfo (2.8s) +✔ [2207/2818] Built mathlib/Mathlib.Control.Basic:docInfo (2.1s) +✔ [2208/2826] Built aesop/Aesop.Builder.Basic:docInfo (1.7s) +✔ [2209/2826] Built mathlib/Mathlib.Lean.Meta.RefinedDiscrTree:docInfo (1.7s) +✔ [2218/2826] Built mathlib/Mathlib.Tactic.SetNotationForOrder:docInfo (1.6s) +✔ [2219/2826] Built mathlib/Mathlib.Tactic.CongrM:docInfo (1.6s) +✔ [2220/2831] Built mathlib/Mathlib.Tactic.Push:docInfo (2.0s) +✔ [2226/2832] Built mathlib/Mathlib.Util.Notation3:docInfo (1.8s) +✔ [2227/2832] Built mathlib/Mathlib.Tactic.CongrExclamation:docInfo (2.2s) +✔ [2229/2832] Built mathlib/Mathlib.Data.SProd:docInfo (1.5s) +✔ [2230/2832] Built mathlib/Mathlib.Tactic.Simps:docInfo (1.1s) +✔ [2231/2833] Built mathlib/Mathlib.Tactic.Translate.ToAdditive:docInfo (1.8s) +✔ [2233/2834] Built mathlib/Mathlib.Tactic.Translate.TagUnfoldBoundary:docInfo (1.8s) +✔ [2235/2835] Built aesop/Aesop.Tree.Data.ForwardRuleMatches:docInfo (1.6s) +✔ [2236/2835] Built mathlib/Mathlib.Tactic.Tauto:docInfo (2.7s) +✔ [2238/2837] Built aesop/Aesop.Forward.State:docInfo (1.7s) +✔ [2239/2837] Built aesop/Aesop.RuleTac.Forward:docInfo (1.7s) +✔ [2242/2837] Built aesop/Aesop.Builder.Apply:docInfo (1.1s) +✔ [2243/2839] Built aesop/Aesop.Builder.Cases:docInfo (1.4s) +✔ [2244/2839] Built aesop/Aesop.Builder.NormSimp:docInfo (1.4s) +✔ [2245/2839] Built aesop/Aesop.Builder.Unfold:docInfo (1.4s) +✔ [2246/2839] Built mathlib/Mathlib.Tactic.FunProp.Theorems:docInfo (1.7s) +✔ [2249/2839] Built aesop/Aesop.Builder.Tactic:docInfo (1.6s) +✔ [2250/2839] Built mathlib/Mathlib.Tactic.Widget.LibraryRewrite:docInfo (1.5s) +✔ [2251/2839] Built mathlib/Mathlib.Tactic.ByCases:docInfo (1.6s) +✔ [2252/2839] Built mathlib/Mathlib.Tactic.ByContra:docInfo (1.5s) +✔ [2253/2839] Built mathlib/Mathlib.Tactic.Contrapose:docInfo (1.5s) +✔ [2254/2839] Built mathlib/Mathlib.Tactic.WLOG:docInfo (1.5s) +✔ [2255/2840] Built aesop/Aesop.Builder.Constructors:docInfo (1.8s) +✔ [2256/2840] Built aesop/Aesop.Builder.Forward:docInfo (1.8s) +✔ [2257/2840] Built mathlib/Mathlib.Tactic.ToFun:docInfo (1.6s) +✔ [2259/2843] Built mathlib/Mathlib.Tactic.Translate.ToDual:docInfo (1.3s) +✔ [2260/2843] Built mathlib/Mathlib.Tactic.Convert:docInfo (1.7s) +✔ [2264/2845] Built mathlib/Mathlib.Tactic.ToAdditive:docInfo (1.5s) +✔ [2267/2845] Built aesop/Aesop.RuleTac:docInfo (1.3s) +ℹ [2268/2845] Built mathlib/Mathlib.Tactic.ErwQuestion:docInfo (14s) +info: stdout: +WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.Erw?.logDiffs: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +✔ [2269/2848] Built aesop/Aesop.RuleSet:docInfo (1.4s) +✔ [2270/2848] Built mathlib/Mathlib.Tactic.FunProp.Attr:docInfo (1.0s) +✔ [2274/2851] Built aesop/Aesop.Tree.Data:docInfo (1.5s) +✔ [2278/2852] Built mathlib/Mathlib.Tactic.FunProp.Core:docInfo (1.4s) +✔ [2280/2853] Built aesop/Aesop.Builder.Default:docInfo (997ms) +✔ [2282/2857] Built mathlib/Mathlib.Tactic.ToDual:docInfo (1.1s) +✔ [2287/2859] Built mathlib/Mathlib.Basic.Logic.Lemmas:docInfo (1.2s) +✔ [2288/2859] Built mathlib/Mathlib.Algebra.Regular.Defs:docInfo (1.0s) +✔ [2289/2859] Built hottlean/HoTTLean.Syntax.Autosubst:docInfo (1.2s) +✔ [2292/2860] Built mathlib/Mathlib.Algebra.Notation.Defs:docInfo (1.1s) +✔ [2294/2860] Built aesop/Aesop.Forward.State.ApplyGoalDiff:docInfo (1.0s) +✔ [2295/2866] Built aesop/Aesop.Search.Queue.Class:docInfo (1.3s) +✔ [2296/2866] Built aesop/Aesop.Forward.State.Initial:docInfo (1.4s) +✔ [2297/2866] Built aesop/Aesop.Tree.RunMetaM:docInfo (1.4s) +✔ [2298/2866] Built aesop/Aesop.Tree.Traversal:docInfo (1.3s) +✔ [2299/2866] Built aesop/Aesop.Frontend.Extension.Init:docInfo (1.4s) +✔ [2306/2867] Built mathlib/Mathlib.Tactic.FunProp.Elab:docInfo (1.2s) +✔ [2308/2867] Built aesop/Aesop.Frontend.RuleExpr:docInfo (1.3s) +✔ [2309/2867] Built mathlib/Mathlib.Order.Defs.Prop:docInfo (1.1s) +✔ [2310/2869] Built mathlib/Mathlib.Order.Defs.PartialOrder:docInfo (1.2s) +✔ [2313/2876] Built mathlib/Mathlib.Data.Set.Defs:docInfo (1.3s) +✔ [2314/2876] Built mathlib/Mathlib.Order.Notation:docInfo (1.3s) +✔ [2315/2876] Built mathlib/Mathlib.Algebra.Group.Semigroup:docInfo (1.2s) +✔ [2323/2877] Built hottlean/HoTTLean.Syntax.Typing:docInfo (1.3s) +✔ [2325/2877] Built mathlib/Mathlib.Algebra.Notation.Pi.Defs:docInfo (1.4s) +✔ [2326/2884] Built aesop/Aesop.Tree.TreeM:docInfo (1.1s) +✔ [2334/2888] Built aesop/Aesop.Frontend.Extension:docInfo (1.2s) +✔ [2335/2888] Built aesop/Aesop.Saturate:docInfo (1.2s) +✔ [2340/2889] Built aesop/Aesop.Tree.State:docInfo (1.3s) +✔ [2341/2889] Built aesop/Aesop.Tree.Tracing:docInfo (1.3s) +✔ [2342/2889] Built aesop/Aesop.Search.Queue:docInfo (1.3s) +✔ [2343/2889] Built mathlib/Mathlib.Tactic.FunProp:docInfo (1.2s) +✔ [2345/2889] Built mathlib/Mathlib.Order.TypeTags:docInfo (1.2s) +✔ [2346/2889] Built mathlib/Mathlib.Algebra.NeZero:docInfo (1.2s) +✔ [2347/2889] Built mathlib/Mathlib.Order.Bounds.Defs:docInfo (1.3s) +✔ [2348/2890] Built mathlib/Mathlib.Control.Functor:docInfo (1.4s) +✔ [2350/2893] Built mathlib/Mathlib.Order.Defs.Unbundled:docInfo (1.5s) +✔ [2354/2896] Built aesop/Aesop.Search.SearchM:docInfo (1.2s) +✔ [2355/2896] Built mathlib/Mathlib.Order.Defs.LinearOrder:docInfo (1.8s) +✔ [2356/2896] Built mathlib/Mathlib.Data.Set.CoeSort:docInfo (1.7s) +✔ [2360/2899] Built aesop/Aesop.Forward.State.UpdateGoal:docInfo (1.4s) +✔ [2361/2899] Built aesop/Aesop.Tree.ExtractProof:docInfo (1.4s) +✔ [2362/2899] Built aesop/Aesop.Tree.ExtractScript:docInfo (1.4s) +✔ [2363/2899] Built aesop/Aesop.Frontend.Tactic:docInfo (1.3s) +✔ [2364/2899] Built mathlib/Mathlib.Order.Interval.Set.Defs:docInfo (1.9s) +✔ [2365/2899] Built mathlib/Mathlib.Algebra.Group.Monoid:docInfo (1.8s) +✔ [2369/2899] Built aesop/Aesop.Tree.AddRapp:docInfo (1.4s) +✔ [2370/2899] Built aesop/Aesop.Frontend.Saturate:docInfo (1.3s) +✔ [2371/2907] Built aesop/Aesop.Frontend.Attribute:docInfo (1.4s) +✔ [2380/2907] Built aesop/Aesop.Tree.Check:docInfo (1.5s) +✔ [2381/2907] Built aesop/Aesop.Tree.Stats:docInfo (1.7s) +✔ [2382/2908] Built aesop/Aesop.Tree.Free:docInfo (1.8s) +✔ [2383/2908] Built aesop/Aesop.Frontend.Command:docInfo (1.6s) +✔ [2385/2909] Built hottlean/HoTTLean.Syntax.Substitution:docInfo (2.4s) +✔ [2387/2909] Built mathlib/Mathlib.Logic.Relation:docInfo (1.4s) +✔ [2388/2909] Built mathlib/Mathlib.Data.Int.Order.Basic:docInfo (1.2s) +✔ [2389/2910] Built aesop/Aesop.Search.RuleSelection:docInfo (1.3s) +✔ [2390/2910] Built mathlib/Mathlib.Data.Bool.Basic:docInfo (1.2s) +✔ [2392/2921] Built aesop/Aesop.BuiltinRules.Assumption:docInfo (1.1s) +✔ [2393/2921] Built aesop/Aesop.BuiltinRules.Subst:docInfo (1.1s) +✔ [2394/2921] Built mathlib/Mathlib.Logic.Function.Basic:docInfo (1.6s) +✔ [2395/2921] Built mathlib/Mathlib.Tactic.GCongr.Core:docInfo (1.6s) +✔ [2407/2921] Built aesop/Aesop.BuiltinRules.Split:docInfo (1.2s) +✔ [2408/2921] Built aesop/Aesop.BuiltinRules.ApplyHyps:docInfo (1.3s) +✔ [2409/2921] Built aesop/Aesop.BuiltinRules.Rfl:docInfo (1.4s) +✔ [2410/2924] Built aesop/Aesop.Frontend:docInfo (1.2s) +✔ [2411/2924] Built aesop/Aesop.BuiltinRules.Ext:docInfo (1.5s) +✔ [2412/2924] Built aesop/Aesop.BuiltinRules.Intros:docInfo (1.4s) +✔ [2413/2924] Built mathlib/Mathlib.Data.List.Defs:docInfo (2.1s) +✔ [2417/2924] Built mathlib/Mathlib.Algebra.Group.Nat.Defs:docInfo (1.8s) +✔ [2418/2926] Built aesop/Aesop.BuiltinRules.DestructProducts:docInfo (1.9s) +✔ [2419/2926] Built mathlib/Mathlib.Algebra.Group.DivInvMonoid:docInfo (2.0s) +✔ [2420/2926] Built mathlib/Mathlib.Algebra.BigOperators.Group.List.Defs:docInfo (2.1s) +✔ [2423/2930] Built mathlib/Mathlib.Basic.Unique:docInfo (1.3s) +✔ [2424/2930] Built mathlib/Mathlib.Tactic.GCongr:docInfo (1.4s) +✔ [2425/2930] Built mathlib/Mathlib.Logic.Function.Conjugate:docInfo (1.3s) +✔ [2430/2934] Built aesop/Aesop.Search.Expansion.Norm:docInfo (1.5s) +✔ [2431/2934] Built mathlib/Mathlib.Data.Subtype:docInfo (1.4s) +✔ [2432/2934] Built mathlib/Mathlib.Logic.Pairwise:docInfo (1.4s) +✔ [2433/2934] Built mathlib/Mathlib.Data.Sigma.Basic:docInfo (1.4s) +✔ [2434/2934] Built mathlib/Mathlib.Algebra.Notation.Pi.Basic:docInfo (1.3s) +✔ [2439/2935] Built mathlib/Mathlib.Tactic.GRewrite.Core:docInfo (1.5s) +✔ [2440/2935] Built mathlib/Mathlib.Basic.IsEmpty.Basic:docInfo (1.5s) +✔ [2441/2935] Built mathlib/Mathlib.Data.Finset.Attr:docInfo (1.3s) +✔ [2443/2935] Built mathlib/Mathlib.Tactic.Finiteness.Attr:docInfo (1.4s) +✔ [2444/2935] Built mathlib/Mathlib.Data.Sum.Basic:docInfo (1.7s) +✔ [2445/2937] Built hottlean/HoTTLean.Syntax.Inversion:docInfo (2.4s) +✔ [2448/2937] Built mathlib/Mathlib.Tactic.SetLike:docInfo (1.5s) +✔ [2449/2937] Built mathlib/Mathlib.Tactic.Choose:docInfo (1.0s) +✔ [2450/2937] Built aesop/Aesop.BuiltinRules:docInfo (1.3s) +✔ [2451/2939] Built mathlib/Mathlib.Algebra.Group.Defs:docInfo (1.5s) +✔ [2456/2942] Built mathlib/Mathlib.Data.FunLike.Basic:docInfo (1.2s) +ℹ [2457/2942] Built mathlib/Mathlib.Tactic.CategoryTheory.Coherence.Normalize:docInfo (16s) +info: stdout: +WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.BicategoryLike.eval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached + +Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) +✔ [2459/2944] Built aesop/Aesop.Search.Expansion:docInfo (1.2s) +✔ [2460/2944] Built mathlib/Mathlib.Data.Nat.Basic:docInfo (1.2s) +✔ [2461/2944] Built mathlib/Mathlib.Data.List.Flatten:docInfo (1.2s) +✔ [2464/2947] Built mathlib/Mathlib.Data.Quot:docInfo (1.3s) +✔ [2465/2947] Built mathlib/Mathlib.Tactic.GRewrite.Elab:docInfo (1.2s) +✔ [2466/2947] Built mathlib/Mathlib.Logic.Function.Iterate:docInfo (1.3s) +✔ [2467/2947] Built mathlib/Mathlib.Data.List.Pairwise:docInfo (1.2s) +✔ [2471/2948] Built mathlib/Mathlib.Order.Basic:docInfo (1.5s) +✔ [2473/2948] Built mathlib/Mathlib.Algebra.Group.Int.Defs:docInfo (1.1s) +✔ [2474/2948] Built mathlib/Mathlib.Algebra.Group.PUnit:docInfo (1.1s) +✔ [2475/2950] Built mathlib/Mathlib.Algebra.Group.Semiconj.Defs:docInfo (1.3s) +✔ [2476/2950] Built mathlib/Mathlib.Algebra.Group.InjSurj:docInfo (1.3s) +✔ [2477/2950] Built hottlean/HoTTLean.Syntax.EqCtx:docInfo (1.7s) +✔ [2480/2952] Built mathlib/Mathlib.Data.FunLike.Embedding:docInfo (1.1s) +✔ [2481/2952] Built hottlean/HoTTLean.Syntax.InversionLemmas:docInfo (1.8s) +✔ [2484/2953] Built aesop/Aesop.Search.ExpandSafePrefix:docInfo (1.1s) +✔ [2486/2954] Built mathlib/Mathlib.Tactic.GRewrite:docInfo (1.1s) +✔ [2487/2954] Built mathlib/Mathlib.Data.Nat.Find:docInfo (1.2s) +✔ [2489/2956] Built mathlib/Mathlib.Data.Prod.Basic:docInfo (1.3s) +✔ [2492/2956] Built mathlib/Mathlib.Order.ULift:docInfo (1.2s) +✔ [2493/2956] Built mathlib/Mathlib.Algebra.Group.Hom.Defs:docInfo (1.8s) +✔ [2494/2957] Built mathlib/Mathlib.Algebra.Group.Commute.Defs:docInfo (1.1s) +✔ [2496/2958] Built mathlib/Mathlib.Data.FunLike.Equiv:docInfo (1.1s) +✔ [2498/2959] Built aesop/Aesop.Search.Main:docInfo (1.2s) +✔ [2500/2961] Built mathlib/Mathlib.Tactic.ClickSuggestions.Util:docInfo (1.3s) +✔ [2503/2961] Built mathlib/Mathlib.Basic.Nontrivial.Basic:docInfo (1.1s) +✔ [2504/2961] Built hottlean/HoTTLean.Syntax.Injectivity:docInfo (1.6s) +✔ [2505/2962] Built mathlib/Mathlib.Algebra.Notation.Prod:docInfo (1.2s) +✔ [2507/2963] Built hottlean/HoTTLean.Syntax.GCongr:docInfo (1.7s) +✔ [2509/2964] Built mathlib/Mathlib.Algebra.Group.Units.Defs:docInfo (1.2s) +✔ [2511/2966] Built aesop/Aesop.Main:docInfo (1.1s) +✔ [2514/2974] Built mathlib/Mathlib.Logic.Equiv.Defs:docInfo (1.4s) +✔ [2523/2977] Built mathlib/Mathlib.Tactic.ClickSuggestions.SectionState:docInfo (1.2s) +✔ [2524/2977] Built mathlib/Mathlib.Tactic.ClickSuggestions.Unfold:docInfo (1.2s) +✔ [2529/2978] Built mathlib/Mathlib.Algebra.Order.ZeroLEOne:docInfo (1.2s) +✔ [2530/2978] Built mathlib/Mathlib.Algebra.Group.Nat.Units:docInfo (1.2s) +✔ [2531/2981] Built aesop/Aesop:docInfo (1.2s) +✔ [2532/2981] Built hottlean/HoTTLean.Syntax.Synth:docInfo (1.8s) +✔ [2537/2982] Built mathlib/Mathlib.Order.Lex:docInfo (1.2s) +✔ [2538/2987] Built mathlib/Mathlib.Logic.Small.Defs:docInfo (1.3s) +✔ [2539/2987] Built mathlib/Mathlib.Data.Set.Operations:docInfo (1.4s) +✔ [2540/2987] Built mathlib/Mathlib.Control.EquivFunctor:docInfo (1.3s) +✔ [2541/2987] Built mathlib/Mathlib.Basic.Finite.Defs:docInfo (1.3s) +✔ [2542/2987] Built mathlib/Mathlib.Algebra.Opposites:docInfo (1.3s) +✔ [2548/2991] Built mathlib/Mathlib.Tactic.ClickSuggestions.GRewrite:docInfo (1.3s) +✔ [2549/2991] Built mathlib/Mathlib.Tactic.ClickSuggestions.ApplyAt:docInfo (1.3s) +✔ [2550/2991] Built mathlib/Mathlib.Order.OrderDual:docInfo (1.4s) +✔ [2551/2991] Built mathlib/Mathlib.Logic.Equiv.Prod:docInfo (1.4s) +✔ [2556/2992] Built mathlib/Mathlib.Tactic.ClickSuggestions.Rewrite:docInfo (1.5s) +✔ [2557/2992] Built mathlib/Mathlib.Tactic.ClickSuggestions.Apply:docInfo (1.5s) +✔ [2559/2993] Built mathlib/Mathlib.Algebra.Group.Equiv.Defs:docInfo (1.8s) +✔ [2561/2994] Built mathlib/Mathlib.CategoryTheory.Category.Init:docInfo (1.2s) +✔ [2562/2994] Built mathlib/Mathlib.Data.Option.Basic:docInfo (1.3s) +✔ [2564/2994] Built mathlib/Mathlib.Basic.UnivLE:docInfo (1.2s) +✔ [2565/2998] Built mathlib/Mathlib.Algebra.Group.Basic:docInfo (1.6s) +✔ [2570/3000] Built mathlib/Mathlib.Data.Opposite:docInfo (1.4s) +✔ [2571/3000] Built mathlib/Mathlib.Order.Compare:docInfo (1.3s) +✔ [2572/3000] Built mathlib/Mathlib.Order.Monotone.Defs:docInfo (1.4s) +✔ [2573/3000] Built mathlib/Mathlib.Order.RelClasses:docInfo (1.4s) +✔ [2574/3000] Built mathlib/Mathlib.Logic.Equiv.Sum:docInfo (1.3s) +✔ [2575/3000] Built mathlib/Mathlib.Order.SetNotation:docInfo (1.5s) +✔ [2578/3002] Built mathlib/Mathlib.Order.Max:docInfo (1.5s) +✔ [2579/3002] Built mathlib/Mathlib.Algebra.Group.Action.Defs:docInfo (1.5s) +✔ [2582/3004] Built mathlib/Mathlib.Tactic.ClickSuggestions.FindPremises:docInfo (1.3s) +✔ [2583/3004] Built hottlean/HoTTLean.Syntax.Axioms:docInfo (1.0s) +✔ [2586/3004] Built mathlib/Mathlib.Algebra.Group.ULift:docInfo (1.2s) +✔ [2587/3005] Built mathlib/Mathlib.Logic.Equiv.Option:docInfo (1.2s) +✔ [2589/3007] Built mathlib/Mathlib.Combinatorics.Quiver.Basic:docInfo (1.1s) +✔ [2590/3007] Built mathlib/Mathlib.Algebra.Group.SelfInv:docInfo (1.2s) +✔ [2593/3007] Built mathlib/Mathlib.Algebra.Group.Int.Units:docInfo (1.3s) +✔ [2594/3007] Built mathlib/Mathlib.Algebra.Order.Monoid.Unbundled.Defs:docInfo (1.3s) +✔ [2595/3007] Built mathlib/Mathlib.Algebra.Group.Units.Basic:docInfo (1.4s) +✔ [2596/3008] Built mathlib/Mathlib.Algebra.Group.Hom.Basic:docInfo (1.6s) +✔ [2598/3010] Built mathlib/Mathlib.Tactic.ClickSuggestions.TryPremises:docInfo (1.2s) +✔ [2599/3010] Built mathlib/Mathlib.Order.Monotone.Basic:docInfo (1.4s) +✔ [2602/3012] Built mathlib/Mathlib.Order.BoundedOrder.Basic:docInfo (1.5s) +✔ [2605/3014] Built hottlean/HoTTLean.Typechecker.Value:docInfo (1.0s) +✔ [2608/3016] Built mathlib/Mathlib.Combinatorics.Quiver.Prefunctor:docInfo (1.1s) +✔ [2611/3021] Built mathlib/Mathlib.Logic.Equiv.Basic:docInfo (1.5s) +✔ [2612/3021] Built mathlib/Mathlib.Algebra.Group.Torsion:docInfo (1.2s) +✔ [2618/3021] Built mathlib/Mathlib.Algebra.Group.Units.Hom:docInfo (1.3s) +✔ [2619/3022] Built mathlib/Mathlib.Tactic.ClickSuggestions:docInfo (1.4s) +✔ [2620/3022] Built mathlib/Mathlib.Order.BoundedOrder.Monotone:docInfo (1.2s) +✔ [2622/3022] Built mathlib/Mathlib.Order.GaloisConnection.Defs:docInfo (1.3s) +✔ [2623/3025] Built mathlib/Mathlib.Order.Lattice:docInfo (1.7s) +✔ [2627/3025] Built mathlib/Mathlib.Combinatorics.Quiver.Push:docInfo (1.1s) +✔ [2628/3028] Built mathlib/Mathlib.Combinatorics.Quiver.Path:docInfo (1.4s) +✔ [2629/3028] Built mathlib/Mathlib.Algebra.Group.TypeTags.Basic:docInfo (1.3s) +✔ [2633/3030] Built mathlib/Mathlib.Data.ULift:docInfo (1.4s) +✔ [2634/3030] Built mathlib/Mathlib.Logic.Embedding.Basic:docInfo (1.3s) +✔ [2635/3030] Built mathlib/Mathlib.Algebra.Group.Opposite:docInfo (1.4s) +✔ [2638/3032] Built mathlib/Mathlib.Algebra.Group.Equiv.Basic:docInfo (1.4s) +✔ [2639/3032] Built hottlean/HoTTLean.Typechecker.ValueInversion:docInfo (1.7s) +✔ [2642/3034] Built hottlean/HoTTLean.Frontend.Checked:docInfo (1.8s) +✔ [2645/3036] Built mathlib/Mathlib.Order.BoundedOrder.Lattice:docInfo (1.3s) +✔ [2648/3045] Built mathlib/Mathlib.Tactic.Common:docInfo (1.7s) +✔ [2658/3045] Built mathlib/Mathlib.Order.MinMax:docInfo (1.5s) +✔ [2659/3046] Built mathlib/Mathlib.Combinatorics.Quiver.Symmetric:docInfo (1.3s) +✔ [2660/3046] Built mathlib/Mathlib.Order.WithBot:docInfo (1.7s) +✔ [2661/3046] Built mathlib/Mathlib.Algebra.Group.TypeTags.Hom:docInfo (1.3s) +✔ [2662/3046] Built mathlib/Mathlib.Combinatorics.Quiver.Cast:docInfo (1.3s) +✔ [2664/3046] Built mathlib/Mathlib.Algebra.Group.Prod:docInfo (1.5s) +✔ [2665/3046] Built mathlib/Mathlib.Order.RelIso.Basic:docInfo (1.6s) +✔ [2666/3046] Built mathlib/Mathlib.Algebra.Group.Units.Equiv:docInfo (1.6s) +✔ [2667/3046] Built hottlean/HoTTLean.Frontend.Translation:docInfo (1.9s) +✔ [2668/3048] Built mathlib/Mathlib.Order.Disjoint:docInfo (1.6s) +✔ [2669/3048] Built mathlib/Mathlib.Algebra.Order.IsBotOne:docInfo (1.5s) +✔ [2673/3049] Built mathlib/Mathlib.Data.List.Count:docInfo (1.8s) +✔ [2674/3050] Built mathlib/Mathlib.Data.List.InsertIdx:docInfo (1.9s) +✔ [2675/3050] Built mathlib/Mathlib.Data.Fin.Basic:docInfo (1.9s) +✔ [2676/3050] Built mathlib/Mathlib.Algebra.Divisibility.Basic:docInfo (1.8s) +✔ [2677/3050] Built mathlib/Mathlib.Data.List.ProdSigma:docInfo (1.8s) +✔ [2678/3050] Built hottlean/HoTTLean.Frontend.EnvExt:docInfo (2.4s) +✔ [2680/3054] Built mathlib/Mathlib.CategoryTheory.Category.Basic:docInfo (1.0s) +✔ [2681/3054] Built mathlib/Mathlib.Data.List.Forall2:docInfo (1.9s) +✔ [2686/3057] Built mathlib/Mathlib.Data.List.Basic:docInfo (2.1s) +✔ [2687/3057] Built mathlib/Mathlib.Combinatorics.Quiver.SingleObj:docInfo (1.6s) +✔ [2691/3058] Built hottlean/HoTTLean.Typechecker.Evaluate:docInfo (2.9s) +✔ [2693/3059] Built mathlib/Mathlib.Data.List.TakeDrop:docInfo (2.3s) +✔ [2695/3061] Built mathlib/Mathlib.Order.PropInstances:docInfo (1.3s) +✔ [2698/3063] Built mathlib/Mathlib.Algebra.Order.Monoid.Unbundled.Basic:docInfo (1.7s) +✔ [2701/3064] Built mathlib/Mathlib.Order.Hom.Basic:docInfo (1.7s) +✔ [2703/3065] Built mathlib/Mathlib.CategoryTheory.Functor.Basic:docInfo (1.6s) +✔ [2704/3065] Built mathlib/Mathlib.Tactic.CategoryTheory.Slice:docInfo (1.6s) +✔ [2706/3071] Built mathlib/Mathlib.Data.List.Perm.Basic:docInfo (1.7s) +✔ [2707/3071] Built mathlib/Mathlib.Data.List.Nodup:docInfo (1.6s) +✔ [2708/3071] Built mathlib/Mathlib.Data.List.Lattice:docInfo (1.6s) +✔ [2709/3071] Built mathlib/Mathlib.Data.Fin.SuccPred:docInfo (1.8s) +✔ [2710/3071] Built mathlib/Mathlib.Tactic.CategoryTheory.Coherence.Basic:docInfo (1.7s) +✔ [2717/3073] Built mathlib/Mathlib.Data.List.Lex:docInfo (1.7s) +✔ [2720/3077] Built mathlib/Mathlib.Data.Set.Basic:docInfo (1.5s) +✔ [2721/3077] Built mathlib/Mathlib.Data.List.Infix:docInfo (2.0s) +✔ [2726/3078] Built mathlib/Mathlib.Order.Heyting.Basic:docInfo (1.7s) +✔ [2727/3078] Built mathlib/Mathlib.Algebra.Order.Sub.Defs:docInfo (1.4s) +✔ [2729/3079] Built mathlib/Mathlib.Algebra.Order.Monoid.Unbundled.ExistsOfLE:docInfo (1.5s) +✔ [2731/3079] Built mathlib/Mathlib.Order.Antisymmetrization:docInfo (1.5s) +✔ [2732/3080] Built hottlean/HoTTLean.Typechecker.Equate:docInfo (3.0s) +✔ [2734/3084] Built mathlib/Mathlib.Tactic.CategoryTheory.Reassoc:docInfo (1.7s) +✔ [2735/3084] Built mathlib/Mathlib.Data.List.Perm.Subperm:docInfo (1.6s) +✔ [2736/3084] Built mathlib/Mathlib.Data.Fin.Embedding:docInfo (1.7s) +✔ [2741/3084] Built mathlib/Mathlib.Data.List.Dedup:docInfo (1.7s) +✔ [2742/3084] Built mathlib/Mathlib.Data.List.Perm.Lattice:docInfo (1.6s) +✔ [2743/3085] Built mathlib/Mathlib.Data.Fin.Rev:docInfo (1.8s) +✔ [2744/3085] Built mathlib/Mathlib.Data.List.Duplicate:docInfo (1.8s) +✔ [2745/3085] Built mathlib/Mathlib.Algebra.BigOperators.Group.List.Basic:docInfo (1.9s) +✔ [2747/3086] Built mathlib/Mathlib.Data.List.Chain:docInfo (1.8s) +✔ [2749/3086] Built mathlib/Mathlib.Data.Set.Inclusion:docInfo (1.4s) +✔ [2750/3086] Built mathlib/Mathlib.Data.SetLike.Basic:docInfo (1.4s) +✔ [2751/3087] Built mathlib/Mathlib.Data.Set.Disjoint:docInfo (1.6s) +✔ [2753/3088] Built mathlib/Mathlib.Order.BooleanAlgebra.Defs:docInfo (1.6s) +✔ [2755/3088] Built mathlib/Mathlib.Algebra.Order.Sub.Unbundled.Basic:docInfo (1.5s) +✔ [2756/3088] Built mathlib/Mathlib.Data.List.Rotate:docInfo (2.1s) +✔ [2757/3088] Built hottlean/HoTTLean.ForMathlib.Tactic.CategoryTheory.FunctorMap:docInfo (1.7s) +✔ [2758/3093] Built mathlib/Mathlib.CategoryTheory.NatTrans:docInfo (1.7s) +✔ [2759/3093] Built mathlib/Mathlib.CategoryTheory.Iso:docInfo (1.7s) +✔ [2765/3094] Built mathlib/Mathlib.Data.Multiset.Defs:docInfo (1.8s) +✔ [2766/3094] Built mathlib/Mathlib.Order.Fin.Basic:docInfo (1.7s) +✔ [2768/3098] Built mathlib/Mathlib.Data.Set.Insert:docInfo (1.3s) +✔ [2769/3098] Built mathlib/Mathlib.Data.List.Range:docInfo (1.6s) +✔ [2774/3100] Built mathlib/Mathlib.Order.BooleanAlgebra.Basic:docInfo (1.5s) +✔ [2777/3101] Built hottlean/HoTTLean.Typechecker.Synth:docInfo (2.6s) +✔ [2779/3102] Built mathlib/Mathlib.Data.Set.Subsingleton:docInfo (1.4s) +✔ [2781/3102] Built mathlib/Mathlib.Tactic.CategoryTheory.IsoReassoc:docInfo (1.7s) +✔ [2782/3102] Built mathlib/Mathlib.Data.Bool.Set:docInfo (1.5s) +✔ [2783/3102] Built mathlib/Mathlib.CategoryTheory.HomCongr:docInfo (1.8s) +✔ [2784/3102] Built mathlib/Mathlib.Tactic.CategoryTheory.CancelIso:docInfo (1.8s) +✔ [2785/3105] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.Basic:docInfo (1.8s) +✔ [2786/3105] Built mathlib/Mathlib.Data.Multiset.ZeroCons:docInfo (1.8s) +✔ [2790/3108] Built mathlib/Mathlib.CategoryTheory.Functor.Category:docInfo (1.9s) +✔ [2791/3108] Built mathlib/Mathlib.Algebra.BigOperators.Group.List.Lemmas:docInfo (1.7s) +✔ [2795/3109] Built mathlib/Mathlib.Order.BooleanAlgebra.Set:docInfo (1.4s) +✔ [2797/3110] Built mathlib/Mathlib.Order.SymmDiff:docInfo (1.5s) +✔ [2799/3112] Built mathlib/Mathlib.Data.Fin.Tuple.Basic:docInfo (2.2s) +✔ [2802/3112] Built mathlib/Mathlib.Data.Part:docInfo (1.4s) +✔ [2803/3113] Built mathlib/Mathlib.Data.Set.SymmDiff:docInfo (1.3s) +✔ [2804/3113] Built hottlean/HoTTLean.Frontend.Commands:docInfo (2.5s) +✔ [2806/3113] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.ClosedUnderIsomorphisms:docInfo (1.6s) +✔ [2807/3113] Built mathlib/Mathlib.CategoryTheory.Thin:docInfo (1.5s) +✔ [2808/3113] Built mathlib/Mathlib.Data.Multiset.Basic:docInfo (1.6s) +✔ [2809/3116] Built mathlib/Mathlib.CategoryTheory.NatIso:docInfo (1.6s) +✔ [2810/3116] Built mathlib/Mathlib.Order.Interval.Set.Basic:docInfo (1.5s) +✔ [2811/3116] Built mathlib/Mathlib.Data.Multiset.Count:docInfo (1.6s) +✔ [2815/3116] Built mathlib/Mathlib.CategoryTheory.Functor.Trifunctor:docInfo (2.0s) +✔ [2816/3117] Built mathlib/Mathlib.Data.List.OfFn:docInfo (1.7s) +✔ [2818/3117] Built mathlib/Mathlib.Data.List.FinRange:docInfo (1.8s) +✔ [2819/3123] Built mathlib/Mathlib.Data.Set.Image:docInfo (1.5s) +✔ [2826/3124] Built mathlib/Mathlib.Data.Multiset.AddSub:docInfo (1.6s) +✔ [2828/3126] Built mathlib/Mathlib.CategoryTheory.Functor.FullyFaithful:docInfo (1.8s) +✔ [2831/3127] Built mathlib/Mathlib.CategoryTheory.Bicategory.Basic:docInfo (1.9s) +✔ [2833/3128] Built mathlib/Mathlib.Data.List.Sort:docInfo (1.7s) +✔ [2835/3128] Built mathlib/Mathlib.Data.Nat.Set:docInfo (1.3s) +✔ [2836/3128] Built mathlib/Mathlib.Data.Set.List:docInfo (1.3s) +✔ [2837/3129] Built mathlib/Mathlib.Data.Set.Restrict:docInfo (1.4s) +✔ [2838/3129] Built mathlib/Mathlib.Order.Directed:docInfo (1.4s) +✔ [2840/3131] Built mathlib/Mathlib.Data.Set.Prod:docInfo (1.6s) +ℹ [2843/3131] Built mathlib/Mathlib.Data.Fin.VecNotation:docInfo (1.8s) +info: stdout: +WARNING: Failed to calculate equational lemmata for PiFin.toExpr: failed +✔ [2844/3132] Built mathlib/Mathlib.Data.Multiset.Replicate:docInfo (1.7s) +✔ [2846/3134] Built mathlib/Mathlib.CategoryTheory.InducedCategory:docInfo (1.7s) +✔ [2847/3134] Built mathlib/Mathlib.Tactic.CategoryTheory.BicategoricalComp:docInfo (1.6s) +✔ [2850/3135] Built mathlib/Mathlib.CategoryTheory.Whiskering:docInfo (2.2s) +✔ [2851/3135] Built mathlib/Mathlib.Data.List.NodupEquivFin:docInfo (1.7s) +✔ [2853/3136] Built mathlib/Mathlib.Order.Bounds.Basic:docInfo (1.5s) +✔ [2855/3137] Built mathlib/Mathlib.Data.Set.NAry:docInfo (1.7s) +✔ [2857/3140] Built mathlib/Mathlib.Data.Set.Function:docInfo (1.9s) +✔ [2861/3141] Built mathlib/Mathlib.Data.Multiset.MapFold:docInfo (1.7s) +✔ [2863/3143] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.FullSubcategory:docInfo (1.6s) +✔ [2866/3145] Built mathlib/Mathlib.Tactic.CategoryTheory.Bicategory.Datatypes:docInfo (1.8s) +✔ [2869/3145] Built mathlib/Mathlib.Order.CompleteLattice.Defs:docInfo (1.4s) +✔ [2870/3145] Built mathlib/Mathlib.CategoryTheory.Functor.ReflectsIso.Basic:docInfo (1.6s) +✔ [2871/3145] Built mathlib/Mathlib.Order.Bounds.Image:docInfo (1.5s) +✔ [2872/3145] Built mathlib/Mathlib.Order.WellFounded:docInfo (1.3s) +✔ [2873/3148] Built mathlib/Mathlib.Logic.Equiv.Set:docInfo (1.4s) +✔ [2874/3148] Built mathlib/Mathlib.Data.Set.Pairwise.Basic:docInfo (1.4s) +✔ [2878/3150] Built mathlib/Mathlib.Data.Multiset.Filter:docInfo (1.7s) +✔ [2881/3151] Built mathlib/Mathlib.CategoryTheory.EssentialImage:docInfo (1.6s) +✔ [2883/3152] Built mathlib/Mathlib.CategoryTheory.ConcreteCategory.Basic:docInfo (1.8s) +✔ [2885/3152] Built mathlib/Mathlib.Tactic.CategoryTheory.Bicategory.PureCoherence:docInfo (1.8s) +✔ [2886/3152] Built mathlib/Mathlib.Logic.Small.Basic:docInfo (1.5s) +✔ [2887/3152] Built mathlib/Mathlib.Tactic.CategoryTheory.Bicategory.Normalize:docInfo (2.6s) +✔ [2888/3154] Built mathlib/Mathlib.Order.Hom.Set:docInfo (1.7s) +✔ [2891/3157] Built mathlib/Mathlib.Data.Finset.Defs:docInfo (1.8s) +✔ [2895/3157] Built mathlib/Mathlib.Algebra.BigOperators.Group.Multiset.Defs:docInfo (1.6s) +✔ [2896/3160] Built mathlib/Mathlib.Tactic.CategoryTheory.Elementwise:docInfo (1.6s) +✔ [2897/3160] Built mathlib/Mathlib.Data.Multiset.UnionInter:docInfo (1.7s) +✔ [2901/3162] Built mathlib/Mathlib.CategoryTheory.Equivalence:docInfo (2.1s) +✔ [2904/3162] Built mathlib/Mathlib.Tactic.CategoryTheory.Bicategory.Basic:docInfo (1.5s) +✔ [2905/3162] Built mathlib/Mathlib.Data.Finset.Erase:docInfo (1.5s) +✔ [2906/3165] Built mathlib/Mathlib.Order.CompleteLattice.Basic:docInfo (1.7s) +✔ [2910/3166] Built mathlib/Mathlib.Data.Finset.Attach:docInfo (1.7s) +✔ [2911/3166] Built mathlib/Mathlib.Data.Finset.Empty:docInfo (1.7s) +✔ [2913/3169] Built mathlib/Mathlib.Data.Multiset.Dedup:docInfo (1.7s) +✔ [2914/3169] Built mathlib/Mathlib.Data.Multiset.Range:docInfo (1.6s) +✔ [2918/3170] Built mathlib/Mathlib.CategoryTheory.Elementwise:docInfo (1.7s) +✔ [2920/3170] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.Equivalence:docInfo (1.7s) +✔ [2921/3174] Built mathlib/Mathlib.CategoryTheory.Opposites:docInfo (2.0s) +✔ [2926/3174] Built mathlib/Mathlib.Order.CompleteLattice.Lemmas:docInfo (1.4s) +✔ [2927/3175] Built mathlib/Mathlib.Order.GaloisConnection.Basic:docInfo (1.5s) +✔ [2929/3175] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.CompleteLattice:docInfo (1.6s) +✔ [2930/3176] Built mathlib/Mathlib.Data.Finset.Filter:docInfo (1.7s) +✔ [2932/3176] Built mathlib/Mathlib.Data.Finset.Dedup:docInfo (1.6s) +✔ [2933/3177] Built mathlib/Mathlib.Data.Multiset.Fold:docInfo (1.6s) +✔ [2934/3177] Built mathlib/Mathlib.Algebra.Order.Group.Multiset:docInfo (1.7s) +✔ [2936/3179] Built mathlib/Mathlib.Data.Multiset.FinsetOps:docInfo (1.7s) +✔ [2939/3179] Built mathlib/Mathlib.CategoryTheory.Functor.Const:docInfo (1.6s) +✔ [2940/3185] Built mathlib/Mathlib.CategoryTheory.EqToHom:docInfo (1.8s) +✔ [2941/3185] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.Opposite:docInfo (1.7s) +✔ [2948/3185] Built mathlib/Mathlib.CategoryTheory.Functor.TwoSquare:docInfo (1.9s) +✔ [2949/3185] Built mathlib/Mathlib.Order.CompleteBooleanAlgebra:docInfo (1.0s) +✔ [2950/3185] Built mathlib/Mathlib.Data.Fintype.Defs:docInfo (1.8s) +✔ [2951/3186] Built mathlib/Mathlib.Data.Finset.Lattice.Basic:docInfo (1.7s) +✔ [2952/3186] Built mathlib/Mathlib.Algebra.BigOperators.Group.Multiset.Basic:docInfo (1.7s) +✔ [2954/3190] Built mathlib/Mathlib.Data.Finset.Insert:docInfo (1.8s) +✔ [2959/3191] Built mathlib/Mathlib.CategoryTheory.Category.ULift:docInfo (1.7s) +✔ [2960/3191] Built mathlib/Mathlib.CategoryTheory.Category.Preorder:docInfo (1.8s) +✔ [2961/3191] Built mathlib/Mathlib.CategoryTheory.Bicategory.Strict.Basic:docInfo (1.7s) +✔ [2962/3191] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Whiskering:docInfo (1.8s) +✔ [2964/3191] Built mathlib/Mathlib.CategoryTheory.Bicategory.Functor.Prelax:docInfo (1.8s) +✔ [2965/3194] Built mathlib/Mathlib.CategoryTheory.Products.Basic:docInfo (2.0s) +✔ [2969/3194] Built mathlib/Mathlib.Data.Finset.Lattice.Lemmas:docInfo (1.6s) +✔ [2970/3194] Built mathlib/Mathlib.Data.Finset.Range:docInfo (1.7s) +✔ [2971/3194] Built mathlib/Mathlib.Data.Finset.SDiff:docInfo (1.8s) +✔ [2972/3194] Built mathlib/Mathlib.Data.Multiset.Bind:docInfo (1.0s) +✔ [2973/3196] Built mathlib/Mathlib.Data.Finset.Disjoint:docInfo (1.9s) +✔ [2976/3196] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Functor.Iso:docInfo (1.9s) +✔ [2977/3196] Built mathlib/Mathlib.CategoryTheory.Functor.Currying:docInfo (1.8s) +✔ [2978/3197] Built mathlib/Mathlib.CategoryTheory.Pi.Basic:docInfo (1.8s) +✔ [2980/3198] Built mathlib/Mathlib.CategoryTheory.Monoidal.Category:docInfo (2.2s) +✔ [2982/3198] Built mathlib/Mathlib.Data.Finset.Basic:docInfo (1.7s) +✔ [2983/3203] Built mathlib/Mathlib.Data.Finset.Image:docInfo (1.9s) +✔ [2989/3207] Built mathlib/Mathlib.CategoryTheory.Discrete.Basic:docInfo (1.9s) +✔ [2994/3208] Built mathlib/Mathlib.Tactic.CategoryTheory.MonoidalComp:docInfo (1.6s) +✔ [2996/3210] Built mathlib/Mathlib.Data.Finset.BooleanAlgebra:docInfo (1.7s) +✔ [2997/3210] Built mathlib/Mathlib.Data.Fintype.OfMap:docInfo (1.6s) +✔ [2998/3210] Built mathlib/Mathlib.Data.Finset.SymmDiff:docInfo (1.6s) +✔ [2999/3210] Built mathlib/Mathlib.Data.Finset.Fold:docInfo (1.7s) +✔ [3002/3210] Built mathlib/Mathlib.Data.Finset.Card:docInfo (2.0s) +✔ [3003/3211] Built mathlib/Mathlib.CategoryTheory.Products.Unitor:docInfo (1.6s) +✔ [3004/3211] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.WalkingPair:docInfo (1.6s) +✔ [3005/3211] Built mathlib/Mathlib.CategoryTheory.PEmpty:docInfo (1.6s) +✔ [3007/3211] Built mathlib/Mathlib.CategoryTheory.PUnit:docInfo (1.7s) +✔ [3008/3213] Built mathlib/Mathlib.Tactic.CategoryTheory.Monoidal.Datatypes:docInfo (1.9s) +✔ [3011/3214] Built mathlib/Mathlib.Data.Finset.Union:docInfo (1.7s) +✔ [3013/3215] Built mathlib/Mathlib.Data.Fintype.Sets:docInfo (1.9s) +✔ [3015/3215] Built mathlib/Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence:docInfo (1.9s) +✔ [3016/3216] Built mathlib/Mathlib.CategoryTheory.Comma.Basic:docInfo (2.4s) +✔ [3018/3216] Built mathlib/Mathlib.Data.Finset.Option:docInfo (1.7s) +✔ [3019/3217] Built mathlib/Mathlib.Data.Fintype.Basic:docInfo (1.7s) +✔ [3021/3218] Built mathlib/Mathlib.Tactic.CategoryTheory.Monoidal.Normalize:docInfo (2.7s) +✔ [3023/3221] Built mathlib/Mathlib.CategoryTheory.Comma.Arrow:docInfo (1.9s) +✔ [3024/3221] Built mathlib/Mathlib.Data.Fintype.Card:docInfo (1.7s) +✔ [3028/3221] Built mathlib/Mathlib.Tactic.CategoryTheory.Monoidal.Basic:docInfo (1.6s) +✔ [3029/3221] Built mathlib/Mathlib.CategoryTheory.CommSq:docInfo (1.7s) +✔ [3032/3225] Built mathlib/Mathlib.Data.Fintype.EquivFin:docInfo (1.8s) +✔ [3035/3230] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.Basic:docInfo (2.0s) +✔ [3041/3231] Built mathlib/Mathlib.CategoryTheory.Bicategory.LocallyDiscrete:docInfo (1.7s) +✔ [3042/3231] Built mathlib/Mathlib.CategoryTheory.FiberedCategory.HomLift:docInfo (1.7s) +✔ [3044/3232] Built mathlib/Mathlib.CategoryTheory.FinCategory.Basic:docInfo (1.6s) +✔ [3046/3232] Built mathlib/Mathlib.Data.Fintype.Option:docInfo (1.7s) +✔ [3047/3238] Built mathlib/Mathlib.CategoryTheory.Groupoid:docInfo (1.7s) +✔ [3048/3238] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.IsInvertedBy:docInfo (1.7s) +✔ [3055/3238] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.Factorization:docInfo (1.8s) +✔ [3056/3238] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic:docInfo (1.8s) +✔ [3057/3240] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.Composition:docInfo (2.0s) +✔ [3060/3240] Built mathlib/Mathlib.CategoryTheory.FiberedCategory.Fiber:docInfo (1.7s) +✔ [3061/3240] Built mathlib/Mathlib.CategoryTheory.FinCategory.AsType:docInfo (1.7s) +✔ [3062/3240] Built mathlib/Mathlib.CategoryTheory.Groupoid.Discrete:docInfo (1.6s) +✔ [3063/3241] Built mathlib/Mathlib.CategoryTheory.IsConnected:docInfo (1.7s) +✔ [3064/3241] Built mathlib/Mathlib.CategoryTheory.Endomorphism:docInfo (1.8s) +✔ [3065/3241] Built mathlib/Mathlib.CategoryTheory.Quotient:docInfo (1.8s) +✔ [3066/3241] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Groupoid:docInfo (1.8s) +✔ [3068/3245] Built mathlib/Mathlib.CategoryTheory.EpiMono:docInfo (1.9s) +✔ [3073/3245] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.WideSubcategory:docInfo (1.7s) +✔ [3074/3245] Built mathlib/Mathlib.CategoryTheory.Widesubcategory:docInfo (1.8s) +✔ [3075/3245] Built mathlib/Mathlib.CategoryTheory.Balanced:docInfo (1.6s) +✔ [3076/3247] Built mathlib/Mathlib.CategoryTheory.PathCategory.Basic:docInfo (1.7s) +✔ [3079/3247] Built mathlib/Mathlib.CategoryTheory.Monad.Basic:docInfo (1.9s) +✔ [3080/3254] Built mathlib/Mathlib.CategoryTheory.Types.Basic:docInfo (1.9s) +✔ [3081/3254] Built mathlib/Mathlib.CategoryTheory.Retract:docInfo (1.9s) +✔ [3089/3254] Built mathlib/Mathlib.CategoryTheory.Groupoid.FreeGroupoid:docInfo (1.8s) +✔ [3090/3254] Built mathlib/Mathlib.CategoryTheory.PathCategory.MorphismProperty:docInfo (1.7s) +✔ [3091/3255] Built mathlib/Mathlib.CategoryTheory.LiftingProperties.Basic:docInfo (1.7s) +✔ [3092/3255] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.Retract:docInfo (1.6s) +✔ [3094/3257] Built mathlib/Mathlib.CategoryTheory.Functor.Hom:docInfo (1.7s) +✔ [3095/3257] Built mathlib/Mathlib.CategoryTheory.ConcreteCategory.Forget:docInfo (1.7s) +✔ [3098/3260] Built mathlib/Mathlib.CategoryTheory.Category.Cat:docInfo (1.7s) +✔ [3102/3260] Built mathlib/Mathlib.CategoryTheory.Limits.Types.ColimitType:docInfo (1.9s) +✔ [3103/3260] Built mathlib/Mathlib.CategoryTheory.Core:docInfo (1.0s) +✔ [3104/3260] Built mathlib/Mathlib.CategoryTheory.IsomorphismClasses:docInfo (1.6s) +✔ [3105/3260] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.StrongEpi:docInfo (1.7s) +✔ [3106/3263] Built mathlib/Mathlib.CategoryTheory.Category.Cat.AsSmall:docInfo (1.7s) +✔ [3107/3263] Built mathlib/Mathlib.Algebra.Category.MonCat.Basic:docInfo (1.8s) +✔ [3108/3263] Built mathlib/Mathlib.Tactic.CategoryTheory.ToApp:docInfo (1.8s) +✔ [3112/3265] Built mathlib/Mathlib.CategoryTheory.Yoneda:docInfo (2.2s) +✔ [3115/3266] Built mathlib/Mathlib.CategoryTheory.SingleObj:docInfo (1.8s) +✔ [3116/3266] Built mathlib/Mathlib.CategoryTheory.Bicategory.Functor.Oplax:docInfo (1.9s) +✔ [3118/3267] Built mathlib/Mathlib.CategoryTheory.Bicategory.Functor.Lax:docInfo (2.1s) +✔ [3120/3273] Built mathlib/Mathlib.CategoryTheory.Adjunction.Basic:docInfo (2.0s) +✔ [3127/3274] Built mathlib/Mathlib.CategoryTheory.Limits.Cones:docInfo (2.7s) +✔ [3129/3275] Built mathlib/Mathlib.CategoryTheory.LiftingProperties.Adjunction:docInfo (1.7s) +✔ [3130/3275] Built mathlib/Mathlib.CategoryTheory.Bicategory.NaturalTransformation.Oplax:docInfo (2.2s) +✔ [3132/3276] Built mathlib/Mathlib.CategoryTheory.Adjunction.FullyFaithful:docInfo (1.8s) +✔ [3134/3277] Built mathlib/Mathlib.CategoryTheory.Skeletal:docInfo (1.9s) +✔ [3136/3278] Built mathlib/Mathlib.CategoryTheory.Category.Quiv:docInfo (2.2s) +✔ [3138/3278] Built mathlib/Mathlib.CategoryTheory.CodiscreteCategory:docInfo (2.3s) +✔ [3139/3280] Built mathlib/Mathlib.CategoryTheory.Adjunction.Mates:docInfo (2.4s) +✔ [3140/3280] Built mathlib/Mathlib.CategoryTheory.Bicategory.Functor.Pseudofunctor:docInfo (2.7s) +✔ [3143/3281] Built mathlib/Mathlib.CategoryTheory.Limits.IsLimit:docInfo (2.0s) +✔ [3145/3283] Built mathlib/Mathlib.CategoryTheory.Functor.EpiMono:docInfo (1.7s) +✔ [3148/3286] Built mathlib/Mathlib.CategoryTheory.EssentiallySmall:docInfo (1.7s) +✔ [3152/3287] Built mathlib/Mathlib.CategoryTheory.Localization.Construction:docInfo (1.7s) +✔ [3154/3289] Built mathlib/Mathlib.CategoryTheory.Monoidal.Functor:docInfo (2.5s) +✔ [3157/3289] Built mathlib/Mathlib.CategoryTheory.Bicategory.Functor.LocallyDiscrete:docInfo (2.0s) +✔ [3158/3290] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.IsTerminal:docInfo (1.8s) +✔ [3159/3290] Built mathlib/Mathlib.CategoryTheory.Bicategory.NaturalTransformation.Pseudo:docInfo (2.1s) +✔ [3161/3290] Built mathlib/Mathlib.CategoryTheory.Adjunction.Reflective:docInfo (1.7s) +✔ [3162/3291] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.Small:docInfo (1.7s) +✔ [3163/3291] Built mathlib/Mathlib.CategoryTheory.Monad.Algebra:docInfo (1.8s) +✔ [3165/3291] Built mathlib/Mathlib.CategoryTheory.ShrinkYoneda:docInfo (1.9s) +✔ [3166/3292] Built mathlib/Mathlib.CategoryTheory.Localization.Predicate:docInfo (1.8s) +✔ [3168/3299] Built mathlib/Mathlib.CategoryTheory.Limits.HasLimits:docInfo (2.4s) +✔ [3176/3300] Built mathlib/Mathlib.CategoryTheory.Monoidal.NaturalTransformation:docInfo (1.8s) +✔ [3177/3300] Built mathlib/Mathlib.CategoryTheory.Monoidal.Opposite:docInfo (1.9s) +✔ [3179/3300] Built mathlib/Mathlib.CategoryTheory.Monad.Adjunction:docInfo (1.7s) +✔ [3180/3302] Built mathlib/Mathlib.CategoryTheory.Comma.StructuredArrow.Basic:docInfo (2.8s) +✔ [3183/3302] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate:docInfo (1.6s) +✔ [3184/3304] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Terminal:docInfo (1.8s) +✔ [3185/3304] Built mathlib/Mathlib.CategoryTheory.Limits.Types.Limits:docInfo (1.8s) +✔ [3186/3304] Built mathlib/Mathlib.CategoryTheory.Limits.Unit:docInfo (1.7s) +✔ [3189/3305] Built mathlib/Mathlib.CategoryTheory.Monoidal.Discrete:docInfo (1.8s) +✔ [3191/3308] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Basic:docInfo (1.0s) +✔ [3192/3308] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryFan:docInfo (1.9s) +✔ [3196/3309] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.WidePullbacks:docInfo (2.1s) +✔ [3198/3312] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Products:docInfo (2.5s) +✔ [3202/3312] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.ZeroObjects:docInfo (1.8s) +✔ [3203/3312] Built mathlib/Mathlib.CategoryTheory.Elements:docInfo (2.2s) +✔ [3204/3312] Built mathlib/Mathlib.CategoryTheory.Adjunction.Comma:docInfo (1.7s) +✔ [3205/3313] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Limits:docInfo (1.7s) +✔ [3206/3313] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Shapes.Terminal:docInfo (1.7s) +✔ [3208/3317] Built mathlib/Mathlib.CategoryTheory.Comma.Over.Basic:docInfo (2.5s) +✔ [3209/3317] Built mathlib/Mathlib.CategoryTheory.Limits.Creates:docInfo (1.9s) +✔ [3214/3318] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.Cospan:docInfo (1.9s) +✔ [3215/3318] Built mathlib/Mathlib.CategoryTheory.Monoidal.Braided.Basic:docInfo (2.1s) +✔ [3217/3318] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Shapes.Products:docInfo (1.7s) +✔ [3218/3318] Built mathlib/Mathlib.CategoryTheory.Groupoid.Grpd.Basic:docInfo (1.9s) +✔ [3219/3318] Built mathlib/Mathlib.CategoryTheory.EffectiveEpi.Basic:docInfo (1.0s) +✔ [3220/3320] Built mathlib/Mathlib.CategoryTheory.Limits.FunctorCategory.Basic:docInfo (1.0s) +✔ [3221/3320] Built mathlib/Mathlib.CategoryTheory.Adjunction.Limits:docInfo (1.8s) +✔ [3224/3326] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts:docInfo (1.9s) +✔ [3225/3326] Built mathlib/Mathlib.CategoryTheory.Comma.Presheaf.Basic:docInfo (1.9s) +✔ [3226/3326] Built mathlib/Mathlib.CategoryTheory.Grothendieck:docInfo (1.9s) +✔ [3233/3327] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.PullbackCone:docInfo (1.9s) +✔ [3235/3329] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Equivalence:docInfo (1.8s) +✔ [3236/3329] Built mathlib/Mathlib.CategoryTheory.Limits.Types.Products:docInfo (1.7s) +✔ [3237/3329] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.StrictInitial:docInfo (1.7s) +✔ [3240/3329] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Grothendieck:docInfo (1.8s) +✔ [3241/3329] Built mathlib/Mathlib.CategoryTheory.Comma.StructuredArrow.Functor:docInfo (1.8s) +✔ [3242/3329] Built mathlib/Mathlib.CategoryTheory.Monad.Products:docInfo (1.8s) +✔ [3243/3329] Built mathlib/Mathlib.CategoryTheory.Monad.Limits:docInfo (1.9s) +✔ [3244/3330] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison:docInfo (1.9s) +✔ [3246/3334] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback:docInfo (2.0s) +✔ [3251/3334] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts:docInfo (1.7s) +✔ [3252/3334] Built mathlib/Mathlib.CategoryTheory.Limits.ConeCategory:docInfo (1.0s) +✔ [3253/3334] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.WeakPullback:docInfo (1.6s) +✔ [3254/3335] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.Iso:docInfo (1.7s) +✔ [3256/3336] Built mathlib/Mathlib.CategoryTheory.Functor.KanExtension.Basic:docInfo (2.3s) +✔ [3258/3338] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting:docInfo (2.1s) +✔ [3261/3340] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Equalizers:docInfo (2.5s) +✔ [3264/3341] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.Mono:docInfo (1.9s) +✔ [3266/3342] Built mathlib/Mathlib.CategoryTheory.Functor.KanExtension.Pointwise:docInfo (1.9s) +✔ [3268/3342] Built mathlib/Mathlib.CategoryTheory.Comma.Over.Pullback:docInfo (1.8s) +✔ [3269/3342] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc:docInfo (1.9s) +✔ [3270/3342] Built mathlib/Mathlib.CategoryTheory.Limits.Connected:docInfo (1.9s) +✔ [3271/3345] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.FiniteLimits:docInfo (2.0s) +✔ [3275/3346] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Images:docInfo (2.1s) +✔ [3276/3346] Built mathlib/Mathlib.CategoryTheory.Functor.KanExtension.Adjunction:docInfo (1.8s) +✔ [3278/3347] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.FiniteProducts:docInfo (1.8s) +✔ [3280/3348] Built mathlib/Mathlib.CategoryTheory.Filtered.Basic:docInfo (1.9s) +✔ [3282/3349] Built mathlib/Mathlib.CategoryTheory.Limits.Opposites:docInfo (2.1s) +✔ [3284/3350] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms:docInfo (1.8s) +✔ [3286/3350] Built mathlib/Mathlib.CategoryTheory.Filtered.Connected:docInfo (1.8s) +✔ [3287/3352] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Finite:docInfo (1.0s) +✔ [3290/3354] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks:docInfo (1.0s) +✔ [3293/3356] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Shapes.Zero:docInfo (1.8s) +✔ [3296/3356] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Creates.Finite:docInfo (1.9s) +✔ [3297/3356] Built mathlib/Mathlib.CategoryTheory.Limits.Constructions.FiniteProductsOfBinaryProducts:docInfo (1.9s) +✔ [3298/3357] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs:docInfo (1.8s) +✔ [3300/3358] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Opposites.Equalizers:docInfo (1.9s) +✔ [3302/3358] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.ContainsZero:docInfo (1.8s) +✔ [3303/3360] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Kernels:docInfo (2.4s) +✔ [3306/3360] Built mathlib/Mathlib.CategoryTheory.LiftingProperties.Limits:docInfo (1.7s) +✔ [3307/3360] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.RegularMono:docInfo (2.0s) +✔ [3308/3362] Built mathlib/Mathlib.CategoryTheory.ConcreteCategory.Elementwise:docInfo (1.9s) +✔ [3311/3363] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Biproducts:docInfo (2.6s) +✔ [3313/3365] Built mathlib/Mathlib.CategoryTheory.Limits.Types.Colimits:docInfo (1.8s) +✔ [3314/3365] Built mathlib/Mathlib.CategoryTheory.Category.Cat.Limit:docInfo (1.8s) +✔ [3317/3366] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.BinaryBiproducts:docInfo (2.2s) +✔ [3319/3367] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Ulift:docInfo (1.8s) +✔ [3321/3367] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.FreeGroupoid:docInfo (1.9s) +✔ [3322/3367] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.Retract:docInfo (1.9s) +✔ [3323/3369] Built mathlib/Mathlib.CategoryTheory.Limits.Yoneda:docInfo (2.0s) +✔ [3326/3371] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks:docInfo (2.1s) +✔ [3329/3372] Built mathlib/Mathlib.CategoryTheory.Limits.Final:docInfo (2.3s) +✔ [3331/3373] Built mathlib/Mathlib.CategoryTheory.Limits.Constructions.EpiMono:docInfo (1.9s) +✔ [3333/3374] Built mathlib/Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts:docInfo (1.0s) +✔ [3335/3375] Built mathlib/Mathlib.CategoryTheory.Limits.Presentation:docInfo (2.1s) +✔ [3337/3376] Built mathlib/Mathlib.CategoryTheory.Limits.Comma:docInfo (2.0s) +✔ [3339/3377] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.LimitsOfShape:docInfo (1.7s) +✔ [3341/3379] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic:docInfo (2.2s) +✔ [3344/3380] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.ColimitsOfShape:docInfo (1.8s) +✔ [3346/3382] Built mathlib/Mathlib.CategoryTheory.Limits.Over:docInfo (2.1s) +✔ [3347/3382] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.KernelPair:docInfo (1.8s) +✔ [3350/3382] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.RepPullbackCone:docInfo (2.1s) +✔ [3351/3383] Built mathlib/Mathlib.CategoryTheory.Limits.FullSubcategory:docInfo (1.9s) +✔ [3353/3384] Built mathlib/Mathlib.CategoryTheory.Limits.Presheaf:docInfo (2.1s) +✔ [3355/3385] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Diagonal:docInfo (2.3s) +✔ [3357/3385] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.FunctorCategory:docInfo (1.0s) +✔ [3358/3387] Built mathlib/Mathlib.CategoryTheory.Monoidal.Cartesian.Basic:docInfo (2.3s) +✔ [3361/3388] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.Limits:docInfo (2.1s) +✔ [3363/3388] Built mathlib/Mathlib.CategoryTheory.Monoidal.Cartesian.Cat:docInfo (1.9s) +✔ [3364/3388] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.LiftingProperty:docInfo (1.7s) +✔ [3365/3392] Built hottlean/HoTTLean.ForMathlib:docInfo (2.3s) +✔ [3370/3393] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.NatTrans:docInfo (1.9s) +✔ [3372/3393] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Grpd:docInfo (2.1s) +✔ [3373/3394] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Functor.IsPullback:docInfo (2.2s) +✔ [3375/3396] Built hottlean/HoTTLean.Model.Unstructured.UnstructuredUniverse:docInfo (2.4s) +✔ [3378/3396] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Core:docInfo (1.0s) +✔ [3379/3397] Built hottlean/HoTTLean.Model.Unstructured.UHom:docInfo (1.9s) +✔ [3381/3398] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Bicategory.Grothendieck:docInfo (2.6s) +✔ [3383/3398] Built hottlean/HoTTLean.Model.Unstructured.Hurewicz:docInfo (2.4s) +✔ [3384/3399] Built hottlean/HoTTLean.Grothendieck.Groupoidal.Basic:docInfo (2.4s) +✔ [3386/3399] Built hottlean/HoTTLean.Model.Unstructured.Interpretation:docInfo (3.7s) +✔ [3387/3400] Built hottlean/HoTTLean.Pointed.Basic:docInfo (2.6s) +✔ [3389/3401] Built hottlean/HoTTLean.Grothendieck.IsPullback:docInfo (2.3s) +✔ [3391/3402] Built hottlean/HoTTLean.Pointed.IsPullback:docInfo (2.0s) +✔ [3393/3403] Built hottlean/HoTTLean.Grothendieck.Groupoidal.IsPullback:docInfo (2.1s) +✔ [3395/3404] Built hottlean/HoTTLean.Groupoids.Basic:docInfo (2.1s) +✔ [3397/3405] Built hottlean/HoTTLean.Groupoids.IsPullback:docInfo (2.1s) +✔ [3399/3406] Built hottlean/HoTTLean.Groupoids.UnstructuredModel:docInfo (2.1s) +✔ [3401/3406] Built hottlean/HoTTLean.Groupoids.Sigma:docInfo (2.2s) +✔ [3403/3408] Built hottlean/HoTTLean.Groupoids.Pi:docInfo (2.6s) +✔ [3405/3409] Built hottlean/HoTTLean.Groupoids.ClovenIsofibration:docInfo (2.3s) +✔ [3407/3410] Built hottlean/HoTTLean.Groupoids.Id:docInfo (2.4s) +✔ [3409/3410] Built hottlean/HoTTLean:docInfo (3.3s) +ℹ [3410/3410] Built hottlean/HoTTLean:docs (20s) +info: Generating documentation for HoTTLean (1 root modules) +Build completed successfully (3410 jobs). + +Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/command-receipts.txt b/docs/lean-v4.34.1/evidence/command-receipts.txt new file mode 100644 index 00000000..7b67b729 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/command-receipts.txt @@ -0,0 +1,111 @@ +Validated source commit: 20c4b230b0e0ae41e8fe2e8cb020a80908a3de57 +Lean: leanprover/lean4:v4.34.1 + +{ + "project": { + "command": [ + "lake", + "build" + ], + "exit_status": 0, + "seconds": 1.15, + "source_unchanged": true, + "log_sha256": "f0251019fa8942a18fc329bd25bd60d51e14a6136dd59b399e4b2caa77f724a1" + }, + "natural": { + "command": [ + "lake", + "build", + "NaturalModel" + ], + "exit_status": 0, + "seconds": 54.91, + "source_unchanged": true, + "log_sha256": "52867e9335804c957ce970227196d7f833d6be12b16db1e903de3f1969c73747" + }, + "tests": { + "command": [ + "lake", + "test" + ], + "exit_status": 0, + "seconds": 14.19, + "source_unchanged": true, + "log_sha256": "f6a84de0e87f30c27d858873094a4d9e04b5de858b663594c9c55d60f30f3714" + }, + "compatibility": { + "command": [ + "lake", + "build", + "+HoTTLean.ForMathlib.CategoryTheory.Groupoid", + "+HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate", + "+HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic" + ], + "exit_status": 0, + "seconds": 1.4, + "source_unchanged": true, + "log_sha256": "aaa551d62e36a5867a71edd23bf6bc68b6b5cfd7d5805dd285e1d3c92a30ecd4" + }, + "api-docs": { + "command": [ + "lake", + "-R", + "-Kenv=dev", + "build", + "HoTTLean:docs" + ], + "exit_status": 0, + "seconds": 485.61, + "source_unchanged": true, + "log_sha256": "e21ec4344f28dcf0467b90f9ae351dcc6c32dfdb59a1d3dae938041fe0e1dff1" + }, + "functor-map": { + "command": [ + "lake", + "env", + "lean", + "docs/lean-v4.34.1/evidence/FunctorMapProbe.lean" + ], + "exit_status": 0, + "seconds": 2.31, + "source_unchanged": true, + "log_sha256": "c266b0e2e4bc15a36977f6c2d9f711de6a38da508fc762e323e29debf924aa67" + }, + "legacy-test-root": { + "command": [ + "lake", + "env", + "lean", + "test.lean" + ], + "exit_status": 0, + "seconds": 4.3, + "source_unchanged": true, + "log_sha256": "d1107e483baf887f14801fcc19601f69c6853d1448d0a1984a381b26c3b1d862" + }, + "default-config": { + "command": [ + "lake", + "-R", + "env", + "lean", + "--version" + ], + "exit_status": 0, + "seconds": 2.82, + "source_unchanged": true, + "log_sha256": "1db9f627c6b7c16678148f83e7fd39d7388ca4a59fb59db5cc0159b88537332f" + }, + "whitespace": { + "command": [ + "git", + "diff", + "--check", + "39e8eb63" + ], + "exit_status": 0, + "seconds": 0.04, + "source_unchanged": true, + "log_sha256": "f21629970c9a28d548d5f472a89621ef5b7451c964178baa25f52cb2a1da1dc5" + } +} diff --git a/docs/lean-v4.34.1/evidence/compatibility.txt b/docs/lean-v4.34.1/evidence/compatibility.txt new file mode 100644 index 00000000..2f1fcb9d --- /dev/null +++ b/docs/lean-v4.34.1/evidence/compatibility.txt @@ -0,0 +1,4 @@ +$ lake build +HoTTLean.ForMathlib.CategoryTheory.Groupoid +HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate +HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic +Build completed successfully (650 jobs). + +Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/default-config.txt b/docs/lean-v4.34.1/evidence/default-config.txt new file mode 100644 index 00000000..b1de40ff --- /dev/null +++ b/docs/lean-v4.34.1/evidence/default-config.txt @@ -0,0 +1,4 @@ +$ lake -R env lean --version +Lean (version 4.34.1, x86_64-unknown-linux-gnu, commit 5045d0056413266e57c625dcd7c365b10e377c52, Release) + +Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/dependency-checkouts.txt b/docs/lean-v4.34.1/evidence/dependency-checkouts.txt new file mode 100644 index 00000000..9f4b5910 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/dependency-checkouts.txt @@ -0,0 +1,15 @@ +doc-gen4 953c8992d174b4e56955e01e101d46668c68f2bb clean tracked source +Poly cc08a1f77c20e07a7366f0824ecd36ae472c0377 clean tracked source +leansqlite f9cdb9eacb5c8b8ecc02ee9fd9e568d7d28c1416 clean tracked source +Cli e92c9f15fdfacc8536f31cfb3b7ad26c3c8cd204 clean tracked source +UnicodeBasic 0e569d08b6443ce0908d356884c765397253e2f0 clean tracked source +BibtexQuery 4d8616fd4870d0a3453d845770833eac7951fe1c clean tracked source +MD4Lean 31907cc18f48a95384f99cee5582c00fb39e0f67 clean tracked source +mathlib d13f23b723b8a846827a245b89c10fc7d3f11612 clean tracked source +plausible 118aa17ee84656b8bd727fef7c458ee8c833385c clean tracked source +LeanSearchClient ddf04cf3949fa556442341e87d47f9f6e6074707 clean tracked source +importGraph e928b72544873815af278d38681b31c0293588e3 clean tracked source +proofwidgets 106ff4fafc74ef4ac99d81dbf3ab399118f497a5 clean tracked source +aesop 355695d523e41d0554926416cba2a2b3544fbbc9 clean tracked source +Qq 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 clean tracked source +batteries f2effa3d803fda822b1f97b806c47cf2adfbcbc2 clean tracked source diff --git a/docs/lean-v4.34.1/evidence/dependency-pins.txt b/docs/lean-v4.34.1/evidence/dependency-pins.txt new file mode 100644 index 00000000..693434bc --- /dev/null +++ b/docs/lean-v4.34.1/evidence/dependency-pins.txt @@ -0,0 +1,35 @@ +Dependency commits and paths for the combined migration. + +Default configuration: +Poly: cc08a1f77c20e07a7366f0824ecd36ae472c0377 +checkdecls: .lake/packages/Poly/vendor/checkdecls +mathlib: d13f23b723b8a846827a245b89c10fc7d3f11612 +plausible: 118aa17ee84656b8bd727fef7c458ee8c833385c +LeanSearchClient: ddf04cf3949fa556442341e87d47f9f6e6074707 +importGraph: e928b72544873815af278d38681b31c0293588e3 +proofwidgets: 106ff4fafc74ef4ac99d81dbf3ab399118f497a5 +aesop: 355695d523e41d0554926416cba2a2b3544fbbc9 +Qq: 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 +batteries: f2effa3d803fda822b1f97b806c47cf2adfbcbc2 +Cli: e92c9f15fdfacc8536f31cfb3b7ad26c3c8cd204 + +Optional documentation configuration: +«doc-gen4»: 953c8992d174b4e56955e01e101d46668c68f2bb +Poly: cc08a1f77c20e07a7366f0824ecd36ae472c0377 +leansqlite: f9cdb9eacb5c8b8ecc02ee9fd9e568d7d28c1416 +Cli: e92c9f15fdfacc8536f31cfb3b7ad26c3c8cd204 +UnicodeBasic: 0e569d08b6443ce0908d356884c765397253e2f0 +BibtexQuery: 4d8616fd4870d0a3453d845770833eac7951fe1c +MD4Lean: 31907cc18f48a95384f99cee5582c00fb39e0f67 +checkdecls: .lake/packages/Poly/vendor/checkdecls +mathlib: d13f23b723b8a846827a245b89c10fc7d3f11612 +plausible: 118aa17ee84656b8bd727fef7c458ee8c833385c +LeanSearchClient: ddf04cf3949fa556442341e87d47f9f6e6074707 +importGraph: e928b72544873815af278d38681b31c0293588e3 +proofwidgets: 106ff4fafc74ef4ac99d81dbf3ab399118f497a5 +aesop: 355695d523e41d0554926416cba2a2b3544fbbc9 +Qq: 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 +batteries: f2effa3d803fda822b1f97b806c47cf2adfbcbc2 + +All default dependency commits and paths are unchanged in the documentation configuration. +Development metadata changes the Cli scope and input label, but its commit stays the same. diff --git a/docs/lean-v4.34.1/evidence/docs-update.txt b/docs/lean-v4.34.1/evidence/docs-update.txt new file mode 100644 index 00000000..5d0dff94 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/docs-update.txt @@ -0,0 +1,7 @@ +$ lake -R -Kenv=dev update doc-gen4 +info: toolchain not updated; already up-to-date +info: mathlib: running post-update hooks +Current branch: HEAD +Using cache from origin: (some leanprover-community/mathlib4) +No files to download +Already decompressed 8908 file(s) diff --git a/docs/lean-v4.34.1/evidence/functor-map.txt b/docs/lean-v4.34.1/evidence/functor-map.txt new file mode 100644 index 00000000..d1bcd42d --- /dev/null +++ b/docs/lean-v4.34.1/evidence/functor-map.txt @@ -0,0 +1,9 @@ +$ lake env lean docs/lean-v4.34.1/evidence/FunctorMapProbe.lean +CategoryTheory.functorMapMigrationProbe_functor_map.{u, v, _uniq.122, _uniq.123} {C : Type u} [Category.{v, u} C] + {X Y : C} (f g : X ⟶ Y) (h : f = g) {D : Type _uniq.123} [Category.{_uniq.122, _uniq.123} D] (F : C ⥤ D) : + F.map f = F.map g +CategoryTheory.functorMapMigrationProbe_functor_map_assoc.{u, v, _uniq.122, _uniq.123} {C : Type u} [Category.{v, u} C] + {X Y : C} (f g : X ⟶ Y) (h : f = g) {D : Type _uniq.123} [Category.{_uniq.122, _uniq.123} D] (F : C ⥤ D) {Z : D} + (h✝ : F.obj Y ⟶ Z) : F.map f ≫ h✝ = F.map g ≫ h✝ + +Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/legacy-test-root.txt b/docs/lean-v4.34.1/evidence/legacy-test-root.txt new file mode 100644 index 00000000..b6423b81 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/legacy-test-root.txt @@ -0,0 +1,3 @@ +$ lake env lean test.lean + +Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/module-coverage.txt b/docs/lean-v4.34.1/evidence/module-coverage.txt new file mode 100644 index 00000000..ec21d5f8 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/module-coverage.txt @@ -0,0 +1,85 @@ +Static import-closure check. It does not replace compiler checks. + +Roots: +HoTTLean +HoTTLean.Prelude +HoTTLeanTest +HoTTLean.Model.Natural.Interpretation +HoTTLean.Model.Natural.NaturalModel +HoTTLean.Model.Natural.UHom +HoTTLean.ForMathlib.CategoryTheory.Groupoid +HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate +HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic + +Covered production/test files: 67 / 67 + +Outside closure: [] + +All selected modules: +HoTTLean.ForMathlib +HoTTLean.ForMathlib.CategoryTheory.Bicategory.Grothendieck +HoTTLean.ForMathlib.CategoryTheory.Core +HoTTLean.ForMathlib.CategoryTheory.FreeGroupoid +HoTTLean.ForMathlib.CategoryTheory.Functor.IsPullback +HoTTLean.ForMathlib.CategoryTheory.Functor.Iso +HoTTLean.ForMathlib.CategoryTheory.Groupoid +HoTTLean.ForMathlib.CategoryTheory.Grpd +HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate +HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic +HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.WideSubcategory +HoTTLean.ForMathlib.CategoryTheory.NatTrans +HoTTLean.ForMathlib.CategoryTheory.RepPullbackCone +HoTTLean.ForMathlib.CategoryTheory.WeakPullback +HoTTLean.ForMathlib.CategoryTheory.Whiskering +HoTTLean.ForMathlib.CategoryTheory.Yoneda +HoTTLean.ForMathlib.Tactic.CategoryTheory.FunctorMap +HoTTLean.ForPoly +HoTTLean.Frontend.Checked +HoTTLean.Frontend.Commands +HoTTLean.Frontend.EnvExt +HoTTLean.Frontend.Translation +HoTTLean.Grothendieck.Groupoidal.Basic +HoTTLean.Grothendieck.Groupoidal.IsPullback +HoTTLean.Grothendieck.IsPullback +HoTTLean.Groupoids.Basic +HoTTLean.Groupoids.ClovenIsofibration +HoTTLean.Groupoids.Id +HoTTLean.Groupoids.IsPullback +HoTTLean.Groupoids.Pi +HoTTLean.Groupoids.Sigma +HoTTLean.Groupoids.UHom +HoTTLean.Groupoids.UnstructuredModel +HoTTLean.Model.Natural.Interpretation +HoTTLean.Model.Natural.NaturalModel +HoTTLean.Model.Natural.UHom +HoTTLean.Model.Unstructured.Hurewicz +HoTTLean.Model.Unstructured.Interpretation +HoTTLean.Model.Unstructured.UHom +HoTTLean.Model.Unstructured.UnstructuredUniverse +HoTTLean.Pointed.Basic +HoTTLean.Pointed.IsPullback +HoTTLean.Prelude +HoTTLean.Syntax.Autosubst +HoTTLean.Syntax.Axioms +HoTTLean.Syntax.Basic +HoTTLean.Syntax.EqCtx +HoTTLean.Syntax.GCongr +HoTTLean.Syntax.Injectivity +HoTTLean.Syntax.Inversion +HoTTLean.Syntax.InversionLemmas +HoTTLean.Syntax.Substitution +HoTTLean.Syntax.Synth +HoTTLean.Syntax.Typing +HoTTLean.Tactic.GrindCases +HoTTLean.Tactic.MutualInduction +HoTTLean.Typechecker.Cache +HoTTLean.Typechecker.Equate +HoTTLean.Typechecker.Evaluate +HoTTLean.Typechecker.Synth +HoTTLean.Typechecker.Util +HoTTLean.Typechecker.Value +HoTTLean.Typechecker.ValueInversion +HoTTLeanTest.basic +HoTTLeanTest.hott0 +HoTTLeanTest.import +HoTTLeanTest.unitt diff --git a/docs/lean-v4.34.1/evidence/natural.txt b/docs/lean-v4.34.1/evidence/natural.txt new file mode 100644 index 00000000..28795fb0 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/natural.txt @@ -0,0 +1,78 @@ +$ lake build NaturalModel +⚠ [990/1029] Replayed Poly.ForMathlib.CategoryTheory.LocallyCartesianClosed.Distributivity +warning: Poly/ForMathlib/CategoryTheory/LocallyCartesianClosed/Distributivity.lean:114:6: declaration uses `sorry` +warning: Poly/ForMathlib/CategoryTheory/LocallyCartesianClosed/Distributivity.lean:126:4: declaration uses `sorry` +warning: Poly/ForMathlib/CategoryTheory/LocallyCartesianClosed/Distributivity.lean:152:4: declaration uses `sorry` +⚠ [992/1029] Replayed Poly.UvPoly.Basic +warning: Poly/UvPoly/Basic.lean:64:4: declaration uses `sorry` +warning: Poly/UvPoly/Basic.lean:85:4: declaration uses `sorry` +warning: Poly/UvPoly/Basic.lean:232:4: declaration uses `sorry` +warning: Poly/UvPoly/Basic.lean:256:10: declaration uses `sorry` +warning: Poly/UvPoly/Basic.lean:251:0: declaration uses `sorry` +warning: Poly/UvPoly/Basic.lean:264:4: declaration uses `sorry` +warning: Poly/UvPoly/Basic.lean:277:4: declaration uses `sorry` +warning: Poly/UvPoly/Basic.lean:276:2: declaration uses `sorry` +warning: Poly/UvPoly/Basic.lean:276:2: declaration uses `sorry` +warning: Poly/UvPoly/Basic.lean:394:4: declaration uses `sorry` +warning: Poly/UvPoly/Basic.lean:399:9: declaration uses `sorry` +⚠ [1012/1029] Replayed HoTTLean.ForMathlib +warning: HoTTLean/ForMathlib.lean:352:0: Definition `CategoryTheory.Equivalence.chosenFiniteProducts` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. +warning: HoTTLean/ForMathlib.lean:352:4: Overlapping instance parameters in `chosenFiniteProducts`: + +⚠️ There are 2 `[CartesianMonoidalCategory C]` instances; one is sufficient. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/ForMathlib.lean:462:0: Definition `sigmaCongr_apply_snd` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1022/1029] Replayed HoTTLean.Syntax.Substitution +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.refl_tp` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.trans_tp` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.refl_tm` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.trans_tm'` annotated with `@[grind .]` +⚠ [1025/1029] Built HoTTLean.ForPoly (8.7s) +warning: HoTTLean/ForPoly.lean:63:27: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. + +Note: This linter can be disabled with `set_option linter.ambiguousOpen false` +warning: HoTTLean/ForPoly.lean:122:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. + +Note: This linter can be disabled with `set_option linter.ambiguousOpen false` +warning: HoTTLean/ForPoly.lean:128:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. + +Note: This linter can be disabled with `set_option linter.ambiguousOpen false` +warning: HoTTLean/ForPoly.lean:133:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. + +Note: This linter can be disabled with `set_option linter.ambiguousOpen false` +warning: HoTTLean/ForPoly.lean:139:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. + +Note: This linter can be disabled with `set_option linter.ambiguousOpen false` +warning: HoTTLean/ForPoly.lean:148:32: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. + +Note: This linter can be disabled with `set_option linter.ambiguousOpen false` +warning: HoTTLean/ForPoly.lean:163:27: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. + +Note: This linter can be disabled with `set_option linter.ambiguousOpen false` +warning: HoTTLean/ForPoly.lean:651:6: declaration uses `sorry` +warning: HoTTLean/ForPoly.lean:655:6: declaration uses `sorry` +warning: HoTTLean/ForPoly.lean:665:6: declaration uses `sorry` +✔ [1026/1029] Built HoTTLean.Model.Natural.NaturalModel (10s) +⚠ [1027/1029] Built HoTTLean.Model.Natural.UHom (15s) +warning: HoTTLean/Model/Natural/UHom.lean:37:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Model/Natural/UHom.lean:128:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Model/Natural/UHom.lean:450:0: Definition `Pi_pb` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +info: HoTTLean/Model/Natural/UHom.lean:647:2: Try this: + [apply] rwa [mkApp, unLam_mkLam] +warning: HoTTLean/Model/Natural/UHom.lean:676:0: Definition `Sig_pb` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +✔ [1028/1029] Built HoTTLean.Model.Natural.Interpretation (18s) +Build completed successfully (1029 jobs). + +Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/project.txt b/docs/lean-v4.34.1/evidence/project.txt new file mode 100644 index 00000000..d4420d74 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/project.txt @@ -0,0 +1,274 @@ +$ lake build +⚠ [902/1025] Replayed HoTTLean.ForMathlib +warning: HoTTLean/ForMathlib.lean:352:0: Definition `CategoryTheory.Equivalence.chosenFiniteProducts` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. +warning: HoTTLean/ForMathlib.lean:352:4: Overlapping instance parameters in `chosenFiniteProducts`: + +⚠️ There are 2 `[CartesianMonoidalCategory C]` instances; one is sufficient. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/ForMathlib.lean:462:0: Definition `sigmaCongr_apply_snd` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [937/1025] Replayed HoTTLean.ForMathlib.CategoryTheory.Grpd +warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:154:0: Definition `Grpd.Functor.iso_hom` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:159:0: Definition `Grpd.Functor.iso_inv` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [954/1025] Replayed HoTTLean.ForMathlib.CategoryTheory.Bicategory.Grothendieck +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:587:0: Definition `transport_base` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:591:0: Definition `transport_fiber` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:605:0: Definition `toTransport_base` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:609:0: Definition `toTransport_fiber` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [955/1025] Replayed HoTTLean.Grothendieck.Groupoidal.Basic +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:46:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpIdComp`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:52:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpCompId`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:176:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.eta`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:180:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.Hom.eta`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:485:0: Definition `ι_comp_functorFrom` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [967/1025] Replayed HoTTLean.ForMathlib.CategoryTheory.FreeGroupoid +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:7: Variable name `C` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _C + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:9: Variable name `D` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _D + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:195:9: Variable name `C` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _C + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +⚠ [969/1025] Replayed HoTTLean.ForMathlib.CategoryTheory.Functor.IsPullback +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:657:0: Definition `hCLeft` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:881:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:884:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:887:0: Definition `uniq` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:894:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:932:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:935:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:938:0: Definition `uniq` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:944:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [970/1025] Replayed HoTTLean.Pointed.Basic +warning: HoTTLean/Pointed/Basic.lean:22:0: `PCat`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +warning: HoTTLean/Pointed/Basic.lean:152:0: `PGrpd`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +⚠ [973/1025] Replayed HoTTLean.Grothendieck.Groupoidal.IsPullback +warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:173:0: Definition `sec_toPGrpd` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:182:0: Definition `sec_forget` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [974/1025] Replayed HoTTLean.ForMathlib.CategoryTheory.Core +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:25:0: Definition `comp_inclusion_injective` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:142:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:144:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [986/1025] Replayed HoTTLean.Groupoids.Basic +warning: HoTTLean/Groupoids/Basic.lean:37:0: Definition `pGrpdToGroupoidalAsSmallFunctor_groupoidalAsSmallFunctorToPGrpd` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Basic.lean:41:0: Definition `groupoidalAsSmallFunctorToPGrpd_pGrpdToGroupoidalAsSmallFunctor` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Basic.lean:45:0: Definition `pGrpdToGroupoidalAsSmallFunctor_forget` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Basic.lean:120:0: `Ty`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +warning: HoTTLean/Groupoids/Basic.lean:124:0: `Tm`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +⚠ [988/1025] Replayed HoTTLean.Groupoids.UnstructuredModel +warning: HoTTLean/Groupoids/UnstructuredModel.lean:22:0: `U`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +⚠ [991/1025] Replayed HoTTLean.Groupoids.Pi +warning: HoTTLean/Groupoids/Pi.lean:350:0: Definition `obj_hext` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Pi.lean:355:0: Definition `hom_hext` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Pi.lean:365:0: Definition `hom_hext'` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [995/1025] Replayed HoTTLean.Groupoids.ClovenIsofibration +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:156:4: The namespace `map` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.classifier.map.map`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:279:4: The namespace `hom` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.grothendieckClassifierIso.hom.hom`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `CategoryTheory.Functor.ClovenIsofibration.toTransport_IsIso` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `toTransport_IsIso` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:469:0: Definition `forget.liftObj_id` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:474:0: Definition `forget.liftIso_id` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [996/1025] Replayed HoTTLean.Groupoids.Id +warning: HoTTLean/Groupoids/Id.lean:841:0: `I_map_obj_ff`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +⚠ [1002/1025] Replayed HoTTLean.Syntax.Substitution +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.refl_tp` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.trans_tp` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.refl_tm` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.trans_tm'` annotated with `@[grind .]` +⚠ [1005/1025] Replayed HoTTLean.Model.Unstructured.UHom +warning: HoTTLean/Model/Unstructured/UHom.lean:38:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Model/Unstructured/UHom.lean:104:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Model/Unstructured/UHom.lean:139:0: automatically included section variable(s) unused in theorem `Model.UnstructuredUniverse.Hom.extCompMapTyIsoExt_hom_comp_substWk`: + [ChosenTerminal Ctx] +consider restructuring your `variable` declarations so that the variables are not in scope or explicitly omit them: + omit [ChosenTerminal Ctx] in theorem ... + +Note: This linter can be disabled with `set_option linter.unusedSectionVars false` +warning: HoTTLean/Model/Unstructured/UHom.lean:374:0: Definition `Model.UnstructuredUniverse.UHomSeq.PiSeq.ofMonomorphic` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. +⚠ [1012/1025] Replayed HoTTLean.Syntax.Axioms +warning: HoTTLean/Syntax/Axioms.lean:33:7: Variable name `E` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _E + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +⚠ [1021/1025] Replayed HoTTLean.Frontend.EnvExt +warning: HoTTLean/Frontend/EnvExt.lean:65:15: Overlapping instance parameters in `TheoryExt`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:71:4: Overlapping instance parameters in `mkInitTheoryData`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:106:19: Overlapping instance parameters in `theoryExt`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:106:0: Overlapping instance parameters in `initFn✝`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:151:4: Overlapping instance parameters in `saveTheoryDecl`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:164:4: Overlapping instance parameters in `saveShallowTheoryConst`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:170:4: Overlapping instance parameters in `getTheoryData`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:177:4: Overlapping instance parameters in `setTheoryData`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +Build completed successfully (1025 jobs). + +Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/review.txt b/docs/lean-v4.34.1/evidence/review.txt new file mode 100644 index 00000000..87f50130 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/review.txt @@ -0,0 +1,11 @@ +Independent source review + +Reviewed cleanup commits: d379abfbe3081fa089f027d4655932b293dd305e, bb43b603744924e879dd1d3608da55aa8598e897, 61c652d6b0ea434dfb5ff8f768d4cc4cdac7da57. +Integrated commits: 240afaa, d6c18f7, 20c4b23. +The Terra review found no concrete blocker in the final source diffs. +The reviewed diffs preserve declaration-local elaboration options and public Grothendieck aliases. +They add no proof holes or linter suppression settings. +They remove the redundant unit-test identity instance. +The frontend Commands change is formatting only. EnvExt is unchanged. +A proposed class-instance binder and reducibility change was reverted before integration. +The targeted builds passed separately. Final combined commands have their own logs. diff --git a/docs/lean-v4.34.1/evidence/source-audit.txt b/docs/lean-v4.34.1/evidence/source-audit.txt new file mode 100644 index 00000000..1e8a7650 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/source-audit.txt @@ -0,0 +1,74 @@ +Static source audit. Comments and strings are removed before scanning. +Qualified or quoted axiom names are not declarations. +This scan does not inspect macros, dependencies, or generated proof terms. + +31133dd + HoTTLean/ForPoly.lean:595: sorry (1) + HoTTLean/ForPoly.lean:605: sorry (1) + HoTTLean/ForPoly.lean:612: sorry (1) + HoTTLean/Prelude.lean:41: axiom + HoTTLean/Prelude.lean:42: axiom + HoTTLean/Prelude.lean:43: axiom + HoTTLean/Syntax/Injectivity.lean:14: axiom + HoTTLean/Syntax/Injectivity.lean:19: axiom + HoTTLean/Syntax/Injectivity.lean:25: axiom + test/basic.lean:71: axiom + test/basic.lean:73: axiom + test/basic.lean:75: axiom + test/basic.lean:77: axiom + test/basic.lean:89: sorry (1) + test/hott0.lean:24: axiom + test/hott0.lean:65: axiom + test/unitt.lean:16: axiom + test/unitt.lean:19: axiom + test/unitt.lean:20: axiom + test/unitt.lean:21: axiom + test/unitt.lean:34: sorry (1) +{"admit": 0, "production_axioms": 6, "production_sorry": 3, "test_axioms": 10, "test_sorry": 2} + +39e8eb63 + HoTTLean/ForPoly.lean:652: sorry (1) + HoTTLean/ForPoly.lean:662: sorry (1) + HoTTLean/ForPoly.lean:669: sorry (1) + HoTTLean/Prelude.lean:41: axiom + HoTTLean/Prelude.lean:42: axiom + HoTTLean/Prelude.lean:43: axiom + HoTTLean/Syntax/Injectivity.lean:14: axiom + HoTTLean/Syntax/Injectivity.lean:19: axiom + HoTTLean/Syntax/Injectivity.lean:25: axiom + HoTTLeanTest/basic.lean:71: axiom + HoTTLeanTest/basic.lean:73: axiom + HoTTLeanTest/basic.lean:75: axiom + HoTTLeanTest/basic.lean:77: axiom + HoTTLeanTest/basic.lean:89: sorry (1) + HoTTLeanTest/hott0.lean:24: axiom + HoTTLeanTest/hott0.lean:65: axiom + HoTTLeanTest/unitt.lean:16: axiom + HoTTLeanTest/unitt.lean:19: axiom + HoTTLeanTest/unitt.lean:20: axiom + HoTTLeanTest/unitt.lean:21: axiom + HoTTLeanTest/unitt.lean:34: sorry (1) +{"admit": 0, "production_axioms": 6, "production_sorry": 3, "test_axioms": 10, "test_sorry": 2} + +working-tree + HoTTLean/ForPoly.lean:653: sorry (1) + HoTTLean/ForPoly.lean:663: sorry (1) + HoTTLean/ForPoly.lean:670: sorry (1) + HoTTLean/Prelude.lean:41: axiom + HoTTLean/Prelude.lean:42: axiom + HoTTLean/Prelude.lean:43: axiom + HoTTLean/Syntax/Injectivity.lean:14: axiom + HoTTLean/Syntax/Injectivity.lean:19: axiom + HoTTLean/Syntax/Injectivity.lean:25: axiom + HoTTLeanTest/basic.lean:71: axiom + HoTTLeanTest/basic.lean:73: axiom + HoTTLeanTest/basic.lean:75: axiom + HoTTLeanTest/basic.lean:77: axiom + HoTTLeanTest/basic.lean:89: sorry (1) + HoTTLeanTest/hott0.lean:24: axiom + HoTTLeanTest/hott0.lean:65: axiom + HoTTLeanTest/unitt.lean:16: axiom + HoTTLeanTest/unitt.lean:19: axiom + HoTTLeanTest/unitt.lean:20: axiom + HoTTLeanTest/unitt.lean:21: axiom +{"admit": 0, "production_axioms": 6, "production_sorry": 3, "test_axioms": 10, "test_sorry": 1} diff --git a/docs/lean-v4.34.1/evidence/source-hashes.txt b/docs/lean-v4.34.1/evidence/source-hashes.txt new file mode 100644 index 00000000..db6d62c8 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/source-hashes.txt @@ -0,0 +1,73 @@ +4d29cdb4b5c008c8a3a4fca654314f7aeb9e521ec8851ec94c951303cb33f2a2 HoTTLean.lean +3a3ccbbbea5fbb83777a475a016a12bf66e5eaad79d0cc6f0fe78b9fa8e5138b HoTTLean/ForMathlib.lean +ee95721d1d3b45824a1582e0d30a9318f9125f50c4eccfc6726818ed0306c0e0 HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +c76765b4b449679158631729b5432eef190f295db335658b16ad07c360628efb HoTTLean/ForMathlib/CategoryTheory/Core.lean +8893bb36d7f761478966f1ad19629527b6dee1b0afaf854da85181c22e3281ca HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean +ed4942e68e54aa426b8a4e118f280865b99838b5922d7ab766fb40b5e10547e6 HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean +ffc2ac017805b16cf20bf6af46fa3a302fdb5bfff77a4ed4dffffc3d2fdb86dd HoTTLean/ForMathlib/CategoryTheory/Functor/Iso.lean +4345dcb13b4e709af5ace5ba8d03d465a2a25286a32a3676592348e48bbfa433 HoTTLean/ForMathlib/CategoryTheory/Groupoid.lean +fcfe3488b81ce461df9a3bd6ee96704e955d2a492f26ca425ed18a80391286af HoTTLean/ForMathlib/CategoryTheory/Grpd.lean +6d9485e4592b0181191b0e0b78fd30296467f721d6edbc1d8ce4fc52e03ec5f9 HoTTLean/ForMathlib/CategoryTheory/Localization/Predicate.lean +e7df540df5d51b4f4dfb23dd0a302474b3f7183133b84b0030056de45750cdeb HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/Basic.lean +3295ff8897cf5d3de8b5ddd6ef5b3510e89d563249193a02691a46389ff0cd57 HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/WideSubcategory.lean +0e13cfac8c94cd74f2b0e71b88b18984950fb54680f1ddf1defda6ee13041cf9 HoTTLean/ForMathlib/CategoryTheory/NatTrans.lean +4e25cd65f495ba8560aae70a16dcbac151faa416d6fbd64b4675046c52141d03 HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean +4dcb93d6385ce83fb08ab73485e397a94d702bf1253b88c4d82a67e1f079cc5e HoTTLean/ForMathlib/CategoryTheory/WeakPullback.lean +e1e9c9c226fb178d95d139a490b73a42d5dc10ea033449008de60a9809a8d588 HoTTLean/ForMathlib/CategoryTheory/Whiskering.lean +c586aea6bd0d01881852f930cd9910ce62c3f0263eae325b87b67c5ccc4b8b7f HoTTLean/ForMathlib/CategoryTheory/Yoneda.lean +62fc5b7491e1f19632a7e0252c7f99bc5c41bf266cace05b1f224c56d27fdb7c HoTTLean/ForMathlib/Tactic/CategoryTheory/FunctorMap.lean +fd579883d9ea75c679c60c80caa71247327a43e463c63a485e7578001164bd54 HoTTLean/ForPoly.lean +42ddb0e0d8d8e1eb25cf72f5579f72276ee38f14ffe19cb257b442d096ca2c9f HoTTLean/Frontend/Checked.lean +316bff891a327e931b0667f472a9ff90777110d200986db60835b4f82877f301 HoTTLean/Frontend/Commands.lean +8425842110587c5ddf1412149addf02496f39cbc43e4061dd99d5a592e213894 HoTTLean/Frontend/EnvExt.lean +869e727faeaf003d3980a5f5a17a510456467615dadbcd0d73ff3f9b5932c3d5 HoTTLean/Frontend/Translation.lean +246a512f6c2e793de16696ddff769bbcc6be77a274a0812b994e0fa5d352df83 HoTTLean/Grothendieck/Groupoidal/Basic.lean +49cabc73c2da52cf0f986b9a326303d9bc740816ae1611863225e5359862cca8 HoTTLean/Grothendieck/Groupoidal/IsPullback.lean +8093df58bd77f34783825e737719a71c82b3812798dcb8ca12c7773ac410dae0 HoTTLean/Grothendieck/IsPullback.lean +4507eee0a25e75826ed66d946ab04fcf16098887750e4e3a5f58e9521cce785a HoTTLean/Groupoids/Basic.lean +fe07c1fce7424c12d955374e52922680745357871990c451bcc0ed629afd61d2 HoTTLean/Groupoids/ClovenIsofibration.lean +c45adb5e40baebe6477617a83ba28b6e8a6f8b6978447018de071292ef3b8de8 HoTTLean/Groupoids/Id.lean +2db82fdb4c259c861022f0043deb1002a0ce85e5eb9d857dda6f88b18aba853f HoTTLean/Groupoids/IsPullback.lean +0eec50dd0342769c3ea6e146f086b9e986c2c67e2bd100a72a5b49b9fd068e4f HoTTLean/Groupoids/Pi.lean +e596d53e0a1da79cf5c13cb7de1d7d29d5c9b6e5bdbf4040c71cb375d5f92635 HoTTLean/Groupoids/Sigma.lean +39afb2ee79baff12a5294d2f7e7fbc6100435f3f3c65fda2c113a098a72d60ef HoTTLean/Groupoids/UHom.lean +e8ac306ba7c044c7d11d4f2bace3e30b1f49bb93b1db3bc9e1ff12fe319f2597 HoTTLean/Groupoids/UnstructuredModel.lean +179d3303a41b730b1606d3d196cad7733374f6901f7eba10f1e48d270c4333c1 HoTTLean/Model/Natural/Interpretation.lean +79a2f83ea4f048bff219cd5052914d5c4dfcec5bafecc6c2fad850bfcaab8b06 HoTTLean/Model/Natural/NaturalModel.lean +a05d3720e1c38a7ed4bdc99551c92915ac4ddb077a4868dc77121b73f390af99 HoTTLean/Model/Natural/UHom.lean +3f1d2eddd68b78b70085f8741e7c963e2d283e9187b2cd48cc4e4c8065942b80 HoTTLean/Model/Unstructured/Hurewicz.lean +60510598f63438f839b250e252725dcac981b1d78c205cdb02d27953eb97f92a HoTTLean/Model/Unstructured/Interpretation.lean +4c88815e8a24a737fad002705628e500b56258055728309b0dff84f0ae1b3ff9 HoTTLean/Model/Unstructured/UHom.lean +10c20fd82d96587c1f2a02a773fc0801ec3fc105d6ebd9163a77a46744e01209 HoTTLean/Model/Unstructured/UnstructuredUniverse.lean +10662be556ca12321417c66c2c7813dbf79b6e5e4180958eee0ab801f9e922ba HoTTLean/Pointed/Basic.lean +f892edd28bae280883c86135fde12f57c833851dfc22de420d12826b0ddbed4e HoTTLean/Pointed/IsPullback.lean +a6167873b1e70093914e21ff7c1afc19d5f21293776b1b803bbdcb197b5f97e6 HoTTLean/Prelude.lean +16507a208e94504dd526ab27b38ebdfdf2776256a4b66c640946ff5bb8897cb9 HoTTLean/Syntax/Autosubst.lean +c8eeec68aacffe0a615c4d3ce8384e7e1a0886df4b7d1ffb68f9a423de8d87f5 HoTTLean/Syntax/Axioms.lean +57bc748a1e11d5c701e6df0916c24e7df14c0f0df14255529caa5e8bfa67772d HoTTLean/Syntax/Basic.lean +3f72f2b5843fd6db790cf140491a65e54d1dc227c1497b2bdc7b21b66ab7d801 HoTTLean/Syntax/EqCtx.lean +6a39b9785944efbb2c3ac839e2990dd5496bfb8f352e594cdafb8931f1028d70 HoTTLean/Syntax/GCongr.lean +baf0436e35788a6e25e697c6be43585e79526748abf8e404f2db33812090e4f9 HoTTLean/Syntax/Injectivity.lean +2fdd312961d881299d1382da7b52aca4cb039d9e6aa8bb41afd96b7bd60ae54e HoTTLean/Syntax/Inversion.lean +58f023d651c05afd87e585edbada7dc73fea30c6e2dcf0cd91d9410aaa243714 HoTTLean/Syntax/InversionLemmas.lean +172fe2040ccef08be801c5a6722b060136ac5bf3c55fbc50a548be4ae0babb4c HoTTLean/Syntax/Substitution.lean +1dea485b8585d776ff876b358ddc4ba40f4b7ee7c0c0a77424a4f91b92733477 HoTTLean/Syntax/Synth.lean +1ca1efd7ef91d65bcf70264edadde868768237806450b0fd05f5d4b43044487e HoTTLean/Syntax/Typing.lean +af04b7866c86d0d58a769183b2987e59da9a22a98ccc08398818a040d00d44f3 HoTTLean/Tactic/GrindCases.lean +d1c7203637ff11d35f1de81c8bfff838c566c8b4d82eb8bd26cdd657bc140550 HoTTLean/Tactic/MutualInduction.lean +89fd5d35f15fb7ae9bae5aeda5272dc34267bd655af6a136ee39c59554711ca3 HoTTLean/Typechecker/Cache.lean +1b63d83322384b7e87ee02cb7f4ee3e8091ba1c946a3f19f1ead42662a90ea5f HoTTLean/Typechecker/Equate.lean +5ca2131edcff76aca1f3a6fbcb710b776fbd0ddfa82eb204a1e7d6ebb52b3cc0 HoTTLean/Typechecker/Evaluate.lean +0f215e9e230377d19cade63a67583678e6428b0f3bc5951bf5880281a6cfdd1d HoTTLean/Typechecker/Synth.lean +67dbac33606d88727c98cb12642f9d85b4ebe7cdfa3320332272076fe8754ed0 HoTTLean/Typechecker/Util.lean +bb0d1282b1d62233c2b326cb6265ef1f6031023611e0486d16ee1f80d0a51efd HoTTLean/Typechecker/Value.lean +58a870b3c79ae8804858ebd4af031bc29db5cb582c9d8e67bc7ea48bcd626b6d HoTTLean/Typechecker/ValueInversion.lean +dba55378e271b3c82fdf5fa1abf8383190ab5176c280a32f4894fe9f6a1c4ee1 HoTTLeanTest.lean +b038637a5753c1bea695dfce4486c143979dd1b1e70bfc411f296baf4c152efe HoTTLeanTest/basic.lean +7da0c64c8653af08758d56137bec085f9d765f101b34377d8354c165b1a218d0 HoTTLeanTest/hott0.lean +8e3bc6ffbc21ce60d9f87cc0e2f8311b067abf24587febdc5ea6f596f0da54e8 HoTTLeanTest/import.lean +4e23eb098f8536fd01f88975d6c90cb84cb9f5830ca24c2fc6e8e046aad0abf4 HoTTLeanTest/unitt.lean +5915340aac7238e1d9f1eac012e406f4d1876af4add9a6ade9b36319237c60dc lakefile.lean +1442b83d0a08bb6b704961178559446d01222575dfe3b898ade9df1943625e18 test.lean +d5edba4e4b8faad9c1baeadb265716d20d03be4d1a2647dc5e35b0c0325bea7b lean-toolchain +0d96e204ccec42cc1fc07e56951cc751c7c6ec252f72f9d3bdfab52c3c25931e lake-manifest.json diff --git a/docs/lean-v4.34.1/evidence/style.txt b/docs/lean-v4.34.1/evidence/style.txt new file mode 100644 index 00000000..940f7527 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/style.txt @@ -0,0 +1 @@ +PASS: source and tests meet the 100-character non-URL limit and use precise imports. diff --git a/docs/lean-v4.34.1/evidence/tests.txt b/docs/lean-v4.34.1/evidence/tests.txt new file mode 100644 index 00000000..5a18a35b --- /dev/null +++ b/docs/lean-v4.34.1/evidence/tests.txt @@ -0,0 +1,286 @@ +$ lake test +⚠ [106/298] Replayed HoTTLean.Syntax.Substitution +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.refl_tp` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.trans_tp` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.refl_tm` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.trans_tm'` annotated with `@[grind .]` +⚠ [146/298] Replayed HoTTLean.Syntax.Axioms +warning: HoTTLean/Syntax/Axioms.lean:33:7: Variable name `E` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _E + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +⚠ [155/298] Replayed HoTTLean.Frontend.EnvExt +warning: HoTTLean/Frontend/EnvExt.lean:65:15: Overlapping instance parameters in `TheoryExt`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:71:4: Overlapping instance parameters in `mkInitTheoryData`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:106:19: Overlapping instance parameters in `theoryExt`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:106:0: Overlapping instance parameters in `initFn✝`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:151:4: Overlapping instance parameters in `saveTheoryDecl`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:164:4: Overlapping instance parameters in `saveShallowTheoryConst`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:170:4: Overlapping instance parameters in `getTheoryData`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/Frontend/EnvExt.lean:177:4: Overlapping instance parameters in `setTheoryData`: + +⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. + +When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. + +Delete or combine some of your instance parameters to avoid this. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +⚠ [927/1029] Replayed HoTTLean.ForMathlib +warning: HoTTLean/ForMathlib.lean:352:0: Definition `CategoryTheory.Equivalence.chosenFiniteProducts` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. +warning: HoTTLean/ForMathlib.lean:352:4: Overlapping instance parameters in `chosenFiniteProducts`: + +⚠️ There are 2 `[CartesianMonoidalCategory C]` instances; one is sufficient. + +Note: This linter can be disabled with `set_option linter.overlappingInstances false` +warning: HoTTLean/ForMathlib.lean:462:0: Definition `sigmaCongr_apply_snd` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [942/1029] Replayed HoTTLean.Model.Unstructured.UHom +warning: HoTTLean/Model/Unstructured/UHom.lean:38:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Model/Unstructured/UHom.lean:104:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Model/Unstructured/UHom.lean:139:0: automatically included section variable(s) unused in theorem `Model.UnstructuredUniverse.Hom.extCompMapTyIsoExt_hom_comp_substWk`: + [ChosenTerminal Ctx] +consider restructuring your `variable` declarations so that the variables are not in scope or explicitly omit them: + omit [ChosenTerminal Ctx] in theorem ... + +Note: This linter can be disabled with `set_option linter.unusedSectionVars false` +warning: HoTTLean/Model/Unstructured/UHom.lean:374:0: Definition `Model.UnstructuredUniverse.UHomSeq.PiSeq.ofMonomorphic` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. +⚠ [974/1029] Replayed HoTTLean.ForMathlib.CategoryTheory.Grpd +warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:154:0: Definition `Grpd.Functor.iso_hom` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:159:0: Definition `Grpd.Functor.iso_inv` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [991/1029] Replayed HoTTLean.ForMathlib.CategoryTheory.Bicategory.Grothendieck +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:587:0: Definition `transport_base` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:591:0: Definition `transport_fiber` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:605:0: Definition `toTransport_base` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:609:0: Definition `toTransport_fiber` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [992/1029] Replayed HoTTLean.Grothendieck.Groupoidal.Basic +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:46:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpIdComp`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:52:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpCompId`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:176:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.eta`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:180:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.Hom.eta`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:485:0: Definition `ι_comp_functorFrom` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1005/1029] Replayed HoTTLean.ForMathlib.CategoryTheory.FreeGroupoid +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:7: Variable name `C` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _C + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:9: Variable name `D` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _D + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:195:9: Variable name `C` is not explicitly referenced. + +Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: + [apply] _C + +Note: This linter can be disabled with `set_option linter.unusedVariables false` +⚠ [1006/1029] Replayed HoTTLean.ForMathlib.CategoryTheory.Functor.IsPullback +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:657:0: Definition `hCLeft` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:881:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:884:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:887:0: Definition `uniq` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:894:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:932:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:935:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:938:0: Definition `uniq` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:944:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1007/1029] Replayed HoTTLean.Pointed.Basic +warning: HoTTLean/Pointed/Basic.lean:22:0: `PCat`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +warning: HoTTLean/Pointed/Basic.lean:152:0: `PGrpd`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +⚠ [1010/1029] Replayed HoTTLean.Grothendieck.Groupoidal.IsPullback +warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:173:0: Definition `sec_toPGrpd` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:182:0: Definition `sec_forget` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1012/1029] Replayed HoTTLean.ForMathlib.CategoryTheory.Core +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:25:0: Definition `comp_inclusion_injective` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:142:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:144:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1013/1029] Replayed HoTTLean.Groupoids.Basic +warning: HoTTLean/Groupoids/Basic.lean:37:0: Definition `pGrpdToGroupoidalAsSmallFunctor_groupoidalAsSmallFunctorToPGrpd` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Basic.lean:41:0: Definition `groupoidalAsSmallFunctorToPGrpd_pGrpdToGroupoidalAsSmallFunctor` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Basic.lean:45:0: Definition `pGrpdToGroupoidalAsSmallFunctor_forget` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Basic.lean:120:0: `Ty`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +warning: HoTTLean/Groupoids/Basic.lean:124:0: `Tm`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +⚠ [1019/1029] Replayed HoTTLean.Groupoids.UnstructuredModel +warning: HoTTLean/Groupoids/UnstructuredModel.lean:22:0: `U`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +⚠ [1021/1029] Replayed HoTTLean.Groupoids.Pi +warning: HoTTLean/Groupoids/Pi.lean:350:0: Definition `obj_hext` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Pi.lean:355:0: Definition `hom_hext` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/Pi.lean:365:0: Definition `hom_hext'` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1022/1029] Replayed HoTTLean.Groupoids.ClovenIsofibration +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:156:4: The namespace `map` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.classifier.map.map`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:279:4: The namespace `hom` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.grothendieckClassifierIso.hom.hom`. + +Note: This linter can be disabled with `set_option linter.dupNamespace false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `CategoryTheory.Functor.ClovenIsofibration.toTransport_IsIso` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `toTransport_IsIso` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:469:0: Definition `forget.liftObj_id` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:474:0: Definition `forget.liftIso_id` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +⚠ [1023/1029] Replayed HoTTLean.Groupoids.Id +warning: HoTTLean/Groupoids/Id.lean:841:0: `I_map_obj_ff`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. + +Note: This linter can be disabled with `set_option linter.checkUnivs false` +✔ [1024/1029] Built HoTTLean.Groupoids.UHom (2.2s) +✔ [1025/1029] Built HoTTLeanTest.basic (3.9s) +✔ [1026/1029] Built HoTTLeanTest.hott0 (6.9s) +✔ [1027/1029] Built HoTTLeanTest.import (3.1s) +⚠ [1028/1029] Built HoTTLeanTest.unitt (5.5s) +info: HoTTLeanTest/unitt.lean:23:6: axiom UniTT.u : Unit +info: HoTTLeanTest/unitt.lean:24:0: def UniTT.u : SynthLean.CheckedAx ((SynthLean.Axioms.empty Lean.Name).snoc Unit.l Unit.name Unit.tp ⋯ ⋯) := +{ name := `UniTT.u, get_name := ⋯, l := 0, tp := Unit.val.el, + nfTp := SynthLean.Val.el (SynthLean.Neut.ax Unit.name (SynthLean.Val.univ 0)), wf_nfTp := ⋯ } +warning: HoTTLeanTest/unitt.lean:45:0: Definition `sUnit'_tp` is a proposition; use `theorem` instead of `def` + +Note: This linter can be disabled with `set_option linter.defProp false` +✔ [1029/1029] Built HoTTLeanTest (5.2s) + +Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/verification-input-hashes.txt b/docs/lean-v4.34.1/evidence/verification-input-hashes.txt new file mode 100644 index 00000000..746e2729 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/verification-input-hashes.txt @@ -0,0 +1,3 @@ +fd08e89be167d6ff50813cf0dadbf78522d8575010f13d6b16aa10055dc42c08 /data/user_data/shivansg/hottlean-combined-evidence/check_combined.py +a8443e8da6f98643edeb02ad75827ed0f182324d3b2d69a7f6ec535d9a4035c3 /data/user_data/shivansg/hottlean-combined-evidence/finish_checks.py +79ab8b8874147b800a5cbc454d8a42ce0fe3e6d473a3e50b4dd5f53c0f10f37a docs/lean-v4.34.1/evidence/FunctorMapProbe.lean diff --git a/docs/lean-v4.34.1/evidence/warnings.txt b/docs/lean-v4.34.1/evidence/warnings.txt new file mode 100644 index 00000000..2912fb4d --- /dev/null +++ b/docs/lean-v4.34.1/evidence/warnings.txt @@ -0,0 +1,128 @@ +Distinct project warning headlines across final commands: + +warning: HoTTLean/ForMathlib.lean:352:0: Definition `CategoryTheory.Equivalence.chosenFiniteProducts` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +warning: HoTTLean/ForMathlib.lean:352:4: Overlapping instance parameters in `chosenFiniteProducts`: +warning: HoTTLean/ForMathlib.lean:462:0: Definition `sigmaCongr_apply_snd` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:587:0: Definition `transport_base` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:591:0: Definition `transport_fiber` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:605:0: Definition `toTransport_base` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:609:0: Definition `toTransport_fiber` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:142:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:144:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:25:0: Definition `comp_inclusion_injective` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:7: Variable name `C` is not explicitly referenced. +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:9: Variable name `D` is not explicitly referenced. +warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:195:9: Variable name `C` is not explicitly referenced. +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:657:0: Definition `hCLeft` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:881:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:884:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:887:0: Definition `uniq` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:894:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:932:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:935:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:938:0: Definition `uniq` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:944:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:154:0: Definition `Grpd.Functor.iso_hom` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:159:0: Definition `Grpd.Functor.iso_inv` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/ForPoly.lean:122:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. +warning: HoTTLean/ForPoly.lean:128:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. +warning: HoTTLean/ForPoly.lean:133:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. +warning: HoTTLean/ForPoly.lean:139:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. +warning: HoTTLean/ForPoly.lean:148:32: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. +warning: HoTTLean/ForPoly.lean:163:27: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. +warning: HoTTLean/ForPoly.lean:63:27: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. +warning: HoTTLean/ForPoly.lean:651:6: declaration uses `sorry` +warning: HoTTLean/ForPoly.lean:655:6: declaration uses `sorry` +warning: HoTTLean/ForPoly.lean:665:6: declaration uses `sorry` +warning: HoTTLean/Frontend/EnvExt.lean:106:0: Overlapping instance parameters in `initFn✝`: +warning: HoTTLean/Frontend/EnvExt.lean:106:19: Overlapping instance parameters in `theoryExt`: +warning: HoTTLean/Frontend/EnvExt.lean:151:4: Overlapping instance parameters in `saveTheoryDecl`: +warning: HoTTLean/Frontend/EnvExt.lean:164:4: Overlapping instance parameters in `saveShallowTheoryConst`: +warning: HoTTLean/Frontend/EnvExt.lean:170:4: Overlapping instance parameters in `getTheoryData`: +warning: HoTTLean/Frontend/EnvExt.lean:177:4: Overlapping instance parameters in `setTheoryData`: +warning: HoTTLean/Frontend/EnvExt.lean:65:15: Overlapping instance parameters in `TheoryExt`: +warning: HoTTLean/Frontend/EnvExt.lean:71:4: Overlapping instance parameters in `mkInitTheoryData`: +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:176:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.eta`. +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:180:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.Hom.eta`. +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:46:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpIdComp`. +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:485:0: Definition `ι_comp_functorFrom` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:52:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpCompId`. +warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:173:0: Definition `sec_toPGrpd` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:182:0: Definition `sec_forget` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Groupoids/Basic.lean:120:0: `Ty`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. +warning: HoTTLean/Groupoids/Basic.lean:124:0: `Tm`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. +warning: HoTTLean/Groupoids/Basic.lean:37:0: Definition `pGrpdToGroupoidalAsSmallFunctor_groupoidalAsSmallFunctorToPGrpd` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Groupoids/Basic.lean:41:0: Definition `groupoidalAsSmallFunctorToPGrpd_pGrpdToGroupoidalAsSmallFunctor` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Groupoids/Basic.lean:45:0: Definition `pGrpdToGroupoidalAsSmallFunctor_forget` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:156:4: The namespace `map` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.classifier.map.map`. +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:279:4: The namespace `hom` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.grothendieckClassifierIso.hom.hom`. +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `CategoryTheory.Functor.ClovenIsofibration.toTransport_IsIso` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `toTransport_IsIso` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:469:0: Definition `forget.liftObj_id` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Groupoids/ClovenIsofibration.lean:474:0: Definition `forget.liftIso_id` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Groupoids/Id.lean:841:0: `I_map_obj_ff`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. +warning: HoTTLean/Groupoids/Pi.lean:350:0: Definition `obj_hext` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Groupoids/Pi.lean:355:0: Definition `hom_hext` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Groupoids/Pi.lean:365:0: Definition `hom_hext'` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Groupoids/UnstructuredModel.lean:22:0: `U`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. +warning: HoTTLean/Model/Natural/UHom.lean:128:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Model/Natural/UHom.lean:37:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Model/Natural/UHom.lean:450:0: Definition `Pi_pb` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Model/Natural/UHom.lean:676:0: Definition `Sig_pb` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Model/Unstructured/UHom.lean:104:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Model/Unstructured/UHom.lean:139:0: automatically included section variable(s) unused in theorem `Model.UnstructuredUniverse.Hom.extCompMapTyIsoExt_hom_comp_substWk`: +warning: HoTTLean/Model/Unstructured/UHom.lean:374:0: Definition `Model.UnstructuredUniverse.UHomSeq.PiSeq.ofMonomorphic` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this +warning: HoTTLean/Model/Unstructured/UHom.lean:38:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` +warning: HoTTLean/Pointed/Basic.lean:152:0: `PGrpd`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. +warning: HoTTLean/Pointed/Basic.lean:22:0: `PCat`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. +warning: HoTTLean/Syntax/Axioms.lean:33:7: Variable name `E` is not explicitly referenced. +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.refl_tm` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.trans_tm'` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.refl_tp` annotated with `@[grind .]` +warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.trans_tp` annotated with `@[grind .]` +warning: HoTTLeanTest/unitt.lean:45:0: Definition `sUnit'_tp` is a proposition; use `theorem` instead of `def` + +API generator warnings: +WARNING: Failed to calculate equational lemmata for Std.Time.DateTime.weekOfYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekday: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekOfYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeValueArray: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeDateTime: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeTable: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached +WARNING: Failed to calculate equational lemmata for Lake.lowerHexUInt64: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeBool: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeInt: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeFloat: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeString: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached +WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeNat: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Elab.Command.elabElabRulesAux: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Compiler.LCNF.CodeDecl.collectUsed: Tactic `simp` failed with a nested error: +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ensureEvalTerm: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Meta.simpHaveTelescope: failed to generate equational theorem for `Lean.Meta.simpHaveTelescope` +WARNING: Failed to calculate equational lemmata for Lean.Doc.leanRole: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs: failed to generate equational theorem for `Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs` +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ConfigItem.throwInvalidOption: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ensureEvalExpr: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Elab.Term.mkCoe: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.evalMetaEval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ConfigItem.throwCannotSetOption: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Meta.Grind.pushNot: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Server.Completion.dotIdCompletion: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Syntax.asNode: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.CodeAction.holeCodeActionProvider: failed to generate equality theorems for `match` expression `_private.Lean.Server.CodeActions.Provider.0.Lean.CodeAction.holeCodeActionProvider.match_7` +WARNING: Failed to calculate equational lemmata for Lean.Elab.Tactic.evalGrindCore: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Meta.Tactic.TryThis.addRewriteSuggestion: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Level.collectMVars: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.deriveEvalExprUsingMetaEval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Qq.Impl.mkIsDefEqResult: failed +WARNING: Failed to obtain information for: Qq.Impl.mkLambdaQ: failed +WARNING: Failed to calculate equational lemmata for Qq.Impl.makeMatchCode: failed +WARNING: Failed to obtain information for: Qq.Impl.withLetHave: failed +WARNING: Failed to calculate equational lemmata for Qq.Impl.mkQqLets: failed +WARNING: Failed to calculate equational lemmata for Lean.Name.findHome: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.MkIff.nCasesSum: failed to generate equational theorem for `Mathlib.Tactic.MkIff.nCasesSum` +WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.MkIff.nCasesProd: failed to generate equational theorem for `Mathlib.Tactic.MkIff.nCasesProd` +WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.Erw?.logDiffs: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.BicategoryLike.eval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached +WARNING: Failed to calculate equational lemmata for PiFin.toExpr: failed diff --git a/docs/lean-v4.34.1/evidence/whitespace.txt b/docs/lean-v4.34.1/evidence/whitespace.txt new file mode 100644 index 00000000..b454ec04 --- /dev/null +++ b/docs/lean-v4.34.1/evidence/whitespace.txt @@ -0,0 +1,3 @@ +$ git diff --check 39e8eb63 + +Exit status: 0 diff --git a/docs/lean-v4.34.1/hottlean-changes.md b/docs/lean-v4.34.1/hottlean-changes.md new file mode 100644 index 00000000..0727262a --- /dev/null +++ b/docs/lean-v4.34.1/hottlean-changes.md @@ -0,0 +1,120 @@ +# Lean v4.34.1 migration record + +This branch combines two completed migrations from `31133dd` (Lean v4.25.0-rc2). +Unity produced commit `39e8eb63`. +The earlier root-led migration ended at `6f719862`. +The combined work keeps the Unity source as its base. +It adds the stronger unit test, compiler warning cleanup, source formatting, +and documentation from the earlier work. +This combination is root-led work. It is not the Unity-approved snapshot. + +## Dependencies and source changes + +Use Lean v4.34.1 and Mathlib v4.34.1. +Use the [sosudo/Poly fork](https://github.com/sosudo/Poly) at +`cc08a1f77c20e07a7366f0824ecd36ae472c0377`. +Use its vendored checkdecls package. +The combined work does not change the default dependency commits or paths. + +Keep Unity's repairs for the category wrappers, pullbacks, polynomial functors, +groupoid model, and natural and unstructured models. +Keep the original public Grothendieck names and their compatibility aliases. +Keep the declaration-local elaboration options and explicit wrapper projections. +These options control elaboration. They do not disable kernel proof checks. +Remove unused simplification arguments and deprecated lemma names. +Wrap source lines to meet the CI limit of 100 characters, except URLs. +Do not add linter suppressions. + +Keep Unity's frontend environment loader unchanged. +It reads the custom prelude without changing process-wide import flags. +It checks that the prelude imports only Init and has no initializers. +It restores persistent extension entries without loading native code or running +module initializers. +This loader supports that restricted prelude contract. +It is not a general replacement for Lean's module loader. +The existing unchecked declaration replay remains limited to the isolated theory +environment. + +Keep the `functor_map` universe repair. +The [probe](evidence/FunctorMapProbe.lean) checks generated declarations, +nested attributes, and the term elaborator. + +## Tests + +The test root is `HoTTLeanTest`. +It imports all four test modules and avoids the ProofWidgets `test` root conflict. +The unit type test uses the current unstructured groupoid model. +The interpreter permits separate object and morphism universes. +Remove the redundant `IdSeq := sorry` instance from that test. +Use the checked instance from `HoTTLean.Groupoids.UHom`. +Keep the intentional proof hole in the frontend warning test. + +Build the natural and unstructured model targets separately. +Their exported names overlap, so they must not share one imported environment. + +## Validation + +All checks passed on source commit `20c4b230` with Lean v4.34.1. +The compiler commit is `5045d0056413266e57c625dcd7c365b10e377c52`. +The [source hashes](evidence/source-hashes.txt) identify the checked files. +The [command receipts](evidence/command-receipts.txt) give exit status, duration, +and log hashes. Each command kept its source inputs unchanged. +The logs include results replayed from Lake's dependency and project caches. + +| Check | Jobs | Project warnings | Evidence | +| --- | ---: | ---: | --- | +| `lake build` | 1025 | 66 | [Log](evidence/project.txt) | +| `lake build NaturalModel` | 1029 | 21 | [Log](evidence/natural.txt) | +| `lake test` | — | 67 | [Log](evidence/tests.txt) | +| `lake build +HoTTLean.ForMathlib.CategoryTheory.Groupoid +HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate +HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic` | 650 | 0 | [Log](evidence/compatibility.txt) | +| `lake -R -Kenv=dev build HoTTLean:docs` | 3410 | 66 | [Log](evidence/api-docs.txt) | +| `lake env lean docs/lean-v4.34.1/evidence/FunctorMapProbe.lean` | — | 0 | [Log](evidence/functor-map.txt) | +| `lake env lean test.lean` | — | 0 | [Log](evidence/legacy-test-root.txt) | +| `lake -R env lean --version` | — | 0 | [Log](evidence/default-config.txt) | +| `git diff --check 39e8eb63` | — | 0 | [Log](evidence/whitespace.txt) | + +The default build has 66 project warnings. Unity's approved build had 389. +The natural-model build has 21 warnings. The test command has 67 warnings. +There are 81 distinct project warning headlines across these checks. +The [warning index](evidence/warnings.txt) lists them. +It also lists 43 documentation-generator warnings about dependency metadata. +Those warnings do not prevent the documentation build. + +The [static import check](evidence/module-coverage.txt) covers all 67 production +and test modules. The root modules and legacy test root also pass. +The [style check](evidence/style.txt) and whitespace check pass. +The [source audit](evidence/source-audit.txt) compares master, Unity, and the combined source. +Production proof holes and axiom counts stay unchanged. +The test proof-hole count decreases from two to one. +The [independent source review](evidence/review.txt) found no concrete blocker. + +The documentation build uses `lake -R -Kenv=dev build HoTTLean:docs`. +The [dependency record](evidence/dependency-pins.txt) lists both configurations. +All 15 Git dependency checkouts match their selected revisions and have clean +tracked sources, as recorded in the [checkout check](evidence/dependency-checkouts.txt). +After the documentation build, restore the original default manifest exactly. +Reload it with `lake -R env lean --version` before the three main checks. +The final default manifest matches Unity's manifest byte for byte. +The documentation and default builds use identical Lean source files. + +The generated index and unstructured interpretation page exist in `.lake/build/doc/`. +The generated source links use `20c4b230`, the checked source commit. + +## Scope and remaining limits + +The production sources retain the three existing proof holes in `ForPoly.lean`. +They retain the three custom prelude axioms and three syntax injectivity axioms. +The tests retain their theory axioms and the intentional warning-test proof hole. +Dependency proof holes are not repaired by this migration. + +The checks use a local Linux environment and cached dependencies. +They do not establish a whole-dependency cold build, external consumer +compatibility, or cross-version semantic equivalence. +Obsolete notes, attic files, benchmarks, and inactive draft regions are outside +the declared build scope. +The blueprint, Jekyll site, and remote CI are not part of these checks. +API documentation is a local artifact. It is not published. + +The earlier migration and its evidence remain in Git at `6f719862`. +The Unity-only source remains in Git at `39e8eb63`. +The combined check logs describe the new source, not either earlier snapshot. From e3496feb962ad11c3dfd9e48c6a6d6dec21d425a Mon Sep 17 00:00:00 2001 From: openhands Date: Mon, 2 Nov 2026 11:51:11 -0500 Subject: [PATCH 362/362] chore: prepare combined migration for upstream --- .github/workflows/push.yml | 9 +- .github/workflows/push_pr.yml | 19 +- .gitignore | 5 +- HoTTLean/ForMathlib.lean | 24 +- .../Bicategory/Grothendieck.lean | 36 +- HoTTLean/ForMathlib/CategoryTheory/Core.lean | 14 +- .../CategoryTheory/FreeGroupoid.lean | 10 +- .../CategoryTheory/Functor/IsPullback.lean | 73 +- HoTTLean/ForMathlib/CategoryTheory/Grpd.lean | 13 +- HoTTLean/ForPoly.lean | 14 +- HoTTLean/Frontend/EnvExt.lean | 2 +- HoTTLean/Grothendieck/Groupoidal/Basic.lean | 32 +- .../Grothendieck/Groupoidal/IsPullback.lean | 4 +- HoTTLean/Grothendieck/IsPullback.lean | 2 +- HoTTLean/Groupoids/Basic.lean | 6 +- HoTTLean/Groupoids/ClovenIsofibration.lean | 19 +- HoTTLean/Groupoids/Id.lean | 30 +- HoTTLean/Groupoids/IsPullback.lean | 2 +- HoTTLean/Groupoids/Pi.lean | 15 +- HoTTLean/Groupoids/Sigma.lean | 6 +- HoTTLean/Model/Natural/NaturalModel.lean | 7 +- HoTTLean/Model/Natural/UHom.lean | 24 +- HoTTLean/Model/Unstructured/Hurewicz.lean | 20 +- HoTTLean/Model/Unstructured/UHom.lean | 8 +- HoTTLean/Pointed/Basic.lean | 4 +- HoTTLean/Pointed/IsPullback.lean | 4 +- HoTTLean/Syntax/Axioms.lean | 2 +- HoTTLean/Syntax/Substitution.lean | 5 +- HoTTLean/Syntax/Synth.lean | 3 +- HoTTLean/Typechecker/ValueInversion.lean | 2 +- HoTTLeanTest.lean | 1 + HoTTLeanTest/functorMap.lean | 38 + HoTTLeanTest/unitt.lean | 2 +- README.md | 33 +- .../evidence/FunctorMapProbe.lean | 11 - docs/lean-v4.34.1/evidence/api-docs.txt | 1628 ----------------- .../evidence/command-receipts.txt | 111 -- docs/lean-v4.34.1/evidence/compatibility.txt | 4 - docs/lean-v4.34.1/evidence/default-config.txt | 4 - .../evidence/dependency-checkouts.txt | 15 - .../lean-v4.34.1/evidence/dependency-pins.txt | 35 - docs/lean-v4.34.1/evidence/docs-update.txt | 7 - docs/lean-v4.34.1/evidence/functor-map.txt | 9 - .../evidence/legacy-test-root.txt | 3 - .../lean-v4.34.1/evidence/module-coverage.txt | 85 - docs/lean-v4.34.1/evidence/natural.txt | 78 - docs/lean-v4.34.1/evidence/project.txt | 274 --- docs/lean-v4.34.1/evidence/review.txt | 11 - docs/lean-v4.34.1/evidence/source-audit.txt | 74 - docs/lean-v4.34.1/evidence/source-hashes.txt | 73 - docs/lean-v4.34.1/evidence/style.txt | 1 - docs/lean-v4.34.1/evidence/tests.txt | 286 --- .../evidence/verification-input-hashes.txt | 3 - docs/lean-v4.34.1/evidence/warnings.txt | 128 -- docs/lean-v4.34.1/evidence/whitespace.txt | 3 - docs/lean-v4.34.1/hottlean-changes.md | 120 -- home_page/_site/404.html | 90 - home_page/_site/assets/css/style.css | 327 ---- home_page/_site/index.html | 80 - lake-manifest.json | 4 +- lakefile.lean | 3 +- 61 files changed, 277 insertions(+), 3678 deletions(-) create mode 100644 HoTTLeanTest/functorMap.lean delete mode 100644 docs/lean-v4.34.1/evidence/FunctorMapProbe.lean delete mode 100644 docs/lean-v4.34.1/evidence/api-docs.txt delete mode 100644 docs/lean-v4.34.1/evidence/command-receipts.txt delete mode 100644 docs/lean-v4.34.1/evidence/compatibility.txt delete mode 100644 docs/lean-v4.34.1/evidence/default-config.txt delete mode 100644 docs/lean-v4.34.1/evidence/dependency-checkouts.txt delete mode 100644 docs/lean-v4.34.1/evidence/dependency-pins.txt delete mode 100644 docs/lean-v4.34.1/evidence/docs-update.txt delete mode 100644 docs/lean-v4.34.1/evidence/functor-map.txt delete mode 100644 docs/lean-v4.34.1/evidence/legacy-test-root.txt delete mode 100644 docs/lean-v4.34.1/evidence/module-coverage.txt delete mode 100644 docs/lean-v4.34.1/evidence/natural.txt delete mode 100644 docs/lean-v4.34.1/evidence/project.txt delete mode 100644 docs/lean-v4.34.1/evidence/review.txt delete mode 100644 docs/lean-v4.34.1/evidence/source-audit.txt delete mode 100644 docs/lean-v4.34.1/evidence/source-hashes.txt delete mode 100644 docs/lean-v4.34.1/evidence/style.txt delete mode 100644 docs/lean-v4.34.1/evidence/tests.txt delete mode 100644 docs/lean-v4.34.1/evidence/verification-input-hashes.txt delete mode 100644 docs/lean-v4.34.1/evidence/warnings.txt delete mode 100644 docs/lean-v4.34.1/evidence/whitespace.txt delete mode 100644 docs/lean-v4.34.1/hottlean-changes.md delete mode 100644 home_page/_site/404.html delete mode 100644 home_page/_site/assets/css/style.css delete mode 100644 home_page/_site/index.html diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index eba1e6f1..02941bc6 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -14,22 +14,25 @@ jobs: name: Lint style runs-on: ubuntu-latest steps: + - name: Checkout project + uses: actions/checkout@v4 + - name: Check for long lines if: always() run: | - ! (find HoTTLean -name "*.lean" -type f -exec grep -E -H -n '^.{101,}$' {} \; | grep -v -E 'https?://') + ! (grep -E -H -n '^.{101,}$' HoTTLean.lean HoTTLeanTest.lean lakefile.lean $(find HoTTLean HoTTLeanTest -name '*.lean') | grep -v -E 'https?://') - name: Don't 'import Mathlib', use precise imports if: always() run: | - ! (find HoTTLean -name "*.lean" -type f -print0 | xargs -0 grep -E -n '^import Mathlib$') + ! grep -E -H -n '^import Mathlib$' HoTTLean.lean HoTTLeanTest.lean lakefile.lean $(find HoTTLean HoTTLeanTest -name '*.lean') build_project: runs-on: ubuntu-latest name: Build project steps: - name: Checkout project - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.github/workflows/push_pr.yml b/.github/workflows/push_pr.yml index a38a4eb1..8dc19568 100644 --- a/.github/workflows/push_pr.yml +++ b/.github/workflows/push_pr.yml @@ -2,12 +2,29 @@ on: pull_request: jobs: + style_lint: + name: Lint style + runs-on: ubuntu-latest + steps: + - name: Checkout project + uses: actions/checkout@v4 + + - name: Check for long lines + if: always() + run: | + ! (grep -E -H -n '^.{101,}$' HoTTLean.lean HoTTLeanTest.lean lakefile.lean $(find HoTTLean HoTTLeanTest -name '*.lean') | grep -v -E 'https?://') + + - name: Don't 'import Mathlib', use precise imports + if: always() + run: | + ! grep -E -H -n '^import Mathlib$' HoTTLean.lean HoTTLeanTest.lean lakefile.lean $(find HoTTLean HoTTLeanTest -name '*.lean') + build_project: runs-on: ubuntu-latest name: Build project steps: - name: Checkout project - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.gitignore b/.gitignore index f832eac1..2d5201a5 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,7 @@ blueprint/src/chapter/auto blueprint/lean_decls blueprint/print/ home_page/blueprint +home_page/_site/ *.pdf ## Docs docs/_includes/sorries.md @@ -46,7 +47,3 @@ docs/_includes/sorries.md *.pdfsync *.json *.auctex-auto - -## Local repair workspaces -.unity/ -.worktrees/ diff --git a/HoTTLean/ForMathlib.lean b/HoTTLean/ForMathlib.lean index 56884213..289437f3 100644 --- a/HoTTLean/ForMathlib.lean +++ b/HoTTLean/ForMathlib.lean @@ -178,7 +178,7 @@ variable {C : Type u₁} [Category.{v₁} C] variable {P X Y Z : C} {fst : P ⟶ X} {snd : P ⟶ Y} {f : X ⟶ Z} {g : Y ⟶ Z} theorem of_iso_isPullback (h : IsPullback fst snd f g) {Q} (i : Q ≅ P) : - IsPullback (i.hom ≫ fst) (i.hom ≫ snd) f g := by + IsPullback (i.hom ≫ fst) (i.hom ≫ snd) f g := by have : HasPullback f g := ⟨ h.cone , h.isLimit ⟩ refine IsPullback.of_iso_pullback (by simp [h.w]) (i ≪≫ h.isoPullback) (by simp) (by simp) @@ -217,11 +217,11 @@ namespace AsSmall AsSmall.up.map (AsSmall.down.map f) = f := rfl theorem comp_up_inj {C : Type u} [Category.{v} C] - {D : Type u₁} [Category.{v₁} D] + {D : Type u₁} [Category.{v₁} D] {F G : C ⥤ D} (h : F ⋙ (AsSmall.up : D ⥤ AsSmall.{w} D) = - G ⋙ AsSmall.up) - : F = G := by + G ⋙ AsSmall.up) : + F = G := by have h' := congrArg (fun K : C ⥤ AsSmall.{w} D => K ⋙ AsSmall.down) h have h'' : F ⋙ (AsSmall.up ⋙ AsSmall.down) = G ⋙ (AsSmall.up ⋙ AsSmall.down) := by @@ -231,10 +231,10 @@ theorem comp_up_inj {C : Type u} [Category.{v} C] exact h'' theorem comp_down_inj {C : Type u} [Category.{v} C] - {D : Type u₁} [Category.{v₁} D] + {D : Type u₁} [Category.{v₁} D] {F G : C ⥤ AsSmall.{w} D} - (h : F ⋙ AsSmall.down = G ⋙ AsSmall.down) - : F = G := by + (h : F ⋙ AsSmall.down = G ⋙ AsSmall.down) : + F = G := by have h' := congrArg (fun K : C ⥤ D => K ⋙ AsSmall.up) h convert h' using 1 <;> rfl @@ -349,7 +349,7 @@ def isLimitProdCone (X Y : D) : IsLimit (e.prodCone X Y) := (e.inverse.obj X) (e.inverse.obj Y)))) (BinaryFan.ext (eqToIso rfl) (by simp [prodCone]) (by simp [prodCone])) -def chosenFiniteProducts [CartesianMonoidalCategory C] : CartesianMonoidalCategory D := +abbrev chosenFiniteProducts : CartesianMonoidalCategory D := .ofChosenFiniteProducts { cone := asEmptyCone e.chosenTerminal isLimit := e.chosenTerminalIsTerminal } @@ -362,8 +362,8 @@ end Equivalence section equivalence -def functorToAsSmallEquiv {D : Type u₁} [Category.{v₁} D] {C : Type u} [Category.{v} C] - : D ⥤ AsSmall.{w} C ≃ D ⥤ C where +def functorToAsSmallEquiv {D : Type u₁} [Category.{v₁} D] {C : Type u} [Category.{v} C] : + D ⥤ AsSmall.{w} C ≃ D ⥤ C where toFun A := A ⋙ AsSmall.down invFun A := A ⋙ AsSmall.up left_inv _ := rfl @@ -459,7 +459,7 @@ def psigmaCongrProp {α₁ α₂} {β₁ : α₁ → Prop} {β₂ : α₂ → Pr (F : ∀ a, β₁ a ≃ β₂ (f a)) (x : Sigma β₁) : (sigmaCongr f F x).fst = f x.fst := by simp [sigmaCongr] -@[simp] def sigmaCongr_apply_snd {α₁ α₂} {β₁ : α₁ → Sort _} {β₂ : α₂ → Sort _} (f : α₁ ≃ α₂) +@[simp] theorem sigmaCongr_apply_snd {α₁ α₂} {β₁ : α₁ → Sort _} {β₂ : α₂ → Sort _} (f : α₁ ≃ α₂) (F : ∀ a, β₁ a ≃ β₂ (f a)) (x : Sigma β₁) : (sigmaCongr f F x).snd = F x.fst x.snd := by rfl @@ -659,7 +659,7 @@ lemma Discrete.functor_eq {X C : Type*} [Category C] {F : Discrete X ⥤ C} : fapply CategoryTheory.Functor.ext · aesop · intro x y f - cases x ; rcases f with ⟨⟨h⟩⟩ + cases x; rcases f with ⟨⟨h⟩⟩ simp lemma Discrete.functor_ext_explicit {X C : Type*} [Category C] (F G : Discrete X ⥤ C) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean index 0c0f50e4..eb5e6ac4 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean @@ -558,8 +558,8 @@ theorem Hom.hext' (h : F = F') {X Y : ∫ F} {X' Y' : ∫ F'} (hX : HEq X X') (h theorem FunctorTo.hext (G H : D ⥤ ∫ F) (hbase : G ⋙ forget _ = H ⋙ forget _) (hfiber_obj : ∀ x : D, HEq (G.obj x).fiber (H.obj x).fiber) - (hfiber_map : ∀ {x y : D} (f : x ⟶ y), HEq (G.map f).fiber (H.map f).fiber) - : G = H := by + (hfiber_map : ∀ {x y : D} (f : x ⟶ y), HEq (G.map f).fiber (H.map f).fiber) : + G = H := by fapply CategoryTheory.Functor.ext · intro x apply Grothendieck.hext @@ -585,11 +585,11 @@ def transport (x : ∫ F) {c : C} (t : x.base ⟶ c) : ∫ F := mk c ((F.map t).toFunctor.obj x.fiber) @[simp] -def transport_base (x : ∫ F) {c : C} (t : x.base ⟶ c) : (transport x t).base = c := +theorem transport_base (x : ∫ F) {c : C} (t : x.base ⟶ c) : (transport x t).base = c := rfl @[simp] -def transport_fiber (x : ∫ F) {c : C} (t : x.base ⟶ c) : +theorem transport_fiber (x : ∫ F) {c : C} (t : x.base ⟶ c) : (transport x t).fiber = (F.map t).toFunctor.obj x.fiber := rfl @@ -603,11 +603,11 @@ def toTransport (x : ∫ F) {c : C} (t : x.base ⟶ c) : x ⟶ x.transport t := Hom.mk t (𝟙 _) @[simp] -def toTransport_base (x : ∫ F) {c : C} (t : x.base ⟶ c) : (toTransport x t).base = t := +theorem toTransport_base (x : ∫ F) {c : C} (t : x.base ⟶ c) : (toTransport x t).base = t := rfl @[simp] -def toTransport_fiber (x : ∫ F) {c : C} (t : x.base ⟶ c) : +theorem toTransport_fiber (x : ∫ F) {c : C} (t : x.base ⟶ c) : (toTransport x t).fiber = 𝟙 _ := rfl @@ -637,7 +637,7 @@ lemma toTransport_eqToHom {X: C} {X' : ∫ F} (hX': (forget F).obj X' = X): set_option backward.isDefEq.respectTransparency false in lemma transport_comp (x : ∫ F) {c d: C} (t : x.base ⟶ c) (t': c ⟶ d): - transport x (t ≫ t') = transport (c:= d) (transport x t) t' := by + transport x (t ≫ t') = transport (c:= d) (transport x t) t' := by simp [transport] set_option backward.isDefEq.respectTransparency false in @@ -1186,8 +1186,8 @@ theorem ι_comp_forget : ι F c ⋙ forget _ = (const (F.obj c)).obj c := -- Match the wrapped Cat functors during dependent fiber comparison. set_option backward.isDefEq.respectTransparency false in -@[simp] theorem ι_comp_pre (G : D ⥤ C) (x : D) - : ι (G ⋙ F) x ⋙ pre F G = ι F (G.obj x) := by +@[simp] theorem ι_comp_pre (G : D ⥤ C) (x : D) : + ι (G ⋙ F) x ⋙ pre F G = ι F (G.obj x) := by apply Grothendieck.FunctorTo.hext · rw [ι_comp_forget, Functor.assoc, pre_comp_forget, ← Functor.assoc, ι_comp_forget] apply Functor.ext <;> simp @@ -1256,12 +1256,12 @@ def functorFrom : ∫ F ⥤ E where theorem map_eqToHom_base_pf {G1 G2 : Grothendieck F} (eq : G1 = G2) : F.obj G1.base = F.obj G2.base := by subst eq; rfl -theorem map_eqToHom_base {G1 G2 : Grothendieck F} (eq : G1 = G2) - : F.map (eqToHom eq).base = eqToHom (map_eqToHom_base_pf eq) := by +theorem map_eqToHom_base {G1 G2 : Grothendieck F} (eq : G1 = G2) : + F.map (eqToHom eq).base = eqToHom (map_eqToHom_base_pf eq) := by simp [eqToHom_map] theorem map_eqToHom_obj_base {F G : C ⥤ Cat.{v,u}} (h : F = G) - (x) : ((Grothendieck.map (eqToHom h)).obj x).base = x.base := rfl + (x) : ((Grothendieck.map (eqToHom h)).obj x).base = x.base := rfl theorem map_forget {F G : C ⥤ Cat.{v,u}} (α : F ⟶ G) : Grothendieck.map α ⋙ Grothendieck.forget G = @@ -1389,8 +1389,8 @@ theorem functorFrom_ext {K K' : Grothendieck F ⥤ E} theorem functorFrom_hext {K K' : Grothendieck F ⥤ E} (hfib : ∀ c, ι F c ⋙ K = ι F c ⋙ K') (hhom : ∀ {c c' : C} (f : c ⟶ c'), Functor.whiskerRight (ιNatTrans f) K ≍ - Functor.whiskerRight (ιNatTrans f) K') - : K = K' := by + Functor.whiskerRight (ιNatTrans f) K') : + K = K' := by fapply functorFrom_ext · assumption · intros @@ -1545,17 +1545,17 @@ namespace AsSmall AsSmall.up.map (AsSmall.down.map f) = f := rfl theorem comp_up_inj {C : Type u} [Category.{v} C] - {D : Type u₁} [Category.{v₁} D] {F G : C ⥤ D} + {D : Type u₁} [Category.{v₁} D] {F G : C ⥤ D} (h : F ⋙ (AsSmall.up : D ⥤ AsSmall.{w} D) = G ⋙ AsSmall.up) : F = G := by have h' := congrArg (fun H : C ⥤ AsSmall.{w} D => H ⋙ AsSmall.down) h change F = G at h' exact h' theorem comp_down_inj {C : Type u} [Category.{v} C] - {D : Type u₁} [Category.{v₁} D] + {D : Type u₁} [Category.{v₁} D] {F G : C ⥤ AsSmall.{w} D} - (h : F ⋙ AsSmall.down = G ⋙ AsSmall.down) - : F = G := by + (h : F ⋙ AsSmall.down = G ⋙ AsSmall.down) : + F = G := by have h' := congrArg (fun H : C ⥤ D => H ⋙ (AsSmall.up : D ⥤ AsSmall.{w} D)) h change F = G at h' exact h' diff --git a/HoTTLean/ForMathlib/CategoryTheory/Core.lean b/HoTTLean/ForMathlib/CategoryTheory/Core.lean index 06d30875..e4898c3b 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Core.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Core.lean @@ -22,7 +22,7 @@ variable {C : Type u} [Category.{v} C] {D : Type u₁} [Category.{v₁} D] subst h rfl -def comp_inclusion_injective {l0 l1 : D ⥤ Core C} +theorem comp_inclusion_injective {l0 l1 : D ⥤ Core C} (hl : l0 ⋙ inclusion C = l1 ⋙ inclusion C) : l0 = l1 := by fapply Functor.ext · intro x @@ -60,7 +60,7 @@ variable {C' : Type u₃} [Category.{v₃} C'] @[simp] theorem functorToCore_comp_inclusion (H : G ⥤ C) : - functorToCore H ⋙ inclusion _ = H := rfl + functorToCore H ⋙ inclusion _ = H := rfl theorem functorToCoreEquiv_symm_apply_comp_left (H : G ⥤ Core C) (F : G' ⥤ G) : functorToCoreEquiv.symm (F ⋙ H) = F ⋙ functorToCoreEquiv.symm H := @@ -71,7 +71,7 @@ theorem functorToCoreEquiv_symm_apply_comp_right (H : G ⥤ Core C) (F : C ⥤ C rfl theorem eqToIso_iso_hom {a b : Core C} (h1 : a = b) - (h2 : (inclusion C).obj a = (inclusion C).obj b) : + (h2 : (inclusion C).obj a = (inclusion C).obj b) : (eqToHom h1).iso.hom = eqToHom h2 := by cases h1 rfl @@ -131,17 +131,17 @@ def lift : E ⥤ Core C where let f' : F.obj (En.obj x) ≅ F.obj (En.obj y) := (eqToIso hE).app x ≪≫ (Ew.map f).iso ≪≫ (eqToIso hE.symm).app y have hnat : F.map (En.map f) ≫ _ - = _ ≫ (inclusion D).map (Ew.map f) - := (eqToHom hE).naturality f + = _ ≫ (inclusion D).map (Ew.map f) := + (eqToHom hE).naturality f have h : F.map (En.map f) = f'.hom := by simp only [eqToHom_app, comp_eqToHom_iff] at hnat simp [hnat, f', Core.inclusion] have : IsIso (F.map (En.map f)) := by rw [h]; exact Iso.isIso_hom f' exact Functor.ReflectsIsomorphisms.reflects F (En.map f) ⟩ -def fac_left : lift F En Ew hE ⋙ inclusion C = En := rfl +theorem fac_left : lift F En Ew hE ⋙ inclusion C = En := rfl -def fac_right : lift F En Ew hE ⋙ F.core = Ew := by +theorem fac_right : lift F En Ew hE ⋙ F.core = Ew := by apply comp_inclusion_injective exact hE diff --git a/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean b/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean index 0f9971de..19e502ef 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean @@ -62,9 +62,9 @@ open Quiver in promotes the prefunctor `C ⥤q FreeGroupoid C` into a functor `C ⥤ Quotient (FreeGroupoid.homRel C)`. -/ inductive FreeGroupoid.homRel : HomRel (Quiver.FreeGroupoid C) where -| map_id (X : C) : homRel ((FreeGroupoid.of C).map (𝟙 X)) (𝟙 ((FreeGroupoid.of C).obj X)) -| map_comp {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) : homRel ((FreeGroupoid.of C).map (f ≫ g)) - ((FreeGroupoid.of C).map f ≫ (FreeGroupoid.of C).map g) + | map_id (X : C) : homRel ((FreeGroupoid.of C).map (𝟙 X)) (𝟙 ((FreeGroupoid.of C).obj X)) + | map_comp {X Y Z : C} (f : X ⟶ Y) (g : Y ⟶ Z) : homRel ((FreeGroupoid.of C).map (f ≫ g)) + ((FreeGroupoid.of C).map f ≫ (FreeGroupoid.of C).map g) /-- The underlying type of the free groupoid on a category, defined by quotienting the free groupoid on the underlying quiver of `C` @@ -191,8 +191,8 @@ open Category.FreeGroupoid @[simps] def free : Cat.{u,u} ⥤ Grpd.{u,u} where obj C := Grpd.of <| Category.FreeGroupoid C - map {C D} F := map F.toFunctor - map_id C := Category.FreeGroupoid.map_id + map {_ _} F := map F.toFunctor + map_id _ := Category.FreeGroupoid.map_id map_comp F G := Category.FreeGroupoid.map_comp F.toFunctor G.toFunctor /-- The unit of the free-forgetful adjunction between `Grpd` and `Cat`. -/ diff --git a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean index 5d25e158..66a9d3da 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean @@ -155,7 +155,7 @@ set_option backward.isDefEq.respectTransparency false in Lifts of the chosen pullback `Chosen` are unique. -/ theorem hom_ext {l0 l1 : C ⥤ Chosen east south} (hnorth : l0 ⋙ north = l1 ⋙ north) - (hwest : l0 ⋙ west = l1 ⋙ west) : l0 = l1 := by + (hwest : l0 ⋙ west = l1 ⋙ west) : l0 = l1 := by fapply Functor.ext · intro x apply WideSubcategory.ext @@ -394,7 +394,7 @@ variable {Libya Egypt Chad Sudan : Type*} [Category Libya] variable {north} in lemma Iso.inv_comp_eq_comp_inv {north'} (lib : Iso Chad Libya) (egy : Iso Sudan Egypt) -(hnorth : north' ⋙ egy.hom = lib.hom ⋙ north): lib.inv ⋙ north' = north ⋙ egy.inv + (hnorth : north' ⋙ egy.hom = lib.hom ⋙ north): lib.inv ⋙ north' = north ⋙ egy.inv ↔ north' ⋙ egy.hom = lib.hom ⋙ north := by rw [lib.inv_comp_eq, ← Functor.assoc, egy.eq_comp_inv, hnorth] @@ -427,16 +427,15 @@ def ofIso'Lift {C : Type*} [Category C] (Cn : C ⥤ Egypt') (Cw : C ⥤ Chad') ⋙ lib.inv def ofIso'Universal {C : Type*} [Category C] - (Cn : C ⥤ Egypt') (Cw : C ⥤ Chad') (hC : Cn ⋙ east' = Cw ⋙ south') - : (lift : C ⥤ Libya') ×' lift ⋙ north' = Cn ∧ lift ⋙ west' = Cw ∧ + (Cn : C ⥤ Egypt') (Cw : C ⥤ Chad') (hC : Cn ⋙ east' = Cw ⋙ south') : + (lift : C ⥤ Libya') ×' lift ⋙ north' = Cn ∧ lift ⋙ west' = Cw ∧ ∀ {l0 l1 : C ⥤ Libya'}, l0 ⋙ north' = l1 ⋙ north' → l0 ⋙ west' = l1 ⋙ west' → l0 = l1 := ⟨ ofIso'Lift north west east south pb east' south' lib egy cha sud heast hsouth Cn Cw hC, by rw [ofIso'Lift, Functor.assoc, (Iso.inv_comp_eq_comp_inv lib egy hnorth).mpr hnorth, ← Functor.assoc, pb.fac_left, Functor.assoc, egy.hom_inv_id, Functor.comp_id], by rw [ofIso'Lift, Functor.assoc, (Iso.inv_comp_eq_comp_inv lib cha hwest.symm).mpr hwest.symm, - ← Functor.assoc, pb.fac_right, Functor.assoc, cha.hom_inv_id, Functor.comp_id], - by + ← Functor.assoc, pb.fac_right, Functor.assoc, cha.hom_inv_id, Functor.comp_id], by intro l0 l1 hn hw have : l0 ⋙ lib.hom = l1 ⋙ lib.hom := by apply pb.hom_ext @@ -600,8 +599,7 @@ def universal : (lift : C ⥤ Algeria) ×' l0 ⋙ west = l1 ⋙ west → l0 = l1 := ⟨ lift wsah_pb esah_pb Cn Cw hC, by rw [lift, ← Functor.assoc, wsah_pb.fac_left, esah_pb.fac_left], - wsah_pb.fac_right _ _ _, - by + wsah_pb.fac_right _ _ _, by intro l0 l1 hnorth hwest apply wsah_pb.hom_ext · apply esah_pb.hom_ext @@ -654,8 +652,9 @@ namespace ofRight variable {C : Type u} [Category.{v} C] (Cn : C ⥤ Libya) (Cw : C ⥤ Niger) (hC : Cn ⋙ sah = Cw ⋙ so) -def hCLeft : (Cn ⋙ rth) ⋙ east = Cw ⋙ so ⋙ uth := - by calc +include esah hC in +theorem hCLeft : (Cn ⋙ rth) ⋙ east = Cw ⋙ so ⋙ uth := by + calc (Cn ⋙ rth) ⋙ east = Cn ⋙ (sah ⋙ uth) := by rw [Functor.assoc, esah] _ = (Cn ⋙ sah) ⋙ uth := by rw[← Functor.assoc] _ = (Cw ⋙ so) ⋙ uth := by rw [hC] @@ -712,7 +711,7 @@ end no_rth section north /- north - ⌐-------------------------¬ + +-------------------------¬ | rth V Algeria Libya ----> Egypt | | | @@ -738,7 +737,7 @@ variable {C : Type u} [Category.{v} C] (Cn : C ⥤ Libya) (Cw : C ⥤ Niger) (hC : Cn ⋙ sah = Cw ⋙ so) def universal : (lift : C ⥤ Algeria) ×' - lift ⋙ esah_pb.lift north (west ⋙ so) outer = Cn ∧ + lift ⋙ esah_pb.lift north (west ⋙ so) outer = Cn ∧ lift ⋙ west = Cw ∧ ∀ {l0 l1 : C ⥤ Algeria}, l0 ⋙ esah_pb.lift north (west ⋙ so) outer = l1 ⋙ esah_pb.lift north (west ⋙ so) outer → @@ -751,19 +750,19 @@ def universal : (lift : C ⥤ Algeria) ×' esah_pb.lift north (west ⋙ so) outer) ⋙ rth = outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ esah_pb.lift north (west ⋙ so) outer ⋙ rth := by rw [Functor.assoc] - _ = outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ north := - by rw [esah_pb.fac_left north (west ⋙ so) outer] - _ = Cn ⋙ rth := - by rw [outer_pb.fac_left (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC)] + _ = outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ north := by + rw [esah_pb.fac_left north (west ⋙ so) outer] + _ = Cn ⋙ rth := by + rw [outer_pb.fac_left (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC)] . calc (outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ esah_pb.lift north (west ⋙ so) outer) ⋙ sah = outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ esah_pb.lift north (west ⋙ so) outer ⋙ sah := by rw [Functor.assoc] - _ = outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ (west ⋙ so) := - by rw [esah_pb.fac_right north (west ⋙ so) outer] - _ = Cw ⋙ so := - by rw [← Functor.assoc, + _ = outer_pb.lift (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC) ⋙ (west ⋙ so) := by + rw [esah_pb.fac_right north (west ⋙ so) outer] + _ = Cw ⋙ so := by + rw [← Functor.assoc, outer_pb.fac_right (Cn ⋙ rth) Cw (ofRight.hCLeft esah Cn Cw hC)] _ = Cn ⋙ sah := by rw [hC] . constructor @@ -771,8 +770,8 @@ def universal : (lift : C ⥤ Algeria) ×' . intro l0 l1 hll hlw apply outer_pb.hom_ext . calc - l0 ⋙ north = l0 ⋙ (esah_pb.lift north (west ⋙ so) outer ⋙ rth) := - by rw [esah_pb.fac_left north (west ⋙ so) outer ] + l0 ⋙ north = l0 ⋙ (esah_pb.lift north (west ⋙ so) outer ⋙ rth) := by + rw [esah_pb.fac_left north (west ⋙ so) outer ] _ = (l0 ⋙ esah_pb.lift north (west ⋙ so) outer) ⋙ rth := by rw [Functor.assoc] _ = (l1 ⋙ esah_pb.lift north (west ⋙ so) outer) ⋙ rth := by rw [hll] _ = l1 ⋙ north := by rw [Functor.assoc, esah_pb.fac_left north (west ⋙ so) outer] @@ -788,7 +787,7 @@ and the top map `north : Algberia ⥤ Egypt`. The left square is a pullback when the right and outer squares are both pullbacks. north - ⌐-------------------------¬ + +-------------------------¬ | rth V Algeria Libya ----> Egypt | | | @@ -799,16 +798,15 @@ are both pullbacks. so uth -/ def ofRight' {north : Algeria ⥤ Egypt} {rth : Libya ⥤ Egypt} - {west : Algeria ⥤ Niger} {sah : Libya ⥤ Chad} {east : Egypt ⥤ Sudan} + {west : Algeria ⥤ Niger} {sah : Libya ⥤ Chad} {east : Egypt ⥤ Sudan} {so : Niger ⥤ Chad} {uth : Chad ⥤ Sudan} (outer : north ⋙ east = west ⋙ so ⋙ uth) (outer_pb : IsPullback north west east (so ⋙ uth)) (esah : rth ⋙ east = sah ⋙ uth) (esah_pb : IsPullback rth sah east uth) (no : Algeria ⥤ Libya := esah_pb.lift north (west ⋙ so) outer) - (no_eq : no = esah_pb.lift north (west ⋙ so) outer) - : - IsPullback no west sah so := + (no_eq : no = esah_pb.lift north (west ⋙ so) outer) : + IsPullback no west sah so := no_eq ▸ IsPullback.ofUniversal (esah_pb.lift north (west ⋙ so) outer) west sah so (esah_pb.fac_right _ _ _) @@ -845,8 +843,7 @@ def ofHorizIso.universal {C : Type*} [Category C] (Cn : C ⥤ Egypt) (Cw : C ⥤ _ = (Cw ⋙ south.hom) ⋙ south.inv := by rw [← hC, Functor.assoc, ofHorizIso.inv_comm_sq _ _ _ _ comm_sq, lift, Functor.assoc] _ = Cw := by - simp [Functor.assoc, Functor.comp_id], - by + simp [Functor.assoc, Functor.comp_id], by intro _ _ h0 _ simpa [Functor.Iso.cancel_iso_hom_right] using h0 ⟩ @@ -878,13 +875,13 @@ variable {Libya Egypt Chad Sudan : Type u} [Category.{v} Libya] def lift : s.pt ⟶ of Libya := homOf (h.lift s.fst.toFunctor s.snd.toFunctor (congrArg Cat.Hom.toFunctor s.condition)) -def fac_left : lift h s ≫ (homOf north) = s.fst := +theorem fac_left : lift h s ≫ (homOf north) = s.fst := Cat.Hom.ext (h.fac_left _ _ _) -def fac_right : lift h s ≫ (homOf west) = s.snd := +theorem fac_right : lift h s ≫ (homOf west) = s.snd := Cat.Hom.ext (h.fac_right _ _ _) -def uniq (m : s.pt ⟶ of Libya) (hl : m ≫ homOf north = s.fst) +theorem uniq (m : s.pt ⟶ of Libya) (hl : m ≫ homOf north = s.fst) (hr : m ≫ homOf west = s.snd) : m = lift h s := by apply Cat.Hom.ext apply h.hom_ext @@ -892,7 +889,8 @@ def uniq (m : s.pt ⟶ of Libya) (hl : m ≫ homOf north = s.fst) · exact (congrArg Cat.Hom.toFunctor hr).trans (congrArg Cat.Hom.toFunctor (fac_right h s)).symm variable (comm_sq) in -def isPullback : IsPullback (homOf north) (homOf west) (homOf east) +include comm_sq h in +theorem isPullback : IsPullback (homOf north) (homOf west) (homOf east) (homOf south) := IsPullback.of_isLimit (PullbackCone.IsLimit.mk (Cat.Hom.ext comm_sq) (lift h) (fac_left _) (fac_right _) (uniq _)) @@ -929,19 +927,20 @@ variable {Libya Egypt Chad Sudan : Type u} [Groupoid.{v} Libya] def lift : s.pt ⟶ of Libya := h.lift s.fst s.snd s.condition -def fac_left : lift h s ≫ (homOf north) = s.fst := +theorem fac_left : lift h s ≫ (homOf north) = s.fst := h.fac_left _ _ _ -def fac_right : lift h s ≫ (homOf west) = s.snd := +theorem fac_right : lift h s ≫ (homOf west) = s.snd := h.fac_right _ _ _ -def uniq (m : s.pt ⟶ of Libya) (hl : m ≫ homOf north = s.fst) +theorem uniq (m : s.pt ⟶ of Libya) (hl : m ≫ homOf north = s.fst) (hr : m ≫ homOf west = s.snd) : m = lift h s := by apply h.hom_ext · exact hl.trans (fac_left h s).symm · exact hr.trans (fac_right h s).symm -def isPullback : IsPullback (homOf north) (homOf west) (homOf east) (homOf south) := +include h in +theorem isPullback : IsPullback (homOf north) (homOf west) (homOf east) (homOf south) := IsPullback.of_isLimit (PullbackCone.IsLimit.mk h.comm_sq (lift h) (fac_left _) (fac_right _) (uniq _)) diff --git a/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean b/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean index de22fb79..e08b7c76 100644 --- a/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean +++ b/HoTTLean/ForMathlib/CategoryTheory/Grpd.lean @@ -40,7 +40,7 @@ instance : CartesianMonoidalCategory Grpd := isLimit := isLimitProdCone X Y }) theorem eqToHom_obj - {C1 C2 : Grpd.{v,u}} (x : C1) (eq : C1 = C2) : + {C1 C2 : Grpd.{v,u}} (x : C1) (eq : C1 = C2) : (eqToHom eq).obj x = cast (congrArg Bundled.α eq) x := by cases eq simp [id_eq_id] @@ -80,8 +80,7 @@ variable {Γ : Type u₂} [Category.{v₂} Γ] {A : Γ ⥤ Grpd.{v₁,u₁}} theorem map_comp_map' {x y z : Γ} {f : x ⟶ y} {g : y ⟶ z} {a b : A.obj x} {φ : a ⟶ b} : (A.map g).map ((A.map f).map φ) - = eqToHom Grpd.map_comp_obj.symm ≫ (A.map (f ≫ g)).map φ ≫ eqToHom Grpd.map_comp_obj - := by + = eqToHom Grpd.map_comp_obj.symm ≫ (A.map (f ≫ g)).map φ ≫ eqToHom Grpd.map_comp_obj := by simp [Grpd.map_comp_map] end @@ -151,12 +150,12 @@ def Grpd.Functor.iso (A : Γ ⥤ Grpd) {x y : Γ} (f : x ⟶ y) : A.obj x ≅≅ -- Note: this should not be a simp lemma, because we want simp to -- see the Functor.Iso structure -def Grpd.Functor.iso_hom (A : Γ ⥤ Grpd) {x y : Γ} (f : x ⟶ y) : +theorem Grpd.Functor.iso_hom (A : Γ ⥤ Grpd) {x y : Γ} (f : x ⟶ y) : (iso A f).hom = A.map f := rfl -- Note: this should not be a simp lemma, because we want simp to -- see the Functor.Iso structure -def Grpd.Functor.iso_inv (A : Γ ⥤ Grpd) {x y : Γ} (f : x ⟶ y) : +theorem Grpd.Functor.iso_inv (A : Γ ⥤ Grpd) {x y : Γ} (f : x ⟶ y) : (iso A f).inv = A.map (inv f) := rfl @[simp] @@ -192,8 +191,8 @@ lemma Grpd.whiskerLeft_hcongr_right {C D : Type*} [Category C] [Category D] lemma Grpd.comp_hcongr {C C' D D' E E' : Grpd.{v,u}} (hC : C ≍ C') (hD : D ≍ D') (hE : E ≍ E') {F : C ⥤ D} {F' : C' ⥤ D'} {G : D ⥤ E} {G' : D' ⥤ E'} - (hF : F ≍ F') (hG : G ≍ G') - : F ⋙ G ≍ F' ⋙ G' := by + (hF : F ≍ F') (hG : G ≍ G') : + F ⋙ G ≍ F' ⋙ G' := by subst hC hD hE hF hG rfl diff --git a/HoTTLean/ForPoly.lean b/HoTTLean/ForPoly.lean index 34816105..b511eef5 100644 --- a/HoTTLean/ForPoly.lean +++ b/HoTTLean/ForPoly.lean @@ -60,7 +60,7 @@ theorem pushforwardPullbackIsoSquare_eq {C} [Category C] [HasPullbacks C] {X Y Z simp [pushforwardPullbackIsoSquare, Over.pushforwardPullbackTwoSquare] ext1; rfl -open ExponentiableMorphism Functor in +open ExponentiableMorphism CategoryTheory.Functor in theorem ev_naturality {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} (e : E ⟶ E') (b : B ⟶ B') (hp : IsPullback P.p e b P'.p) : @@ -119,24 +119,24 @@ theorem ev_naturality {E B E' B' : C} {P : UvPoly E B} {P' : UvPoly E' B'} theorem associator_eq_id {C D E E'} [Category C] [Category D] [Category E] [Category E'] (F : C ⥤ D) (G : D ⥤ E) (H : E ⥤ E') : Functor.associator F G H = Iso.refl (F ⋙ G ⋙ H) := rfl -open Functor in +open CategoryTheory.Functor in theorem whiskerRight_left' {C D E B} [Category C] [Category D] [Category E] [Category B] (F : B ⥤ C) {G H : C ⥤ D} (α : G ⟶ H) (K : D ⥤ E) : whiskerRight (whiskerLeft F α) K = whiskerLeft F (whiskerRight α K) := by aesop_cat -open Functor in +open CategoryTheory.Functor in theorem id_whiskerLeft' {C D} [Category C] [Category D] {G H : C ⥤ D} (α : G ⟶ H) : whiskerLeft (𝟭 C) α = α := by aesop_cat -open Functor in +open CategoryTheory.Functor in theorem whiskerLeft_twice' {C D E B} [Category C] [Category D] [Category E] [Category B] (F : B ⥤ C) (G : C ⥤ D) {H K : D ⥤ E} (α : H ⟶ K) : whiskerLeft F (whiskerLeft G α) = whiskerLeft (F ⋙ G) α := by aesop_cat -open Functor in +open CategoryTheory.Functor in theorem whiskerRight_twice' {C D E B} [Category C] [Category D] [Category E] [Category B] {H K : B ⥤ C} (F : C ⥤ D) (G : D ⥤ E) (α : H ⟶ K) : whiskerRight (whiskerRight α F) G = whiskerRight α (F ⋙ G) := by @@ -145,7 +145,7 @@ theorem whiskerRight_twice' {C D E B} [Category C] [Category D] [Category E] [Ca variable [HasTerminal C] -- This local setting lets simp reduce the mate through the TwoSquare wrapper. -open Over ExponentiableMorphism Functor in +open Over ExponentiableMorphism CategoryTheory.Functor in set_option backward.isDefEq.respectTransparency false in @[simp] lemma cartesianNatTrans_fstProj {E B E' B' : C} (P : UvPoly E B) (P' : UvPoly E' B') @@ -160,7 +160,7 @@ lemma cartesianNatTrans_fstProj {E B E' B' : C} (P : UvPoly E B) (P' : UvPoly E' rw [pullback.condition, ← Category.assoc]; congr 1 simpa [fstProj, UvPoly.apply, functor] using Over.w (m.app X) -open ExponentiableMorphism Functor in +open ExponentiableMorphism CategoryTheory.Functor in -- Let tactics reduce the slice functor objects in this mate calculation. set_option backward.defeqAttrib.useBackward true in set_option backward.isDefEq.respectTransparency false in diff --git a/HoTTLean/Frontend/EnvExt.lean b/HoTTLean/Frontend/EnvExt.lean index 43ca5349..b23634b8 100644 --- a/HoTTLean/Frontend/EnvExt.lean +++ b/HoTTLean/Frontend/EnvExt.lean @@ -26,7 +26,7 @@ namespace SynthLean open Lean Qq variable {m : Type → Type} [Monad m] [MonadLiftT IO m] - [MonadOptions m] [MonadEnv m] [MonadError m] [MonadQuotation m] + [MonadOptions m] [MonadEnv m] [MonadError m] /-- A theory-updating entry. diff --git a/HoTTLean/Grothendieck/Groupoidal/Basic.lean b/HoTTLean/Grothendieck/Groupoidal/Basic.lean index edab8aa8..d5576825 100644 --- a/HoTTLean/Grothendieck/Groupoidal/Basic.lean +++ b/HoTTLean/Grothendieck/Groupoidal/Basic.lean @@ -126,8 +126,8 @@ def objMk (c : C) (x : F.obj c) : ∫(F) where making a path in the fiber so that it does not show the composition with `Grpd.forgetToCat` -/ -def homMk {X Y : ∫(F)} (fb : X.base ⟶ Y.base) (ff : (F.map fb).obj X.fiber ⟶ Y.fiber) - : X ⟶ Y where +def homMk {X Y : ∫(F)} (fb : X.base ⟶ Y.base) (ff : (F.map fb).obj X.fiber ⟶ Y.fiber) : + X ⟶ Y where base := fb fiber := ff @@ -378,8 +378,8 @@ variable {D : Type*} [Category D] theorem FunctorTo.hext (G H : D ⥤ ∫ F) (hbase : G ⋙ forget = H ⋙ forget) (hfiber_obj : ∀ x : D, HEq (G.obj x).fiber (H.obj x).fiber) - (hfiber_map : ∀ {x y : D} (f : x ⟶ y), HEq (G.map f).fiber (H.map f).fiber) - : G = H := + (hfiber_map : ∀ {x y : D} (f : x ⟶ y), HEq (G.map f).fiber (H.map f).fiber) : + G = H := Grothendieck.FunctorTo.hext _ _ hbase hfiber_obj hfiber_map end ext @@ -482,7 +482,7 @@ on `F` supplied as the first argument to `Groupoidal.functorFrom`. -/ def ιCompFunctorFrom (c : C) : ι F c ⋙ (functorFrom fib hom hom_id hom_comp) ≅ fib c := Grothendieck.ιCompFunctorFrom _ _ _ _ _ -def ι_comp_functorFrom (c : C) : ι F c ⋙ (functorFrom fib hom hom_id hom_comp) = fib c := +theorem ι_comp_functorFrom (c : C) : ι F c ⋙ (functorFrom fib hom hom_id hom_comp) = fib c := Grothendieck.ι_comp_functorFrom _ _ _ _ _ lemma whiskerRight_ιNatTrans_functorFrom {x y} (f : x ⟶ y) : @@ -566,7 +566,7 @@ lemma asFunctorFromFib_functorFrom : rw [ι_comp_functorFrom] lemma asFunctorFromHom' {c c' : C} (f: c ⟶ c') : - asFunctorFromHom K f = whiskerRight (ιNatTrans f) K := rfl + asFunctorFromHom K f = whiskerRight (ιNatTrans f) K := rfl lemma asFunctorFromHom_app {c c' : C} (f: c ⟶ c') (p : F.obj c) : (asFunctorFromHom K f).app p = K.map ((ιNatTrans f).app p) := @@ -591,15 +591,15 @@ theorem functorFrom_ext {K K' : ∫(F) ⥤ E} (hfib : ∀ c, ι F c ⋙ K = ι F c ⋙ K') (hhom : ∀ {c c' : C} (f : c ⟶ c'), Functor.whiskerRight (ιNatTrans f) K ≫ eqToHom (by simp [Functor.assoc, hfib]) - = eqToHom (by rw[hfib]) ≫ Functor.whiskerRight (ιNatTrans f) K') - : K = K' := + = eqToHom (by rw[hfib]) ≫ Functor.whiskerRight (ιNatTrans f) K') : + K = K' := Grothendieck.functorFrom_ext hfib hhom theorem functorFrom_hext {K K' : ∫(F) ⥤ E} (hfib : ∀ c, ι F c ⋙ K = ι F c ⋙ K') (hhom : ∀ {c c' : C} (f : c ⟶ c'), Functor.whiskerRight (ιNatTrans f) K ≍ - Functor.whiskerRight (ιNatTrans f) K') - : K = K' := + Functor.whiskerRight (ιNatTrans f) K') : + K = K' := Grothendieck.functorFrom_hext hfib hhom section @@ -661,8 +661,8 @@ theorem map_forget (α : F ⟶ G) : map α ⋙ forget = forget := variable {X} {Y : ∫(F)} (f : X ⟶ Y) -@[simp] theorem map_map_base : ((Groupoidal.map α).map f).base = f.base - := Grothendieck.map_map_base _ _ +@[simp] theorem map_map_base : ((Groupoidal.map α).map f).base = f.base := + Grothendieck.map_map_base _ _ @[simp] theorem map_map_fiber : ((Groupoidal.map α).map f).fiber = @@ -762,8 +762,8 @@ lemma pre_comp (G : D ⥤ C) (H : E ⥤ D) : pre F (H ⋙ G) = pre (G ⋙ F) H theorem pre_comp_forget (α : D ⥤ C) (A : C ⥤ Grpd) : pre A α ⋙ forget = forget ⋙ α := rfl -@[simp] theorem ι_comp_pre {D : Type*} [Category D] (G : D ⥤ C) (x : D) - : ι (G ⋙ F) x ⋙ pre F G = ι F (G.obj x) := by +@[simp] theorem ι_comp_pre {D : Type*} [Category D] (G : D ⥤ C) (x : D) : + ι (G ⋙ F) x ⋙ pre F G = ι F (G.obj x) := by apply FunctorTo.hext · rw [ι_comp_forget, Functor.assoc, pre_comp_forget, ← Functor.assoc, ι_comp_forget] apply Functor.ext <;> simp @@ -865,8 +865,8 @@ end section variable {Γ : Type u} [Groupoid.{v} Γ] (A : Γ ⥤ Grpd.{v₁,u₁}) -theorem map_eqToHom_base {G1 G2 : ∫(A)} (eq : G1 = G2) - : A.map (eqToHom eq).base = eqToHom (by subst eq; simp) := by +theorem map_eqToHom_base {G1 G2 : ∫(A)} (eq : G1 = G2) : + A.map (eqToHom eq).base = eqToHom (by subst eq; simp) := by aesop_cat open CategoryTheory.Functor in diff --git a/HoTTLean/Grothendieck/Groupoidal/IsPullback.lean b/HoTTLean/Grothendieck/Groupoidal/IsPullback.lean index 74b711f4..6a7f8e30 100644 --- a/HoTTLean/Grothendieck/Groupoidal/IsPullback.lean +++ b/HoTTLean/Grothendieck/Groupoidal/IsPullback.lean @@ -170,7 +170,7 @@ def sec : Γ ⥤ ∫(A) := ((sec A α h).map f).fiber = PGrpd.mapFiber' h f := rfl -@[simp] def sec_toPGrpd : sec A α h ⋙ toPGrpd _ = α := by +@[simp] theorem sec_toPGrpd : sec A α h ⋙ toPGrpd _ = α := by apply Grothendieck.FunctorTo.hext · rw [Functor.assoc, toPGrpd_forgetToGrpd, sec, ← Functor.assoc, h] rfl @@ -179,7 +179,7 @@ def sec : Γ ⥤ ∫(A) := · intro x y f exact PGrpd.mapFiber'_heq h f -@[simp] def sec_forget : sec A α h ⋙ forget = 𝟭 _ := +@[simp] theorem sec_forget : sec A α h ⋙ forget = 𝟭 _ := rfl theorem sec_eq_lift : sec A α h = (isPullback A).lift α (𝟭 _) (by simp [h, Functor.id_comp]) := by diff --git a/HoTTLean/Grothendieck/IsPullback.lean b/HoTTLean/Grothendieck/IsPullback.lean index 8d89d268..ebaf4e45 100644 --- a/HoTTLean/Grothendieck/IsPullback.lean +++ b/HoTTLean/Grothendieck/IsPullback.lean @@ -45,7 +45,7 @@ def toPCat : ∫ A ⥤ PCat.{v₁,u₁} := -- formerly duplicated as `toPCat_comp_forgetPoint` and `comm_sq` theorem toPCat_forgetToCat : toPCat A ⋙ PCat.forgetToCat - = Grothendieck.forget A ⋙ A := + = Grothendieck.forget A ⋙ A := rfl namespace IsPullback diff --git a/HoTTLean/Groupoids/Basic.lean b/HoTTLean/Groupoids/Basic.lean index fa3ba26e..cf77872e 100644 --- a/HoTTLean/Groupoids/Basic.lean +++ b/HoTTLean/Groupoids/Basic.lean @@ -34,15 +34,15 @@ def groupoidalAsSmallFunctorToPGrpd : (by aesop_cat) (by aesop_cat) -@[simp] def pGrpdToGroupoidalAsSmallFunctor_groupoidalAsSmallFunctorToPGrpd : +@[simp] theorem pGrpdToGroupoidalAsSmallFunctor_groupoidalAsSmallFunctorToPGrpd : groupoidalAsSmallFunctorToPGrpd ⋙ pGrpdToGroupoidalAsSmallFunctor = 𝟭 _ := rfl -@[simp] def groupoidalAsSmallFunctorToPGrpd_pGrpdToGroupoidalAsSmallFunctor : +@[simp] theorem groupoidalAsSmallFunctorToPGrpd_pGrpdToGroupoidalAsSmallFunctor : pGrpdToGroupoidalAsSmallFunctor ⋙ groupoidalAsSmallFunctorToPGrpd = 𝟭 _ := rfl -@[simp] def pGrpdToGroupoidalAsSmallFunctor_forget : pGrpdToGroupoidalAsSmallFunctor +@[simp] theorem pGrpdToGroupoidalAsSmallFunctor_forget : pGrpdToGroupoidalAsSmallFunctor ⋙ Groupoidal.forget = PGrpd.forgetToGrpd := rfl diff --git a/HoTTLean/Groupoids/ClovenIsofibration.lean b/HoTTLean/Groupoids/ClovenIsofibration.lean index a1f9ebf0..8adc3d07 100644 --- a/HoTTLean/Groupoids/ClovenIsofibration.lean +++ b/HoTTLean/Groupoids/ClovenIsofibration.lean @@ -160,8 +160,7 @@ def classifier.map.map {X Y} (f: X ⟶ Y) {a b : F.Fiber X} (m : a ⟶ b) : let i := Groupoid.inv i1 ≫ Fiber.fiberInclusion.map m ≫ i2 have e :𝟙 Y = eqToHom (by simp[obj_liftObj]) ≫ F.map (CategoryTheory.inv i1 ≫ Fiber.fiberInclusion.map m ≫ i2) ≫ - eqToHom (by simp[obj_liftObj]) - := by + eqToHom (by simp[obj_liftObj]) := by simp [i1, i2, Fiber.functor_map_fiberInclusion_map, Functor.map_inv, map_liftIso'] have : F.IsHomLift (𝟙 Y) i := by simp only[i, e] @@ -171,7 +170,7 @@ def classifier.map.map {X Y} (f: X ⟶ Y) {a b : F.Fiber X} (m : a ⟶ b) : Fiber.homMk F _ i lemma classifier.map.map_id {X Y} (f : X ⟶ Y) (a: F.Fiber X): - map.map I f (𝟙 a) = 𝟙 (map.obj I f a) := by + map.map I f (𝟙 a) = 𝟙 (map.obj I f a) := by ext simp [map, Fiber.homMk, Fiber.fiberInclusion, classifier.map.obj] rfl @@ -179,7 +178,7 @@ lemma classifier.map.map_id {X Y} (f : X ⟶ Y) (a: F.Fiber X): -- Allow fiber projections to reduce when simplifying the conjugated composite. set_option backward.isDefEq.respectTransparency false in lemma classifier.map.map_comp {X Y} (f: X ⟶ Y) {a b c: F.Fiber X} (m1 : a ⟶ b) (m2: b ⟶ c): - map.map I f (m1 ≫ m2) = map.map I f m1 ≫ map.map I f m2 := by + map.map I f (m1 ≫ m2) = map.map I f m1 ≫ map.map I f m2 := by ext simp only [Functor.map_comp] simp [classifier.map.map, Fiber.homMk, Fiber.fiberInclusion, Category.assoc] @@ -208,7 +207,7 @@ lemma classifier.map_id (X : Γ) : classifier.map I (𝟙 X) = 𝟙 (Grpd.of (F. -- Reduce fiber projections in the dependent composition proof. set_option backward.isDefEq.respectTransparency false in lemma classifier.map_comp {X Y Z: Γ} (f : X⟶ Y) (g : Y ⟶ Z): - classifier.map I (f ≫ g) = classifier.map I f ⋙ classifier.map I g := by + classifier.map I (f ≫ g) = classifier.map I f ⋙ classifier.map I g := by fapply Functor.ext · intro a simp[map.obj, liftObj_comp] @@ -241,7 +240,7 @@ lemma grothendieckClassifierIso.hom.map_aux {X Y: Γ} (f: X ⟶ Y) (a: I.classif rfl lemma grothendieckClassifierIso.hom.map_aux2 - (X: Γ) (a: I.classifier.obj X) : F.obj a.1 = X := by + (X: Γ) (a: I.classifier.obj X) : F.obj a.1 = X := by simp[classifier] at a simp[a.2] @@ -292,7 +291,7 @@ def grothendieckClassifierIso.hom : ∫ I.classifier ⥤ E := (by intro X Y Z f g; ext; simp[hom.hom,liftIso_comp]) def grothendieckClassifierIso.inv.fibMap {X Y}(f : X ⟶ Y) : - ((F ⋙ I.classifier).map f).obj ⟨X,rfl⟩ ⟶ ⟨Y, rfl⟩ := by + ((F ⋙ I.classifier).map f).obj ⟨X,rfl⟩ ⟶ ⟨Y, rfl⟩ := by refine @Fiber.homMk _ _ _ _ F (F.obj Y) _ _ ?_ ?_ · exact CategoryTheory.inv (I.liftIso (F.map f) rfl) ≫ f · simp @@ -450,7 +449,7 @@ lemma forget.isHomLift {X Y: C} (f : X ⟶ Y) {X' : F.Groupoidal} apply IsHomLift.of_fac' (ha := rfl) (hb := by simp [liftObj]) simp [liftIso, Groupoidal.forget_map, Groupoidal.toTransport_base] -def toTransport_IsIso (x : F.Groupoidal) {c : C} (t : x.base ⟶ c) : +theorem toTransport_IsIso (x : F.Groupoidal) {c : C} (t : x.base ⟶ c) : IsIso (Groupoidal.toTransport x t) := inferInstance @@ -466,13 +465,13 @@ instance {X Y: C} (f : X ⟶ Y) [IsIso f] {X' : F.Groupoidal} (hX': Groupoidal.forget.obj X' = X) : IsIso (forget.liftIso f hX') := by apply toTransport_IsIso -def forget.liftObj_id {X: C} {X' : F.Groupoidal} (hX': Groupoidal.forget.obj X' = X) : +theorem forget.liftObj_id {X: C} {X' : F.Groupoidal} (hX': Groupoidal.forget.obj X' = X) : forget.liftObj (𝟙 X) hX' = X' := by simp [liftObj, Groupoidal.transport_eqToHom] -- The cast and transport equations require unfolding semireducible definitions. set_option backward.isDefEq.respectTransparency false in -def forget.liftIso_id {X: C} {X' : F.Groupoidal} (hX': Groupoidal.forget.obj X' = X) : +theorem forget.liftIso_id {X: C} {X' : F.Groupoidal} (hX': Groupoidal.forget.obj X' = X) : forget.liftIso (𝟙 X) hX' = eqToHom (by simp [forget.liftObj_id]) := by dsimp [liftIso] rw! (castMode :=.all)[Category.comp_id] diff --git a/HoTTLean/Groupoids/Id.lean b/HoTTLean/Groupoids/Id.lean index 7e7bd7a9..70a0e2a2 100644 --- a/HoTTLean/Groupoids/Id.lean +++ b/HoTTLean/Groupoids/Id.lean @@ -191,18 +191,18 @@ variable {p : Γ ⥤ PGrpd} (p_tp : p ⋙ PGrpd.forgetToGrpd = FunctorOperation.Id a0_tp a1_tp) def unpathFibObj : (x : Grpd.Interval × Γ) → A.obj x.2 -| ⟨⟨⟨.false⟩⟩, x2⟩ => PGrpd.objFiber' a0_tp x2 -| ⟨⟨⟨.true⟩⟩, x2⟩ => PGrpd.objFiber' a1_tp x2 + | ⟨⟨⟨.false⟩⟩, x2⟩ => PGrpd.objFiber' a0_tp x2 + | ⟨⟨⟨.true⟩⟩, x2⟩ => PGrpd.objFiber' a1_tp x2 -- The inverse uses the groupoid structure through the bundled fiber coercion. set_option backward.isDefEq.respectTransparency false in def unpathFibMap : {x y : Grpd.Interval × Γ} → (f : x ⟶ y) → ((A.map f.2).obj (unpathFibObj a0_tp a1_tp x) ⟶ unpathFibObj a0_tp a1_tp y) -| ⟨⟨⟨.false⟩⟩, _⟩, ⟨⟨⟨.false⟩⟩, _⟩, f => PGrpd.mapFiber' a0_tp f.2 -| ⟨⟨⟨.false⟩⟩, _⟩, ⟨⟨⟨.true⟩⟩, y2⟩, f => (PGrpd.mapFiber' a0_tp f.2) ≫ (PGrpd.objFiber' p_tp y2).1 -| ⟨⟨⟨.true⟩⟩, _⟩, ⟨⟨⟨.false⟩⟩, y2⟩, f => - (PGrpd.mapFiber' a1_tp f.2) ≫ inv (PGrpd.objFiber' p_tp y2).1 -| ⟨⟨⟨.true⟩⟩, _⟩, ⟨⟨⟨.true⟩⟩, _⟩, f => PGrpd.mapFiber' a1_tp f.2 + | ⟨⟨⟨.false⟩⟩, _⟩, ⟨⟨⟨.false⟩⟩, _⟩, f => PGrpd.mapFiber' a0_tp f.2 + | ⟨⟨⟨.false⟩⟩, _⟩, ⟨⟨⟨.true⟩⟩, y2⟩, f => (PGrpd.mapFiber' a0_tp f.2) ≫ (PGrpd.objFiber' p_tp y2).1 + | ⟨⟨⟨.true⟩⟩, _⟩, ⟨⟨⟨.false⟩⟩, y2⟩, f => + (PGrpd.mapFiber' a1_tp f.2) ≫ inv (PGrpd.objFiber' p_tp y2).1 + | ⟨⟨⟨.true⟩⟩, _⟩, ⟨⟨⟨.true⟩⟩, _⟩, f => PGrpd.mapFiber' a1_tp f.2 lemma unpathFibMap_id (x : Grpd.Interval × Γ) : unpathFibMap a0_tp a1_tp p_tp (𝟙 x) = eqToHom (by simp) := by @@ -738,9 +738,9 @@ variable (σ : Δ ⟶ Γ) (p0 : Γ ⟶ U.{v}.Tm) (p : cylinder.I.obj Γ ⟶ U.Ty set_option backward.isDefEq.respectTransparency false in @[simp] def liftObj : Grpd.Interval × Γ → U.{v}.Tm -| ⟨⟨⟨.false⟩⟩, x2⟩ => p0.obj x2 -| ⟨⟨⟨.true⟩⟩, x2⟩ => tpClovenIsofibration.liftObj (p.map (FunctorOperation.Path.ft x2)) - (Functor.congr_obj p0_tp x2) + | ⟨⟨⟨.false⟩⟩, x2⟩ => p0.obj x2 + | ⟨⟨⟨.true⟩⟩, x2⟩ => tpClovenIsofibration.liftObj (p.map (FunctorOperation.Path.ft x2)) + (Functor.congr_obj p0_tp x2) set_option backward.isDefEq.respectTransparency false in @[simp] @@ -753,11 +753,11 @@ set_option backward.isDefEq.respectTransparency false in @[simp] def liftMap : {x y : Grpd.Interval × Γ} → (f : x ⟶ y) → liftObj p0 p p0_tp x ⟶ liftObj p0 p p0_tp y -| ⟨⟨⟨.false⟩⟩, _⟩, ⟨⟨⟨.false⟩⟩, _⟩, f => p0.map f.2 -| ⟨⟨⟨.false⟩⟩, _⟩, ⟨⟨⟨.true⟩⟩, y2⟩, f => p0.map f.2 ≫ liftMap0 p0 p p0_tp (ft y2) -| ⟨⟨⟨.true⟩⟩, x2⟩, ⟨⟨⟨.false⟩⟩, _⟩, f => inv (liftMap0 p0 p p0_tp (ft x2)) ≫ p0.map f.2 -| ⟨⟨⟨.true⟩⟩, x2⟩, ⟨⟨⟨.true⟩⟩, y2⟩, f => inv (liftMap0 p0 p p0_tp (ft x2)) ≫ - p0.map f.2 ≫ liftMap0 p0 p p0_tp (ft y2) + | ⟨⟨⟨.false⟩⟩, _⟩, ⟨⟨⟨.false⟩⟩, _⟩, f => p0.map f.2 + | ⟨⟨⟨.false⟩⟩, _⟩, ⟨⟨⟨.true⟩⟩, y2⟩, f => p0.map f.2 ≫ liftMap0 p0 p p0_tp (ft y2) + | ⟨⟨⟨.true⟩⟩, x2⟩, ⟨⟨⟨.false⟩⟩, _⟩, f => inv (liftMap0 p0 p p0_tp (ft x2)) ≫ p0.map f.2 + | ⟨⟨⟨.true⟩⟩, x2⟩, ⟨⟨⟨.true⟩⟩, y2⟩, f => inv (liftMap0 p0 p p0_tp (ft x2)) ≫ + p0.map f.2 ≫ liftMap0 p0 p p0_tp (ft y2) lemma liftMap_id (x) : liftMap p0 p p0_tp (𝟙 x) = 𝟙 (liftObj p0 p p0_tp x) := by rcases x with ⟨⟨⟨_|_⟩⟩, _⟩ <;> simp diff --git a/HoTTLean/Groupoids/IsPullback.lean b/HoTTLean/Groupoids/IsPullback.lean index d73a2908..6f8affa9 100644 --- a/HoTTLean/Groupoids/IsPullback.lean +++ b/HoTTLean/Groupoids/IsPullback.lean @@ -32,7 +32,7 @@ def tp' : AsSmall.{max u (v+1)} PGrpd.{v,v} AsSmall.down ⋙ PGrpd.forgetToGrpd ⋙ AsSmall.up theorem liftTm'_tp' : Cat.homOf liftTm'.{v,u} ≫ Cat.homOf tp'.{v+1, max u (v+2)} = - Cat.homOf tp'.{v, max u (v+2)} ≫ Cat.homOf liftTy'.{v,u} := rfl + Cat.homOf tp'.{v, max u (v+2)} ≫ Cat.homOf liftTy'.{v,u} := rfl /-- The following square is a meta-theoretic pullback diff --git a/HoTTLean/Groupoids/Pi.lean b/HoTTLean/Groupoids/Pi.lean index 5e8c7c85..4c8230e2 100644 --- a/HoTTLean/Groupoids/Pi.lean +++ b/HoTTLean/Groupoids/Pi.lean @@ -65,8 +65,7 @@ set_option backward.isDefEq.respectTransparency false in instance {A B : Type*} [Category A] [Groupoid B] (F : B ⥤ A) : IsGroupoid (Section F) where all_isIso {x y} f := { - out := ⟨⟨ CategoryTheory.inv f.1, - by + out := ⟨⟨ CategoryTheory.inv f.1, by simp only [IsOverId, Category.id_comp, eqToHom_trans, Set.mem_ofPred_eq] change Functor.whiskerRight ((ObjectProperty.ι (IsSection F)).map (inv f.1)) F = _ rw [Functor.map_inv, ← Functor.inv_whiskerRight] @@ -319,7 +318,7 @@ lemma conjugatingObjNatTransEquiv₁_id_inv {x : Γ} (S) (T) -- Dependent rewriting unfolds bundled groupoid coercions. set_option backward.isDefEq.respectTransparency false in lemma conjugatingObjNatTransEquiv₁_comp_inv {x y z : Γ} (f1 : x ⟶ y) (f2 : y ⟶ z) - (S0 : (A.obj x) ⥤ (B.obj x)) + (S0 : (A.obj x) ⥤ (B.obj x)) (S1 : (A.obj y) ⥤ (B.obj y)) (S2 : (A.obj z) ⥤ (B.obj z)) (g01 : A.map (inv f1) ⋙ S0 ⋙ B.map f1 ⟶ S1) @@ -347,12 +346,12 @@ variable {Γ : Type u₂} [Groupoid.{v₂} Γ] {A : Γ ⥤ Grpd.{u₁,u₁}} def functorObj (x : Γ) : Grpd.{u₁,u₁} := Grpd.of (Section (φ.app x)) -def obj_hext {A A' : Grpd.{u₁,u₁}} (hA : A ≍ A') {B B' : Grpd.{u₁,u₁}} (hB : B ≍ B') +theorem obj_hext {A A' : Grpd.{u₁,u₁}} (hA : A ≍ A') {B B' : Grpd.{u₁,u₁}} (hB : B ≍ B') {F : A ⟶ B} {F' : A' ⟶ B'} (hF : F ≍ F') (x : Section F) (x' : Section F') (hx : x.obj.obj ≍ x'.obj.obj) : x ≍ x' := by aesop -def hom_hext {A A' : Grpd.{u₁,u₁}} (hA : A ≍ A') {B B' : Grpd.{u₁,u₁}} (hB : B ≍ B') +theorem hom_hext {A A' : Grpd.{u₁,u₁}} (hA : A ≍ A') {B B' : Grpd.{u₁,u₁}} (hB : B ≍ B') {F : A ⟶ B} {F' : A' ⟶ B'} (hF : F ≍ F') {x y : Section F} {x' y' : Section F'} {f : x ⟶ y} {f' : x' ⟶ y'} (hx : x ≍ x') (hy : y ≍ y') (hf : f.1 ≍ f'.1) : @@ -362,7 +361,7 @@ def hom_hext {A A' : Grpd.{u₁,u₁}} (hA : A ≍ A') {B B' : Grpd.{u₁,u₁}} apply MorphismProperty.WideSubcategory.hom_ext apply hf -def hom_hext' {A A' : Grpd.{u₁,u₁}} (hA : A ≍ A') {B B' : Grpd.{u₁,u₁}} (hB : B ≍ B') +theorem hom_hext' {A A' : Grpd.{u₁,u₁}} (hA : A ≍ A') {B B' : Grpd.{u₁,u₁}} (hB : B ≍ B') {F : A ⟶ B} {F' : A' ⟶ B'} (hF : F ≍ F') {x y : Section F} {x' y' : Section F'} {f : x ⟶ y} {f' : x' ⟶ y'} (hx : x ≍ x') (hy : y ≍ y') (hf : ∀ k k', k ≍ k' → f.1.hom.app k ≍ f'.1.hom.app k') : @@ -710,8 +709,8 @@ lemma comm_sq_of_comp_mono {C : Type*} [Category C] (hh : h ≫ mW = mX ≫ h') (hg : g ≫ mZ = mY ≫ g') (hi : i ≫ mZ = mW ≫ i') - [e : Mono mZ] - : f ≫ g = h ≫ i := by + [e : Mono mZ] : + f ≫ g = h ≫ i := by apply e.right_cancellation calc (f ≫ g) ≫ mZ _ = f ≫ mY ≫ g' := by aesop diff --git a/HoTTLean/Groupoids/Sigma.lean b/HoTTLean/Groupoids/Sigma.lean index b662115a..0d31b85f 100644 --- a/HoTTLean/Groupoids/Sigma.lean +++ b/HoTTLean/Groupoids/Sigma.lean @@ -131,8 +131,8 @@ set_option backward.isDefEq.respectTransparency false in @[simp] theorem sigmaMap_comp_map {B : ∫(A) ⥤ Grpd.{v₃,u₃}} {x y z : Γ} {f : x ⟶ y} {g : y ⟶ z} {p q : sigmaObj B x} (hpq : p ⟶ q) {h1 : (sigmaMap B (f ≫ g)).obj p = (sigmaMap B g).obj ((sigmaMap B f).obj p)} - {h2 : (sigmaMap B g).obj ((sigmaMap B f).obj q) = (sigmaMap B (f ≫ g)).obj q} - : (sigmaMap B (f ≫ g)).map hpq = + {h2 : (sigmaMap B g).obj ((sigmaMap B f).obj q) = (sigmaMap B (f ≫ g)).obj q} : + (sigmaMap B (f ≫ g)).map hpq = eqToHom h1 ≫ (sigmaMap B g).map ((sigmaMap B f).map hpq) ≫ eqToHom h2 := by have h : B.map ((ιNatTrans (f ≫ g)).app q.base) = B.map ((ιNatTrans f).app q.base) @@ -181,7 +181,7 @@ theorem sigma_naturality_aux (x) : rfl lemma whiskerRight_ιNatTrans_naturality {x y : Δ} (f : x ⟶ y) : - Functor.whiskerRight (ιNatTrans f) (pre A σ ⋙ B) = + Functor.whiskerRight (ιNatTrans f) (pre A σ ⋙ B) = eqToHom (sigma_naturality_aux B σ x) ≫ Functor.whiskerRight (ιNatTrans (σ.map f)) B ≫ eqToHom (by simp [Functor.assoc, sigma_naturality_aux B σ y]) := by aesop diff --git a/HoTTLean/Model/Natural/NaturalModel.lean b/HoTTLean/Model/Natural/NaturalModel.lean index ae4b85d1..90de330a 100644 --- a/HoTTLean/Model/Natural/NaturalModel.lean +++ b/HoTTLean/Model/Natural/NaturalModel.lean @@ -318,8 +318,8 @@ theorem mk_comp_right {Γ : Ctx} (M : Universe Ctx) theorem ext {AB AB' : y(Γ) ⟶ M.Ptp.obj X} (A := fst M AB) (eq : fst M AB = A := by rfl) (h1 : fst M AB = fst M AB') - (h2 : snd M AB A eq = snd M AB' A (h1 ▸ eq)) - : AB = AB' := UvPoly.Equiv.ext' _ _ _ h1 h2 + (h2 : snd M AB A eq = snd M AB' A (h1 ▸ eq)) : + AB = AB' := UvPoly.Equiv.ext' _ _ _ h1 h2 theorem eta (AB : y(Γ) ⟶ M.Ptp.obj X) : mk M (fst M AB) (snd M AB) = AB := .symm <| ext _ _ rfl (by simp) (by simp) @@ -908,8 +908,7 @@ def toI : y(ii.motiveCtx a) ⟶ ie.i := lemma toI_comp_i1 : ie.toI a ≫ ie.i1 = M.var _ := by exact ie.i_isPullback.lift_fst _ _ _ -lemma toI_comp_i2 : ie.toI a ≫ ie.i2 = ym(M.disp _) ≫ ii.toK a := - by +lemma toI_comp_i2 : ie.toI a ≫ ie.i2 = ym(M.disp _) ≫ ii.toK a := by exact ie.i_isPullback.lift_snd _ _ _ lemma toI_comp_left {Δ} (σ : Δ ⟶ Γ) : toI ie (ym(σ) ≫ a) = diff --git a/HoTTLean/Model/Natural/UHom.lean b/HoTTLean/Model/Natural/UHom.lean index 7f30bbb4..b6873e83 100644 --- a/HoTTLean/Model/Natural/UHom.lean +++ b/HoTTLean/Model/Natural/UHom.lean @@ -34,7 +34,7 @@ def Hom.comp {M N O : Universe Ctx} (α : Hom M N) (β : Hom N O) : Hom M O wher mapTy := α.mapTy ≫ β.mapTy pb := α.pb.paste_horiz β.pb -def Hom.comp_assoc {M N O P : Universe Ctx} (α : Hom M N) (β : Hom N O) (γ : Hom O P) : +theorem Hom.comp_assoc {M N O P : Universe Ctx} (α : Hom M N) (β : Hom N O) (γ : Hom O P) : comp (comp α β) γ = comp α (comp β γ) := by simp [comp] @@ -125,7 +125,7 @@ def UHom.comp {M N O : Universe Ctx} (α : UHom M N) (β : UHom N O) : UHom M O asTm := α.asTm ≫ β.mapTm U_pb := α.U_pb.paste_horiz β.pb -def UHom.comp_assoc {M N O P : Universe Ctx} (α : UHom M N) (β : UHom N O) (γ : UHom O P) : +theorem UHom.comp_assoc {M N O P : Universe Ctx} (α : UHom M N) (β : UHom N O) (γ : UHom O P) : comp (comp α β) γ = comp α (comp β γ) := by simp [comp, Hom.comp] @@ -282,14 +282,14 @@ Given `i0 ≤ i1` and `j0 ≤ j1` -/ def cartesianNatTransTm (i0 i1 j0 j1 : Nat) (ii : i0 ≤ i1 := by get_elem_tactic) (ilen : i1 < s.length + 1 := by get_elem_tactic) - (jj : j0 ≤ j1 := by get_elem_tactic) (jlen : j1 < s.length + 1 := by get_elem_tactic) - : s[i0].Ptp.obj s[j0].Tm ⟶ s[i1].Ptp.obj s[j1].Tm := + (jj : j0 ≤ j1 := by get_elem_tactic) (jlen : j1 < s.length + 1 := by get_elem_tactic) : + s[i0].Ptp.obj s[j0].Tm ⟶ s[i1].Ptp.obj s[j1].Tm := (s.cartesianNatTrans i0 i1).app s[j0].Tm ≫ s[i1].Ptp.map (s.homOfLe j0 j1).mapTm theorem mk_comp_cartesianNatTransTm {i0 i1 j0 j1 ii ilen jj jlen} - {Γ X} (A : y(Γ) ⟶ s[i0].Ty) (B : y(s[i0].ext A) ⟶ s[j0].Tm) - : PtpEquiv.mk s[i0] A B ≫ s.cartesianNatTransTm i0 i1 j0 j1 ii ilen jj jlen = + {Γ X} (A : y(Γ) ⟶ s[i0].Ty) (B : y(s[i0].ext A) ⟶ s[j0].Tm) : + PtpEquiv.mk s[i0] A B ≫ s.cartesianNatTransTm i0 i1 j0 j1 ii ilen jj jlen = PtpEquiv.mk s[i1] (A ≫ (s.homOfLe i0 i1).mapTy) (ym(substCons _ (s[i1].disp _) _ (s.unliftVar i0 i1 ii ilen A rfl) (by simp)) ≫ B ≫ (s.homOfLe j0 j1).mapTm) := by @@ -307,14 +307,14 @@ theorem cartesianNatTransTm_fstProj {i0 i1 j0 j1 ii ilen jj jlen} : def cartesianNatTransTy (i0 i1 j0 j1 : Nat) (i0len : i0 ≤ i1 := by get_elem_tactic) (i1len : i1 < s.length + 1 := by get_elem_tactic) - (j0len : j0 ≤ j1 := by get_elem_tactic) (j1len : j1 < s.length + 1 := by get_elem_tactic) - : s[i0].Ptp.obj s[j0].Ty ⟶ s[i1].Ptp.obj s[j1].Ty := + (j0len : j0 ≤ j1 := by get_elem_tactic) (j1len : j1 < s.length + 1 := by get_elem_tactic) : + s[i0].Ptp.obj s[j0].Ty ⟶ s[i1].Ptp.obj s[j1].Ty := (s.cartesianNatTrans i0 i1).app s[j0].Ty ≫ s[i1].Ptp.map (s.homOfLe j0 j1).mapTy theorem mk_comp_cartesianNatTransTy {i0 i1 j0 j1 ii ilen jj jlen} - {Γ X} (A : y(Γ) ⟶ s[i0].Ty) (B : y(s[i0].ext A) ⟶ s[j0].Ty) - : PtpEquiv.mk s[i0] A B ≫ s.cartesianNatTransTy i0 i1 j0 j1 ii ilen jj jlen = + {Γ X} (A : y(Γ) ⟶ s[i0].Ty) (B : y(s[i0].ext A) ⟶ s[j0].Ty) : + PtpEquiv.mk s[i0] A B ≫ s.cartesianNatTransTy i0 i1 j0 j1 ii ilen jj jlen = PtpEquiv.mk s[i1] (A ≫ (s.homOfLe i0 i1).mapTy) (ym(substCons _ (s[i1].disp _) _ (s.unliftVar i0 i1 ii ilen A rfl) (by simp)) ≫ B ≫ (s.homOfLe j0 j1).mapTy) := by @@ -447,7 +447,7 @@ def Pi : s[i].Ptp.obj s[j].Ty ⟶ s[max i j].Ty := def lam : s[i].Ptp.obj s[j].Tm ⟶ s[max i j].Tm := s.cartesianNatTransTm i (max i j) j (max i j) ≫ (nmPi (max i j)).lam -def Pi_pb : +theorem Pi_pb : IsPullback (s.lam ilen jlen) (s[i].Ptp.map s[j].tp) s[max i j].tp (s.Pi ilen jlen) := by have p1 : NatTrans.IsCartesian (s.cartesianNatTrans i (max i j)) := by dsimp only [UHomSeq.cartesianNatTrans] @@ -673,7 +673,7 @@ def pair : UvPoly.compDom s[i].uvPolyTp s[j].uvPolyTp ⟶ s[max i j].Tm := (s.homOfLe j (max i j)).pb.flip l ≫ (nmSig (max i j)).pair -def Sig_pb : IsPullback +theorem Sig_pb : IsPullback (s.pair ilen jlen) (s[i].uvPolyTp.compP s[j].uvPolyTp) s[max i j].tp (s.Sig ilen jlen) := diff --git a/HoTTLean/Model/Unstructured/Hurewicz.lean b/HoTTLean/Model/Unstructured/Hurewicz.lean index 491df329..0ada17fa 100644 --- a/HoTTLean/Model/Unstructured/Hurewicz.lean +++ b/HoTTLean/Model/Unstructured/Hurewicz.lean @@ -139,9 +139,9 @@ def ofCartesianMonoidalCategoryLeft [CartesianMonoidalCategory Ctx] (Interval : ``` y Γ -----> Y -| | -|δ0 |f -| | + | | + |δ0 |f + | | V V I;Γ ---> X ``` @@ -183,9 +183,9 @@ This means that the lift of the following square is just `π ≫ y` ``` y Γ --------------> Y -| ↗ | -|δ0 y⧸ | -| ⧸ | + | ↗ | + |δ0 y⧸ | + | ⧸ | V ⧸ V I;Γ ---> Γ -----> X π x @@ -228,9 +228,9 @@ and "cubical paths" `(i:I);Γ ⊢ p i : A` such that `p 0 = a` and `p 1 = b` ``` p I;Γ -----> Tm -| | -| |tp -| | + | | + | |tp + | | V V Γ ------> Ty A @@ -404,7 +404,7 @@ abbrev ev : cyl.I.obj (U0.ext (P0.polymorphicIdIntro.weakenId a a_tp)) ⟶ U0.Tm /- ev - ⌐----------------------------¬ + +----------------------------¬ | substCons V I;Γ.(x:A).Id(a,x) ····> Γ.A -------> Tm | | | diff --git a/HoTTLean/Model/Unstructured/UHom.lean b/HoTTLean/Model/Unstructured/UHom.lean index bdd1e4cd..36c353e6 100644 --- a/HoTTLean/Model/Unstructured/UHom.lean +++ b/HoTTLean/Model/Unstructured/UHom.lean @@ -35,7 +35,8 @@ def Hom.comp {M N O : UnstructuredUniverse Ctx} (α : Hom M N) (β : Hom N O) : mapTy := α.mapTy ≫ β.mapTy pb := α.pb.paste_horiz β.pb -def Hom.comp_assoc {M N O P : UnstructuredUniverse Ctx} (α : Hom M N) (β : Hom N O) (γ : Hom O P) : +theorem Hom.comp_assoc {M N O P : UnstructuredUniverse Ctx} + (α : Hom M N) (β : Hom N O) (γ : Hom O P) : comp (comp α β) γ = comp α (comp β γ) := by simp [comp] @@ -101,7 +102,7 @@ def UHom.comp {M N O : UnstructuredUniverse Ctx} (α : UHom M N) (β : UHom N O) asTm := α.asTm ≫ β.mapTm U_pb := α.U_pb.paste_horiz β.pb -def UHom.comp_assoc {M N O P : UnstructuredUniverse Ctx} (α : UHom M N) (β : UHom N O) +theorem UHom.comp_assoc {M N O P : UnstructuredUniverse Ctx} (α : UHom M N) (β : UHom N O) (γ : UHom O P) : comp (comp α β) γ = comp α (comp β γ) := by simp [comp, Hom.comp] @@ -136,6 +137,7 @@ def Hom.extCompMapTyIsoExt : N.ext (A ≫ α.mapTy) ≅ M.ext A := (N.disp_pullback (A ≫ α.mapTy)).isoIsPullback _ _ (IsPullback.paste_horiz (M.disp_pullback A) α.pb) +omit [ChosenTerminal Ctx] in lemma Hom.extCompMapTyIsoExt_hom_comp_substWk : (α.extCompMapTyIsoExt σA).hom ≫ M.substWk σ A σA eq = N.substWk σ (A ≫ α.mapTy) (σA ≫ α.mapTy) (by simp [← eq]) ≫ (α.extCompMapTyIsoExt A).hom := by @@ -371,7 +373,7 @@ class PiSeq (s : UHomSeq Ctx) where -- Re-export for use with dot notation. abbrev polyPi := @PiSeq.polyPi -def PiSeq.ofMonomorphic +abbrev PiSeq.ofMonomorphic (nmPi : (i : Nat) → (ilen : i < s.length + 1 := by get_elem_tactic) → s[i].PolymorphicPi s[i] s[i]) : PiSeq s where polyPi i j _ _ := .ofMonomorphic (nmPi (max i j)) (s.homOfLe _ _) (s.homOfLe _ _) diff --git a/HoTTLean/Pointed/Basic.lean b/HoTTLean/Pointed/Basic.lean index d84cd665..73b0e7e9 100644 --- a/HoTTLean/Pointed/Basic.lean +++ b/HoTTLean/Pointed/Basic.lean @@ -389,8 +389,8 @@ end theorem Functor.hext (F G : Γ ⥤ PGrpd) (hbase : F ⋙ forgetToGrpd = G ⋙ forgetToGrpd) (hfiber_obj : ∀ x : Γ, HEq (F.obj x).fiber (G.obj x).fiber) - (hfiber_map : ∀ {x y : Γ} (f : x ⟶ y), HEq (F.map f).fiber (G.map f).fiber) - : F = G := + (hfiber_map : ∀ {x y : Γ} (f : x ⟶ y), HEq (F.map f).fiber (G.map f).fiber) : + F = G := Grothendieck.FunctorTo.hext F G hbase hfiber_obj hfiber_map section diff --git a/HoTTLean/Pointed/IsPullback.lean b/HoTTLean/Pointed/IsPullback.lean index bc889780..d15e3df6 100644 --- a/HoTTLean/Pointed/IsPullback.lean +++ b/HoTTLean/Pointed/IsPullback.lean @@ -22,7 +22,7 @@ namespace CategoryTheory namespace PGrpd lemma forgetToPCat_forgetToCat : - PGrpd.forgetToPCat.{v,u} ⋙ PCat.forgetToCat.{v,u} = + PGrpd.forgetToPCat.{v,u} ⋙ PCat.forgetToCat.{v,u} = PGrpd.forgetToGrpd.{v,u} ⋙ Grpd.forgetToCat.{v,u} := rfl @@ -38,7 +38,7 @@ The following square is a (meta-theoretic) pullback Grpd------forgetToCat------->Cat -/ def isPullback : Functor.IsPullback forgetToPCat.{v,u} forgetToGrpd.{v,u} - PCat.forgetToCat Grpd.forgetToCat := + PCat.forgetToCat Grpd.forgetToCat := Functor.Grothendieck.isPullback _ /-- diff --git a/HoTTLean/Syntax/Axioms.lean b/HoTTLean/Syntax/Axioms.lean index b2a13305..82b37410 100644 --- a/HoTTLean/Syntax/Axioms.lean +++ b/HoTTLean/Syntax/Axioms.lean @@ -30,7 +30,7 @@ instance : LE (Axioms χ) where le E E' := ∀ ⦃c p⦄, (E c) = some p → (E' c) = some p instance : Std.Refl (· ≤ · : Axioms χ → Axioms χ → Prop) where - refl E _ _ h := h + refl _ _ _ h := h instance : IsTrans (Axioms χ) (· ≤ ·) where trans _ _ _ h h' _ _ Ec := h' (h Ec) diff --git a/HoTTLean/Syntax/Substitution.lean b/HoTTLean/Syntax/Substitution.lean index 7b297e86..1114a24c 100644 --- a/HoTTLean/Syntax/Substitution.lean +++ b/HoTTLean/Syntax/Substitution.lean @@ -21,7 +21,6 @@ theorem le_univMax_all : (∀ {Γ l A t}, E ∣ Γ ⊢[l] t : A → l ≤ univMax) ∧ (∀ {Γ l A t u}, E ∣ Γ ⊢[l] t ≡ u : A → l ≤ univMax) := by mutual_induction WfCtx - -- I ❤ grind and omega all_goals first | omega | try grind theorem WfCtx.le_univMax_of_lookup : WfCtx E Γ → Lookup Γ i A l → l ≤ univMax := @@ -79,7 +78,7 @@ theorem upr : WfRen Δ ξ Γ → WfRen ((A.rename ξ, l) :: Δ) (Expr.upr ξ) (( end WfRen -attribute [local grind ←] WfCtx.snoc WfRen.upr in +attribute [local grind ← ] WfCtx.snoc WfRen.upr in theorem rename_all : (∀ {Γ l A}, E ∣ Γ ⊢[l] A → ∀ {Δ ξ}, WfCtx E Δ → WfRen Δ ξ Γ → E ∣ Δ ⊢[l] A.rename ξ) ∧ @@ -356,7 +355,7 @@ theorem Id_bvar : WfCtx E Γ → E ∣ Γ ⊢[l] A → E ∣ Γ ⊢[l] t : A → E ∣ (A, l) :: Γ ⊢[l] .Id l (A.subst Expr.wk) (t.subst Expr.wk) (.bvar 0) := fun Γ A t => WfTp.Id' (tp_wk Γ A A) (tm_wk Γ A t) (.bvar (Γ.snoc A) (.zero ..)) -attribute [local grind ←] WfCtx.snoc eqSb_up wfSb_up in +attribute [local grind ← ] WfCtx.snoc eqSb_up wfSb_up in attribute [local grind →] EqSb.wf_left EqSb.wf_right in attribute [local grind .] -- TODO: fwd or bwd for properties of equality? EqTp.refl_tp EqTp.symm_tp EqTp.trans_tp diff --git a/HoTTLean/Syntax/Synth.lean b/HoTTLean/Syntax/Synth.lean index 4e8f9257..80b6fb07 100644 --- a/HoTTLean/Syntax/Synth.lean +++ b/HoTTLean/Syntax/Synth.lean @@ -40,8 +40,7 @@ Furthermore, the correctness proof `eq_synthLvl` needs zero metatheory. Does this imply we could omit level annotations from the syntax? In the interpretation function, we'd invoke `synthLvl.go` on `ExtSeq`. -/ noncomputable def synthLvl (Γ : Ctx χ) (e : Expr χ) : Nat := - go (Γ.map (·.2)) e -where + go (Γ.map (·.2)) e where go (Γ : List Nat) : Expr χ → Nat | .ax _ A => go Γ A | .bvar i => Γ[i]? |>.getD default diff --git a/HoTTLean/Typechecker/ValueInversion.lean b/HoTTLean/Typechecker/ValueInversion.lean index a3c8041c..5c213c1e 100644 --- a/HoTTLean/Typechecker/ValueInversion.lean +++ b/HoTTLean/Typechecker/ValueInversion.lean @@ -139,7 +139,7 @@ theorem ValEqTm.inv_neut {Γ vA A vt t l} : ValEqTm E Γ l (.neut vt vA) t A → all_goals grind [NeutEqTm.conv_neut, ValEqTp.conv_tp] theorem NeutEqTm.inv_ax {Γ C c vA t l₀} : NeutEqTm E Γ l₀ (.ax c vA) t C → ∃ Al, - l₀ = Al.val.2 ∧ E c = some Al ∧ ValEqTp E Γ Al.val.2 vA Al.val.1 ∧ + l₀ = Al.val.2 ∧ E c = some Al ∧ ValEqTp E Γ Al.val.2 vA Al.val.1 ∧ (E ∣ Γ ⊢[l₀] t ≡ .ax c Al.val.1 : C) ∧ (E ∣ Γ ⊢[l₀] C ≡ Al.val.1) := by suffices ∀ {Γ l₀ vt t C}, NeutEqTm E Γ l₀ vt t C → ∀ {c vA}, vt = .ax c vA → ∃ Al, l₀ = Al.val.2 ∧ E c = some Al ∧ ValEqTp E Γ Al.val.2 vA Al.val.1 ∧ diff --git a/HoTTLeanTest.lean b/HoTTLeanTest.lean index 136bc48c..af9d2503 100644 --- a/HoTTLeanTest.lean +++ b/HoTTLeanTest.lean @@ -1,4 +1,5 @@ import HoTTLeanTest.basic +import HoTTLeanTest.functorMap import HoTTLeanTest.import import HoTTLeanTest.hott0 import HoTTLeanTest.unitt diff --git a/HoTTLeanTest/functorMap.lean b/HoTTLeanTest/functorMap.lean new file mode 100644 index 00000000..b6c75e16 --- /dev/null +++ b/HoTTLeanTest/functorMap.lean @@ -0,0 +1,38 @@ +import HoTTLean.ForMathlib.Tactic.CategoryTheory.FunctorMap + +/-! +# Tests for `functor_map` + +Check the generated declarations, nested attributes, and term elaborator with independent +object and morphism universes in the source and target categories. +-/ + +universe v₁ u₁ v₂ u₂ + +namespace CategoryTheory.FunctorMapTest + +variable {C : Type u₁} [Category.{v₁} C] + +@[functor_map (attr := reassoc (attr := simp))] +theorem comp_id_of_eq {X Y : C} (f g : X ⟶ Y) (h : f = g) : f ≫ 𝟙 Y = g := by + simpa using h + +run_cmd do + let env ← Lean.getEnv + for name in [``comp_id_of_eq_functor_map, ``comp_id_of_eq_functor_map_assoc] do + unless (Lean.Meta.simpExtension.getState env).lemmaNames.contains (.decl name) do + throwError "missing simp attribute on {name}" + +variable {D : Type u₂} [Category.{v₂} D] (F : C ⥤ D) + +example {X Y : C} (f g : X ⟶ Y) (h : f = g) : F.map f = F.map g := + comp_id_of_eq_functor_map f g h F + +example {X Y : C} (f g : X ⟶ Y) (h : f = g) {Z : D} (k : F.obj Y ⟶ Z) : + F.map f ≫ k = F.map g ≫ k := + comp_id_of_eq_functor_map_assoc f g h F k + +example {X Y : C} (f g : X ⟶ Y) (h : f = g) : F.map f = F.map g := + (functor_map_of% (comp_id_of_eq f g h)) F + +end CategoryTheory.FunctorMapTest diff --git a/HoTTLeanTest/unitt.lean b/HoTTLeanTest/unitt.lean index 54ee242c..26c8a895 100644 --- a/HoTTLeanTest/unitt.lean +++ b/HoTTLeanTest/unitt.lean @@ -43,7 +43,7 @@ def sUnit' : (𝟭_ Ctx) ⟶ uHomSeq[1].Tm := uHomSeq.code (Nat.zero_lt_succ _) sUnit @[simp] -def sUnit'_tp : sUnit' ≫ uHomSeq[1].tp = (uHomSeq.homSucc 0).wkU _ := by +theorem sUnit'_tp : sUnit' ≫ uHomSeq[1].tp = (uHomSeq.homSucc 0).wkU _ := by exact uHomSeq.code_tp _ _ def I : Interpretation Lean.Name uHomSeq where diff --git a/README.md b/README.md index 8c1488ee..456763d3 100644 --- a/README.md +++ b/README.md @@ -6,14 +6,15 @@ together with a proof mode for developing mathematics synthetically in those typ HoTTLean is work-in-progress. It currently contains the following components: + - A deep embedding of MLTT syntax with Π, Σ, Id types, and base constants (`HoTTLean.Syntax`). - **SynthLean**, a proof assistant for these deeply embedded theories (`HoTTLean.Frontend`). It includes a certifying typechecker (`HoTTLean.Typechecker`). - Natural model semantics of MLTT in presheaf categories (`HoTTLean.Model`) and a proof that this semantics is sound for the syntax (`ofType_ofTerm_sound`). - -- A `sorry`-free construction of the groupoid model of type theory with Π, Σ, Id types (`HoTTLean.Groupoids`). +- A `sorry`-free construction of the groupoid model of type theory with Π, Σ, Id types + (`HoTTLean.Groupoids`). - Pieces of general mathematics and category theory such as the Grothendieck construction for groupoids (`HoTTLean.ForMathlib`, `HoTTLean.Grothendieck`, `HoTTLean.Pointed`). @@ -23,7 +24,8 @@ Documentation of the Lean code can be found [here](https://sinhp.github.io/HoTTLean/docs/). (We also have [a blueprint](https://sinhp.github.io/HoTTLean/), but it is very outdated.) -Relevant papers to this project are listed below +Relevant papers to this project are listed below: + - [A Certifying Proof Assistant for Synthetic Mathematics in Lean](https://voidma.in/assets/papers/2026nawrocki_certifying_proof_assistant_synthetic_mathematics_lean.pdf) - [Path Types in Algebraic Type Theory](https://arxiv.org/abs/2601.06567v1) @@ -32,9 +34,16 @@ Mathematics in Lean](https://voidma.in/assets/papers/2026nawrocki_certifying_pro ### Dependencies We rely on [Mathlib](https://github.com/leanprover-community/mathlib4) -and [Poly](https://github.com/sosudo/Poly/), +and [Poly](https://github.com/sinhp/Poly/), a formalization of polynomial functors. +The project uses Lean and Mathlib v4.34.1. +The required Lean version is recorded in [`lean-toolchain`](lean-toolchain), +and dependency revisions are pinned in `lake-manifest.json`. +The Poly dependency currently uses the Lean v4.34.1 port from +[`sosudo/Poly`](https://github.com/sosudo/Poly/), proposed in +[Poly PR #41](https://github.com/sinhp/Poly/pull/41). + ### How can I try out HoTTLean? First make sure that [Lean is installed](https://lean-lang.org/install/). @@ -46,21 +55,19 @@ then in a terminal execute lake exe cache get # Build the project lake build -# Build the natural model modules +# Build the alternative natural model lake build NaturalModel # Run tests (optional) lake test ``` -Examples demonstrating the usage of SynthLean (for internal reasoning) -and of our model definitions (for external reasoning) -can be found under `HoTTLeanTest/`: -- `HoTTLeanTest/unitt.lean` specifies a type theory with a unit type. -- `HoTTLeanTest/hott0.lean` defines HoTT0, - a version of HoTT where univalence only holds for h-sets. +Examples demonstrating SynthLean and our model definitions are in `HoTTLeanTest/`. +These are checked by `lake test`, including an interpretation of the unit type +in the groupoid model: -The [Lean v4.34.1 migration record](docs/lean-v4.34.1/hottlean-changes.md) -lists the source changes, checks, and remaining limits. +- [`HoTTLeanTest/unitt.lean`](HoTTLeanTest/unitt.lean) specifies a type theory with a unit type. +- [`HoTTLeanTest/hott0.lean`](HoTTLeanTest/hott0.lean) defines HoTT0, + a version of HoTT where univalence only holds for h-sets. ### Can I contribute to HoTTLean? diff --git a/docs/lean-v4.34.1/evidence/FunctorMapProbe.lean b/docs/lean-v4.34.1/evidence/FunctorMapProbe.lean deleted file mode 100644 index d53dd930..00000000 --- a/docs/lean-v4.34.1/evidence/FunctorMapProbe.lean +++ /dev/null @@ -1,11 +0,0 @@ -import HoTTLean.ForMathlib.Tactic.CategoryTheory.FunctorMap -universe u v -namespace CategoryTheory -variable {C : Type u} [Category.{v} C] -@[functor_map (attr := reassoc (attr := simp))] -theorem functorMapMigrationProbe {X Y : C} (f g : X ⟶ Y) (h : f = g) : f ≫ 𝟙 Y = g := by simpa using h -#check functorMapMigrationProbe_functor_map -#check functorMapMigrationProbe_functor_map_assoc -example {D : Type u} [Category.{v} D] (F : C ⥤ D) {X Y : C} (f g : X ⟶ Y) (h : f = g) : - F.map f = F.map g := (functor_map_of% (functorMapMigrationProbe f g h)) F -end CategoryTheory diff --git a/docs/lean-v4.34.1/evidence/api-docs.txt b/docs/lean-v4.34.1/evidence/api-docs.txt deleted file mode 100644 index 4f27b47a..00000000 --- a/docs/lean-v4.34.1/evidence/api-docs.txt +++ /dev/null @@ -1,1628 +0,0 @@ -$ lake -R -Kenv=dev build HoTTLean:docs -⚠ [1163/1520] Replayed HoTTLean.Syntax.Substitution -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.refl_tp` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.trans_tp` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.refl_tm` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.trans_tm'` annotated with `@[grind .]` -✔ [1170/2229] Built HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.WideSubcategory (2.0s) -✔ [1171/2229] Built HoTTLean.Typechecker.Cache (2.2s) -⚠ [1172/2229] Built HoTTLean.ForMathlib.CategoryTheory.FreeGroupoid (2.4s) -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:7: Variable name `C` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _C - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:9: Variable name `D` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _D - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:195:9: Variable name `C` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _C - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -✔ [1173/2229] Built HoTTLean.ForMathlib.CategoryTheory.RepPullbackCone (2.0s) -✔ [1174/2229] Built Cli.Basic (3.9s) -⚠ [1175/2229] Built HoTTLean.ForMathlib (3.5s) -warning: HoTTLean/ForMathlib.lean:352:0: Definition `CategoryTheory.Equivalence.chosenFiniteProducts` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. -warning: HoTTLean/ForMathlib.lean:352:4: Overlapping instance parameters in `chosenFiniteProducts`: - -⚠️ There are 2 `[CartesianMonoidalCategory C]` instances; one is sufficient. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/ForMathlib.lean:462:0: Definition `sigmaCongr_apply_snd` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -✔ [1176/2229] Built Cli.Extensions (624ms) -✔ [1177/2229] Built Cli (505ms) -✔ [1180/2229] Built Cli.Extensions:c.o (504ms) -✔ [1181/2229] Built HoTTLean.Syntax.InversionLemmas (4.6s) -✔ [1182/2229] Built Cli:c.o (69ms) -✔ [1183/2229] Built HoTTLean.ForMathlib.CategoryTheory.NatTrans (1.9s) -⚠ [1184/2229] Built HoTTLean.ForMathlib.CategoryTheory.Grpd (2.2s) -warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:154:0: Definition `Grpd.Functor.iso_hom` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:159:0: Definition `Grpd.Functor.iso_inv` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -✔ [1185/2229] Built HoTTLean.Syntax.GCongr (1.6s) -✔ [1186/2229] Built Cli.Basic:c.o (3.1s) -⚠ [1188/2229] Built HoTTLean.ForMathlib.CategoryTheory.Functor.IsPullback (3.8s) -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:657:0: Definition `hCLeft` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:881:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:884:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:887:0: Definition `uniq` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:894:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:932:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:935:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:938:0: Definition `uniq` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:944:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -ℹ [1189/2229] Built «doc-gen4»/bibPrepass (1.2s) -info: stdout: -INFO: reference page disabled -✔ [1190/2229] Built HoTTLean.Syntax.Synth (2.6s) -✔ [1191/2229] Built HoTTLean.Model.Unstructured.UnstructuredUniverse (5.6s) -⚠ [1192/2229] Built HoTTLean.ForMathlib.CategoryTheory.Core (2.0s) -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:25:0: Definition `comp_inclusion_injective` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:142:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:144:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1193/2229] Built HoTTLean.Syntax.Axioms (2.3s) -warning: HoTTLean/Syntax/Axioms.lean:33:7: Variable name `E` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _E - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -⚠ [1194/2229] Built HoTTLean.Model.Unstructured.UHom (3.0s) -warning: HoTTLean/Model/Unstructured/UHom.lean:38:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Model/Unstructured/UHom.lean:104:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Model/Unstructured/UHom.lean:139:0: automatically included section variable(s) unused in theorem `Model.UnstructuredUniverse.Hom.extCompMapTyIsoExt_hom_comp_substWk`: - [ChosenTerminal Ctx] -consider restructuring your `variable` declarations so that the variables are not in scope or explicitly omit them: - omit [ChosenTerminal Ctx] in theorem ... - -Note: This linter can be disabled with `set_option linter.unusedSectionVars false` -warning: HoTTLean/Model/Unstructured/UHom.lean:374:0: Definition `Model.UnstructuredUniverse.UHomSeq.PiSeq.ofMonomorphic` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. -✔ [1195/2229] Built HoTTLean.Model.Unstructured.Hurewicz (5.5s) -✔ [1196/2229] Built HoTTLean.Typechecker.Value (3.0s) -✔ [1197/2229] Built HoTTLean.Frontend.Checked (1.6s) -✔ [1198/2229] Built HoTTLean.Typechecker.ValueInversion (2.7s) -⚠ [1199/2229] Built HoTTLean.ForMathlib.CategoryTheory.Bicategory.Grothendieck (12s) -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:587:0: Definition `transport_base` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:591:0: Definition `transport_fiber` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:605:0: Definition `toTransport_base` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:609:0: Definition `toTransport_fiber` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1200/2229] Built HoTTLean.Frontend.EnvExt (2.2s) -warning: HoTTLean/Frontend/EnvExt.lean:65:15: Overlapping instance parameters in `TheoryExt`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:71:4: Overlapping instance parameters in `mkInitTheoryData`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:106:19: Overlapping instance parameters in `theoryExt`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:106:0: Overlapping instance parameters in `initFn✝`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:151:4: Overlapping instance parameters in `saveTheoryDecl`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:164:4: Overlapping instance parameters in `saveShallowTheoryConst`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:170:4: Overlapping instance parameters in `getTheoryData`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:177:4: Overlapping instance parameters in `setTheoryData`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -✔ [1201/2229] Built HoTTLean.Frontend.Translation (2.1s) -⚠ [1202/2229] Built HoTTLean.Grothendieck.Groupoidal.Basic (5.5s) -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:46:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpIdComp`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:52:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpCompId`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:176:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.eta`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:180:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.Hom.eta`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:485:0: Definition `ι_comp_functorFrom` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -✔ [1203/2229] Built HoTTLean.Typechecker.Evaluate (7.9s) -⚠ [1204/2229] Built HoTTLean.Pointed.Basic (3.5s) -warning: HoTTLean/Pointed/Basic.lean:22:0: `PCat`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -warning: HoTTLean/Pointed/Basic.lean:152:0: `PGrpd`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -✔ [1205/2229] Built HoTTLean.Grothendieck.IsPullback (2.5s) -✔ [1206/2229] Built HoTTLean.Pointed.IsPullback (1.8s) -✔ [1207/2229] Built HoTTLean.Model.Unstructured.Interpretation (18s) -✔ [1208/2229] Built HoTTLean.Typechecker.Equate (7.2s) -⚠ [1209/2229] Built HoTTLean.Grothendieck.Groupoidal.IsPullback (2.4s) -warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:173:0: Definition `sec_toPGrpd` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:182:0: Definition `sec_forget` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1210/2229] Built HoTTLean.Groupoids.Basic (2.5s) -warning: HoTTLean/Groupoids/Basic.lean:37:0: Definition `pGrpdToGroupoidalAsSmallFunctor_groupoidalAsSmallFunctorToPGrpd` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Basic.lean:41:0: Definition `groupoidalAsSmallFunctorToPGrpd_pGrpdToGroupoidalAsSmallFunctor` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Basic.lean:45:0: Definition `pGrpdToGroupoidalAsSmallFunctor_forget` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Basic.lean:120:0: `Ty`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -warning: HoTTLean/Groupoids/Basic.lean:124:0: `Tm`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -✔ [1211/2229] Built HoTTLean.Groupoids.IsPullback (3.1s) -✔ [1212/2229] Built HoTTLean.Typechecker.Synth (6.9s) -⚠ [1213/2229] Built HoTTLean.Groupoids.UnstructuredModel (2.7s) -warning: HoTTLean/Groupoids/UnstructuredModel.lean:22:0: `U`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -✔ [1214/2229] Built HoTTLean.Frontend.Commands (3.9s) -✔ [1215/2229] Built HoTTLean.Groupoids.Sigma (28s) -⚠ [1216/2229] Built HoTTLean.Groupoids.Pi (36s) -warning: HoTTLean/Groupoids/Pi.lean:350:0: Definition `obj_hext` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Pi.lean:355:0: Definition `hom_hext` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Pi.lean:365:0: Definition `hom_hext'` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1217/2229] Built HoTTLean.Groupoids.ClovenIsofibration (5.0s) -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:156:4: The namespace `map` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.classifier.map.map`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:279:4: The namespace `hom` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.grothendieckClassifierIso.hom.hom`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `CategoryTheory.Functor.ClovenIsofibration.toTransport_IsIso` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `toTransport_IsIso` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:469:0: Definition `forget.liftObj_id` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:474:0: Definition `forget.liftIso_id` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1218/2229] Built HoTTLean.Groupoids.Id (9.4s) -warning: HoTTLean/Groupoids/Id.lean:841:0: `I_map_obj_ff`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -✔ [1219/2229] Built HoTTLean (2.4s) -ℹ [1220/2232] Built «doc-gen4»/coreDocs (435s) -info: stdout: -WARNING: Failed to calculate equational lemmata for Std.Time.DateTime.weekOfYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekday: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekOfYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -info: stdout: -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeValueArray: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeDateTime: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeTable: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lake.lowerHexUInt64: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeBool: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeInt: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeFloat: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeString: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeNat: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -info: stdout: -WARNING: Failed to calculate equational lemmata for Lean.Elab.Command.elabElabRulesAux: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Compiler.LCNF.CodeDecl.collectUsed: Tactic `simp` failed with a nested error: -(deterministic) timeout at `simp`, maximum number of heartbeats (5000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit. - -Hint: Additional diagnostic information may be available using the `set_option diagnostics true` command. -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ensureEvalTerm: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Meta.simpHaveTelescope: failed to generate equational theorem for `Lean.Meta.simpHaveTelescope` -m : Type → Type -inst : Monad m -inst_1 : MonadLiftT Lean.MetaM m -inst_2 : MonadControlT Lean.MetaM m -inst_3 : Lean.Meta.MonadSimp m -e : Lean.Expr -⊢ (do - let info ← liftM (Lean.Meta.getHaveTelescopeInfo e) - if (!info.haveInfo.isEmpty) = true then do - let __x ← liftM (info.computeFixedUsed true) - let r ← Lean.Meta.simpHaveTelescopeAux✝ info __x.fst __x.snd e 0 (Array.mkEmpty info.haveInfo.size) - liftM (Lean.Meta.SimpHaveResult.toResult✝ info.level e r true) - else - panicWithPosWithDecl "Lean.Meta.HaveTelescope" "Lean.Meta.simpHaveTelescope" 456 2 - ("assertion violation: " ++ "!info.haveInfo.isEmpty\n ")) = - do - let info ← liftM (Lean.Meta.getHaveTelescopeInfo e) - if (!info.haveInfo.isEmpty) = true then do - let __x ← liftM (info.computeFixedUsed false) - let r ← Lean.Meta.simpHaveTelescopeAux✝ info __x.fst __x.snd e 0 (Array.mkEmpty info.haveInfo.size) - liftM (Lean.Meta.SimpHaveResult.toResult✝ info.level e r true) - else - panicWithPosWithDecl "Lean.Meta.HaveTelescope" "Lean.Meta.simpHaveTelescope" 456 2 - ("assertion violation: " ++ "!info.haveInfo.isEmpty\n ") -WARNING: Failed to calculate equational lemmata for Lean.Doc.leanRole: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs: failed to generate equational theorem for `Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs` - no progress at goal - α : Type - m : Type → Type - inst✝² : Monad m - inst✝¹ : MonadReaderOf Lean.SubExpr m - inst✝ : MonadWithReaderOf Lean.SubExpr m - maxArgs : Nat - xf : m α - xa : α → m α - r : Nat.below maxArgs := - (Nat.brecOn.go maxArgs (Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs._f xf xa)).2 - ⊢ (do - let __do_lift ← Lean.PrettyPrinter.Delaborator.SubExpr.getExpr - (match (motive := (maxArgs : Nat) → Lean.Expr → Nat.rec PUnit (fun n n_ih => m α ×' n_ih) maxArgs → m α) - maxArgs, __do_lift with - | maxArgs'.succ, fn.app arg => fun x => do - let acc ← Lean.PrettyPrinter.Delaborator.SubExpr.withAppFn x.1 - Lean.PrettyPrinter.Delaborator.SubExpr.withAppArg (xa acc) - | x, x_1 => fun x => xf) - r) = - do - let __do_lift ← Lean.PrettyPrinter.Delaborator.SubExpr.getExpr - match maxArgs, __do_lift with - | maxArgs'.succ, fn.app arg => do - let acc ← - Lean.PrettyPrinter.Delaborator.SubExpr.withAppFn - (Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs maxArgs' xf xa) - Lean.PrettyPrinter.Delaborator.SubExpr.withAppArg (xa acc) - | x, x_1 => xf -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ConfigItem.throwInvalidOption: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ensureEvalExpr: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Elab.Term.mkCoe: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.evalMetaEval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ConfigItem.throwCannotSetOption: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Meta.Grind.pushNot: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Server.Completion.dotIdCompletion: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Syntax.asNode: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.CodeAction.holeCodeActionProvider: failed to generate equality theorems for `match` expression `_private.Lean.Server.CodeActions.Provider.0.Lean.CodeAction.holeCodeActionProvider.match_7` -case isTrue -motive✝ : Array (Lean.Elab.ContextInfo × Lean.Elab.TermInfo) → Sort u_1 -x✝¹ : Array (Lean.Elab.ContextInfo × Lean.Elab.TermInfo) -h_1✝ : (ctx : Lean.Elab.ContextInfo) → (info : Lean.Elab.TermInfo) → motive✝ #[(ctx, info)] -h_2✝ : (x : Array (Lean.Elab.ContextInfo × Lean.Elab.TermInfo)) → motive✝ x -x✝ : ∀ (ctx : Lean.Elab.ContextInfo) (info : Lean.Elab.TermInfo), x✝¹ = #[(ctx, info)] → False -h✝ : x✝¹.size = 1 -⊢ (⋯ ▸ fun h => ⋯ ▸ Prod.casesOn (x✝¹.getLit 0 ⋯ ⋯) fun fst snd => h_1✝ fst snd) ⋯ = h_2✝ x✝¹ -WARNING: Failed to calculate equational lemmata for Lean.Elab.Tactic.evalGrindCore: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Meta.Tactic.TryThis.addRewriteSuggestion: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Level.collectMVars: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.deriveEvalExprUsingMetaEval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -ℹ [1221/2352] Ran Qq:srcUri.github -info: Found git remote for Qq at https://github.com/leanprover-community/quote4 @ 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 -ℹ [1222/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1223/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1224/2352] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1226/2352] Ran importGraph:srcUri.github -info: Found git remote for importGraph at https://github.com/leanprover-community/import-graph @ e928b72544873815af278d38681b31c0293588e3 -ℹ [1230/2352] Ran plausible:srcUri.github -info: Found git remote for plausible at https://github.com/leanprover-community/plausible @ 118aa17ee84656b8bd727fef7c458ee8c833385c -ℹ [1231/2352] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1232/2352] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1233/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1235/2352] Ran Qq:srcUri.github -info: Found git remote for Qq at https://github.com/leanprover-community/quote4 @ 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 -ℹ [1236/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1237/2352] Ran importGraph:srcUri.github -info: Found git remote for importGraph at https://github.com/leanprover-community/import-graph @ e928b72544873815af278d38681b31c0293588e3 -ℹ [1238/2352] Ran proofwidgets:srcUri.github -info: Found git remote for proofwidgets at https://github.com/leanprover-community/ProofWidgets4 @ 106ff4fafc74ef4ac99d81dbf3ab399118f497a5 -ℹ [1241/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1242/2352] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1243/2352] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1244/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1245/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1246/2352] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1247/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1248/2352] Ran plausible:srcUri.github -info: Found git remote for plausible at https://github.com/leanprover-community/plausible @ 118aa17ee84656b8bd727fef7c458ee8c833385c -ℹ [1249/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1250/2352] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1251/2352] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1252/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1253/2352] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1254/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1256/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1258/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1259/2352] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1260/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1261/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1263/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1264/2352] Ran Qq:srcUri.github -info: Found git remote for Qq at https://github.com/leanprover-community/quote4 @ 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 -ℹ [1265/2352] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1266/2352] Ran importGraph:srcUri.github -info: Found git remote for importGraph at https://github.com/leanprover-community/import-graph @ e928b72544873815af278d38681b31c0293588e3 -ℹ [1267/2352] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1305/2475] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1381/2475] Ran Qq:srcUri.github -info: Found git remote for Qq at https://github.com/leanprover-community/quote4 @ 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 -ℹ [1382/2475] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1396/2475] Ran LeanSearchClient:srcUri.github -info: Found git remote for LeanSearchClient at https://github.com/leanprover-community/LeanSearchClient @ ddf04cf3949fa556442341e87d47f9f6e6074707 -ℹ [1397/2475] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1398/2475] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1399/2475] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1412/2475] Ran mathlib:srcUri.github -info: Found git remote for mathlib at https://github.com/leanprover-community/mathlib4 @ d13f23b723b8a846827a245b89c10fc7d3f11612 -ℹ [1413/2475] Ran proofwidgets:srcUri.github -info: Found git remote for proofwidgets at https://github.com/leanprover-community/ProofWidgets4 @ 106ff4fafc74ef4ac99d81dbf3ab399118f497a5 -✔ [1420/2476] Built aesop/Aesop.Forward.PremiseIndex:docInfo (2.7s) -✔ [1421/2476] Built aesop/Aesop.Util.UnionFind:docInfo (3.2s) -✔ [1422/2476] Built batteries/Batteries.Lean.TagAttribute:docInfo (3.3s) -✔ [1423/2476] Built plausible/Plausible.Shrinkable:docInfo (3.3s) -ℹ [1424/2476] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1425/2476] Ran plausible:srcUri.github -info: Found git remote for plausible at https://github.com/leanprover-community/plausible @ 118aa17ee84656b8bd727fef7c458ee8c833385c -ℹ [1426/2476] Ran hottlean:srcUri.github -info: Found git remote for hottlean at https://github.com/sosudo/HoTTLean @ 20c4b230b0e0ae41e8fe2e8cb020a80908a3de57 -ℹ [1427/2476] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1428/2476] Ran hottlean:srcUri.github -info: Found git remote for hottlean at https://github.com/sosudo/HoTTLean @ 20c4b230b0e0ae41e8fe2e8cb020a80908a3de57 -ℹ [1448/2476] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -✔ [1452/2478] Built importGraph/ImportGraph.Lean.Environment:docInfo (3.4s) -✔ [1453/2478] Built batteries/Batteries.Lean.Syntax:docInfo (3.5s) -✔ [1454/2478] Built batteries/Batteries.Lean.Meta.Basic:docInfo (3.8s) -✔ [1455/2478] Built aesop/Aesop.Check:docInfo (3.8s) -✔ [1456/2478] Built batteries/Batteries.Tactic.SeqFocus:docInfo (3.5s) -✔ [1457/2478] Built Qq/Qq.ForLean.ToExpr:docInfo (3.8s) -ℹ [1460/2479] Ran aesop:srcUri.github -info: Found git remote for aesop at https://github.com/leanprover-community/aesop @ 355695d523e41d0554926416cba2a2b3544fbbc9 -ℹ [1461/2479] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1472/2480] Ran batteries:srcUri.github -info: Found git remote for batteries at https://github.com/leanprover-community/batteries @ f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -ℹ [1475/2480] Ran hottlean:srcUri.github -info: Found git remote for hottlean at https://github.com/sosudo/HoTTLean @ 20c4b230b0e0ae41e8fe2e8cb020a80908a3de57 -✔ [1482/2481] Built importGraph/ImportGraph.Graph.TransitiveClosure:docInfo (4.0s) -✔ [1483/2481] Built batteries/Batteries.Lean.PersistentHashMap:docInfo (4.0s) -✔ [1484/2481] Built batteries/Batteries.Lean.HashSet:docInfo (3.9s) -✔ [1485/2481] Built proofwidgets/ProofWidgets.Compat:docInfo (4.0s) -✔ [1486/2481] Built batteries/Batteries.Control.LawfulMonadState:docInfo (3.0s) -✔ [1488/2482] Built importGraph/ImportGraph.Imports.ImportGraph:docInfo (4.2s) -✔ [1489/2482] Built Qq/Qq.SortLocalDecls:docInfo (4.2s) -✔ [1490/2482] Built batteries/Batteries.Tactic.Congr:docInfo (4.2s) -✔ [1492/2485] Built aesop/Aesop.Script.GoalWithMVars:docInfo (4.2s) -✔ [1493/2485] Built Qq/Qq.Typ:docInfo (4.3s) -✔ [1497/2488] Built batteries/Batteries.Tactic.Lint.Basic:docInfo (4.4s) -✔ [1498/2488] Built aesop/Aesop.Nanos:docInfo (4.4s) -✔ [1499/2488] Built aesop/Aesop.RuleSet.Name:docInfo (3.3s) -✔ [1503/2488] Built batteries/Batteries.Tactic.OpenPrivate:docInfo (4.5s) -✔ [1504/2490] Built aesop/Aesop.Index.DiscrTreeConfig:docInfo (4.8s) -✔ [1505/2490] Built Qq/Qq.ForLean.ReduceEval:docInfo (4.8s) -✔ [1506/2490] Built LeanSearchClient/LeanSearchClient.Basic:docInfo (4.8s) -✔ [1509/2491] Built aesop/Aesop.Percent:docInfo (3.9s) -✔ [1510/2491] Built aesop/Aesop.Util.OrderedHashSet:docInfo (4.9s) -✔ [1511/2491] Built batteries/Batteries.Lean.Meta.Expr:docInfo (4.8s) -✔ [1513/2492] Built batteries/Batteries.Lean.Position:docInfo (5.1s) -✔ [1514/2492] Built batteries/Batteries.Lean.MonadBacktrack:docInfo (5.1s) -✔ [1515/2492] Built plausible/Plausible.DeriveShrinkable:docInfo (1.3s) -✔ [1517/2494] Built mathlib/Mathlib.Tactic.Linter.DirectoryDependency:docInfo (5.3s) -✔ [1518/2494] Built batteries/Batteries.Control.ForInStep.Basic:docInfo (4.1s) -✔ [1519/2494] Built batteries/Batteries.Lean.Except:docInfo (5.3s) -✔ [1522/2494] Built aesop/Aesop.Script.Tactic:docInfo (5.4s) -✔ [1523/2494] Built aesop/Aesop.Frontend.Basic:docInfo (5.4s) -✔ [1524/2494] Built batteries/Batteries.Tactic.Case:docInfo (5.4s) -✔ [1525/2494] Built batteries/Batteries.Tactic.Lint.TypeClass:docInfo (1.1s) -✔ [1526/2494] Built batteries/Batteries.Lean.Meta.Inaccessible:docInfo (5.6s) -✔ [1527/2494] Built aesop/Aesop.Forward.LevelIndex:docInfo (5.7s) -✔ [1528/2494] Built batteries/Batteries.Data.Nat.Basic:docInfo (5.8s) -✔ [1529/2494] Built batteries/Batteries.Tactic.PermuteGoals:docInfo (5.9s) -✔ [1530/2494] Built batteries/Batteries.Lean.NameMapAttribute:docInfo (5.9s) -✔ [1531/2496] Built importGraph/ImportGraph.Imports.Redundant:docInfo (1.8s) -✔ [1532/2496] Built batteries/Batteries.Control.Lemmas:docInfo (6.0s) -✔ [1533/2496] Built batteries/Batteries.Control.OptionT:docInfo (1.9s) -✔ [1536/2500] Built batteries/Batteries.Data.Array.Merge:docInfo (4.9s) -✔ [1537/2500] Built batteries/Batteries.CodeAction.Deprecated:docInfo (6.1s) -✔ [1538/2500] Built aesop/Aesop.ElabM:docInfo (4.0s) -✔ [1539/2500] Built batteries/Batteries.Util.ExtendedBinder:docInfo (6.1s) -✔ [1540/2500] Built batteries/Batteries.Util.Cache:docInfo (6.1s) -✔ [1545/2502] Built aesop/Aesop.Options.Public:docInfo (5.0s) -✔ [1546/2502] Built batteries/Batteries.Lean.Meta.UnusedNames:docInfo (5.0s) -✔ [1547/2502] Built batteries/Batteries.Lean.PersistentHashSet:docInfo (6.2s) -✔ [1548/2502] Built aesop/Aesop.Exception:docInfo (6.2s) -✔ [1549/2502] Built batteries/Batteries.Tactic.Trans:docInfo (6.2s) -✔ [1550/2502] Built plausible/Plausible.Attr:docInfo (6.2s) -✔ [1551/2502] Built proofwidgets/ProofWidgets.Util:docInfo (6.2s) -✔ [1552/2502] Built hottlean/HoTTLean.Syntax.Basic:docInfo (6.2s) -✔ [1555/2505] Built batteries/Batteries.Tactic.Unreachable:docInfo (6.3s) -✔ [1556/2505] Built importGraph/ImportGraph.Imports.RequiredModules:docInfo (2.5s) -✔ [1560/2507] Built batteries/Batteries.Tactic.Lint.Misc:docInfo (2.0s) -✔ [1561/2507] Built batteries/Batteries.Tactic.Init:docInfo (6.4s) -✔ [1562/2507] Built aesop/Aesop.Util.Tactic:docInfo (5.4s) -✔ [1563/2507] Built batteries/Batteries.Lean.Meta.InstantiateMVars:docInfo (2.5s) -✔ [1564/2507] Built plausible/Plausible.Random:docInfo (6.4s) -✔ [1567/2509] Built aesop/Aesop.Script.TacticState:docInfo (2.3s) -✔ [1568/2509] Built aesop/Aesop.Rule.Name:docInfo (6.6s) -✔ [1571/2512] Built aesop/Aesop.Forward.SlotIndex:docInfo (6.7s) -✔ [1572/2512] Built Qq/Qq.ForLean.Do:docInfo (6.8s) -✔ [1573/2512] Built proofwidgets/ProofWidgets.Component.Basic:docInfo (2.5s) -✔ [1577/2514] Built importGraph/ImportGraph.Tools.RedundantImports:docInfo (1.0s) -✔ [1578/2514] Built Qq/Qq.Macro:docInfo (2.2s) -✔ [1581/2521] Built batteries/Batteries.Util.LibraryNote:docInfo (7.4s) -✔ [1582/2521] Built batteries/Batteries.Tactic.Alias:docInfo (1.2s) -✔ [1583/2521] Built batteries/Batteries.Lean.AttributeExtra:docInfo (3.9s) -✔ [1591/2521] Built batteries/Batteries.Control.ForInStep.Lemmas:docInfo (2.2s) -✔ [1592/2523] Built importGraph/ImportGraph.Tools.MinImports:docInfo (1.2s) -✔ [1593/2523] Built aesop/Aesop.Util.Unfold:docInfo (6.7s) -✔ [1594/2523] Built aesop/Aesop.Search.Expansion.Simp:docInfo (6.4s) -✔ [1595/2523] Built batteries/Batteries.Control.AlternativeMonad:docInfo (1.6s) -✔ [1598/2523] Built hottlean/HoTTLean.Tactic.MutualInduction:docInfo (7.5s) -✔ [1599/2525] Built aesop/Aesop.Util.UnorderedArraySet:docInfo (1.7s) -✔ [1600/2525] Built aesop/Aesop.Constants:docInfo (2.8s) -✔ [1601/2525] Built plausible/Plausible.Gen:docInfo (1.4s) -✔ [1604/2525] Built aesop/Aesop.RuleTac.ElabRuleTerm:docInfo (1.8s) -✔ [1605/2525] Built aesop/Aesop.Options.Internal:docInfo (1.8s) -✔ [1606/2525] Built aesop/Aesop.Script.OptimizeSyntax:docInfo (7.0s) -✔ [1607/2527] Built batteries/Batteries.Lean.Meta.SavedState:docInfo (2.9s) -✔ [1608/2527] Built batteries/Batteries.Linter.UnreachableTactic:docInfo (1.7s) -✔ [1609/2527] Built aesop/Aesop.RuleTac.RuleTerm:docInfo (1.5s) -✔ [1610/2527] Built batteries/Batteries.CodeAction.Attr:docInfo (8.0s) -✔ [1613/2553] Built mathlib/Mathlib.Tactic.Linter.Header:docInfo (2.9s) -✔ [1614/2553] Built importGraph/ImportGraph.Tools.ImportDiff:docInfo (3.0s) -✔ [1615/2553] Built hottlean/HoTTLean.Tactic.GrindCases:docInfo (7.3s) -✔ [1642/2554] Built batteries/Batteries.Lean.Meta.DiscrTree:docInfo (2.2s) -✔ [1644/2554] Built batteries/Batteries.Util.ProofWanted:docInfo (1.0s) -✔ [1645/2554] Built proofwidgets/ProofWidgets.Component.MakeEditLink:docInfo (1.6s) -✔ [1646/2554] Built proofwidgets/ProofWidgets.Cancellable:docInfo (2.4s) -✔ [1647/2555] Built aesop/Aesop.RuleSet.Filter:docInfo (2.2s) -✔ [1648/2555] Built batteries/Batteries.Lean.Expr:docInfo (8.7s) -✔ [1649/2555] Built proofwidgets/ProofWidgets.Component.Panel.Basic:docInfo (1.0s) -✔ [1651/2555] Built batteries/Batteries.Tactic.HelpCmd:docInfo (1.4s) -✔ [1652/2555] Built batteries/Batteries.Tactic.Lint.Simp:docInfo (1.5s) -✔ [1653/2555] Built aesop/Aesop.Util.EqualUpToIds:docInfo (4.8s) -✔ [1654/2555] Built aesop/Aesop.Util.Tactic.Unfold:docInfo (1.2s) -✔ [1655/2556] Built Qq/Qq.Delab:docInfo (1.9s) -✔ [1656/2556] Built Qq/Qq.Commands:docInfo (1.9s) -✔ [1658/2557] Built plausible/Plausible.Arbitrary:docInfo (1.3s) -✔ [1660/2558] Built batteries/Batteries.Logic:docInfo (1.9s) -✔ [1662/2559] Built LeanSearchClient/LeanSearchClient.Syntax:docInfo (4.4s) -✔ [1663/2559] Built batteries/Batteries.Tactic.Exact:docInfo (1.9s) -✔ [1665/2559] Built mathlib/Mathlib.Tactic.Linter.AuxLemma:docInfo (1.4s) -✔ [1666/2559] Built mathlib/Mathlib.Tactic.Linter.TacticDocumentation:docInfo (1.4s) -✔ [1667/2560] Built mathlib/Mathlib.Lean.Linter:docInfo (1.5s) -✔ [1668/2560] Built mathlib/Mathlib.Tactic.Linter.DeprecatedSyntaxLinter:docInfo (1.4s) -✔ [1669/2560] Built mathlib/Mathlib.Tactic.Linter.UnusedTacticExtension:docInfo (1.4s) -✔ [1671/2560] Built mathlib/Mathlib.Tactic.Linter.PrivateModule:docInfo (1.5s) -✔ [1672/2560] Built mathlib/Mathlib.Util.ParseCommand:docInfo (1.6s) -✔ [1673/2561] Built batteries/Batteries.Data.Nat.Lemmas:docInfo (2.5s) -✔ [1675/2564] Built mathlib/Mathlib.Tactic.Linter.Multigoal:docInfo (1.8s) -✔ [1676/2564] Built proofwidgets/ProofWidgets.Data.Html:docInfo (3.2s) -✔ [1680/2565] Built batteries/Batteries.Linter.UnnecessarySeqFocus:docInfo (2.9s) -✔ [1682/2568] Built mathlib/Mathlib.Tactic.AdaptationNote:docInfo (2.1s) -✔ [1683/2568] Built plausible/Plausible.Sampleable:docInfo (1.2s) -✔ [1684/2568] Built plausible/Plausible.ArbitraryFueled:docInfo (1.2s) -✔ [1688/2568] Built mathlib/Mathlib.Tactic.Linter.DocPrime:docInfo (2.2s) -✔ [1689/2568] Built mathlib/Mathlib.Tactic.Linter.GlobalAttributeIn:docInfo (2.2s) -✔ [1690/2568] Built mathlib/Mathlib.Tactic.Linter.HaveILetI:docInfo (2.2s) -✔ [1691/2568] Built hottlean/HoTTLean.Typechecker.Cache:docInfo (10s) -✔ [1692/2571] Built mathlib/Mathlib.Lean.Elab.Tactic.Meta:docInfo (2.5s) -✔ [1693/2571] Built Qq/Qq.MetaM:docInfo (1.7s) -✔ [1697/2572] Built batteries/Batteries.Tactic.GeneralizeProofs:docInfo (2.0s) -✔ [1699/2574] Built mathlib/Mathlib.Util.CodeActions.BinderPlicity:docInfo (2.7s) -✔ [1700/2574] Built LeanSearchClient/LeanSearchClient.LoogleSyntax:docInfo (1.6s) -✔ [1701/2574] Built proofwidgets/ProofWidgets.Component.FilterDetails:docInfo (967ms) -✔ [1704/2575] Built batteries/Batteries.Tactic.Lint.Frontend:docInfo (6.6s) -✔ [1705/2575] Built batteries/Batteries.CodeAction.Misc:docInfo (2.9s) -✔ [1707/2576] Built mathlib/Mathlib.Tactic.Linter.DocString:docInfo (2.9s) -✔ [1708/2576] Built batteries/Batteries.Data.MLList.Basic:docInfo (3.5s) -✔ [1710/2576] Built batteries/Batteries.Data.Fin.Basic:docInfo (1.5s) -✔ [1711/2576] Built mathlib/Mathlib.Tactic.Linter.HashCommandLinter:docInfo (3.3s) -✔ [1712/2576] Built mathlib/Mathlib.Tactic.Linter.Whitespace:docInfo (3.3s) -✔ [1713/2576] Built proofwidgets/ProofWidgets.Component.RefreshComponent:docInfo (1.5s) -✔ [1714/2577] Built mathlib/Mathlib.Tactic.Linter.OldObtain:docInfo (3.4s) -✔ [1715/2577] Built mathlib/Mathlib.Tactic.Linter.UnusedTactic:docInfo (1.0s) -✔ [1716/2577] Built mathlib/Mathlib.Tactic.TypeStar:docInfo (3.4s) -✔ [1717/2577] Built proofwidgets/ProofWidgets.Component.OfRpcMethod:docInfo (1.7s) -✔ [1719/2583] Built aesop/Aesop.Util.Basic:docInfo (3.9s) -✔ [1720/2583] Built plausible/Plausible.Functions:docInfo (1.5s) -✔ [1727/2585] Built mathlib/Mathlib.Tactic.Linter.InternalConstructor:docInfo (3.6s) -✔ [1728/2585] Built mathlib/Mathlib.Tactic.MinImports:docInfo (3.6s) -✔ [1731/2585] Built plausible/Plausible.DeriveArbitrary:docInfo (1.6s) -✔ [1732/2586] Built plausible/Plausible.Testable:docInfo (1.7s) -✔ [1734/2589] Built mathlib/Mathlib.Lean.Expr.Basic:docInfo (3.9s) -✔ [1735/2589] Built mathlib/Mathlib.Lean.Environment:docInfo (3.9s) -✔ [1736/2589] Built mathlib/Mathlib.Lean.ContextInfo:docInfo (1.4s) -✔ [1737/2589] Built batteries/Batteries.CodeAction.Basic:docInfo (4.1s) -✔ [1741/2589] Built mathlib/Mathlib.Tactic.Lemma:docInfo (4.1s) -✔ [1742/2589] Built mathlib/Mathlib.Tactic.Linter.EmptyLine:docInfo (3.0s) -✔ [1743/2589] Built mathlib/Mathlib.Util.CodeActions:docInfo (1.3s) -✔ [1744/2591] Built batteries/Batteries.Linter:docInfo (2.1s) -✔ [1745/2591] Built Qq/Qq.Simp:docInfo (1.6s) -ℹ [1746/2591] Built Qq/Qq.MatchImpl:docInfo (1.6s) -info: stdout: -WARNING: Failed to calculate equational lemmata for Qq.Impl.mkIsDefEqResult: failed -WARNING: Failed to obtain information for: Qq.Impl.mkLambdaQ: failed -✔ [1747/2591] Built Qq/Qq.AssertInstancesCommute:docInfo (1.6s) -✔ [1748/2591] Built LeanSearchClient/LeanSearchClient:docInfo (1.4s) -✔ [1751/2592] Built mathlib/Mathlib.Tactic.Linter.FlexibleLinter:docInfo (4.3s) -✔ [1752/2592] Built mathlib/Mathlib.Tactic.DeclarationNames:docInfo (4.2s) -✔ [1754/2596] Built batteries/Batteries.Data.List.Basic:docInfo (5.2s) -✔ [1759/2597] Built batteries/Batteries.Tactic.Lint:docInfo (1.8s) -✔ [1761/2597] Built mathlib/Mathlib.Tactic.ExtractGoal:docInfo (1.2s) -✔ [1762/2597] Built aesop/Aesop.RuleTac.Forward.Basic:docInfo (1.3s) -✔ [1763/2597] Built batteries/Batteries.Control.Nondet.Basic:docInfo (1.9s) -✔ [1764/2599] Built aesop/Aesop.Forward.Substitution:docInfo (1.5s) -✔ [1765/2599] Built mathlib/Mathlib.Tactic.Lift:docInfo (1.6s) -✔ [1766/2599] Built mathlib/Mathlib.Util.PrintSorries:docInfo (1.1s) -✔ [1769/2602] Built mathlib/Mathlib.Lean.Elab.InfoTree:docInfo (1.3s) -✔ [1770/2602] Built mathlib/Mathlib.Tactic.TacticAnalysis:docInfo (1.2s) -✔ [1771/2602] Built aesop/Aesop.Script.Util:docInfo (1.6s) -✔ [1772/2602] Built aesop/Aesop.Script.CtorNames:docInfo (1.6s) -✔ [1773/2602] Built plausible/Plausible.Tactic:docInfo (1.3s) -✔ [1777/2605] Built aesop/Aesop.Tracing:docInfo (1.7s) -✔ [1778/2605] Built aesop/Aesop.EMap:docInfo (1.7s) -✔ [1782/2605] Built mathlib/Mathlib.Tactic.Linter.MinImports:docInfo (1.7s) -✔ [1783/2605] Built batteries/Batteries.Data.List.Pairwise:docInfo (1.0s) -✔ [1784/2607] Built mathlib/Mathlib.Tactic.Linter.Lint:docInfo (905ms) -✔ [1785/2607] Built batteries/Batteries.Tactic.Basic:docInfo (1.4s) -✔ [1786/2607] Built batteries/Batteries.CodeAction.Match:docInfo (1.2s) -✔ [1787/2607] Built batteries/Batteries.Data.Fin.Lemmas:docInfo (1.3s) -✔ [1790/2609] Built mathlib/Mathlib.Tactic.Linter.Style:docInfo (1.4s) -ℹ [1791/2609] Built Qq/Qq.Match:docInfo (1.6s) -info: stdout: -WARNING: Failed to calculate equational lemmata for Qq.Impl.makeMatchCode: failed -WARNING: Failed to obtain information for: Qq.Impl.withLetHave: failed -WARNING: Failed to calculate equational lemmata for Qq.Impl.mkQqLets: failed -✔ [1792/2609] Built batteries/Batteries.Data.List.Lemmas:docInfo (1.4s) -✔ [1795/2609] Built aesop/Aesop.Index.Basic:docInfo (939ms) -✔ [1796/2610] Built mathlib/Mathlib.Tactic.Linter.UnusedInstancesInType:docInfo (907ms) -✔ [1798/2610] Built aesop/Aesop.RulePattern.Cache:docInfo (1.1s) -✔ [1799/2610] Built aesop/Aesop.Util.Tactic.Ext:docInfo (963ms) -✔ [1800/2610] Built plausible/Plausible:docInfo (1.0s) -✔ [1801/2612] Built aesop/Aesop.Script.Step:docInfo (1.1s) -✔ [1804/2615] Built mathlib/Mathlib.Tactic.TacticAnalysis.Declarations:docInfo (1.1s) -✔ [1805/2615] Built aesop/Aesop.Stats.Basic:docInfo (1.1s) -✔ [1809/2616] Built batteries/Batteries.Classes.Order:docInfo (999ms) -✔ [1810/2616] Built batteries/Batteries.CodeAction:docInfo (937ms) -✔ [1812/2618] Built Qq/Qq:docInfo (853ms) -✔ [1815/2619] Built batteries/Batteries.Data.List.Count:docInfo (989ms) -✔ [1817/2619] Built mathlib/Mathlib.Tactic.Linter.OverlappingInstances:docInfo (840ms) -✔ [1818/2621] Built aesop/Aesop.Script.UScript:docInfo (886ms) -✔ [1819/2621] Built aesop/Aesop.Script.SScript:docInfo (921ms) -✔ [1822/2625] Built aesop/Aesop.BaseM:docInfo (887ms) -✔ [1823/2625] Built aesop/Aesop.Stats.Extension:docInfo (943ms) -✔ [1824/2625] Built aesop/Aesop.Stats.File:docInfo (937ms) -✔ [1829/2625] Built hottlean/HoTTLean.Typechecker.Util:docInfo (808ms) -✔ [1830/2626] Built batteries/Batteries.Data.UInt:docInfo (984ms) -✔ [1832/2626] Built batteries/Batteries.Data.List.Perm:docInfo (1.0s) -✔ [1833/2626] Built batteries/Batteries.Data.BinomialHeap.Basic:docInfo (1.3s) -✔ [1834/2628] Built aesop/Aesop.Script.Check:docInfo (883ms) -✔ [1835/2628] Built aesop/Aesop.Script.UScriptToSScript:docInfo (885ms) -✔ [1838/2631] Built aesop/Aesop.RuleTac.GoalDiff:docInfo (923ms) -✔ [1839/2631] Built aesop/Aesop.RulePattern:docInfo (963ms) -✔ [1840/2631] Built aesop/Aesop.Script.ScriptM:docInfo (964ms) -✔ [1841/2631] Built aesop/Aesop.Stats.Report:docInfo (909ms) -✔ [1845/2632] Built batteries/Batteries.Data.Array.Basic:docInfo (957ms) -✔ [1847/2633] Built aesop/Aesop.Script.StructureDynamic:docInfo (880ms) -✔ [1848/2633] Built aesop/Aesop.Script.StructureStatic:docInfo (880ms) -✔ [1850/2633] Built aesop/Aesop.Index.RulePattern:docInfo (924ms) -✔ [1851/2635] Built aesop/Aesop.RuleTac.Basic:docInfo (996ms) -✔ [1854/2639] Built aesop/Aesop.Forward.RuleInfo:docInfo (990ms) -✔ [1855/2639] Built aesop/Aesop.Script.SpecificTactics:docInfo (1.2s) -✔ [1860/2639] Built aesop/Aesop.Script.Main:docInfo (1.0s) -✔ [1861/2639] Built aesop/Aesop.RuleTac.Tactic:docInfo (899ms) -✔ [1862/2639] Built aesop/Aesop.Search.Expansion.Basic:docInfo (910ms) -✔ [1863/2639] Built aesop/Aesop.RuleTac.Cases:docInfo (965ms) -✔ [1864/2639] Built aesop/Aesop.RuleTac.Preprocess:docInfo (1.1s) -✔ [1865/2640] Built aesop/Aesop.Rule.Forward:docInfo (1.2s) -ℹ [1867/2641] Built importGraph/ImportGraph.Tools.FindHome:docInfo (13s) -info: stdout: -WARNING: Failed to calculate equational lemmata for Lean.Name.findHome: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -✔ [1869/2643] Built aesop/Aesop.Forward.Match.Types:docInfo (994ms) -✔ [1872/2644] Built importGraph/ImportGraph.Tools:docInfo (838ms) -✔ [1874/2645] Built aesop/Aesop.RuleTac.Descr:docInfo (952ms) -✔ [1875/2645] Built aesop/Aesop.Index.Forward:docInfo (965ms) -✔ [1877/2645] Built aesop/Aesop.RuleTac.Apply:docInfo (3.3s) -✔ [1878/2686] Built mathlib/Mathlib.Init:docInfo (988ms) -✔ [1990/2757] Built aesop/Aesop.Rule.Basic:docInfo (1.1s) -✔ [1991/2757] Built mathlib/Mathlib.Tactic.ApplyWith:docInfo (1.3s) -✔ [1992/2757] Built mathlib/Mathlib.Tactic.ClearExclamation:docInfo (1.7s) -✔ [1993/2757] Built mathlib/Mathlib.Tactic.GCongr.ForwardAttr:docInfo (2.6s) -✔ [1994/2757] Built mathlib/Mathlib.Tactic.NthRewrite:docInfo (3.3s) -✔ [1995/2757] Built mathlib/Mathlib.Lean.FoldEnvironment:docInfo (3.4s) -✔ [1996/2757] Built mathlib/Mathlib.Lean.Meta.RefinedDiscrTree.Basic:docInfo (2.6s) -✔ [1997/2757] Built mathlib/Mathlib.Lean.GoalsLocation:docInfo (2.8s) -✔ [1998/2757] Built mathlib/Mathlib.Tactic.Coe:docInfo (1.6s) -✔ [1999/2757] Built mathlib/Mathlib.Tactic.Constructor:docInfo (2.9s) -✔ [2000/2757] Built mathlib/Mathlib.Tactic.DeprecateTo:docInfo (1.5s) -✔ [2001/2757] Built mathlib/Mathlib.Tactic.ExistsI:docInfo (1.7s) -✔ [2002/2757] Built mathlib/Mathlib.Tactic.Find:docInfo (4.6s) -✔ [2003/2757] Built mathlib/Mathlib.Tactic.FunProp.Mor:docInfo (3.6s) -✔ [2004/2757] Built mathlib/Mathlib.Tactic.FunProp.ToBatteries:docInfo (4.7s) -✔ [2005/2757] Built mathlib/Mathlib.Tactic.InferParam:docInfo (4.2s) -✔ [2006/2757] Built mathlib/Mathlib.Tactic.GrindAttrs:docInfo (4.1s) -✔ [2007/2757] Built mathlib/Mathlib.Tactic.GuardHypNums:docInfo (4.6s) -✔ [2008/2757] Built mathlib/Mathlib.Tactic.Linter.PPRoundtrip:docInfo (2.6s) -✔ [2009/2757] Built mathlib/Mathlib.Tactic.Observe:docInfo (4.7s) -✔ [2010/2757] Built mathlib/Mathlib.Tactic.OfNat:docInfo (4.8s) -✔ [2011/2757] Built mathlib/Mathlib.Tactic.RSuffices:docInfo (1.8s) -✔ [2012/2757] Built mathlib/Mathlib.Tactic.Recover:docInfo (4.4s) -✔ [2013/2757] Built mathlib/Mathlib.Tactic.Rename:docInfo (4.9s) -✔ [2014/2757] Built mathlib/Mathlib.Util.Tactic:docInfo (4.5s) -✔ [2015/2757] Built mathlib/Mathlib.Tactic.Set:docInfo (3.4s) -✔ [2016/2757] Built mathlib/Mathlib.Tactic.Simproc.ExistsAndEq:docInfo (2.1s) -✔ [2017/2757] Built mathlib/Mathlib.Tactic.Spread:docInfo (4.0s) -✔ [2018/2757] Built mathlib/Mathlib.Tactic.Substs:docInfo (4.6s) -✔ [2019/2757] Built mathlib/Mathlib.Tactic.SudoSetOption:docInfo (5.2s) -✔ [2020/2757] Built mathlib/Mathlib.Tactic.ToExpr:docInfo (2.7s) -✔ [2021/2757] Built mathlib/Mathlib.Tactic.Trace:docInfo (3.8s) -✔ [2022/2757] Built mathlib/Mathlib.Tactic.UnsetOption:docInfo (2.2s) -✔ [2023/2757] Built mathlib/Mathlib.Util.CountHeartbeats:docInfo (2.9s) -✔ [2024/2757] Built mathlib/Mathlib.Util.TransImports:docInfo (1.5s) -✔ [2025/2757] Built mathlib/Mathlib.Util.WhatsNew:docInfo (1.7s) -✔ [2026/2757] Built mathlib/Mathlib.Tactic.CategoryTheory.CategoryStar:docInfo (1.4s) -✔ [2027/2757] Built mathlib/Mathlib.Data.Ordering.Basic:docInfo (3.6s) -✔ [2028/2757] Built mathlib/Mathlib.Tactic.FastInstance:docInfo (3.2s) -✔ [2029/2757] Built mathlib/Mathlib.Logic.Function.ULift:docInfo (2.1s) -✔ [2030/2757] Built mathlib/Mathlib.Data.Int.Notation:docInfo (4.3s) -✔ [2031/2757] Built mathlib/Mathlib.Control.ULift:docInfo (4.2s) -✔ [2032/2757] Built mathlib/Mathlib.Data.Prod.PProd:docInfo (1.3s) -✔ [2033/2757] Built mathlib/Mathlib.Util.PPOptions:docInfo (3.4s) -✔ [2034/2757] Built mathlib/Mathlib.CategoryTheory.ConcreteCategory.Notation:docInfo (2.3s) -✔ [2035/2757] Built mathlib/Mathlib.Data.List.Monad:docInfo (1.9s) -✔ [2036/2757] Built mathlib/Mathlib.Data.Int.DivMod:docInfo (2.6s) -✔ [2037/2757] Built mathlib/Mathlib.Data.List.TFAE:docInfo (1.7s) -✔ [2038/2757] Built mathlib/Mathlib.Tactic.CategoryTheory.Coherence.Datatypes:docInfo (2.8s) -✔ [2048/2767] Built mathlib/Mathlib.Tactic.Core:docInfo (5.8s) -✔ [2049/2767] Built mathlib/Mathlib.Tactic.ApplyCongr:docInfo (2.7s) -✔ [2050/2767] Built mathlib/Mathlib.Tactic.CasesM:docInfo (3.7s) -✔ [2051/2767] Built mathlib/Mathlib.Tactic.DSimpPercent:docInfo (5.6s) -✔ [2052/2767] Built mathlib/Mathlib.Tactic.Linter.UpstreamableDecl:docInfo (5.3s) -✔ [2053/2767] Built mathlib/Mathlib.Tactic.SwapVar:docInfo (5.6s) -✔ [2054/2767] Built mathlib/Mathlib.Tactic.Variable:docInfo (6.0s) -✔ [2055/2767] Built mathlib/Mathlib.Tactic.TryThis:docInfo (5.6s) -✔ [2056/2767] Built mathlib/Mathlib.Util.CompileInductive:docInfo (5.5s) -✔ [2057/2767] Built mathlib/Mathlib.Data.Option.NAry:docInfo (5.8s) -✔ [2060/2767] Built mathlib/Mathlib.Tactic.DepRewrite:docInfo (3.3s) -✔ [2061/2767] Built mathlib/Mathlib.Tactic.HigherOrder:docInfo (6.4s) -✔ [2062/2767] Built mathlib/Mathlib.Tactic.Conv:docInfo (2.4s) -✔ [2063/2767] Built mathlib/Mathlib.Tactic.FailIfNoProgress:docInfo (6.5s) -✔ [2064/2767] Built mathlib/Mathlib.Util.AddRelatedDecl:docInfo (2.4s) -✔ [2065/2767] Built mathlib/Mathlib.Tactic.ClearExcept:docInfo (4.6s) -✔ [2066/2770] Built mathlib/Mathlib.Basic.Nonempty:docInfo (2.1s) -✔ [2067/2770] Built mathlib/Mathlib.Tactic.Push.Attr:docInfo (2.2s) -✔ [2068/2770] Built mathlib/Mathlib.Lean.Meta:docInfo (2.0s) -✔ [2069/2770] Built mathlib/Mathlib.Lean.MessageData.Trace:docInfo (4.6s) -✔ [2073/2770] Built mathlib/Mathlib.Lean.Meta.Simp:docInfo (2.2s) -✔ [2074/2770] Built mathlib/Mathlib.Tactic.Eqns:docInfo (2.6s) -✔ [2075/2770] Built mathlib/Mathlib.Data.Option.Defs:docInfo (6.9s) -✔ [2076/2770] Built mathlib/Mathlib.Data.Nat.BinaryRec:docInfo (6.9s) -✔ [2077/2772] Built mathlib/Mathlib.Basic.ExistsUnique:docInfo (2.3s) -✔ [2078/2772] Built mathlib/Mathlib.Tactic.DefEqTransformations:docInfo (4.5s) -✔ [2079/2772] Built mathlib/Mathlib.Util.TermReduce:docInfo (7.0s) -✔ [2080/2772] Built mathlib/Mathlib.Tactic.Widget.SelectInsertParamsClass:docInfo (7.0s) -✔ [2083/2772] Built mathlib/Mathlib.Util.AtLocation:docInfo (4.5s) -✔ [2084/2772] Built mathlib/Mathlib.Tactic.Use:docInfo (3.2s) -✔ [2085/2773] Built mathlib/Mathlib.Basic.IsEmpty.Defs:docInfo (2.5s) -✔ [2087/2774] Built mathlib/Mathlib.Util.WithWeakNamespace:docInfo (3.0s) -✔ [2089/2774] Built mathlib/Mathlib.Lean.Elab.Term:docInfo (4.0s) -✔ [2090/2774] Built mathlib/Mathlib.Tactic.FunProp.Decl:docInfo (7.5s) -✔ [2091/2774] Built mathlib/Mathlib.Tactic.GuardGoalNums:docInfo (2.5s) -✔ [2092/2776] Built mathlib/Mathlib.Data.String.Defs:docInfo (3.1s) -✔ [2093/2776] Built mathlib/Mathlib.Tactic.Simps.NotationClass:docInfo (3.6s) -✔ [2094/2776] Built mathlib/Mathlib.Lean.Name:docInfo (3.8s) -✔ [2095/2776] Built mathlib/Mathlib.Logic.OpClass:docInfo (7.6s) -✔ [2098/2777] Built mathlib/Mathlib.Tactic.Inhabit:docInfo (3.6s) -✔ [2099/2777] Built mathlib/Mathlib.Lean.Meta.Basic:docInfo (4.9s) -✔ [2100/2777] Built mathlib/Mathlib.Tactic.Monotonicity.Attr:docInfo (7.7s) -✔ [2101/2777] Built mathlib/Mathlib.CategoryTheory.ConcreteCategory.Bundled:docInfo (7.7s) -✔ [2103/2777] Built mathlib/Mathlib.Tactic.ExtendDoc:docInfo (3.6s) -✔ [2104/2779] Built mathlib/Mathlib.Tactic.PPWithUniv:docInfo (4.7s) -✔ [2107/2779] Built mathlib/Mathlib.Tactic.SimpIntro:docInfo (8.1s) -✔ [2108/2779] Built mathlib/Mathlib.Tactic.SuccessIfFailWithMsg:docInfo (8.1s) -✔ [2109/2779] Built mathlib/Mathlib.Tactic.Translate.Reorder:docInfo (3.9s) -✔ [2110/2783] Built mathlib/Mathlib.Tactic.Attr.Register:docInfo (3.7s) -✔ [2111/2783] Built mathlib/Mathlib.Lean.Meta.RefinedDiscrTree.Encode:docInfo (2.5s) -✔ [2116/2783] Built mathlib/Mathlib.Lean.Meta.KAbstractPositions:docInfo (6.9s) -✔ [2117/2783] Built mathlib/Mathlib.Data.List.Induction:docInfo (8.4s) -✔ [2118/2784] Built mathlib/Mathlib.Tactic.Linter.HaveLetLinter:docInfo (8.5s) -✔ [2120/2787] Built aesop/Aesop.Rule:docInfo (3.3s) -✔ [2121/2787] Built mathlib/Mathlib.Basic.Nontrivial.Defs:docInfo (1.8s) -✔ [2125/2788] Built mathlib/Mathlib.Lean.Meta.CongrTheorems:docInfo (1.3s) -✔ [2127/2788] Built mathlib/Mathlib.Tactic.CrossRefAttribute:docInfo (5.4s) -✔ [2128/2788] Built mathlib/Mathlib.Tactic.DefEqAbuse:docInfo (1.0s) -✔ [2129/2789] Built mathlib/Mathlib.Lean.Meta.RefinedDiscrTree.Initialize:docInfo (3.3s) -✔ [2130/2789] Built mathlib/Mathlib.Tactic.Relation.Rfl:docInfo (5.7s) -✔ [2131/2789] Built mathlib/Mathlib.Lean.Elab.Tactic.Basic:docInfo (2.2s) -✔ [2133/2791] Built mathlib/Mathlib.Data.Nat.Notation:docInfo (9.3s) -✔ [2136/2794] Built mathlib/Mathlib.Tactic.ToLevel:docInfo (1.4s) -✔ [2137/2794] Built mathlib/Mathlib.Tactic.Widget.SelectPanelUtils:docInfo (2.4s) -✔ [2141/2794] Built mathlib/Mathlib.Tactic.SplitIfs:docInfo (3.5s) -ℹ [2142/2794] Built mathlib/Mathlib.Tactic.MkIffOfInductiveProp:docInfo (1.0s) -info: stdout: -WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.MkIff.nCasesSum: failed to generate equational theorem for `Mathlib.Tactic.MkIff.nCasesSum` - failed to generate equality theorems for `match` expression `_private.Mathlib.Tactic.MkIffOfInductiveProp.0.Mathlib.Tactic.MkIff.nCasesSum.match_4` - case isTrue - motive✝ : Array Lean.Meta.CasesSubgoal → Sort u_1 - x✝¹ : Array Lean.Meta.CasesSubgoal - h_1✝ : (sg1 sg2 : Lean.Meta.CasesSubgoal) → motive✝ #[sg1, sg2] - h_2✝ : (x : Array Lean.Meta.CasesSubgoal) → motive✝ x - x✝ : ∀ (sg1 sg2 : Lean.Meta.CasesSubgoal), x✝¹ = #[sg1, sg2] → False - h✝ : x✝¹.size = 2 - ⊢ (⋯ ▸ fun h => ⋯ ▸ h_1✝ (x✝¹.getLit 0 ⋯ ⋯) (x✝¹.getLit 1 ⋯ ⋯)) ⋯ = h_2✝ x✝¹ -WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.MkIff.nCasesProd: failed to generate equational theorem for `Mathlib.Tactic.MkIff.nCasesProd` - failed to generate equality theorems for `match` expression `_private.Mathlib.Tactic.MkIffOfInductiveProp.0.Mathlib.Tactic.MkIff.nCasesProd.match_5` - case isTrue - motive✝ : Array Lean.Meta.CasesSubgoal → Sort u_1 - x✝¹ : Array Lean.Meta.CasesSubgoal - h_1✝ : (sg : Lean.Meta.CasesSubgoal) → motive✝ #[sg] - h_2✝ : (x : Array Lean.Meta.CasesSubgoal) → motive✝ x - x✝ : ∀ (sg : Lean.Meta.CasesSubgoal), x✝¹ = #[sg] → False - h✝ : x✝¹.size = 1 - ⊢ (⋯ ▸ fun h => ⋯ ▸ h_1✝ (x✝¹.getLit 0 ⋯ ⋯)) ⋯ = h_2✝ x✝¹ -✔ [2143/2794] Built mathlib/Mathlib.Tactic.ScopedNS:docInfo (2.1s) -✔ [2144/2794] Built mathlib/Mathlib.Tactic.Clear_:docInfo (7.7s) -✔ [2145/2796] Built mathlib/Mathlib.Tactic.Translate.GuessName:docInfo (2.0s) -✔ [2146/2796] Built mathlib/Mathlib.Tactic.Translate.Attributes:docInfo (5.3s) -✔ [2147/2796] Built mathlib/Mathlib.Tactic.Translate.UnfoldBoundary:docInfo (5.4s) -✔ [2150/2798] Built mathlib/Mathlib.Tactic.Basic:docInfo (1.7s) -✔ [2153/2798] Built mathlib/Mathlib.Tactic.Check:docInfo (4.9s) -✔ [2154/2798] Built mathlib/Mathlib.Tactic.SimpRw:docInfo (6.3s) -✔ [2155/2798] Built mathlib/Mathlib.Control.Combinators:docInfo (8.3s) -✔ [2156/2798] Built mathlib/Mathlib.Tactic.ApplyAt:docInfo (2.3s) -✔ [2157/2799] Built mathlib/Mathlib.Logic.Function.Defs:docInfo (1.8s) -✔ [2159/2800] Built mathlib/Mathlib.Tactic.Attr.Core:docInfo (1.9s) -✔ [2160/2800] Built mathlib/Mathlib.Tactic.RenameBVar:docInfo (4.4s) -✔ [2162/2800] Built mathlib/Mathlib.Tactic.Linter:docInfo (1.9s) -✔ [2163/2804] Built mathlib/Mathlib.Basic.Logic.Basic:docInfo (2.2s) -✔ [2168/2807] Built aesop/Aesop.RuleSet.Member:docInfo (1.0s) -✔ [2169/2807] Built mathlib/Mathlib.Lean.Meta.RefinedDiscrTree.Lookup:docInfo (2.3s) -✔ [2170/2807] Built mathlib/Mathlib.Tactic.FunProp.FunctionData:docInfo (4.7s) -✔ [2171/2807] Built mathlib/Mathlib.Tactic.IrreducibleDef:docInfo (3.7s) -✔ [2175/2807] Built aesop/Aesop.Tree.UnsafeQueue:docInfo (2.1s) -✔ [2176/2807] Built mathlib/Mathlib.Util.Delaborators:docInfo (5.1s) -✔ [2177/2810] Built mathlib/Mathlib.Lean.PrettyPrinter.Delaborator:docInfo (6.2s) -✔ [2178/2810] Built mathlib/Mathlib.Tactic.TermCongr:docInfo (2.2s) -✔ [2179/2810] Built mathlib/Mathlib.Data.Nat.Init:docInfo (1.5s) -✔ [2183/2810] Built mathlib/Mathlib.Tactic.Widget.Calc:docInfo (1.4s) -✔ [2184/2810] Built mathlib/Mathlib.Tactic.CategoryTheory.Coherence.PureCoherence:docInfo (5.4s) -✔ [2185/2810] Built aesop/Aesop.Index:docInfo (5.9s) -✔ [2186/2813] Built mathlib/Mathlib.Tactic.Translate.Core:docInfo (1.6s) -✔ [2187/2813] Built mathlib/Mathlib.Tactic.Hint:docInfo (1.5s) -✔ [2188/2813] Built mathlib/Mathlib.Tactic.FBinop:docInfo (5.7s) -✔ [2192/2816] Built aesop/Aesop.Forward.Match:docInfo (3.0s) -✔ [2193/2816] Built mathlib/Mathlib.Logic.Relator:docInfo (1.5s) -✔ [2194/2816] Built mathlib/Mathlib.Tactic.Setm:docInfo (2.6s) -✔ [2198/2817] Built mathlib/Mathlib.Tactic.Simps.Basic:docInfo (2.2s) -✔ [2199/2817] Built mathlib/Mathlib.Tactic.Says:docInfo (1.0s) -✔ [2200/2817] Built mathlib/Mathlib.Tactic.Subsingleton:docInfo (1.3s) -✔ [2201/2817] Built mathlib/Mathlib.Tactic.Widget.CongrM:docInfo (2.2s) -✔ [2203/2818] Built mathlib/Mathlib.Tactic.FunProp.Types:docInfo (1.4s) -✔ [2204/2818] Built mathlib/Mathlib.Tactic.Widget.Conv:docInfo (2.5s) -✔ [2206/2818] Built mathlib/Mathlib.Data.Int.Init:docInfo (2.8s) -✔ [2207/2818] Built mathlib/Mathlib.Control.Basic:docInfo (2.1s) -✔ [2208/2826] Built aesop/Aesop.Builder.Basic:docInfo (1.7s) -✔ [2209/2826] Built mathlib/Mathlib.Lean.Meta.RefinedDiscrTree:docInfo (1.7s) -✔ [2218/2826] Built mathlib/Mathlib.Tactic.SetNotationForOrder:docInfo (1.6s) -✔ [2219/2826] Built mathlib/Mathlib.Tactic.CongrM:docInfo (1.6s) -✔ [2220/2831] Built mathlib/Mathlib.Tactic.Push:docInfo (2.0s) -✔ [2226/2832] Built mathlib/Mathlib.Util.Notation3:docInfo (1.8s) -✔ [2227/2832] Built mathlib/Mathlib.Tactic.CongrExclamation:docInfo (2.2s) -✔ [2229/2832] Built mathlib/Mathlib.Data.SProd:docInfo (1.5s) -✔ [2230/2832] Built mathlib/Mathlib.Tactic.Simps:docInfo (1.1s) -✔ [2231/2833] Built mathlib/Mathlib.Tactic.Translate.ToAdditive:docInfo (1.8s) -✔ [2233/2834] Built mathlib/Mathlib.Tactic.Translate.TagUnfoldBoundary:docInfo (1.8s) -✔ [2235/2835] Built aesop/Aesop.Tree.Data.ForwardRuleMatches:docInfo (1.6s) -✔ [2236/2835] Built mathlib/Mathlib.Tactic.Tauto:docInfo (2.7s) -✔ [2238/2837] Built aesop/Aesop.Forward.State:docInfo (1.7s) -✔ [2239/2837] Built aesop/Aesop.RuleTac.Forward:docInfo (1.7s) -✔ [2242/2837] Built aesop/Aesop.Builder.Apply:docInfo (1.1s) -✔ [2243/2839] Built aesop/Aesop.Builder.Cases:docInfo (1.4s) -✔ [2244/2839] Built aesop/Aesop.Builder.NormSimp:docInfo (1.4s) -✔ [2245/2839] Built aesop/Aesop.Builder.Unfold:docInfo (1.4s) -✔ [2246/2839] Built mathlib/Mathlib.Tactic.FunProp.Theorems:docInfo (1.7s) -✔ [2249/2839] Built aesop/Aesop.Builder.Tactic:docInfo (1.6s) -✔ [2250/2839] Built mathlib/Mathlib.Tactic.Widget.LibraryRewrite:docInfo (1.5s) -✔ [2251/2839] Built mathlib/Mathlib.Tactic.ByCases:docInfo (1.6s) -✔ [2252/2839] Built mathlib/Mathlib.Tactic.ByContra:docInfo (1.5s) -✔ [2253/2839] Built mathlib/Mathlib.Tactic.Contrapose:docInfo (1.5s) -✔ [2254/2839] Built mathlib/Mathlib.Tactic.WLOG:docInfo (1.5s) -✔ [2255/2840] Built aesop/Aesop.Builder.Constructors:docInfo (1.8s) -✔ [2256/2840] Built aesop/Aesop.Builder.Forward:docInfo (1.8s) -✔ [2257/2840] Built mathlib/Mathlib.Tactic.ToFun:docInfo (1.6s) -✔ [2259/2843] Built mathlib/Mathlib.Tactic.Translate.ToDual:docInfo (1.3s) -✔ [2260/2843] Built mathlib/Mathlib.Tactic.Convert:docInfo (1.7s) -✔ [2264/2845] Built mathlib/Mathlib.Tactic.ToAdditive:docInfo (1.5s) -✔ [2267/2845] Built aesop/Aesop.RuleTac:docInfo (1.3s) -ℹ [2268/2845] Built mathlib/Mathlib.Tactic.ErwQuestion:docInfo (14s) -info: stdout: -WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.Erw?.logDiffs: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -✔ [2269/2848] Built aesop/Aesop.RuleSet:docInfo (1.4s) -✔ [2270/2848] Built mathlib/Mathlib.Tactic.FunProp.Attr:docInfo (1.0s) -✔ [2274/2851] Built aesop/Aesop.Tree.Data:docInfo (1.5s) -✔ [2278/2852] Built mathlib/Mathlib.Tactic.FunProp.Core:docInfo (1.4s) -✔ [2280/2853] Built aesop/Aesop.Builder.Default:docInfo (997ms) -✔ [2282/2857] Built mathlib/Mathlib.Tactic.ToDual:docInfo (1.1s) -✔ [2287/2859] Built mathlib/Mathlib.Basic.Logic.Lemmas:docInfo (1.2s) -✔ [2288/2859] Built mathlib/Mathlib.Algebra.Regular.Defs:docInfo (1.0s) -✔ [2289/2859] Built hottlean/HoTTLean.Syntax.Autosubst:docInfo (1.2s) -✔ [2292/2860] Built mathlib/Mathlib.Algebra.Notation.Defs:docInfo (1.1s) -✔ [2294/2860] Built aesop/Aesop.Forward.State.ApplyGoalDiff:docInfo (1.0s) -✔ [2295/2866] Built aesop/Aesop.Search.Queue.Class:docInfo (1.3s) -✔ [2296/2866] Built aesop/Aesop.Forward.State.Initial:docInfo (1.4s) -✔ [2297/2866] Built aesop/Aesop.Tree.RunMetaM:docInfo (1.4s) -✔ [2298/2866] Built aesop/Aesop.Tree.Traversal:docInfo (1.3s) -✔ [2299/2866] Built aesop/Aesop.Frontend.Extension.Init:docInfo (1.4s) -✔ [2306/2867] Built mathlib/Mathlib.Tactic.FunProp.Elab:docInfo (1.2s) -✔ [2308/2867] Built aesop/Aesop.Frontend.RuleExpr:docInfo (1.3s) -✔ [2309/2867] Built mathlib/Mathlib.Order.Defs.Prop:docInfo (1.1s) -✔ [2310/2869] Built mathlib/Mathlib.Order.Defs.PartialOrder:docInfo (1.2s) -✔ [2313/2876] Built mathlib/Mathlib.Data.Set.Defs:docInfo (1.3s) -✔ [2314/2876] Built mathlib/Mathlib.Order.Notation:docInfo (1.3s) -✔ [2315/2876] Built mathlib/Mathlib.Algebra.Group.Semigroup:docInfo (1.2s) -✔ [2323/2877] Built hottlean/HoTTLean.Syntax.Typing:docInfo (1.3s) -✔ [2325/2877] Built mathlib/Mathlib.Algebra.Notation.Pi.Defs:docInfo (1.4s) -✔ [2326/2884] Built aesop/Aesop.Tree.TreeM:docInfo (1.1s) -✔ [2334/2888] Built aesop/Aesop.Frontend.Extension:docInfo (1.2s) -✔ [2335/2888] Built aesop/Aesop.Saturate:docInfo (1.2s) -✔ [2340/2889] Built aesop/Aesop.Tree.State:docInfo (1.3s) -✔ [2341/2889] Built aesop/Aesop.Tree.Tracing:docInfo (1.3s) -✔ [2342/2889] Built aesop/Aesop.Search.Queue:docInfo (1.3s) -✔ [2343/2889] Built mathlib/Mathlib.Tactic.FunProp:docInfo (1.2s) -✔ [2345/2889] Built mathlib/Mathlib.Order.TypeTags:docInfo (1.2s) -✔ [2346/2889] Built mathlib/Mathlib.Algebra.NeZero:docInfo (1.2s) -✔ [2347/2889] Built mathlib/Mathlib.Order.Bounds.Defs:docInfo (1.3s) -✔ [2348/2890] Built mathlib/Mathlib.Control.Functor:docInfo (1.4s) -✔ [2350/2893] Built mathlib/Mathlib.Order.Defs.Unbundled:docInfo (1.5s) -✔ [2354/2896] Built aesop/Aesop.Search.SearchM:docInfo (1.2s) -✔ [2355/2896] Built mathlib/Mathlib.Order.Defs.LinearOrder:docInfo (1.8s) -✔ [2356/2896] Built mathlib/Mathlib.Data.Set.CoeSort:docInfo (1.7s) -✔ [2360/2899] Built aesop/Aesop.Forward.State.UpdateGoal:docInfo (1.4s) -✔ [2361/2899] Built aesop/Aesop.Tree.ExtractProof:docInfo (1.4s) -✔ [2362/2899] Built aesop/Aesop.Tree.ExtractScript:docInfo (1.4s) -✔ [2363/2899] Built aesop/Aesop.Frontend.Tactic:docInfo (1.3s) -✔ [2364/2899] Built mathlib/Mathlib.Order.Interval.Set.Defs:docInfo (1.9s) -✔ [2365/2899] Built mathlib/Mathlib.Algebra.Group.Monoid:docInfo (1.8s) -✔ [2369/2899] Built aesop/Aesop.Tree.AddRapp:docInfo (1.4s) -✔ [2370/2899] Built aesop/Aesop.Frontend.Saturate:docInfo (1.3s) -✔ [2371/2907] Built aesop/Aesop.Frontend.Attribute:docInfo (1.4s) -✔ [2380/2907] Built aesop/Aesop.Tree.Check:docInfo (1.5s) -✔ [2381/2907] Built aesop/Aesop.Tree.Stats:docInfo (1.7s) -✔ [2382/2908] Built aesop/Aesop.Tree.Free:docInfo (1.8s) -✔ [2383/2908] Built aesop/Aesop.Frontend.Command:docInfo (1.6s) -✔ [2385/2909] Built hottlean/HoTTLean.Syntax.Substitution:docInfo (2.4s) -✔ [2387/2909] Built mathlib/Mathlib.Logic.Relation:docInfo (1.4s) -✔ [2388/2909] Built mathlib/Mathlib.Data.Int.Order.Basic:docInfo (1.2s) -✔ [2389/2910] Built aesop/Aesop.Search.RuleSelection:docInfo (1.3s) -✔ [2390/2910] Built mathlib/Mathlib.Data.Bool.Basic:docInfo (1.2s) -✔ [2392/2921] Built aesop/Aesop.BuiltinRules.Assumption:docInfo (1.1s) -✔ [2393/2921] Built aesop/Aesop.BuiltinRules.Subst:docInfo (1.1s) -✔ [2394/2921] Built mathlib/Mathlib.Logic.Function.Basic:docInfo (1.6s) -✔ [2395/2921] Built mathlib/Mathlib.Tactic.GCongr.Core:docInfo (1.6s) -✔ [2407/2921] Built aesop/Aesop.BuiltinRules.Split:docInfo (1.2s) -✔ [2408/2921] Built aesop/Aesop.BuiltinRules.ApplyHyps:docInfo (1.3s) -✔ [2409/2921] Built aesop/Aesop.BuiltinRules.Rfl:docInfo (1.4s) -✔ [2410/2924] Built aesop/Aesop.Frontend:docInfo (1.2s) -✔ [2411/2924] Built aesop/Aesop.BuiltinRules.Ext:docInfo (1.5s) -✔ [2412/2924] Built aesop/Aesop.BuiltinRules.Intros:docInfo (1.4s) -✔ [2413/2924] Built mathlib/Mathlib.Data.List.Defs:docInfo (2.1s) -✔ [2417/2924] Built mathlib/Mathlib.Algebra.Group.Nat.Defs:docInfo (1.8s) -✔ [2418/2926] Built aesop/Aesop.BuiltinRules.DestructProducts:docInfo (1.9s) -✔ [2419/2926] Built mathlib/Mathlib.Algebra.Group.DivInvMonoid:docInfo (2.0s) -✔ [2420/2926] Built mathlib/Mathlib.Algebra.BigOperators.Group.List.Defs:docInfo (2.1s) -✔ [2423/2930] Built mathlib/Mathlib.Basic.Unique:docInfo (1.3s) -✔ [2424/2930] Built mathlib/Mathlib.Tactic.GCongr:docInfo (1.4s) -✔ [2425/2930] Built mathlib/Mathlib.Logic.Function.Conjugate:docInfo (1.3s) -✔ [2430/2934] Built aesop/Aesop.Search.Expansion.Norm:docInfo (1.5s) -✔ [2431/2934] Built mathlib/Mathlib.Data.Subtype:docInfo (1.4s) -✔ [2432/2934] Built mathlib/Mathlib.Logic.Pairwise:docInfo (1.4s) -✔ [2433/2934] Built mathlib/Mathlib.Data.Sigma.Basic:docInfo (1.4s) -✔ [2434/2934] Built mathlib/Mathlib.Algebra.Notation.Pi.Basic:docInfo (1.3s) -✔ [2439/2935] Built mathlib/Mathlib.Tactic.GRewrite.Core:docInfo (1.5s) -✔ [2440/2935] Built mathlib/Mathlib.Basic.IsEmpty.Basic:docInfo (1.5s) -✔ [2441/2935] Built mathlib/Mathlib.Data.Finset.Attr:docInfo (1.3s) -✔ [2443/2935] Built mathlib/Mathlib.Tactic.Finiteness.Attr:docInfo (1.4s) -✔ [2444/2935] Built mathlib/Mathlib.Data.Sum.Basic:docInfo (1.7s) -✔ [2445/2937] Built hottlean/HoTTLean.Syntax.Inversion:docInfo (2.4s) -✔ [2448/2937] Built mathlib/Mathlib.Tactic.SetLike:docInfo (1.5s) -✔ [2449/2937] Built mathlib/Mathlib.Tactic.Choose:docInfo (1.0s) -✔ [2450/2937] Built aesop/Aesop.BuiltinRules:docInfo (1.3s) -✔ [2451/2939] Built mathlib/Mathlib.Algebra.Group.Defs:docInfo (1.5s) -✔ [2456/2942] Built mathlib/Mathlib.Data.FunLike.Basic:docInfo (1.2s) -ℹ [2457/2942] Built mathlib/Mathlib.Tactic.CategoryTheory.Coherence.Normalize:docInfo (16s) -info: stdout: -WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.BicategoryLike.eval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached - -Note: Use `set_option maxHeartbeats ` to set the limit.(invalid MessageData.lazy, missing context) -✔ [2459/2944] Built aesop/Aesop.Search.Expansion:docInfo (1.2s) -✔ [2460/2944] Built mathlib/Mathlib.Data.Nat.Basic:docInfo (1.2s) -✔ [2461/2944] Built mathlib/Mathlib.Data.List.Flatten:docInfo (1.2s) -✔ [2464/2947] Built mathlib/Mathlib.Data.Quot:docInfo (1.3s) -✔ [2465/2947] Built mathlib/Mathlib.Tactic.GRewrite.Elab:docInfo (1.2s) -✔ [2466/2947] Built mathlib/Mathlib.Logic.Function.Iterate:docInfo (1.3s) -✔ [2467/2947] Built mathlib/Mathlib.Data.List.Pairwise:docInfo (1.2s) -✔ [2471/2948] Built mathlib/Mathlib.Order.Basic:docInfo (1.5s) -✔ [2473/2948] Built mathlib/Mathlib.Algebra.Group.Int.Defs:docInfo (1.1s) -✔ [2474/2948] Built mathlib/Mathlib.Algebra.Group.PUnit:docInfo (1.1s) -✔ [2475/2950] Built mathlib/Mathlib.Algebra.Group.Semiconj.Defs:docInfo (1.3s) -✔ [2476/2950] Built mathlib/Mathlib.Algebra.Group.InjSurj:docInfo (1.3s) -✔ [2477/2950] Built hottlean/HoTTLean.Syntax.EqCtx:docInfo (1.7s) -✔ [2480/2952] Built mathlib/Mathlib.Data.FunLike.Embedding:docInfo (1.1s) -✔ [2481/2952] Built hottlean/HoTTLean.Syntax.InversionLemmas:docInfo (1.8s) -✔ [2484/2953] Built aesop/Aesop.Search.ExpandSafePrefix:docInfo (1.1s) -✔ [2486/2954] Built mathlib/Mathlib.Tactic.GRewrite:docInfo (1.1s) -✔ [2487/2954] Built mathlib/Mathlib.Data.Nat.Find:docInfo (1.2s) -✔ [2489/2956] Built mathlib/Mathlib.Data.Prod.Basic:docInfo (1.3s) -✔ [2492/2956] Built mathlib/Mathlib.Order.ULift:docInfo (1.2s) -✔ [2493/2956] Built mathlib/Mathlib.Algebra.Group.Hom.Defs:docInfo (1.8s) -✔ [2494/2957] Built mathlib/Mathlib.Algebra.Group.Commute.Defs:docInfo (1.1s) -✔ [2496/2958] Built mathlib/Mathlib.Data.FunLike.Equiv:docInfo (1.1s) -✔ [2498/2959] Built aesop/Aesop.Search.Main:docInfo (1.2s) -✔ [2500/2961] Built mathlib/Mathlib.Tactic.ClickSuggestions.Util:docInfo (1.3s) -✔ [2503/2961] Built mathlib/Mathlib.Basic.Nontrivial.Basic:docInfo (1.1s) -✔ [2504/2961] Built hottlean/HoTTLean.Syntax.Injectivity:docInfo (1.6s) -✔ [2505/2962] Built mathlib/Mathlib.Algebra.Notation.Prod:docInfo (1.2s) -✔ [2507/2963] Built hottlean/HoTTLean.Syntax.GCongr:docInfo (1.7s) -✔ [2509/2964] Built mathlib/Mathlib.Algebra.Group.Units.Defs:docInfo (1.2s) -✔ [2511/2966] Built aesop/Aesop.Main:docInfo (1.1s) -✔ [2514/2974] Built mathlib/Mathlib.Logic.Equiv.Defs:docInfo (1.4s) -✔ [2523/2977] Built mathlib/Mathlib.Tactic.ClickSuggestions.SectionState:docInfo (1.2s) -✔ [2524/2977] Built mathlib/Mathlib.Tactic.ClickSuggestions.Unfold:docInfo (1.2s) -✔ [2529/2978] Built mathlib/Mathlib.Algebra.Order.ZeroLEOne:docInfo (1.2s) -✔ [2530/2978] Built mathlib/Mathlib.Algebra.Group.Nat.Units:docInfo (1.2s) -✔ [2531/2981] Built aesop/Aesop:docInfo (1.2s) -✔ [2532/2981] Built hottlean/HoTTLean.Syntax.Synth:docInfo (1.8s) -✔ [2537/2982] Built mathlib/Mathlib.Order.Lex:docInfo (1.2s) -✔ [2538/2987] Built mathlib/Mathlib.Logic.Small.Defs:docInfo (1.3s) -✔ [2539/2987] Built mathlib/Mathlib.Data.Set.Operations:docInfo (1.4s) -✔ [2540/2987] Built mathlib/Mathlib.Control.EquivFunctor:docInfo (1.3s) -✔ [2541/2987] Built mathlib/Mathlib.Basic.Finite.Defs:docInfo (1.3s) -✔ [2542/2987] Built mathlib/Mathlib.Algebra.Opposites:docInfo (1.3s) -✔ [2548/2991] Built mathlib/Mathlib.Tactic.ClickSuggestions.GRewrite:docInfo (1.3s) -✔ [2549/2991] Built mathlib/Mathlib.Tactic.ClickSuggestions.ApplyAt:docInfo (1.3s) -✔ [2550/2991] Built mathlib/Mathlib.Order.OrderDual:docInfo (1.4s) -✔ [2551/2991] Built mathlib/Mathlib.Logic.Equiv.Prod:docInfo (1.4s) -✔ [2556/2992] Built mathlib/Mathlib.Tactic.ClickSuggestions.Rewrite:docInfo (1.5s) -✔ [2557/2992] Built mathlib/Mathlib.Tactic.ClickSuggestions.Apply:docInfo (1.5s) -✔ [2559/2993] Built mathlib/Mathlib.Algebra.Group.Equiv.Defs:docInfo (1.8s) -✔ [2561/2994] Built mathlib/Mathlib.CategoryTheory.Category.Init:docInfo (1.2s) -✔ [2562/2994] Built mathlib/Mathlib.Data.Option.Basic:docInfo (1.3s) -✔ [2564/2994] Built mathlib/Mathlib.Basic.UnivLE:docInfo (1.2s) -✔ [2565/2998] Built mathlib/Mathlib.Algebra.Group.Basic:docInfo (1.6s) -✔ [2570/3000] Built mathlib/Mathlib.Data.Opposite:docInfo (1.4s) -✔ [2571/3000] Built mathlib/Mathlib.Order.Compare:docInfo (1.3s) -✔ [2572/3000] Built mathlib/Mathlib.Order.Monotone.Defs:docInfo (1.4s) -✔ [2573/3000] Built mathlib/Mathlib.Order.RelClasses:docInfo (1.4s) -✔ [2574/3000] Built mathlib/Mathlib.Logic.Equiv.Sum:docInfo (1.3s) -✔ [2575/3000] Built mathlib/Mathlib.Order.SetNotation:docInfo (1.5s) -✔ [2578/3002] Built mathlib/Mathlib.Order.Max:docInfo (1.5s) -✔ [2579/3002] Built mathlib/Mathlib.Algebra.Group.Action.Defs:docInfo (1.5s) -✔ [2582/3004] Built mathlib/Mathlib.Tactic.ClickSuggestions.FindPremises:docInfo (1.3s) -✔ [2583/3004] Built hottlean/HoTTLean.Syntax.Axioms:docInfo (1.0s) -✔ [2586/3004] Built mathlib/Mathlib.Algebra.Group.ULift:docInfo (1.2s) -✔ [2587/3005] Built mathlib/Mathlib.Logic.Equiv.Option:docInfo (1.2s) -✔ [2589/3007] Built mathlib/Mathlib.Combinatorics.Quiver.Basic:docInfo (1.1s) -✔ [2590/3007] Built mathlib/Mathlib.Algebra.Group.SelfInv:docInfo (1.2s) -✔ [2593/3007] Built mathlib/Mathlib.Algebra.Group.Int.Units:docInfo (1.3s) -✔ [2594/3007] Built mathlib/Mathlib.Algebra.Order.Monoid.Unbundled.Defs:docInfo (1.3s) -✔ [2595/3007] Built mathlib/Mathlib.Algebra.Group.Units.Basic:docInfo (1.4s) -✔ [2596/3008] Built mathlib/Mathlib.Algebra.Group.Hom.Basic:docInfo (1.6s) -✔ [2598/3010] Built mathlib/Mathlib.Tactic.ClickSuggestions.TryPremises:docInfo (1.2s) -✔ [2599/3010] Built mathlib/Mathlib.Order.Monotone.Basic:docInfo (1.4s) -✔ [2602/3012] Built mathlib/Mathlib.Order.BoundedOrder.Basic:docInfo (1.5s) -✔ [2605/3014] Built hottlean/HoTTLean.Typechecker.Value:docInfo (1.0s) -✔ [2608/3016] Built mathlib/Mathlib.Combinatorics.Quiver.Prefunctor:docInfo (1.1s) -✔ [2611/3021] Built mathlib/Mathlib.Logic.Equiv.Basic:docInfo (1.5s) -✔ [2612/3021] Built mathlib/Mathlib.Algebra.Group.Torsion:docInfo (1.2s) -✔ [2618/3021] Built mathlib/Mathlib.Algebra.Group.Units.Hom:docInfo (1.3s) -✔ [2619/3022] Built mathlib/Mathlib.Tactic.ClickSuggestions:docInfo (1.4s) -✔ [2620/3022] Built mathlib/Mathlib.Order.BoundedOrder.Monotone:docInfo (1.2s) -✔ [2622/3022] Built mathlib/Mathlib.Order.GaloisConnection.Defs:docInfo (1.3s) -✔ [2623/3025] Built mathlib/Mathlib.Order.Lattice:docInfo (1.7s) -✔ [2627/3025] Built mathlib/Mathlib.Combinatorics.Quiver.Push:docInfo (1.1s) -✔ [2628/3028] Built mathlib/Mathlib.Combinatorics.Quiver.Path:docInfo (1.4s) -✔ [2629/3028] Built mathlib/Mathlib.Algebra.Group.TypeTags.Basic:docInfo (1.3s) -✔ [2633/3030] Built mathlib/Mathlib.Data.ULift:docInfo (1.4s) -✔ [2634/3030] Built mathlib/Mathlib.Logic.Embedding.Basic:docInfo (1.3s) -✔ [2635/3030] Built mathlib/Mathlib.Algebra.Group.Opposite:docInfo (1.4s) -✔ [2638/3032] Built mathlib/Mathlib.Algebra.Group.Equiv.Basic:docInfo (1.4s) -✔ [2639/3032] Built hottlean/HoTTLean.Typechecker.ValueInversion:docInfo (1.7s) -✔ [2642/3034] Built hottlean/HoTTLean.Frontend.Checked:docInfo (1.8s) -✔ [2645/3036] Built mathlib/Mathlib.Order.BoundedOrder.Lattice:docInfo (1.3s) -✔ [2648/3045] Built mathlib/Mathlib.Tactic.Common:docInfo (1.7s) -✔ [2658/3045] Built mathlib/Mathlib.Order.MinMax:docInfo (1.5s) -✔ [2659/3046] Built mathlib/Mathlib.Combinatorics.Quiver.Symmetric:docInfo (1.3s) -✔ [2660/3046] Built mathlib/Mathlib.Order.WithBot:docInfo (1.7s) -✔ [2661/3046] Built mathlib/Mathlib.Algebra.Group.TypeTags.Hom:docInfo (1.3s) -✔ [2662/3046] Built mathlib/Mathlib.Combinatorics.Quiver.Cast:docInfo (1.3s) -✔ [2664/3046] Built mathlib/Mathlib.Algebra.Group.Prod:docInfo (1.5s) -✔ [2665/3046] Built mathlib/Mathlib.Order.RelIso.Basic:docInfo (1.6s) -✔ [2666/3046] Built mathlib/Mathlib.Algebra.Group.Units.Equiv:docInfo (1.6s) -✔ [2667/3046] Built hottlean/HoTTLean.Frontend.Translation:docInfo (1.9s) -✔ [2668/3048] Built mathlib/Mathlib.Order.Disjoint:docInfo (1.6s) -✔ [2669/3048] Built mathlib/Mathlib.Algebra.Order.IsBotOne:docInfo (1.5s) -✔ [2673/3049] Built mathlib/Mathlib.Data.List.Count:docInfo (1.8s) -✔ [2674/3050] Built mathlib/Mathlib.Data.List.InsertIdx:docInfo (1.9s) -✔ [2675/3050] Built mathlib/Mathlib.Data.Fin.Basic:docInfo (1.9s) -✔ [2676/3050] Built mathlib/Mathlib.Algebra.Divisibility.Basic:docInfo (1.8s) -✔ [2677/3050] Built mathlib/Mathlib.Data.List.ProdSigma:docInfo (1.8s) -✔ [2678/3050] Built hottlean/HoTTLean.Frontend.EnvExt:docInfo (2.4s) -✔ [2680/3054] Built mathlib/Mathlib.CategoryTheory.Category.Basic:docInfo (1.0s) -✔ [2681/3054] Built mathlib/Mathlib.Data.List.Forall2:docInfo (1.9s) -✔ [2686/3057] Built mathlib/Mathlib.Data.List.Basic:docInfo (2.1s) -✔ [2687/3057] Built mathlib/Mathlib.Combinatorics.Quiver.SingleObj:docInfo (1.6s) -✔ [2691/3058] Built hottlean/HoTTLean.Typechecker.Evaluate:docInfo (2.9s) -✔ [2693/3059] Built mathlib/Mathlib.Data.List.TakeDrop:docInfo (2.3s) -✔ [2695/3061] Built mathlib/Mathlib.Order.PropInstances:docInfo (1.3s) -✔ [2698/3063] Built mathlib/Mathlib.Algebra.Order.Monoid.Unbundled.Basic:docInfo (1.7s) -✔ [2701/3064] Built mathlib/Mathlib.Order.Hom.Basic:docInfo (1.7s) -✔ [2703/3065] Built mathlib/Mathlib.CategoryTheory.Functor.Basic:docInfo (1.6s) -✔ [2704/3065] Built mathlib/Mathlib.Tactic.CategoryTheory.Slice:docInfo (1.6s) -✔ [2706/3071] Built mathlib/Mathlib.Data.List.Perm.Basic:docInfo (1.7s) -✔ [2707/3071] Built mathlib/Mathlib.Data.List.Nodup:docInfo (1.6s) -✔ [2708/3071] Built mathlib/Mathlib.Data.List.Lattice:docInfo (1.6s) -✔ [2709/3071] Built mathlib/Mathlib.Data.Fin.SuccPred:docInfo (1.8s) -✔ [2710/3071] Built mathlib/Mathlib.Tactic.CategoryTheory.Coherence.Basic:docInfo (1.7s) -✔ [2717/3073] Built mathlib/Mathlib.Data.List.Lex:docInfo (1.7s) -✔ [2720/3077] Built mathlib/Mathlib.Data.Set.Basic:docInfo (1.5s) -✔ [2721/3077] Built mathlib/Mathlib.Data.List.Infix:docInfo (2.0s) -✔ [2726/3078] Built mathlib/Mathlib.Order.Heyting.Basic:docInfo (1.7s) -✔ [2727/3078] Built mathlib/Mathlib.Algebra.Order.Sub.Defs:docInfo (1.4s) -✔ [2729/3079] Built mathlib/Mathlib.Algebra.Order.Monoid.Unbundled.ExistsOfLE:docInfo (1.5s) -✔ [2731/3079] Built mathlib/Mathlib.Order.Antisymmetrization:docInfo (1.5s) -✔ [2732/3080] Built hottlean/HoTTLean.Typechecker.Equate:docInfo (3.0s) -✔ [2734/3084] Built mathlib/Mathlib.Tactic.CategoryTheory.Reassoc:docInfo (1.7s) -✔ [2735/3084] Built mathlib/Mathlib.Data.List.Perm.Subperm:docInfo (1.6s) -✔ [2736/3084] Built mathlib/Mathlib.Data.Fin.Embedding:docInfo (1.7s) -✔ [2741/3084] Built mathlib/Mathlib.Data.List.Dedup:docInfo (1.7s) -✔ [2742/3084] Built mathlib/Mathlib.Data.List.Perm.Lattice:docInfo (1.6s) -✔ [2743/3085] Built mathlib/Mathlib.Data.Fin.Rev:docInfo (1.8s) -✔ [2744/3085] Built mathlib/Mathlib.Data.List.Duplicate:docInfo (1.8s) -✔ [2745/3085] Built mathlib/Mathlib.Algebra.BigOperators.Group.List.Basic:docInfo (1.9s) -✔ [2747/3086] Built mathlib/Mathlib.Data.List.Chain:docInfo (1.8s) -✔ [2749/3086] Built mathlib/Mathlib.Data.Set.Inclusion:docInfo (1.4s) -✔ [2750/3086] Built mathlib/Mathlib.Data.SetLike.Basic:docInfo (1.4s) -✔ [2751/3087] Built mathlib/Mathlib.Data.Set.Disjoint:docInfo (1.6s) -✔ [2753/3088] Built mathlib/Mathlib.Order.BooleanAlgebra.Defs:docInfo (1.6s) -✔ [2755/3088] Built mathlib/Mathlib.Algebra.Order.Sub.Unbundled.Basic:docInfo (1.5s) -✔ [2756/3088] Built mathlib/Mathlib.Data.List.Rotate:docInfo (2.1s) -✔ [2757/3088] Built hottlean/HoTTLean.ForMathlib.Tactic.CategoryTheory.FunctorMap:docInfo (1.7s) -✔ [2758/3093] Built mathlib/Mathlib.CategoryTheory.NatTrans:docInfo (1.7s) -✔ [2759/3093] Built mathlib/Mathlib.CategoryTheory.Iso:docInfo (1.7s) -✔ [2765/3094] Built mathlib/Mathlib.Data.Multiset.Defs:docInfo (1.8s) -✔ [2766/3094] Built mathlib/Mathlib.Order.Fin.Basic:docInfo (1.7s) -✔ [2768/3098] Built mathlib/Mathlib.Data.Set.Insert:docInfo (1.3s) -✔ [2769/3098] Built mathlib/Mathlib.Data.List.Range:docInfo (1.6s) -✔ [2774/3100] Built mathlib/Mathlib.Order.BooleanAlgebra.Basic:docInfo (1.5s) -✔ [2777/3101] Built hottlean/HoTTLean.Typechecker.Synth:docInfo (2.6s) -✔ [2779/3102] Built mathlib/Mathlib.Data.Set.Subsingleton:docInfo (1.4s) -✔ [2781/3102] Built mathlib/Mathlib.Tactic.CategoryTheory.IsoReassoc:docInfo (1.7s) -✔ [2782/3102] Built mathlib/Mathlib.Data.Bool.Set:docInfo (1.5s) -✔ [2783/3102] Built mathlib/Mathlib.CategoryTheory.HomCongr:docInfo (1.8s) -✔ [2784/3102] Built mathlib/Mathlib.Tactic.CategoryTheory.CancelIso:docInfo (1.8s) -✔ [2785/3105] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.Basic:docInfo (1.8s) -✔ [2786/3105] Built mathlib/Mathlib.Data.Multiset.ZeroCons:docInfo (1.8s) -✔ [2790/3108] Built mathlib/Mathlib.CategoryTheory.Functor.Category:docInfo (1.9s) -✔ [2791/3108] Built mathlib/Mathlib.Algebra.BigOperators.Group.List.Lemmas:docInfo (1.7s) -✔ [2795/3109] Built mathlib/Mathlib.Order.BooleanAlgebra.Set:docInfo (1.4s) -✔ [2797/3110] Built mathlib/Mathlib.Order.SymmDiff:docInfo (1.5s) -✔ [2799/3112] Built mathlib/Mathlib.Data.Fin.Tuple.Basic:docInfo (2.2s) -✔ [2802/3112] Built mathlib/Mathlib.Data.Part:docInfo (1.4s) -✔ [2803/3113] Built mathlib/Mathlib.Data.Set.SymmDiff:docInfo (1.3s) -✔ [2804/3113] Built hottlean/HoTTLean.Frontend.Commands:docInfo (2.5s) -✔ [2806/3113] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.ClosedUnderIsomorphisms:docInfo (1.6s) -✔ [2807/3113] Built mathlib/Mathlib.CategoryTheory.Thin:docInfo (1.5s) -✔ [2808/3113] Built mathlib/Mathlib.Data.Multiset.Basic:docInfo (1.6s) -✔ [2809/3116] Built mathlib/Mathlib.CategoryTheory.NatIso:docInfo (1.6s) -✔ [2810/3116] Built mathlib/Mathlib.Order.Interval.Set.Basic:docInfo (1.5s) -✔ [2811/3116] Built mathlib/Mathlib.Data.Multiset.Count:docInfo (1.6s) -✔ [2815/3116] Built mathlib/Mathlib.CategoryTheory.Functor.Trifunctor:docInfo (2.0s) -✔ [2816/3117] Built mathlib/Mathlib.Data.List.OfFn:docInfo (1.7s) -✔ [2818/3117] Built mathlib/Mathlib.Data.List.FinRange:docInfo (1.8s) -✔ [2819/3123] Built mathlib/Mathlib.Data.Set.Image:docInfo (1.5s) -✔ [2826/3124] Built mathlib/Mathlib.Data.Multiset.AddSub:docInfo (1.6s) -✔ [2828/3126] Built mathlib/Mathlib.CategoryTheory.Functor.FullyFaithful:docInfo (1.8s) -✔ [2831/3127] Built mathlib/Mathlib.CategoryTheory.Bicategory.Basic:docInfo (1.9s) -✔ [2833/3128] Built mathlib/Mathlib.Data.List.Sort:docInfo (1.7s) -✔ [2835/3128] Built mathlib/Mathlib.Data.Nat.Set:docInfo (1.3s) -✔ [2836/3128] Built mathlib/Mathlib.Data.Set.List:docInfo (1.3s) -✔ [2837/3129] Built mathlib/Mathlib.Data.Set.Restrict:docInfo (1.4s) -✔ [2838/3129] Built mathlib/Mathlib.Order.Directed:docInfo (1.4s) -✔ [2840/3131] Built mathlib/Mathlib.Data.Set.Prod:docInfo (1.6s) -ℹ [2843/3131] Built mathlib/Mathlib.Data.Fin.VecNotation:docInfo (1.8s) -info: stdout: -WARNING: Failed to calculate equational lemmata for PiFin.toExpr: failed -✔ [2844/3132] Built mathlib/Mathlib.Data.Multiset.Replicate:docInfo (1.7s) -✔ [2846/3134] Built mathlib/Mathlib.CategoryTheory.InducedCategory:docInfo (1.7s) -✔ [2847/3134] Built mathlib/Mathlib.Tactic.CategoryTheory.BicategoricalComp:docInfo (1.6s) -✔ [2850/3135] Built mathlib/Mathlib.CategoryTheory.Whiskering:docInfo (2.2s) -✔ [2851/3135] Built mathlib/Mathlib.Data.List.NodupEquivFin:docInfo (1.7s) -✔ [2853/3136] Built mathlib/Mathlib.Order.Bounds.Basic:docInfo (1.5s) -✔ [2855/3137] Built mathlib/Mathlib.Data.Set.NAry:docInfo (1.7s) -✔ [2857/3140] Built mathlib/Mathlib.Data.Set.Function:docInfo (1.9s) -✔ [2861/3141] Built mathlib/Mathlib.Data.Multiset.MapFold:docInfo (1.7s) -✔ [2863/3143] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.FullSubcategory:docInfo (1.6s) -✔ [2866/3145] Built mathlib/Mathlib.Tactic.CategoryTheory.Bicategory.Datatypes:docInfo (1.8s) -✔ [2869/3145] Built mathlib/Mathlib.Order.CompleteLattice.Defs:docInfo (1.4s) -✔ [2870/3145] Built mathlib/Mathlib.CategoryTheory.Functor.ReflectsIso.Basic:docInfo (1.6s) -✔ [2871/3145] Built mathlib/Mathlib.Order.Bounds.Image:docInfo (1.5s) -✔ [2872/3145] Built mathlib/Mathlib.Order.WellFounded:docInfo (1.3s) -✔ [2873/3148] Built mathlib/Mathlib.Logic.Equiv.Set:docInfo (1.4s) -✔ [2874/3148] Built mathlib/Mathlib.Data.Set.Pairwise.Basic:docInfo (1.4s) -✔ [2878/3150] Built mathlib/Mathlib.Data.Multiset.Filter:docInfo (1.7s) -✔ [2881/3151] Built mathlib/Mathlib.CategoryTheory.EssentialImage:docInfo (1.6s) -✔ [2883/3152] Built mathlib/Mathlib.CategoryTheory.ConcreteCategory.Basic:docInfo (1.8s) -✔ [2885/3152] Built mathlib/Mathlib.Tactic.CategoryTheory.Bicategory.PureCoherence:docInfo (1.8s) -✔ [2886/3152] Built mathlib/Mathlib.Logic.Small.Basic:docInfo (1.5s) -✔ [2887/3152] Built mathlib/Mathlib.Tactic.CategoryTheory.Bicategory.Normalize:docInfo (2.6s) -✔ [2888/3154] Built mathlib/Mathlib.Order.Hom.Set:docInfo (1.7s) -✔ [2891/3157] Built mathlib/Mathlib.Data.Finset.Defs:docInfo (1.8s) -✔ [2895/3157] Built mathlib/Mathlib.Algebra.BigOperators.Group.Multiset.Defs:docInfo (1.6s) -✔ [2896/3160] Built mathlib/Mathlib.Tactic.CategoryTheory.Elementwise:docInfo (1.6s) -✔ [2897/3160] Built mathlib/Mathlib.Data.Multiset.UnionInter:docInfo (1.7s) -✔ [2901/3162] Built mathlib/Mathlib.CategoryTheory.Equivalence:docInfo (2.1s) -✔ [2904/3162] Built mathlib/Mathlib.Tactic.CategoryTheory.Bicategory.Basic:docInfo (1.5s) -✔ [2905/3162] Built mathlib/Mathlib.Data.Finset.Erase:docInfo (1.5s) -✔ [2906/3165] Built mathlib/Mathlib.Order.CompleteLattice.Basic:docInfo (1.7s) -✔ [2910/3166] Built mathlib/Mathlib.Data.Finset.Attach:docInfo (1.7s) -✔ [2911/3166] Built mathlib/Mathlib.Data.Finset.Empty:docInfo (1.7s) -✔ [2913/3169] Built mathlib/Mathlib.Data.Multiset.Dedup:docInfo (1.7s) -✔ [2914/3169] Built mathlib/Mathlib.Data.Multiset.Range:docInfo (1.6s) -✔ [2918/3170] Built mathlib/Mathlib.CategoryTheory.Elementwise:docInfo (1.7s) -✔ [2920/3170] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.Equivalence:docInfo (1.7s) -✔ [2921/3174] Built mathlib/Mathlib.CategoryTheory.Opposites:docInfo (2.0s) -✔ [2926/3174] Built mathlib/Mathlib.Order.CompleteLattice.Lemmas:docInfo (1.4s) -✔ [2927/3175] Built mathlib/Mathlib.Order.GaloisConnection.Basic:docInfo (1.5s) -✔ [2929/3175] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.CompleteLattice:docInfo (1.6s) -✔ [2930/3176] Built mathlib/Mathlib.Data.Finset.Filter:docInfo (1.7s) -✔ [2932/3176] Built mathlib/Mathlib.Data.Finset.Dedup:docInfo (1.6s) -✔ [2933/3177] Built mathlib/Mathlib.Data.Multiset.Fold:docInfo (1.6s) -✔ [2934/3177] Built mathlib/Mathlib.Algebra.Order.Group.Multiset:docInfo (1.7s) -✔ [2936/3179] Built mathlib/Mathlib.Data.Multiset.FinsetOps:docInfo (1.7s) -✔ [2939/3179] Built mathlib/Mathlib.CategoryTheory.Functor.Const:docInfo (1.6s) -✔ [2940/3185] Built mathlib/Mathlib.CategoryTheory.EqToHom:docInfo (1.8s) -✔ [2941/3185] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.Opposite:docInfo (1.7s) -✔ [2948/3185] Built mathlib/Mathlib.CategoryTheory.Functor.TwoSquare:docInfo (1.9s) -✔ [2949/3185] Built mathlib/Mathlib.Order.CompleteBooleanAlgebra:docInfo (1.0s) -✔ [2950/3185] Built mathlib/Mathlib.Data.Fintype.Defs:docInfo (1.8s) -✔ [2951/3186] Built mathlib/Mathlib.Data.Finset.Lattice.Basic:docInfo (1.7s) -✔ [2952/3186] Built mathlib/Mathlib.Algebra.BigOperators.Group.Multiset.Basic:docInfo (1.7s) -✔ [2954/3190] Built mathlib/Mathlib.Data.Finset.Insert:docInfo (1.8s) -✔ [2959/3191] Built mathlib/Mathlib.CategoryTheory.Category.ULift:docInfo (1.7s) -✔ [2960/3191] Built mathlib/Mathlib.CategoryTheory.Category.Preorder:docInfo (1.8s) -✔ [2961/3191] Built mathlib/Mathlib.CategoryTheory.Bicategory.Strict.Basic:docInfo (1.7s) -✔ [2962/3191] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Whiskering:docInfo (1.8s) -✔ [2964/3191] Built mathlib/Mathlib.CategoryTheory.Bicategory.Functor.Prelax:docInfo (1.8s) -✔ [2965/3194] Built mathlib/Mathlib.CategoryTheory.Products.Basic:docInfo (2.0s) -✔ [2969/3194] Built mathlib/Mathlib.Data.Finset.Lattice.Lemmas:docInfo (1.6s) -✔ [2970/3194] Built mathlib/Mathlib.Data.Finset.Range:docInfo (1.7s) -✔ [2971/3194] Built mathlib/Mathlib.Data.Finset.SDiff:docInfo (1.8s) -✔ [2972/3194] Built mathlib/Mathlib.Data.Multiset.Bind:docInfo (1.0s) -✔ [2973/3196] Built mathlib/Mathlib.Data.Finset.Disjoint:docInfo (1.9s) -✔ [2976/3196] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Functor.Iso:docInfo (1.9s) -✔ [2977/3196] Built mathlib/Mathlib.CategoryTheory.Functor.Currying:docInfo (1.8s) -✔ [2978/3197] Built mathlib/Mathlib.CategoryTheory.Pi.Basic:docInfo (1.8s) -✔ [2980/3198] Built mathlib/Mathlib.CategoryTheory.Monoidal.Category:docInfo (2.2s) -✔ [2982/3198] Built mathlib/Mathlib.Data.Finset.Basic:docInfo (1.7s) -✔ [2983/3203] Built mathlib/Mathlib.Data.Finset.Image:docInfo (1.9s) -✔ [2989/3207] Built mathlib/Mathlib.CategoryTheory.Discrete.Basic:docInfo (1.9s) -✔ [2994/3208] Built mathlib/Mathlib.Tactic.CategoryTheory.MonoidalComp:docInfo (1.6s) -✔ [2996/3210] Built mathlib/Mathlib.Data.Finset.BooleanAlgebra:docInfo (1.7s) -✔ [2997/3210] Built mathlib/Mathlib.Data.Fintype.OfMap:docInfo (1.6s) -✔ [2998/3210] Built mathlib/Mathlib.Data.Finset.SymmDiff:docInfo (1.6s) -✔ [2999/3210] Built mathlib/Mathlib.Data.Finset.Fold:docInfo (1.7s) -✔ [3002/3210] Built mathlib/Mathlib.Data.Finset.Card:docInfo (2.0s) -✔ [3003/3211] Built mathlib/Mathlib.CategoryTheory.Products.Unitor:docInfo (1.6s) -✔ [3004/3211] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.WalkingPair:docInfo (1.6s) -✔ [3005/3211] Built mathlib/Mathlib.CategoryTheory.PEmpty:docInfo (1.6s) -✔ [3007/3211] Built mathlib/Mathlib.CategoryTheory.PUnit:docInfo (1.7s) -✔ [3008/3213] Built mathlib/Mathlib.Tactic.CategoryTheory.Monoidal.Datatypes:docInfo (1.9s) -✔ [3011/3214] Built mathlib/Mathlib.Data.Finset.Union:docInfo (1.7s) -✔ [3013/3215] Built mathlib/Mathlib.Data.Fintype.Sets:docInfo (1.9s) -✔ [3015/3215] Built mathlib/Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence:docInfo (1.9s) -✔ [3016/3216] Built mathlib/Mathlib.CategoryTheory.Comma.Basic:docInfo (2.4s) -✔ [3018/3216] Built mathlib/Mathlib.Data.Finset.Option:docInfo (1.7s) -✔ [3019/3217] Built mathlib/Mathlib.Data.Fintype.Basic:docInfo (1.7s) -✔ [3021/3218] Built mathlib/Mathlib.Tactic.CategoryTheory.Monoidal.Normalize:docInfo (2.7s) -✔ [3023/3221] Built mathlib/Mathlib.CategoryTheory.Comma.Arrow:docInfo (1.9s) -✔ [3024/3221] Built mathlib/Mathlib.Data.Fintype.Card:docInfo (1.7s) -✔ [3028/3221] Built mathlib/Mathlib.Tactic.CategoryTheory.Monoidal.Basic:docInfo (1.6s) -✔ [3029/3221] Built mathlib/Mathlib.CategoryTheory.CommSq:docInfo (1.7s) -✔ [3032/3225] Built mathlib/Mathlib.Data.Fintype.EquivFin:docInfo (1.8s) -✔ [3035/3230] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.Basic:docInfo (2.0s) -✔ [3041/3231] Built mathlib/Mathlib.CategoryTheory.Bicategory.LocallyDiscrete:docInfo (1.7s) -✔ [3042/3231] Built mathlib/Mathlib.CategoryTheory.FiberedCategory.HomLift:docInfo (1.7s) -✔ [3044/3232] Built mathlib/Mathlib.CategoryTheory.FinCategory.Basic:docInfo (1.6s) -✔ [3046/3232] Built mathlib/Mathlib.Data.Fintype.Option:docInfo (1.7s) -✔ [3047/3238] Built mathlib/Mathlib.CategoryTheory.Groupoid:docInfo (1.7s) -✔ [3048/3238] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.IsInvertedBy:docInfo (1.7s) -✔ [3055/3238] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.Factorization:docInfo (1.8s) -✔ [3056/3238] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic:docInfo (1.8s) -✔ [3057/3240] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.Composition:docInfo (2.0s) -✔ [3060/3240] Built mathlib/Mathlib.CategoryTheory.FiberedCategory.Fiber:docInfo (1.7s) -✔ [3061/3240] Built mathlib/Mathlib.CategoryTheory.FinCategory.AsType:docInfo (1.7s) -✔ [3062/3240] Built mathlib/Mathlib.CategoryTheory.Groupoid.Discrete:docInfo (1.6s) -✔ [3063/3241] Built mathlib/Mathlib.CategoryTheory.IsConnected:docInfo (1.7s) -✔ [3064/3241] Built mathlib/Mathlib.CategoryTheory.Endomorphism:docInfo (1.8s) -✔ [3065/3241] Built mathlib/Mathlib.CategoryTheory.Quotient:docInfo (1.8s) -✔ [3066/3241] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Groupoid:docInfo (1.8s) -✔ [3068/3245] Built mathlib/Mathlib.CategoryTheory.EpiMono:docInfo (1.9s) -✔ [3073/3245] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.WideSubcategory:docInfo (1.7s) -✔ [3074/3245] Built mathlib/Mathlib.CategoryTheory.Widesubcategory:docInfo (1.8s) -✔ [3075/3245] Built mathlib/Mathlib.CategoryTheory.Balanced:docInfo (1.6s) -✔ [3076/3247] Built mathlib/Mathlib.CategoryTheory.PathCategory.Basic:docInfo (1.7s) -✔ [3079/3247] Built mathlib/Mathlib.CategoryTheory.Monad.Basic:docInfo (1.9s) -✔ [3080/3254] Built mathlib/Mathlib.CategoryTheory.Types.Basic:docInfo (1.9s) -✔ [3081/3254] Built mathlib/Mathlib.CategoryTheory.Retract:docInfo (1.9s) -✔ [3089/3254] Built mathlib/Mathlib.CategoryTheory.Groupoid.FreeGroupoid:docInfo (1.8s) -✔ [3090/3254] Built mathlib/Mathlib.CategoryTheory.PathCategory.MorphismProperty:docInfo (1.7s) -✔ [3091/3255] Built mathlib/Mathlib.CategoryTheory.LiftingProperties.Basic:docInfo (1.7s) -✔ [3092/3255] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.Retract:docInfo (1.6s) -✔ [3094/3257] Built mathlib/Mathlib.CategoryTheory.Functor.Hom:docInfo (1.7s) -✔ [3095/3257] Built mathlib/Mathlib.CategoryTheory.ConcreteCategory.Forget:docInfo (1.7s) -✔ [3098/3260] Built mathlib/Mathlib.CategoryTheory.Category.Cat:docInfo (1.7s) -✔ [3102/3260] Built mathlib/Mathlib.CategoryTheory.Limits.Types.ColimitType:docInfo (1.9s) -✔ [3103/3260] Built mathlib/Mathlib.CategoryTheory.Core:docInfo (1.0s) -✔ [3104/3260] Built mathlib/Mathlib.CategoryTheory.IsomorphismClasses:docInfo (1.6s) -✔ [3105/3260] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.StrongEpi:docInfo (1.7s) -✔ [3106/3263] Built mathlib/Mathlib.CategoryTheory.Category.Cat.AsSmall:docInfo (1.7s) -✔ [3107/3263] Built mathlib/Mathlib.Algebra.Category.MonCat.Basic:docInfo (1.8s) -✔ [3108/3263] Built mathlib/Mathlib.Tactic.CategoryTheory.ToApp:docInfo (1.8s) -✔ [3112/3265] Built mathlib/Mathlib.CategoryTheory.Yoneda:docInfo (2.2s) -✔ [3115/3266] Built mathlib/Mathlib.CategoryTheory.SingleObj:docInfo (1.8s) -✔ [3116/3266] Built mathlib/Mathlib.CategoryTheory.Bicategory.Functor.Oplax:docInfo (1.9s) -✔ [3118/3267] Built mathlib/Mathlib.CategoryTheory.Bicategory.Functor.Lax:docInfo (2.1s) -✔ [3120/3273] Built mathlib/Mathlib.CategoryTheory.Adjunction.Basic:docInfo (2.0s) -✔ [3127/3274] Built mathlib/Mathlib.CategoryTheory.Limits.Cones:docInfo (2.7s) -✔ [3129/3275] Built mathlib/Mathlib.CategoryTheory.LiftingProperties.Adjunction:docInfo (1.7s) -✔ [3130/3275] Built mathlib/Mathlib.CategoryTheory.Bicategory.NaturalTransformation.Oplax:docInfo (2.2s) -✔ [3132/3276] Built mathlib/Mathlib.CategoryTheory.Adjunction.FullyFaithful:docInfo (1.8s) -✔ [3134/3277] Built mathlib/Mathlib.CategoryTheory.Skeletal:docInfo (1.9s) -✔ [3136/3278] Built mathlib/Mathlib.CategoryTheory.Category.Quiv:docInfo (2.2s) -✔ [3138/3278] Built mathlib/Mathlib.CategoryTheory.CodiscreteCategory:docInfo (2.3s) -✔ [3139/3280] Built mathlib/Mathlib.CategoryTheory.Adjunction.Mates:docInfo (2.4s) -✔ [3140/3280] Built mathlib/Mathlib.CategoryTheory.Bicategory.Functor.Pseudofunctor:docInfo (2.7s) -✔ [3143/3281] Built mathlib/Mathlib.CategoryTheory.Limits.IsLimit:docInfo (2.0s) -✔ [3145/3283] Built mathlib/Mathlib.CategoryTheory.Functor.EpiMono:docInfo (1.7s) -✔ [3148/3286] Built mathlib/Mathlib.CategoryTheory.EssentiallySmall:docInfo (1.7s) -✔ [3152/3287] Built mathlib/Mathlib.CategoryTheory.Localization.Construction:docInfo (1.7s) -✔ [3154/3289] Built mathlib/Mathlib.CategoryTheory.Monoidal.Functor:docInfo (2.5s) -✔ [3157/3289] Built mathlib/Mathlib.CategoryTheory.Bicategory.Functor.LocallyDiscrete:docInfo (2.0s) -✔ [3158/3290] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.IsTerminal:docInfo (1.8s) -✔ [3159/3290] Built mathlib/Mathlib.CategoryTheory.Bicategory.NaturalTransformation.Pseudo:docInfo (2.1s) -✔ [3161/3290] Built mathlib/Mathlib.CategoryTheory.Adjunction.Reflective:docInfo (1.7s) -✔ [3162/3291] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.Small:docInfo (1.7s) -✔ [3163/3291] Built mathlib/Mathlib.CategoryTheory.Monad.Algebra:docInfo (1.8s) -✔ [3165/3291] Built mathlib/Mathlib.CategoryTheory.ShrinkYoneda:docInfo (1.9s) -✔ [3166/3292] Built mathlib/Mathlib.CategoryTheory.Localization.Predicate:docInfo (1.8s) -✔ [3168/3299] Built mathlib/Mathlib.CategoryTheory.Limits.HasLimits:docInfo (2.4s) -✔ [3176/3300] Built mathlib/Mathlib.CategoryTheory.Monoidal.NaturalTransformation:docInfo (1.8s) -✔ [3177/3300] Built mathlib/Mathlib.CategoryTheory.Monoidal.Opposite:docInfo (1.9s) -✔ [3179/3300] Built mathlib/Mathlib.CategoryTheory.Monad.Adjunction:docInfo (1.7s) -✔ [3180/3302] Built mathlib/Mathlib.CategoryTheory.Comma.StructuredArrow.Basic:docInfo (2.8s) -✔ [3183/3302] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate:docInfo (1.6s) -✔ [3184/3304] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Terminal:docInfo (1.8s) -✔ [3185/3304] Built mathlib/Mathlib.CategoryTheory.Limits.Types.Limits:docInfo (1.8s) -✔ [3186/3304] Built mathlib/Mathlib.CategoryTheory.Limits.Unit:docInfo (1.7s) -✔ [3189/3305] Built mathlib/Mathlib.CategoryTheory.Monoidal.Discrete:docInfo (1.8s) -✔ [3191/3308] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Basic:docInfo (1.0s) -✔ [3192/3308] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryFan:docInfo (1.9s) -✔ [3196/3309] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.WidePullbacks:docInfo (2.1s) -✔ [3198/3312] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Products:docInfo (2.5s) -✔ [3202/3312] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.ZeroObjects:docInfo (1.8s) -✔ [3203/3312] Built mathlib/Mathlib.CategoryTheory.Elements:docInfo (2.2s) -✔ [3204/3312] Built mathlib/Mathlib.CategoryTheory.Adjunction.Comma:docInfo (1.7s) -✔ [3205/3313] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Limits:docInfo (1.7s) -✔ [3206/3313] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Shapes.Terminal:docInfo (1.7s) -✔ [3208/3317] Built mathlib/Mathlib.CategoryTheory.Comma.Over.Basic:docInfo (2.5s) -✔ [3209/3317] Built mathlib/Mathlib.CategoryTheory.Limits.Creates:docInfo (1.9s) -✔ [3214/3318] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.Cospan:docInfo (1.9s) -✔ [3215/3318] Built mathlib/Mathlib.CategoryTheory.Monoidal.Braided.Basic:docInfo (2.1s) -✔ [3217/3318] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Shapes.Products:docInfo (1.7s) -✔ [3218/3318] Built mathlib/Mathlib.CategoryTheory.Groupoid.Grpd.Basic:docInfo (1.9s) -✔ [3219/3318] Built mathlib/Mathlib.CategoryTheory.EffectiveEpi.Basic:docInfo (1.0s) -✔ [3220/3320] Built mathlib/Mathlib.CategoryTheory.Limits.FunctorCategory.Basic:docInfo (1.0s) -✔ [3221/3320] Built mathlib/Mathlib.CategoryTheory.Adjunction.Limits:docInfo (1.8s) -✔ [3224/3326] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts:docInfo (1.9s) -✔ [3225/3326] Built mathlib/Mathlib.CategoryTheory.Comma.Presheaf.Basic:docInfo (1.9s) -✔ [3226/3326] Built mathlib/Mathlib.CategoryTheory.Grothendieck:docInfo (1.9s) -✔ [3233/3327] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.PullbackCone:docInfo (1.9s) -✔ [3235/3329] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Equivalence:docInfo (1.8s) -✔ [3236/3329] Built mathlib/Mathlib.CategoryTheory.Limits.Types.Products:docInfo (1.7s) -✔ [3237/3329] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.StrictInitial:docInfo (1.7s) -✔ [3240/3329] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Grothendieck:docInfo (1.8s) -✔ [3241/3329] Built mathlib/Mathlib.CategoryTheory.Comma.StructuredArrow.Functor:docInfo (1.8s) -✔ [3242/3329] Built mathlib/Mathlib.CategoryTheory.Monad.Products:docInfo (1.8s) -✔ [3243/3329] Built mathlib/Mathlib.CategoryTheory.Monad.Limits:docInfo (1.9s) -✔ [3244/3330] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.ProdComparison:docInfo (1.9s) -✔ [3246/3334] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.HasPullback:docInfo (2.0s) -✔ [3251/3334] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts:docInfo (1.7s) -✔ [3252/3334] Built mathlib/Mathlib.CategoryTheory.Limits.ConeCategory:docInfo (1.0s) -✔ [3253/3334] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.WeakPullback:docInfo (1.6s) -✔ [3254/3335] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.Iso:docInfo (1.7s) -✔ [3256/3336] Built mathlib/Mathlib.CategoryTheory.Functor.KanExtension.Basic:docInfo (2.3s) -✔ [3258/3338] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.Pasting:docInfo (2.1s) -✔ [3261/3340] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Equalizers:docInfo (2.5s) -✔ [3264/3341] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.Mono:docInfo (1.9s) -✔ [3266/3342] Built mathlib/Mathlib.CategoryTheory.Functor.KanExtension.Pointwise:docInfo (1.9s) -✔ [3268/3342] Built mathlib/Mathlib.CategoryTheory.Comma.Over.Pullback:docInfo (1.8s) -✔ [3269/3342] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.Assoc:docInfo (1.9s) -✔ [3270/3342] Built mathlib/Mathlib.CategoryTheory.Limits.Connected:docInfo (1.9s) -✔ [3271/3345] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.FiniteLimits:docInfo (2.0s) -✔ [3275/3346] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Images:docInfo (2.1s) -✔ [3276/3346] Built mathlib/Mathlib.CategoryTheory.Functor.KanExtension.Adjunction:docInfo (1.8s) -✔ [3278/3347] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.FiniteProducts:docInfo (1.8s) -✔ [3280/3348] Built mathlib/Mathlib.CategoryTheory.Filtered.Basic:docInfo (1.9s) -✔ [3282/3349] Built mathlib/Mathlib.CategoryTheory.Limits.Opposites:docInfo (2.1s) -✔ [3284/3350] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.ZeroMorphisms:docInfo (1.8s) -✔ [3286/3350] Built mathlib/Mathlib.CategoryTheory.Filtered.Connected:docInfo (1.8s) -✔ [3287/3352] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Finite:docInfo (1.0s) -✔ [3290/3354] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Opposites.Pullbacks:docInfo (1.0s) -✔ [3293/3356] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Shapes.Zero:docInfo (1.8s) -✔ [3296/3356] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Creates.Finite:docInfo (1.9s) -✔ [3297/3356] Built mathlib/Mathlib.CategoryTheory.Limits.Constructions.FiniteProductsOfBinaryProducts:docInfo (1.9s) -✔ [3298/3357] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Defs:docInfo (1.8s) -✔ [3300/3358] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Opposites.Equalizers:docInfo (1.9s) -✔ [3302/3358] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.ContainsZero:docInfo (1.8s) -✔ [3303/3360] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Kernels:docInfo (2.4s) -✔ [3306/3360] Built mathlib/Mathlib.CategoryTheory.LiftingProperties.Limits:docInfo (1.7s) -✔ [3307/3360] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.RegularMono:docInfo (2.0s) -✔ [3308/3362] Built mathlib/Mathlib.CategoryTheory.ConcreteCategory.Elementwise:docInfo (1.9s) -✔ [3311/3363] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Biproducts:docInfo (2.6s) -✔ [3313/3365] Built mathlib/Mathlib.CategoryTheory.Limits.Types.Colimits:docInfo (1.8s) -✔ [3314/3365] Built mathlib/Mathlib.CategoryTheory.Category.Cat.Limit:docInfo (1.8s) -✔ [3317/3366] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.BinaryBiproducts:docInfo (2.2s) -✔ [3319/3367] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Ulift:docInfo (1.8s) -✔ [3321/3367] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.FreeGroupoid:docInfo (1.9s) -✔ [3322/3367] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.Retract:docInfo (1.9s) -✔ [3323/3369] Built mathlib/Mathlib.CategoryTheory.Limits.Yoneda:docInfo (2.0s) -✔ [3326/3371] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.Shapes.Pullbacks:docInfo (2.1s) -✔ [3329/3372] Built mathlib/Mathlib.CategoryTheory.Limits.Final:docInfo (2.3s) -✔ [3331/3373] Built mathlib/Mathlib.CategoryTheory.Limits.Constructions.EpiMono:docInfo (1.9s) -✔ [3333/3374] Built mathlib/Mathlib.CategoryTheory.Limits.Constructions.BinaryProducts:docInfo (1.0s) -✔ [3335/3375] Built mathlib/Mathlib.CategoryTheory.Limits.Presentation:docInfo (2.1s) -✔ [3337/3376] Built mathlib/Mathlib.CategoryTheory.Limits.Comma:docInfo (2.0s) -✔ [3339/3377] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.LimitsOfShape:docInfo (1.7s) -✔ [3341/3379] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Pullback.IsPullback.Basic:docInfo (2.2s) -✔ [3344/3380] Built mathlib/Mathlib.CategoryTheory.ObjectProperty.ColimitsOfShape:docInfo (1.8s) -✔ [3346/3382] Built mathlib/Mathlib.CategoryTheory.Limits.Over:docInfo (2.1s) -✔ [3347/3382] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.KernelPair:docInfo (1.8s) -✔ [3350/3382] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.RepPullbackCone:docInfo (2.1s) -✔ [3351/3383] Built mathlib/Mathlib.CategoryTheory.Limits.FullSubcategory:docInfo (1.9s) -✔ [3353/3384] Built mathlib/Mathlib.CategoryTheory.Limits.Presheaf:docInfo (2.1s) -✔ [3355/3385] Built mathlib/Mathlib.CategoryTheory.Limits.Shapes.Diagonal:docInfo (2.3s) -✔ [3357/3385] Built mathlib/Mathlib.CategoryTheory.Limits.Preserves.FunctorCategory:docInfo (1.0s) -✔ [3358/3387] Built mathlib/Mathlib.CategoryTheory.Monoidal.Cartesian.Basic:docInfo (2.3s) -✔ [3361/3388] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.Limits:docInfo (2.1s) -✔ [3363/3388] Built mathlib/Mathlib.CategoryTheory.Monoidal.Cartesian.Cat:docInfo (1.9s) -✔ [3364/3388] Built mathlib/Mathlib.CategoryTheory.MorphismProperty.LiftingProperty:docInfo (1.7s) -✔ [3365/3392] Built hottlean/HoTTLean.ForMathlib:docInfo (2.3s) -✔ [3370/3393] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.NatTrans:docInfo (1.9s) -✔ [3372/3393] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Grpd:docInfo (2.1s) -✔ [3373/3394] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Functor.IsPullback:docInfo (2.2s) -✔ [3375/3396] Built hottlean/HoTTLean.Model.Unstructured.UnstructuredUniverse:docInfo (2.4s) -✔ [3378/3396] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Core:docInfo (1.0s) -✔ [3379/3397] Built hottlean/HoTTLean.Model.Unstructured.UHom:docInfo (1.9s) -✔ [3381/3398] Built hottlean/HoTTLean.ForMathlib.CategoryTheory.Bicategory.Grothendieck:docInfo (2.6s) -✔ [3383/3398] Built hottlean/HoTTLean.Model.Unstructured.Hurewicz:docInfo (2.4s) -✔ [3384/3399] Built hottlean/HoTTLean.Grothendieck.Groupoidal.Basic:docInfo (2.4s) -✔ [3386/3399] Built hottlean/HoTTLean.Model.Unstructured.Interpretation:docInfo (3.7s) -✔ [3387/3400] Built hottlean/HoTTLean.Pointed.Basic:docInfo (2.6s) -✔ [3389/3401] Built hottlean/HoTTLean.Grothendieck.IsPullback:docInfo (2.3s) -✔ [3391/3402] Built hottlean/HoTTLean.Pointed.IsPullback:docInfo (2.0s) -✔ [3393/3403] Built hottlean/HoTTLean.Grothendieck.Groupoidal.IsPullback:docInfo (2.1s) -✔ [3395/3404] Built hottlean/HoTTLean.Groupoids.Basic:docInfo (2.1s) -✔ [3397/3405] Built hottlean/HoTTLean.Groupoids.IsPullback:docInfo (2.1s) -✔ [3399/3406] Built hottlean/HoTTLean.Groupoids.UnstructuredModel:docInfo (2.1s) -✔ [3401/3406] Built hottlean/HoTTLean.Groupoids.Sigma:docInfo (2.2s) -✔ [3403/3408] Built hottlean/HoTTLean.Groupoids.Pi:docInfo (2.6s) -✔ [3405/3409] Built hottlean/HoTTLean.Groupoids.ClovenIsofibration:docInfo (2.3s) -✔ [3407/3410] Built hottlean/HoTTLean.Groupoids.Id:docInfo (2.4s) -✔ [3409/3410] Built hottlean/HoTTLean:docInfo (3.3s) -ℹ [3410/3410] Built hottlean/HoTTLean:docs (20s) -info: Generating documentation for HoTTLean (1 root modules) -Build completed successfully (3410 jobs). - -Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/command-receipts.txt b/docs/lean-v4.34.1/evidence/command-receipts.txt deleted file mode 100644 index 7b67b729..00000000 --- a/docs/lean-v4.34.1/evidence/command-receipts.txt +++ /dev/null @@ -1,111 +0,0 @@ -Validated source commit: 20c4b230b0e0ae41e8fe2e8cb020a80908a3de57 -Lean: leanprover/lean4:v4.34.1 - -{ - "project": { - "command": [ - "lake", - "build" - ], - "exit_status": 0, - "seconds": 1.15, - "source_unchanged": true, - "log_sha256": "f0251019fa8942a18fc329bd25bd60d51e14a6136dd59b399e4b2caa77f724a1" - }, - "natural": { - "command": [ - "lake", - "build", - "NaturalModel" - ], - "exit_status": 0, - "seconds": 54.91, - "source_unchanged": true, - "log_sha256": "52867e9335804c957ce970227196d7f833d6be12b16db1e903de3f1969c73747" - }, - "tests": { - "command": [ - "lake", - "test" - ], - "exit_status": 0, - "seconds": 14.19, - "source_unchanged": true, - "log_sha256": "f6a84de0e87f30c27d858873094a4d9e04b5de858b663594c9c55d60f30f3714" - }, - "compatibility": { - "command": [ - "lake", - "build", - "+HoTTLean.ForMathlib.CategoryTheory.Groupoid", - "+HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate", - "+HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic" - ], - "exit_status": 0, - "seconds": 1.4, - "source_unchanged": true, - "log_sha256": "aaa551d62e36a5867a71edd23bf6bc68b6b5cfd7d5805dd285e1d3c92a30ecd4" - }, - "api-docs": { - "command": [ - "lake", - "-R", - "-Kenv=dev", - "build", - "HoTTLean:docs" - ], - "exit_status": 0, - "seconds": 485.61, - "source_unchanged": true, - "log_sha256": "e21ec4344f28dcf0467b90f9ae351dcc6c32dfdb59a1d3dae938041fe0e1dff1" - }, - "functor-map": { - "command": [ - "lake", - "env", - "lean", - "docs/lean-v4.34.1/evidence/FunctorMapProbe.lean" - ], - "exit_status": 0, - "seconds": 2.31, - "source_unchanged": true, - "log_sha256": "c266b0e2e4bc15a36977f6c2d9f711de6a38da508fc762e323e29debf924aa67" - }, - "legacy-test-root": { - "command": [ - "lake", - "env", - "lean", - "test.lean" - ], - "exit_status": 0, - "seconds": 4.3, - "source_unchanged": true, - "log_sha256": "d1107e483baf887f14801fcc19601f69c6853d1448d0a1984a381b26c3b1d862" - }, - "default-config": { - "command": [ - "lake", - "-R", - "env", - "lean", - "--version" - ], - "exit_status": 0, - "seconds": 2.82, - "source_unchanged": true, - "log_sha256": "1db9f627c6b7c16678148f83e7fd39d7388ca4a59fb59db5cc0159b88537332f" - }, - "whitespace": { - "command": [ - "git", - "diff", - "--check", - "39e8eb63" - ], - "exit_status": 0, - "seconds": 0.04, - "source_unchanged": true, - "log_sha256": "f21629970c9a28d548d5f472a89621ef5b7451c964178baa25f52cb2a1da1dc5" - } -} diff --git a/docs/lean-v4.34.1/evidence/compatibility.txt b/docs/lean-v4.34.1/evidence/compatibility.txt deleted file mode 100644 index 2f1fcb9d..00000000 --- a/docs/lean-v4.34.1/evidence/compatibility.txt +++ /dev/null @@ -1,4 +0,0 @@ -$ lake build +HoTTLean.ForMathlib.CategoryTheory.Groupoid +HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate +HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic -Build completed successfully (650 jobs). - -Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/default-config.txt b/docs/lean-v4.34.1/evidence/default-config.txt deleted file mode 100644 index b1de40ff..00000000 --- a/docs/lean-v4.34.1/evidence/default-config.txt +++ /dev/null @@ -1,4 +0,0 @@ -$ lake -R env lean --version -Lean (version 4.34.1, x86_64-unknown-linux-gnu, commit 5045d0056413266e57c625dcd7c365b10e377c52, Release) - -Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/dependency-checkouts.txt b/docs/lean-v4.34.1/evidence/dependency-checkouts.txt deleted file mode 100644 index 9f4b5910..00000000 --- a/docs/lean-v4.34.1/evidence/dependency-checkouts.txt +++ /dev/null @@ -1,15 +0,0 @@ -doc-gen4 953c8992d174b4e56955e01e101d46668c68f2bb clean tracked source -Poly cc08a1f77c20e07a7366f0824ecd36ae472c0377 clean tracked source -leansqlite f9cdb9eacb5c8b8ecc02ee9fd9e568d7d28c1416 clean tracked source -Cli e92c9f15fdfacc8536f31cfb3b7ad26c3c8cd204 clean tracked source -UnicodeBasic 0e569d08b6443ce0908d356884c765397253e2f0 clean tracked source -BibtexQuery 4d8616fd4870d0a3453d845770833eac7951fe1c clean tracked source -MD4Lean 31907cc18f48a95384f99cee5582c00fb39e0f67 clean tracked source -mathlib d13f23b723b8a846827a245b89c10fc7d3f11612 clean tracked source -plausible 118aa17ee84656b8bd727fef7c458ee8c833385c clean tracked source -LeanSearchClient ddf04cf3949fa556442341e87d47f9f6e6074707 clean tracked source -importGraph e928b72544873815af278d38681b31c0293588e3 clean tracked source -proofwidgets 106ff4fafc74ef4ac99d81dbf3ab399118f497a5 clean tracked source -aesop 355695d523e41d0554926416cba2a2b3544fbbc9 clean tracked source -Qq 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 clean tracked source -batteries f2effa3d803fda822b1f97b806c47cf2adfbcbc2 clean tracked source diff --git a/docs/lean-v4.34.1/evidence/dependency-pins.txt b/docs/lean-v4.34.1/evidence/dependency-pins.txt deleted file mode 100644 index 693434bc..00000000 --- a/docs/lean-v4.34.1/evidence/dependency-pins.txt +++ /dev/null @@ -1,35 +0,0 @@ -Dependency commits and paths for the combined migration. - -Default configuration: -Poly: cc08a1f77c20e07a7366f0824ecd36ae472c0377 -checkdecls: .lake/packages/Poly/vendor/checkdecls -mathlib: d13f23b723b8a846827a245b89c10fc7d3f11612 -plausible: 118aa17ee84656b8bd727fef7c458ee8c833385c -LeanSearchClient: ddf04cf3949fa556442341e87d47f9f6e6074707 -importGraph: e928b72544873815af278d38681b31c0293588e3 -proofwidgets: 106ff4fafc74ef4ac99d81dbf3ab399118f497a5 -aesop: 355695d523e41d0554926416cba2a2b3544fbbc9 -Qq: 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 -batteries: f2effa3d803fda822b1f97b806c47cf2adfbcbc2 -Cli: e92c9f15fdfacc8536f31cfb3b7ad26c3c8cd204 - -Optional documentation configuration: -«doc-gen4»: 953c8992d174b4e56955e01e101d46668c68f2bb -Poly: cc08a1f77c20e07a7366f0824ecd36ae472c0377 -leansqlite: f9cdb9eacb5c8b8ecc02ee9fd9e568d7d28c1416 -Cli: e92c9f15fdfacc8536f31cfb3b7ad26c3c8cd204 -UnicodeBasic: 0e569d08b6443ce0908d356884c765397253e2f0 -BibtexQuery: 4d8616fd4870d0a3453d845770833eac7951fe1c -MD4Lean: 31907cc18f48a95384f99cee5582c00fb39e0f67 -checkdecls: .lake/packages/Poly/vendor/checkdecls -mathlib: d13f23b723b8a846827a245b89c10fc7d3f11612 -plausible: 118aa17ee84656b8bd727fef7c458ee8c833385c -LeanSearchClient: ddf04cf3949fa556442341e87d47f9f6e6074707 -importGraph: e928b72544873815af278d38681b31c0293588e3 -proofwidgets: 106ff4fafc74ef4ac99d81dbf3ab399118f497a5 -aesop: 355695d523e41d0554926416cba2a2b3544fbbc9 -Qq: 6a489d9af5d0c47e5b259e2e8bcdfc1811b5a259 -batteries: f2effa3d803fda822b1f97b806c47cf2adfbcbc2 - -All default dependency commits and paths are unchanged in the documentation configuration. -Development metadata changes the Cli scope and input label, but its commit stays the same. diff --git a/docs/lean-v4.34.1/evidence/docs-update.txt b/docs/lean-v4.34.1/evidence/docs-update.txt deleted file mode 100644 index 5d0dff94..00000000 --- a/docs/lean-v4.34.1/evidence/docs-update.txt +++ /dev/null @@ -1,7 +0,0 @@ -$ lake -R -Kenv=dev update doc-gen4 -info: toolchain not updated; already up-to-date -info: mathlib: running post-update hooks -Current branch: HEAD -Using cache from origin: (some leanprover-community/mathlib4) -No files to download -Already decompressed 8908 file(s) diff --git a/docs/lean-v4.34.1/evidence/functor-map.txt b/docs/lean-v4.34.1/evidence/functor-map.txt deleted file mode 100644 index d1bcd42d..00000000 --- a/docs/lean-v4.34.1/evidence/functor-map.txt +++ /dev/null @@ -1,9 +0,0 @@ -$ lake env lean docs/lean-v4.34.1/evidence/FunctorMapProbe.lean -CategoryTheory.functorMapMigrationProbe_functor_map.{u, v, _uniq.122, _uniq.123} {C : Type u} [Category.{v, u} C] - {X Y : C} (f g : X ⟶ Y) (h : f = g) {D : Type _uniq.123} [Category.{_uniq.122, _uniq.123} D] (F : C ⥤ D) : - F.map f = F.map g -CategoryTheory.functorMapMigrationProbe_functor_map_assoc.{u, v, _uniq.122, _uniq.123} {C : Type u} [Category.{v, u} C] - {X Y : C} (f g : X ⟶ Y) (h : f = g) {D : Type _uniq.123} [Category.{_uniq.122, _uniq.123} D] (F : C ⥤ D) {Z : D} - (h✝ : F.obj Y ⟶ Z) : F.map f ≫ h✝ = F.map g ≫ h✝ - -Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/legacy-test-root.txt b/docs/lean-v4.34.1/evidence/legacy-test-root.txt deleted file mode 100644 index b6423b81..00000000 --- a/docs/lean-v4.34.1/evidence/legacy-test-root.txt +++ /dev/null @@ -1,3 +0,0 @@ -$ lake env lean test.lean - -Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/module-coverage.txt b/docs/lean-v4.34.1/evidence/module-coverage.txt deleted file mode 100644 index ec21d5f8..00000000 --- a/docs/lean-v4.34.1/evidence/module-coverage.txt +++ /dev/null @@ -1,85 +0,0 @@ -Static import-closure check. It does not replace compiler checks. - -Roots: -HoTTLean -HoTTLean.Prelude -HoTTLeanTest -HoTTLean.Model.Natural.Interpretation -HoTTLean.Model.Natural.NaturalModel -HoTTLean.Model.Natural.UHom -HoTTLean.ForMathlib.CategoryTheory.Groupoid -HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate -HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic - -Covered production/test files: 67 / 67 - -Outside closure: [] - -All selected modules: -HoTTLean.ForMathlib -HoTTLean.ForMathlib.CategoryTheory.Bicategory.Grothendieck -HoTTLean.ForMathlib.CategoryTheory.Core -HoTTLean.ForMathlib.CategoryTheory.FreeGroupoid -HoTTLean.ForMathlib.CategoryTheory.Functor.IsPullback -HoTTLean.ForMathlib.CategoryTheory.Functor.Iso -HoTTLean.ForMathlib.CategoryTheory.Groupoid -HoTTLean.ForMathlib.CategoryTheory.Grpd -HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate -HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic -HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.WideSubcategory -HoTTLean.ForMathlib.CategoryTheory.NatTrans -HoTTLean.ForMathlib.CategoryTheory.RepPullbackCone -HoTTLean.ForMathlib.CategoryTheory.WeakPullback -HoTTLean.ForMathlib.CategoryTheory.Whiskering -HoTTLean.ForMathlib.CategoryTheory.Yoneda -HoTTLean.ForMathlib.Tactic.CategoryTheory.FunctorMap -HoTTLean.ForPoly -HoTTLean.Frontend.Checked -HoTTLean.Frontend.Commands -HoTTLean.Frontend.EnvExt -HoTTLean.Frontend.Translation -HoTTLean.Grothendieck.Groupoidal.Basic -HoTTLean.Grothendieck.Groupoidal.IsPullback -HoTTLean.Grothendieck.IsPullback -HoTTLean.Groupoids.Basic -HoTTLean.Groupoids.ClovenIsofibration -HoTTLean.Groupoids.Id -HoTTLean.Groupoids.IsPullback -HoTTLean.Groupoids.Pi -HoTTLean.Groupoids.Sigma -HoTTLean.Groupoids.UHom -HoTTLean.Groupoids.UnstructuredModel -HoTTLean.Model.Natural.Interpretation -HoTTLean.Model.Natural.NaturalModel -HoTTLean.Model.Natural.UHom -HoTTLean.Model.Unstructured.Hurewicz -HoTTLean.Model.Unstructured.Interpretation -HoTTLean.Model.Unstructured.UHom -HoTTLean.Model.Unstructured.UnstructuredUniverse -HoTTLean.Pointed.Basic -HoTTLean.Pointed.IsPullback -HoTTLean.Prelude -HoTTLean.Syntax.Autosubst -HoTTLean.Syntax.Axioms -HoTTLean.Syntax.Basic -HoTTLean.Syntax.EqCtx -HoTTLean.Syntax.GCongr -HoTTLean.Syntax.Injectivity -HoTTLean.Syntax.Inversion -HoTTLean.Syntax.InversionLemmas -HoTTLean.Syntax.Substitution -HoTTLean.Syntax.Synth -HoTTLean.Syntax.Typing -HoTTLean.Tactic.GrindCases -HoTTLean.Tactic.MutualInduction -HoTTLean.Typechecker.Cache -HoTTLean.Typechecker.Equate -HoTTLean.Typechecker.Evaluate -HoTTLean.Typechecker.Synth -HoTTLean.Typechecker.Util -HoTTLean.Typechecker.Value -HoTTLean.Typechecker.ValueInversion -HoTTLeanTest.basic -HoTTLeanTest.hott0 -HoTTLeanTest.import -HoTTLeanTest.unitt diff --git a/docs/lean-v4.34.1/evidence/natural.txt b/docs/lean-v4.34.1/evidence/natural.txt deleted file mode 100644 index 28795fb0..00000000 --- a/docs/lean-v4.34.1/evidence/natural.txt +++ /dev/null @@ -1,78 +0,0 @@ -$ lake build NaturalModel -⚠ [990/1029] Replayed Poly.ForMathlib.CategoryTheory.LocallyCartesianClosed.Distributivity -warning: Poly/ForMathlib/CategoryTheory/LocallyCartesianClosed/Distributivity.lean:114:6: declaration uses `sorry` -warning: Poly/ForMathlib/CategoryTheory/LocallyCartesianClosed/Distributivity.lean:126:4: declaration uses `sorry` -warning: Poly/ForMathlib/CategoryTheory/LocallyCartesianClosed/Distributivity.lean:152:4: declaration uses `sorry` -⚠ [992/1029] Replayed Poly.UvPoly.Basic -warning: Poly/UvPoly/Basic.lean:64:4: declaration uses `sorry` -warning: Poly/UvPoly/Basic.lean:85:4: declaration uses `sorry` -warning: Poly/UvPoly/Basic.lean:232:4: declaration uses `sorry` -warning: Poly/UvPoly/Basic.lean:256:10: declaration uses `sorry` -warning: Poly/UvPoly/Basic.lean:251:0: declaration uses `sorry` -warning: Poly/UvPoly/Basic.lean:264:4: declaration uses `sorry` -warning: Poly/UvPoly/Basic.lean:277:4: declaration uses `sorry` -warning: Poly/UvPoly/Basic.lean:276:2: declaration uses `sorry` -warning: Poly/UvPoly/Basic.lean:276:2: declaration uses `sorry` -warning: Poly/UvPoly/Basic.lean:394:4: declaration uses `sorry` -warning: Poly/UvPoly/Basic.lean:399:9: declaration uses `sorry` -⚠ [1012/1029] Replayed HoTTLean.ForMathlib -warning: HoTTLean/ForMathlib.lean:352:0: Definition `CategoryTheory.Equivalence.chosenFiniteProducts` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. -warning: HoTTLean/ForMathlib.lean:352:4: Overlapping instance parameters in `chosenFiniteProducts`: - -⚠️ There are 2 `[CartesianMonoidalCategory C]` instances; one is sufficient. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/ForMathlib.lean:462:0: Definition `sigmaCongr_apply_snd` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1022/1029] Replayed HoTTLean.Syntax.Substitution -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.refl_tp` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.trans_tp` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.refl_tm` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.trans_tm'` annotated with `@[grind .]` -⚠ [1025/1029] Built HoTTLean.ForPoly (8.7s) -warning: HoTTLean/ForPoly.lean:63:27: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. - -Note: This linter can be disabled with `set_option linter.ambiguousOpen false` -warning: HoTTLean/ForPoly.lean:122:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. - -Note: This linter can be disabled with `set_option linter.ambiguousOpen false` -warning: HoTTLean/ForPoly.lean:128:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. - -Note: This linter can be disabled with `set_option linter.ambiguousOpen false` -warning: HoTTLean/ForPoly.lean:133:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. - -Note: This linter can be disabled with `set_option linter.ambiguousOpen false` -warning: HoTTLean/ForPoly.lean:139:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. - -Note: This linter can be disabled with `set_option linter.ambiguousOpen false` -warning: HoTTLean/ForPoly.lean:148:32: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. - -Note: This linter can be disabled with `set_option linter.ambiguousOpen false` -warning: HoTTLean/ForPoly.lean:163:27: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. - -Note: This linter can be disabled with `set_option linter.ambiguousOpen false` -warning: HoTTLean/ForPoly.lean:651:6: declaration uses `sorry` -warning: HoTTLean/ForPoly.lean:655:6: declaration uses `sorry` -warning: HoTTLean/ForPoly.lean:665:6: declaration uses `sorry` -✔ [1026/1029] Built HoTTLean.Model.Natural.NaturalModel (10s) -⚠ [1027/1029] Built HoTTLean.Model.Natural.UHom (15s) -warning: HoTTLean/Model/Natural/UHom.lean:37:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Model/Natural/UHom.lean:128:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Model/Natural/UHom.lean:450:0: Definition `Pi_pb` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -info: HoTTLean/Model/Natural/UHom.lean:647:2: Try this: - [apply] rwa [mkApp, unLam_mkLam] -warning: HoTTLean/Model/Natural/UHom.lean:676:0: Definition `Sig_pb` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -✔ [1028/1029] Built HoTTLean.Model.Natural.Interpretation (18s) -Build completed successfully (1029 jobs). - -Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/project.txt b/docs/lean-v4.34.1/evidence/project.txt deleted file mode 100644 index d4420d74..00000000 --- a/docs/lean-v4.34.1/evidence/project.txt +++ /dev/null @@ -1,274 +0,0 @@ -$ lake build -⚠ [902/1025] Replayed HoTTLean.ForMathlib -warning: HoTTLean/ForMathlib.lean:352:0: Definition `CategoryTheory.Equivalence.chosenFiniteProducts` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. -warning: HoTTLean/ForMathlib.lean:352:4: Overlapping instance parameters in `chosenFiniteProducts`: - -⚠️ There are 2 `[CartesianMonoidalCategory C]` instances; one is sufficient. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/ForMathlib.lean:462:0: Definition `sigmaCongr_apply_snd` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [937/1025] Replayed HoTTLean.ForMathlib.CategoryTheory.Grpd -warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:154:0: Definition `Grpd.Functor.iso_hom` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:159:0: Definition `Grpd.Functor.iso_inv` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [954/1025] Replayed HoTTLean.ForMathlib.CategoryTheory.Bicategory.Grothendieck -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:587:0: Definition `transport_base` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:591:0: Definition `transport_fiber` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:605:0: Definition `toTransport_base` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:609:0: Definition `toTransport_fiber` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [955/1025] Replayed HoTTLean.Grothendieck.Groupoidal.Basic -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:46:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpIdComp`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:52:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpCompId`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:176:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.eta`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:180:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.Hom.eta`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:485:0: Definition `ι_comp_functorFrom` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [967/1025] Replayed HoTTLean.ForMathlib.CategoryTheory.FreeGroupoid -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:7: Variable name `C` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _C - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:9: Variable name `D` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _D - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:195:9: Variable name `C` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _C - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -⚠ [969/1025] Replayed HoTTLean.ForMathlib.CategoryTheory.Functor.IsPullback -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:657:0: Definition `hCLeft` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:881:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:884:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:887:0: Definition `uniq` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:894:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:932:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:935:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:938:0: Definition `uniq` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:944:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [970/1025] Replayed HoTTLean.Pointed.Basic -warning: HoTTLean/Pointed/Basic.lean:22:0: `PCat`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -warning: HoTTLean/Pointed/Basic.lean:152:0: `PGrpd`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -⚠ [973/1025] Replayed HoTTLean.Grothendieck.Groupoidal.IsPullback -warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:173:0: Definition `sec_toPGrpd` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:182:0: Definition `sec_forget` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [974/1025] Replayed HoTTLean.ForMathlib.CategoryTheory.Core -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:25:0: Definition `comp_inclusion_injective` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:142:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:144:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [986/1025] Replayed HoTTLean.Groupoids.Basic -warning: HoTTLean/Groupoids/Basic.lean:37:0: Definition `pGrpdToGroupoidalAsSmallFunctor_groupoidalAsSmallFunctorToPGrpd` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Basic.lean:41:0: Definition `groupoidalAsSmallFunctorToPGrpd_pGrpdToGroupoidalAsSmallFunctor` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Basic.lean:45:0: Definition `pGrpdToGroupoidalAsSmallFunctor_forget` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Basic.lean:120:0: `Ty`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -warning: HoTTLean/Groupoids/Basic.lean:124:0: `Tm`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -⚠ [988/1025] Replayed HoTTLean.Groupoids.UnstructuredModel -warning: HoTTLean/Groupoids/UnstructuredModel.lean:22:0: `U`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -⚠ [991/1025] Replayed HoTTLean.Groupoids.Pi -warning: HoTTLean/Groupoids/Pi.lean:350:0: Definition `obj_hext` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Pi.lean:355:0: Definition `hom_hext` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Pi.lean:365:0: Definition `hom_hext'` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [995/1025] Replayed HoTTLean.Groupoids.ClovenIsofibration -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:156:4: The namespace `map` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.classifier.map.map`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:279:4: The namespace `hom` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.grothendieckClassifierIso.hom.hom`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `CategoryTheory.Functor.ClovenIsofibration.toTransport_IsIso` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `toTransport_IsIso` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:469:0: Definition `forget.liftObj_id` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:474:0: Definition `forget.liftIso_id` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [996/1025] Replayed HoTTLean.Groupoids.Id -warning: HoTTLean/Groupoids/Id.lean:841:0: `I_map_obj_ff`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -⚠ [1002/1025] Replayed HoTTLean.Syntax.Substitution -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.refl_tp` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.trans_tp` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.refl_tm` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.trans_tm'` annotated with `@[grind .]` -⚠ [1005/1025] Replayed HoTTLean.Model.Unstructured.UHom -warning: HoTTLean/Model/Unstructured/UHom.lean:38:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Model/Unstructured/UHom.lean:104:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Model/Unstructured/UHom.lean:139:0: automatically included section variable(s) unused in theorem `Model.UnstructuredUniverse.Hom.extCompMapTyIsoExt_hom_comp_substWk`: - [ChosenTerminal Ctx] -consider restructuring your `variable` declarations so that the variables are not in scope or explicitly omit them: - omit [ChosenTerminal Ctx] in theorem ... - -Note: This linter can be disabled with `set_option linter.unusedSectionVars false` -warning: HoTTLean/Model/Unstructured/UHom.lean:374:0: Definition `Model.UnstructuredUniverse.UHomSeq.PiSeq.ofMonomorphic` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. -⚠ [1012/1025] Replayed HoTTLean.Syntax.Axioms -warning: HoTTLean/Syntax/Axioms.lean:33:7: Variable name `E` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _E - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -⚠ [1021/1025] Replayed HoTTLean.Frontend.EnvExt -warning: HoTTLean/Frontend/EnvExt.lean:65:15: Overlapping instance parameters in `TheoryExt`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:71:4: Overlapping instance parameters in `mkInitTheoryData`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:106:19: Overlapping instance parameters in `theoryExt`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:106:0: Overlapping instance parameters in `initFn✝`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:151:4: Overlapping instance parameters in `saveTheoryDecl`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:164:4: Overlapping instance parameters in `saveShallowTheoryConst`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:170:4: Overlapping instance parameters in `getTheoryData`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:177:4: Overlapping instance parameters in `setTheoryData`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -Build completed successfully (1025 jobs). - -Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/review.txt b/docs/lean-v4.34.1/evidence/review.txt deleted file mode 100644 index 87f50130..00000000 --- a/docs/lean-v4.34.1/evidence/review.txt +++ /dev/null @@ -1,11 +0,0 @@ -Independent source review - -Reviewed cleanup commits: d379abfbe3081fa089f027d4655932b293dd305e, bb43b603744924e879dd1d3608da55aa8598e897, 61c652d6b0ea434dfb5ff8f768d4cc4cdac7da57. -Integrated commits: 240afaa, d6c18f7, 20c4b23. -The Terra review found no concrete blocker in the final source diffs. -The reviewed diffs preserve declaration-local elaboration options and public Grothendieck aliases. -They add no proof holes or linter suppression settings. -They remove the redundant unit-test identity instance. -The frontend Commands change is formatting only. EnvExt is unchanged. -A proposed class-instance binder and reducibility change was reverted before integration. -The targeted builds passed separately. Final combined commands have their own logs. diff --git a/docs/lean-v4.34.1/evidence/source-audit.txt b/docs/lean-v4.34.1/evidence/source-audit.txt deleted file mode 100644 index 1e8a7650..00000000 --- a/docs/lean-v4.34.1/evidence/source-audit.txt +++ /dev/null @@ -1,74 +0,0 @@ -Static source audit. Comments and strings are removed before scanning. -Qualified or quoted axiom names are not declarations. -This scan does not inspect macros, dependencies, or generated proof terms. - -31133dd - HoTTLean/ForPoly.lean:595: sorry (1) - HoTTLean/ForPoly.lean:605: sorry (1) - HoTTLean/ForPoly.lean:612: sorry (1) - HoTTLean/Prelude.lean:41: axiom - HoTTLean/Prelude.lean:42: axiom - HoTTLean/Prelude.lean:43: axiom - HoTTLean/Syntax/Injectivity.lean:14: axiom - HoTTLean/Syntax/Injectivity.lean:19: axiom - HoTTLean/Syntax/Injectivity.lean:25: axiom - test/basic.lean:71: axiom - test/basic.lean:73: axiom - test/basic.lean:75: axiom - test/basic.lean:77: axiom - test/basic.lean:89: sorry (1) - test/hott0.lean:24: axiom - test/hott0.lean:65: axiom - test/unitt.lean:16: axiom - test/unitt.lean:19: axiom - test/unitt.lean:20: axiom - test/unitt.lean:21: axiom - test/unitt.lean:34: sorry (1) -{"admit": 0, "production_axioms": 6, "production_sorry": 3, "test_axioms": 10, "test_sorry": 2} - -39e8eb63 - HoTTLean/ForPoly.lean:652: sorry (1) - HoTTLean/ForPoly.lean:662: sorry (1) - HoTTLean/ForPoly.lean:669: sorry (1) - HoTTLean/Prelude.lean:41: axiom - HoTTLean/Prelude.lean:42: axiom - HoTTLean/Prelude.lean:43: axiom - HoTTLean/Syntax/Injectivity.lean:14: axiom - HoTTLean/Syntax/Injectivity.lean:19: axiom - HoTTLean/Syntax/Injectivity.lean:25: axiom - HoTTLeanTest/basic.lean:71: axiom - HoTTLeanTest/basic.lean:73: axiom - HoTTLeanTest/basic.lean:75: axiom - HoTTLeanTest/basic.lean:77: axiom - HoTTLeanTest/basic.lean:89: sorry (1) - HoTTLeanTest/hott0.lean:24: axiom - HoTTLeanTest/hott0.lean:65: axiom - HoTTLeanTest/unitt.lean:16: axiom - HoTTLeanTest/unitt.lean:19: axiom - HoTTLeanTest/unitt.lean:20: axiom - HoTTLeanTest/unitt.lean:21: axiom - HoTTLeanTest/unitt.lean:34: sorry (1) -{"admit": 0, "production_axioms": 6, "production_sorry": 3, "test_axioms": 10, "test_sorry": 2} - -working-tree - HoTTLean/ForPoly.lean:653: sorry (1) - HoTTLean/ForPoly.lean:663: sorry (1) - HoTTLean/ForPoly.lean:670: sorry (1) - HoTTLean/Prelude.lean:41: axiom - HoTTLean/Prelude.lean:42: axiom - HoTTLean/Prelude.lean:43: axiom - HoTTLean/Syntax/Injectivity.lean:14: axiom - HoTTLean/Syntax/Injectivity.lean:19: axiom - HoTTLean/Syntax/Injectivity.lean:25: axiom - HoTTLeanTest/basic.lean:71: axiom - HoTTLeanTest/basic.lean:73: axiom - HoTTLeanTest/basic.lean:75: axiom - HoTTLeanTest/basic.lean:77: axiom - HoTTLeanTest/basic.lean:89: sorry (1) - HoTTLeanTest/hott0.lean:24: axiom - HoTTLeanTest/hott0.lean:65: axiom - HoTTLeanTest/unitt.lean:16: axiom - HoTTLeanTest/unitt.lean:19: axiom - HoTTLeanTest/unitt.lean:20: axiom - HoTTLeanTest/unitt.lean:21: axiom -{"admit": 0, "production_axioms": 6, "production_sorry": 3, "test_axioms": 10, "test_sorry": 1} diff --git a/docs/lean-v4.34.1/evidence/source-hashes.txt b/docs/lean-v4.34.1/evidence/source-hashes.txt deleted file mode 100644 index db6d62c8..00000000 --- a/docs/lean-v4.34.1/evidence/source-hashes.txt +++ /dev/null @@ -1,73 +0,0 @@ -4d29cdb4b5c008c8a3a4fca654314f7aeb9e521ec8851ec94c951303cb33f2a2 HoTTLean.lean -3a3ccbbbea5fbb83777a475a016a12bf66e5eaad79d0cc6f0fe78b9fa8e5138b HoTTLean/ForMathlib.lean -ee95721d1d3b45824a1582e0d30a9318f9125f50c4eccfc6726818ed0306c0e0 HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean -c76765b4b449679158631729b5432eef190f295db335658b16ad07c360628efb HoTTLean/ForMathlib/CategoryTheory/Core.lean -8893bb36d7f761478966f1ad19629527b6dee1b0afaf854da85181c22e3281ca HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean -ed4942e68e54aa426b8a4e118f280865b99838b5922d7ab766fb40b5e10547e6 HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean -ffc2ac017805b16cf20bf6af46fa3a302fdb5bfff77a4ed4dffffc3d2fdb86dd HoTTLean/ForMathlib/CategoryTheory/Functor/Iso.lean -4345dcb13b4e709af5ace5ba8d03d465a2a25286a32a3676592348e48bbfa433 HoTTLean/ForMathlib/CategoryTheory/Groupoid.lean -fcfe3488b81ce461df9a3bd6ee96704e955d2a492f26ca425ed18a80391286af HoTTLean/ForMathlib/CategoryTheory/Grpd.lean -6d9485e4592b0181191b0e0b78fd30296467f721d6edbc1d8ce4fc52e03ec5f9 HoTTLean/ForMathlib/CategoryTheory/Localization/Predicate.lean -e7df540df5d51b4f4dfb23dd0a302474b3f7183133b84b0030056de45750cdeb HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/Basic.lean -3295ff8897cf5d3de8b5ddd6ef5b3510e89d563249193a02691a46389ff0cd57 HoTTLean/ForMathlib/CategoryTheory/MorphismProperty/WideSubcategory.lean -0e13cfac8c94cd74f2b0e71b88b18984950fb54680f1ddf1defda6ee13041cf9 HoTTLean/ForMathlib/CategoryTheory/NatTrans.lean -4e25cd65f495ba8560aae70a16dcbac151faa416d6fbd64b4675046c52141d03 HoTTLean/ForMathlib/CategoryTheory/RepPullbackCone.lean -4dcb93d6385ce83fb08ab73485e397a94d702bf1253b88c4d82a67e1f079cc5e HoTTLean/ForMathlib/CategoryTheory/WeakPullback.lean -e1e9c9c226fb178d95d139a490b73a42d5dc10ea033449008de60a9809a8d588 HoTTLean/ForMathlib/CategoryTheory/Whiskering.lean -c586aea6bd0d01881852f930cd9910ce62c3f0263eae325b87b67c5ccc4b8b7f HoTTLean/ForMathlib/CategoryTheory/Yoneda.lean -62fc5b7491e1f19632a7e0252c7f99bc5c41bf266cace05b1f224c56d27fdb7c HoTTLean/ForMathlib/Tactic/CategoryTheory/FunctorMap.lean -fd579883d9ea75c679c60c80caa71247327a43e463c63a485e7578001164bd54 HoTTLean/ForPoly.lean -42ddb0e0d8d8e1eb25cf72f5579f72276ee38f14ffe19cb257b442d096ca2c9f HoTTLean/Frontend/Checked.lean -316bff891a327e931b0667f472a9ff90777110d200986db60835b4f82877f301 HoTTLean/Frontend/Commands.lean -8425842110587c5ddf1412149addf02496f39cbc43e4061dd99d5a592e213894 HoTTLean/Frontend/EnvExt.lean -869e727faeaf003d3980a5f5a17a510456467615dadbcd0d73ff3f9b5932c3d5 HoTTLean/Frontend/Translation.lean -246a512f6c2e793de16696ddff769bbcc6be77a274a0812b994e0fa5d352df83 HoTTLean/Grothendieck/Groupoidal/Basic.lean -49cabc73c2da52cf0f986b9a326303d9bc740816ae1611863225e5359862cca8 HoTTLean/Grothendieck/Groupoidal/IsPullback.lean -8093df58bd77f34783825e737719a71c82b3812798dcb8ca12c7773ac410dae0 HoTTLean/Grothendieck/IsPullback.lean -4507eee0a25e75826ed66d946ab04fcf16098887750e4e3a5f58e9521cce785a HoTTLean/Groupoids/Basic.lean -fe07c1fce7424c12d955374e52922680745357871990c451bcc0ed629afd61d2 HoTTLean/Groupoids/ClovenIsofibration.lean -c45adb5e40baebe6477617a83ba28b6e8a6f8b6978447018de071292ef3b8de8 HoTTLean/Groupoids/Id.lean -2db82fdb4c259c861022f0043deb1002a0ce85e5eb9d857dda6f88b18aba853f HoTTLean/Groupoids/IsPullback.lean -0eec50dd0342769c3ea6e146f086b9e986c2c67e2bd100a72a5b49b9fd068e4f HoTTLean/Groupoids/Pi.lean -e596d53e0a1da79cf5c13cb7de1d7d29d5c9b6e5bdbf4040c71cb375d5f92635 HoTTLean/Groupoids/Sigma.lean -39afb2ee79baff12a5294d2f7e7fbc6100435f3f3c65fda2c113a098a72d60ef HoTTLean/Groupoids/UHom.lean -e8ac306ba7c044c7d11d4f2bace3e30b1f49bb93b1db3bc9e1ff12fe319f2597 HoTTLean/Groupoids/UnstructuredModel.lean -179d3303a41b730b1606d3d196cad7733374f6901f7eba10f1e48d270c4333c1 HoTTLean/Model/Natural/Interpretation.lean -79a2f83ea4f048bff219cd5052914d5c4dfcec5bafecc6c2fad850bfcaab8b06 HoTTLean/Model/Natural/NaturalModel.lean -a05d3720e1c38a7ed4bdc99551c92915ac4ddb077a4868dc77121b73f390af99 HoTTLean/Model/Natural/UHom.lean -3f1d2eddd68b78b70085f8741e7c963e2d283e9187b2cd48cc4e4c8065942b80 HoTTLean/Model/Unstructured/Hurewicz.lean -60510598f63438f839b250e252725dcac981b1d78c205cdb02d27953eb97f92a HoTTLean/Model/Unstructured/Interpretation.lean -4c88815e8a24a737fad002705628e500b56258055728309b0dff84f0ae1b3ff9 HoTTLean/Model/Unstructured/UHom.lean -10c20fd82d96587c1f2a02a773fc0801ec3fc105d6ebd9163a77a46744e01209 HoTTLean/Model/Unstructured/UnstructuredUniverse.lean -10662be556ca12321417c66c2c7813dbf79b6e5e4180958eee0ab801f9e922ba HoTTLean/Pointed/Basic.lean -f892edd28bae280883c86135fde12f57c833851dfc22de420d12826b0ddbed4e HoTTLean/Pointed/IsPullback.lean -a6167873b1e70093914e21ff7c1afc19d5f21293776b1b803bbdcb197b5f97e6 HoTTLean/Prelude.lean -16507a208e94504dd526ab27b38ebdfdf2776256a4b66c640946ff5bb8897cb9 HoTTLean/Syntax/Autosubst.lean -c8eeec68aacffe0a615c4d3ce8384e7e1a0886df4b7d1ffb68f9a423de8d87f5 HoTTLean/Syntax/Axioms.lean -57bc748a1e11d5c701e6df0916c24e7df14c0f0df14255529caa5e8bfa67772d HoTTLean/Syntax/Basic.lean -3f72f2b5843fd6db790cf140491a65e54d1dc227c1497b2bdc7b21b66ab7d801 HoTTLean/Syntax/EqCtx.lean -6a39b9785944efbb2c3ac839e2990dd5496bfb8f352e594cdafb8931f1028d70 HoTTLean/Syntax/GCongr.lean -baf0436e35788a6e25e697c6be43585e79526748abf8e404f2db33812090e4f9 HoTTLean/Syntax/Injectivity.lean -2fdd312961d881299d1382da7b52aca4cb039d9e6aa8bb41afd96b7bd60ae54e HoTTLean/Syntax/Inversion.lean -58f023d651c05afd87e585edbada7dc73fea30c6e2dcf0cd91d9410aaa243714 HoTTLean/Syntax/InversionLemmas.lean -172fe2040ccef08be801c5a6722b060136ac5bf3c55fbc50a548be4ae0babb4c HoTTLean/Syntax/Substitution.lean -1dea485b8585d776ff876b358ddc4ba40f4b7ee7c0c0a77424a4f91b92733477 HoTTLean/Syntax/Synth.lean -1ca1efd7ef91d65bcf70264edadde868768237806450b0fd05f5d4b43044487e HoTTLean/Syntax/Typing.lean -af04b7866c86d0d58a769183b2987e59da9a22a98ccc08398818a040d00d44f3 HoTTLean/Tactic/GrindCases.lean -d1c7203637ff11d35f1de81c8bfff838c566c8b4d82eb8bd26cdd657bc140550 HoTTLean/Tactic/MutualInduction.lean -89fd5d35f15fb7ae9bae5aeda5272dc34267bd655af6a136ee39c59554711ca3 HoTTLean/Typechecker/Cache.lean -1b63d83322384b7e87ee02cb7f4ee3e8091ba1c946a3f19f1ead42662a90ea5f HoTTLean/Typechecker/Equate.lean -5ca2131edcff76aca1f3a6fbcb710b776fbd0ddfa82eb204a1e7d6ebb52b3cc0 HoTTLean/Typechecker/Evaluate.lean -0f215e9e230377d19cade63a67583678e6428b0f3bc5951bf5880281a6cfdd1d HoTTLean/Typechecker/Synth.lean -67dbac33606d88727c98cb12642f9d85b4ebe7cdfa3320332272076fe8754ed0 HoTTLean/Typechecker/Util.lean -bb0d1282b1d62233c2b326cb6265ef1f6031023611e0486d16ee1f80d0a51efd HoTTLean/Typechecker/Value.lean -58a870b3c79ae8804858ebd4af031bc29db5cb582c9d8e67bc7ea48bcd626b6d HoTTLean/Typechecker/ValueInversion.lean -dba55378e271b3c82fdf5fa1abf8383190ab5176c280a32f4894fe9f6a1c4ee1 HoTTLeanTest.lean -b038637a5753c1bea695dfce4486c143979dd1b1e70bfc411f296baf4c152efe HoTTLeanTest/basic.lean -7da0c64c8653af08758d56137bec085f9d765f101b34377d8354c165b1a218d0 HoTTLeanTest/hott0.lean -8e3bc6ffbc21ce60d9f87cc0e2f8311b067abf24587febdc5ea6f596f0da54e8 HoTTLeanTest/import.lean -4e23eb098f8536fd01f88975d6c90cb84cb9f5830ca24c2fc6e8e046aad0abf4 HoTTLeanTest/unitt.lean -5915340aac7238e1d9f1eac012e406f4d1876af4add9a6ade9b36319237c60dc lakefile.lean -1442b83d0a08bb6b704961178559446d01222575dfe3b898ade9df1943625e18 test.lean -d5edba4e4b8faad9c1baeadb265716d20d03be4d1a2647dc5e35b0c0325bea7b lean-toolchain -0d96e204ccec42cc1fc07e56951cc751c7c6ec252f72f9d3bdfab52c3c25931e lake-manifest.json diff --git a/docs/lean-v4.34.1/evidence/style.txt b/docs/lean-v4.34.1/evidence/style.txt deleted file mode 100644 index 940f7527..00000000 --- a/docs/lean-v4.34.1/evidence/style.txt +++ /dev/null @@ -1 +0,0 @@ -PASS: source and tests meet the 100-character non-URL limit and use precise imports. diff --git a/docs/lean-v4.34.1/evidence/tests.txt b/docs/lean-v4.34.1/evidence/tests.txt deleted file mode 100644 index 5a18a35b..00000000 --- a/docs/lean-v4.34.1/evidence/tests.txt +++ /dev/null @@ -1,286 +0,0 @@ -$ lake test -⚠ [106/298] Replayed HoTTLean.Syntax.Substitution -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.refl_tp` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.trans_tp` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.refl_tm` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.trans_tm'` annotated with `@[grind .]` -⚠ [146/298] Replayed HoTTLean.Syntax.Axioms -warning: HoTTLean/Syntax/Axioms.lean:33:7: Variable name `E` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _E - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -⚠ [155/298] Replayed HoTTLean.Frontend.EnvExt -warning: HoTTLean/Frontend/EnvExt.lean:65:15: Overlapping instance parameters in `TheoryExt`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:71:4: Overlapping instance parameters in `mkInitTheoryData`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:106:19: Overlapping instance parameters in `theoryExt`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:106:0: Overlapping instance parameters in `initFn✝`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:151:4: Overlapping instance parameters in `saveTheoryDecl`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:164:4: Overlapping instance parameters in `saveShallowTheoryConst`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:170:4: Overlapping instance parameters in `getTheoryData`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/Frontend/EnvExt.lean:177:4: Overlapping instance parameters in `setTheoryData`: - -⚠️ `[MonadError m]` and `[MonadQuotation m]` can be used to infer conflicting versions of `[MonadRef m]`. - -When a data-carrying type class has multiple potential instances coming from different instance parameters, then these potential instances are incompatible. This is an example of an "instance diamond", which leads to unexpected unification failures. - -Delete or combine some of your instance parameters to avoid this. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -⚠ [927/1029] Replayed HoTTLean.ForMathlib -warning: HoTTLean/ForMathlib.lean:352:0: Definition `CategoryTheory.Equivalence.chosenFiniteProducts` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. -warning: HoTTLean/ForMathlib.lean:352:4: Overlapping instance parameters in `chosenFiniteProducts`: - -⚠️ There are 2 `[CartesianMonoidalCategory C]` instances; one is sufficient. - -Note: This linter can be disabled with `set_option linter.overlappingInstances false` -warning: HoTTLean/ForMathlib.lean:462:0: Definition `sigmaCongr_apply_snd` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [942/1029] Replayed HoTTLean.Model.Unstructured.UHom -warning: HoTTLean/Model/Unstructured/UHom.lean:38:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Model/Unstructured/UHom.lean:104:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Model/Unstructured/UHom.lean:139:0: automatically included section variable(s) unused in theorem `Model.UnstructuredUniverse.Hom.extCompMapTyIsoExt_hom_comp_substWk`: - [ChosenTerminal Ctx] -consider restructuring your `variable` declarations so that the variables are not in scope or explicitly omit them: - omit [ChosenTerminal Ctx] in theorem ... - -Note: This linter can be disabled with `set_option linter.unusedSectionVars false` -warning: HoTTLean/Model/Unstructured/UHom.lean:374:0: Definition `Model.UnstructuredUniverse.UHomSeq.PiSeq.ofMonomorphic` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. -⚠ [974/1029] Replayed HoTTLean.ForMathlib.CategoryTheory.Grpd -warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:154:0: Definition `Grpd.Functor.iso_hom` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:159:0: Definition `Grpd.Functor.iso_inv` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [991/1029] Replayed HoTTLean.ForMathlib.CategoryTheory.Bicategory.Grothendieck -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:587:0: Definition `transport_base` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:591:0: Definition `transport_fiber` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:605:0: Definition `toTransport_base` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:609:0: Definition `toTransport_fiber` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [992/1029] Replayed HoTTLean.Grothendieck.Groupoidal.Basic -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:46:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpIdComp`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:52:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpCompId`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:176:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.eta`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:180:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.Hom.eta`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:485:0: Definition `ι_comp_functorFrom` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1005/1029] Replayed HoTTLean.ForMathlib.CategoryTheory.FreeGroupoid -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:7: Variable name `C` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _C - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:9: Variable name `D` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _D - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:195:9: Variable name `C` is not explicitly referenced. - -Hint: The binding can be removed (if unused) or named `_` (if used implicitly). Alternatively, prefix the name with `_` to silence this warning: - [apply] _C - -Note: This linter can be disabled with `set_option linter.unusedVariables false` -⚠ [1006/1029] Replayed HoTTLean.ForMathlib.CategoryTheory.Functor.IsPullback -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:657:0: Definition `hCLeft` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:881:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:884:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:887:0: Definition `uniq` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:894:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:932:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:935:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:938:0: Definition `uniq` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:944:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1007/1029] Replayed HoTTLean.Pointed.Basic -warning: HoTTLean/Pointed/Basic.lean:22:0: `PCat`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -warning: HoTTLean/Pointed/Basic.lean:152:0: `PGrpd`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -⚠ [1010/1029] Replayed HoTTLean.Grothendieck.Groupoidal.IsPullback -warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:173:0: Definition `sec_toPGrpd` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:182:0: Definition `sec_forget` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1012/1029] Replayed HoTTLean.ForMathlib.CategoryTheory.Core -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:25:0: Definition `comp_inclusion_injective` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:142:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:144:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1013/1029] Replayed HoTTLean.Groupoids.Basic -warning: HoTTLean/Groupoids/Basic.lean:37:0: Definition `pGrpdToGroupoidalAsSmallFunctor_groupoidalAsSmallFunctorToPGrpd` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Basic.lean:41:0: Definition `groupoidalAsSmallFunctorToPGrpd_pGrpdToGroupoidalAsSmallFunctor` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Basic.lean:45:0: Definition `pGrpdToGroupoidalAsSmallFunctor_forget` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Basic.lean:120:0: `Ty`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -warning: HoTTLean/Groupoids/Basic.lean:124:0: `Tm`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -⚠ [1019/1029] Replayed HoTTLean.Groupoids.UnstructuredModel -warning: HoTTLean/Groupoids/UnstructuredModel.lean:22:0: `U`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -⚠ [1021/1029] Replayed HoTTLean.Groupoids.Pi -warning: HoTTLean/Groupoids/Pi.lean:350:0: Definition `obj_hext` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Pi.lean:355:0: Definition `hom_hext` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/Pi.lean:365:0: Definition `hom_hext'` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1022/1029] Replayed HoTTLean.Groupoids.ClovenIsofibration -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:156:4: The namespace `map` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.classifier.map.map`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:279:4: The namespace `hom` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.grothendieckClassifierIso.hom.hom`. - -Note: This linter can be disabled with `set_option linter.dupNamespace false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `CategoryTheory.Functor.ClovenIsofibration.toTransport_IsIso` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -definition with `@[instance_reducible]`. If it is intentionally semireducible, this warning can be disabled with `set_option warn.classDefReducibility false`. -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `toTransport_IsIso` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:469:0: Definition `forget.liftObj_id` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:474:0: Definition `forget.liftIso_id` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -⚠ [1023/1029] Replayed HoTTLean.Groupoids.Id -warning: HoTTLean/Groupoids/Id.lean:841:0: `I_map_obj_ff`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. - -Note: This linter can be disabled with `set_option linter.checkUnivs false` -✔ [1024/1029] Built HoTTLean.Groupoids.UHom (2.2s) -✔ [1025/1029] Built HoTTLeanTest.basic (3.9s) -✔ [1026/1029] Built HoTTLeanTest.hott0 (6.9s) -✔ [1027/1029] Built HoTTLeanTest.import (3.1s) -⚠ [1028/1029] Built HoTTLeanTest.unitt (5.5s) -info: HoTTLeanTest/unitt.lean:23:6: axiom UniTT.u : Unit -info: HoTTLeanTest/unitt.lean:24:0: def UniTT.u : SynthLean.CheckedAx ((SynthLean.Axioms.empty Lean.Name).snoc Unit.l Unit.name Unit.tp ⋯ ⋯) := -{ name := `UniTT.u, get_name := ⋯, l := 0, tp := Unit.val.el, - nfTp := SynthLean.Val.el (SynthLean.Neut.ax Unit.name (SynthLean.Val.univ 0)), wf_nfTp := ⋯ } -warning: HoTTLeanTest/unitt.lean:45:0: Definition `sUnit'_tp` is a proposition; use `theorem` instead of `def` - -Note: This linter can be disabled with `set_option linter.defProp false` -✔ [1029/1029] Built HoTTLeanTest (5.2s) - -Exit status: 0 diff --git a/docs/lean-v4.34.1/evidence/verification-input-hashes.txt b/docs/lean-v4.34.1/evidence/verification-input-hashes.txt deleted file mode 100644 index 746e2729..00000000 --- a/docs/lean-v4.34.1/evidence/verification-input-hashes.txt +++ /dev/null @@ -1,3 +0,0 @@ -fd08e89be167d6ff50813cf0dadbf78522d8575010f13d6b16aa10055dc42c08 /data/user_data/shivansg/hottlean-combined-evidence/check_combined.py -a8443e8da6f98643edeb02ad75827ed0f182324d3b2d69a7f6ec535d9a4035c3 /data/user_data/shivansg/hottlean-combined-evidence/finish_checks.py -79ab8b8874147b800a5cbc454d8a42ce0fe3e6d473a3e50b4dd5f53c0f10f37a docs/lean-v4.34.1/evidence/FunctorMapProbe.lean diff --git a/docs/lean-v4.34.1/evidence/warnings.txt b/docs/lean-v4.34.1/evidence/warnings.txt deleted file mode 100644 index 2912fb4d..00000000 --- a/docs/lean-v4.34.1/evidence/warnings.txt +++ /dev/null @@ -1,128 +0,0 @@ -Distinct project warning headlines across final commands: - -warning: HoTTLean/ForMathlib.lean:352:0: Definition `CategoryTheory.Equivalence.chosenFiniteProducts` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -warning: HoTTLean/ForMathlib.lean:352:4: Overlapping instance parameters in `chosenFiniteProducts`: -warning: HoTTLean/ForMathlib.lean:462:0: Definition `sigmaCongr_apply_snd` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:587:0: Definition `transport_base` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:591:0: Definition `transport_fiber` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:605:0: Definition `toTransport_base` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Bicategory/Grothendieck.lean:609:0: Definition `toTransport_fiber` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:142:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:144:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Core.lean:25:0: Definition `comp_inclusion_injective` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:7: Variable name `C` is not explicitly referenced. -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:194:9: Variable name `D` is not explicitly referenced. -warning: HoTTLean/ForMathlib/CategoryTheory/FreeGroupoid.lean:195:9: Variable name `C` is not explicitly referenced. -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:657:0: Definition `hCLeft` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:881:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:884:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:887:0: Definition `uniq` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:894:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:932:0: Definition `fac_left` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:935:0: Definition `fac_right` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:938:0: Definition `uniq` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Functor/IsPullback.lean:944:0: Definition `isPullback` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:154:0: Definition `Grpd.Functor.iso_hom` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForMathlib/CategoryTheory/Grpd.lean:159:0: Definition `Grpd.Functor.iso_inv` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/ForPoly.lean:122:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. -warning: HoTTLean/ForPoly.lean:128:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. -warning: HoTTLean/ForPoly.lean:133:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. -warning: HoTTLean/ForPoly.lean:139:5: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. -warning: HoTTLean/ForPoly.lean:148:32: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. -warning: HoTTLean/ForPoly.lean:163:27: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. -warning: HoTTLean/ForPoly.lean:63:27: Ambiguous namespace `Functor`: it is interpreted as `_root_.CategoryTheory.Functor` because this `open` occurs inside `namespace CategoryTheory.UvPoly`, while `_root_.Functor` is silently not opened. Specify the namespace unambiguously, e.g. `_root_.CategoryTheory.Functor`. The warning can sometimes also be addressed by moving the `open` outside of the surrounding `namespace`. -warning: HoTTLean/ForPoly.lean:651:6: declaration uses `sorry` -warning: HoTTLean/ForPoly.lean:655:6: declaration uses `sorry` -warning: HoTTLean/ForPoly.lean:665:6: declaration uses `sorry` -warning: HoTTLean/Frontend/EnvExt.lean:106:0: Overlapping instance parameters in `initFn✝`: -warning: HoTTLean/Frontend/EnvExt.lean:106:19: Overlapping instance parameters in `theoryExt`: -warning: HoTTLean/Frontend/EnvExt.lean:151:4: Overlapping instance parameters in `saveTheoryDecl`: -warning: HoTTLean/Frontend/EnvExt.lean:164:4: Overlapping instance parameters in `saveShallowTheoryConst`: -warning: HoTTLean/Frontend/EnvExt.lean:170:4: Overlapping instance parameters in `getTheoryData`: -warning: HoTTLean/Frontend/EnvExt.lean:177:4: Overlapping instance parameters in `setTheoryData`: -warning: HoTTLean/Frontend/EnvExt.lean:65:15: Overlapping instance parameters in `TheoryExt`: -warning: HoTTLean/Frontend/EnvExt.lean:71:4: Overlapping instance parameters in `mkInitTheoryData`: -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:176:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.eta`. -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:180:14: The namespace `Groupoidal` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Grothendieck.Groupoidal.Hom.eta`. -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:46:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpIdComp`. -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:485:0: Definition `ι_comp_functorFrom` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Grothendieck/Groupoidal/Basic.lean:52:0: The namespace `Functor` is duplicated in the declaration `CategoryTheory.Functor.Groupoidal.Functor.simpCompId`. -warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:173:0: Definition `sec_toPGrpd` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Grothendieck/Groupoidal/IsPullback.lean:182:0: Definition `sec_forget` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Groupoids/Basic.lean:120:0: `Ty`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. -warning: HoTTLean/Groupoids/Basic.lean:124:0: `Tm`: universes `u_1`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. -warning: HoTTLean/Groupoids/Basic.lean:37:0: Definition `pGrpdToGroupoidalAsSmallFunctor_groupoidalAsSmallFunctorToPGrpd` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Groupoids/Basic.lean:41:0: Definition `groupoidalAsSmallFunctorToPGrpd_pGrpdToGroupoidalAsSmallFunctor` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Groupoids/Basic.lean:45:0: Definition `pGrpdToGroupoidalAsSmallFunctor_forget` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:156:4: The namespace `map` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.classifier.map.map`. -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:279:4: The namespace `hom` is duplicated in the declaration `CategoryTheory.Functor.ClovenIsofibration.grothendieckClassifierIso.hom.hom`. -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `CategoryTheory.Functor.ClovenIsofibration.toTransport_IsIso` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:453:0: Definition `toTransport_IsIso` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:469:0: Definition `forget.liftObj_id` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Groupoids/ClovenIsofibration.lean:474:0: Definition `forget.liftIso_id` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Groupoids/Id.lean:841:0: `I_map_obj_ff`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. -warning: HoTTLean/Groupoids/Pi.lean:350:0: Definition `obj_hext` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Groupoids/Pi.lean:355:0: Definition `hom_hext` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Groupoids/Pi.lean:365:0: Definition `hom_hext'` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Groupoids/UnstructuredModel.lean:22:0: `U`: universes `v`, `u_1` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. -warning: HoTTLean/Model/Natural/UHom.lean:128:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Model/Natural/UHom.lean:37:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Model/Natural/UHom.lean:450:0: Definition `Pi_pb` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Model/Natural/UHom.lean:676:0: Definition `Sig_pb` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Model/Unstructured/UHom.lean:104:0: Definition `UHom.comp_assoc` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Model/Unstructured/UHom.lean:139:0: automatically included section variable(s) unused in theorem `Model.UnstructuredUniverse.Hom.extCompMapTyIsoExt_hom_comp_substWk`: -warning: HoTTLean/Model/Unstructured/UHom.lean:374:0: Definition `Model.UnstructuredUniverse.UHomSeq.PiSeq.ofMonomorphic` of class type is semireducible. Most type class instances should be instance-reducible, so consider marking this -warning: HoTTLean/Model/Unstructured/UHom.lean:38:0: Definition `Hom.comp_assoc` is a proposition; use `theorem` instead of `def` -warning: HoTTLean/Pointed/Basic.lean:152:0: `PGrpd`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. -warning: HoTTLean/Pointed/Basic.lean:22:0: `PCat`: universes `u`, `v` only occur together. This usually means there is a `max` expression in the type where none of these universes appear on their own. -warning: HoTTLean/Syntax/Axioms.lean:33:7: Variable name `E` is not explicitly referenced. -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.refl_tm` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTm.trans_tm'` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.refl_tp` annotated with `@[grind .]` -warning: HoTTLean/Syntax/Substitution.lean:514:2: this parameter is redundant, environment already contains `SynthLean.EqTp.trans_tp` annotated with `@[grind .]` -warning: HoTTLeanTest/unitt.lean:45:0: Definition `sUnit'_tp` is a proposition; use `theorem` instead of `def` - -API generator warnings: -WARNING: Failed to calculate equational lemmata for Std.Time.DateTime.weekOfYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekday: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Std.Time.PlainDateTime.weekOfYear: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeValueArray: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeDateTime: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeTable: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached -WARNING: Failed to calculate equational lemmata for Lake.lowerHexUInt64: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeBool: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeInt: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeFloat: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeString: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached -WARNING: Failed to calculate equational lemmata for Lake.Toml.Value.decodeNat: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Elab.Command.elabElabRulesAux: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Compiler.LCNF.CodeDecl.collectUsed: Tactic `simp` failed with a nested error: -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ensureEvalTerm: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Meta.simpHaveTelescope: failed to generate equational theorem for `Lean.Meta.simpHaveTelescope` -WARNING: Failed to calculate equational lemmata for Lean.Doc.leanRole: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs: failed to generate equational theorem for `Lean.PrettyPrinter.Delaborator.SubExpr.withBoundedAppFnArgs` -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ConfigItem.throwInvalidOption: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ensureEvalExpr: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Elab.Term.mkCoe: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.evalMetaEval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.ConfigItem.throwCannotSetOption: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Meta.Grind.pushNot: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Server.Completion.dotIdCompletion: (deterministic) timeout at `isDefEq`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Syntax.asNode: (deterministic) timeout at `whnf`, maximum number of heartbeats (5000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.CodeAction.holeCodeActionProvider: failed to generate equality theorems for `match` expression `_private.Lean.Server.CodeActions.Provider.0.Lean.CodeAction.holeCodeActionProvider.match_7` -WARNING: Failed to calculate equational lemmata for Lean.Elab.Tactic.evalGrindCore: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Meta.Tactic.TryThis.addRewriteSuggestion: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Level.collectMVars: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Lean.Elab.ConfigEval.deriveEvalExprUsingMetaEval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Qq.Impl.mkIsDefEqResult: failed -WARNING: Failed to obtain information for: Qq.Impl.mkLambdaQ: failed -WARNING: Failed to calculate equational lemmata for Qq.Impl.makeMatchCode: failed -WARNING: Failed to obtain information for: Qq.Impl.withLetHave: failed -WARNING: Failed to calculate equational lemmata for Qq.Impl.mkQqLets: failed -WARNING: Failed to calculate equational lemmata for Lean.Name.findHome: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.MkIff.nCasesSum: failed to generate equational theorem for `Mathlib.Tactic.MkIff.nCasesSum` -WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.MkIff.nCasesProd: failed to generate equational theorem for `Mathlib.Tactic.MkIff.nCasesProd` -WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.Erw?.logDiffs: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for Mathlib.Tactic.BicategoryLike.eval: (deterministic) timeout at `whnf`, maximum number of heartbeats (200000) has been reached -WARNING: Failed to calculate equational lemmata for PiFin.toExpr: failed diff --git a/docs/lean-v4.34.1/evidence/whitespace.txt b/docs/lean-v4.34.1/evidence/whitespace.txt deleted file mode 100644 index b454ec04..00000000 --- a/docs/lean-v4.34.1/evidence/whitespace.txt +++ /dev/null @@ -1,3 +0,0 @@ -$ git diff --check 39e8eb63 - -Exit status: 0 diff --git a/docs/lean-v4.34.1/hottlean-changes.md b/docs/lean-v4.34.1/hottlean-changes.md deleted file mode 100644 index 0727262a..00000000 --- a/docs/lean-v4.34.1/hottlean-changes.md +++ /dev/null @@ -1,120 +0,0 @@ -# Lean v4.34.1 migration record - -This branch combines two completed migrations from `31133dd` (Lean v4.25.0-rc2). -Unity produced commit `39e8eb63`. -The earlier root-led migration ended at `6f719862`. -The combined work keeps the Unity source as its base. -It adds the stronger unit test, compiler warning cleanup, source formatting, -and documentation from the earlier work. -This combination is root-led work. It is not the Unity-approved snapshot. - -## Dependencies and source changes - -Use Lean v4.34.1 and Mathlib v4.34.1. -Use the [sosudo/Poly fork](https://github.com/sosudo/Poly) at -`cc08a1f77c20e07a7366f0824ecd36ae472c0377`. -Use its vendored checkdecls package. -The combined work does not change the default dependency commits or paths. - -Keep Unity's repairs for the category wrappers, pullbacks, polynomial functors, -groupoid model, and natural and unstructured models. -Keep the original public Grothendieck names and their compatibility aliases. -Keep the declaration-local elaboration options and explicit wrapper projections. -These options control elaboration. They do not disable kernel proof checks. -Remove unused simplification arguments and deprecated lemma names. -Wrap source lines to meet the CI limit of 100 characters, except URLs. -Do not add linter suppressions. - -Keep Unity's frontend environment loader unchanged. -It reads the custom prelude without changing process-wide import flags. -It checks that the prelude imports only Init and has no initializers. -It restores persistent extension entries without loading native code or running -module initializers. -This loader supports that restricted prelude contract. -It is not a general replacement for Lean's module loader. -The existing unchecked declaration replay remains limited to the isolated theory -environment. - -Keep the `functor_map` universe repair. -The [probe](evidence/FunctorMapProbe.lean) checks generated declarations, -nested attributes, and the term elaborator. - -## Tests - -The test root is `HoTTLeanTest`. -It imports all four test modules and avoids the ProofWidgets `test` root conflict. -The unit type test uses the current unstructured groupoid model. -The interpreter permits separate object and morphism universes. -Remove the redundant `IdSeq := sorry` instance from that test. -Use the checked instance from `HoTTLean.Groupoids.UHom`. -Keep the intentional proof hole in the frontend warning test. - -Build the natural and unstructured model targets separately. -Their exported names overlap, so they must not share one imported environment. - -## Validation - -All checks passed on source commit `20c4b230` with Lean v4.34.1. -The compiler commit is `5045d0056413266e57c625dcd7c365b10e377c52`. -The [source hashes](evidence/source-hashes.txt) identify the checked files. -The [command receipts](evidence/command-receipts.txt) give exit status, duration, -and log hashes. Each command kept its source inputs unchanged. -The logs include results replayed from Lake's dependency and project caches. - -| Check | Jobs | Project warnings | Evidence | -| --- | ---: | ---: | --- | -| `lake build` | 1025 | 66 | [Log](evidence/project.txt) | -| `lake build NaturalModel` | 1029 | 21 | [Log](evidence/natural.txt) | -| `lake test` | — | 67 | [Log](evidence/tests.txt) | -| `lake build +HoTTLean.ForMathlib.CategoryTheory.Groupoid +HoTTLean.ForMathlib.CategoryTheory.Localization.Predicate +HoTTLean.ForMathlib.CategoryTheory.MorphismProperty.Basic` | 650 | 0 | [Log](evidence/compatibility.txt) | -| `lake -R -Kenv=dev build HoTTLean:docs` | 3410 | 66 | [Log](evidence/api-docs.txt) | -| `lake env lean docs/lean-v4.34.1/evidence/FunctorMapProbe.lean` | — | 0 | [Log](evidence/functor-map.txt) | -| `lake env lean test.lean` | — | 0 | [Log](evidence/legacy-test-root.txt) | -| `lake -R env lean --version` | — | 0 | [Log](evidence/default-config.txt) | -| `git diff --check 39e8eb63` | — | 0 | [Log](evidence/whitespace.txt) | - -The default build has 66 project warnings. Unity's approved build had 389. -The natural-model build has 21 warnings. The test command has 67 warnings. -There are 81 distinct project warning headlines across these checks. -The [warning index](evidence/warnings.txt) lists them. -It also lists 43 documentation-generator warnings about dependency metadata. -Those warnings do not prevent the documentation build. - -The [static import check](evidence/module-coverage.txt) covers all 67 production -and test modules. The root modules and legacy test root also pass. -The [style check](evidence/style.txt) and whitespace check pass. -The [source audit](evidence/source-audit.txt) compares master, Unity, and the combined source. -Production proof holes and axiom counts stay unchanged. -The test proof-hole count decreases from two to one. -The [independent source review](evidence/review.txt) found no concrete blocker. - -The documentation build uses `lake -R -Kenv=dev build HoTTLean:docs`. -The [dependency record](evidence/dependency-pins.txt) lists both configurations. -All 15 Git dependency checkouts match their selected revisions and have clean -tracked sources, as recorded in the [checkout check](evidence/dependency-checkouts.txt). -After the documentation build, restore the original default manifest exactly. -Reload it with `lake -R env lean --version` before the three main checks. -The final default manifest matches Unity's manifest byte for byte. -The documentation and default builds use identical Lean source files. - -The generated index and unstructured interpretation page exist in `.lake/build/doc/`. -The generated source links use `20c4b230`, the checked source commit. - -## Scope and remaining limits - -The production sources retain the three existing proof holes in `ForPoly.lean`. -They retain the three custom prelude axioms and three syntax injectivity axioms. -The tests retain their theory axioms and the intentional warning-test proof hole. -Dependency proof holes are not repaired by this migration. - -The checks use a local Linux environment and cached dependencies. -They do not establish a whole-dependency cold build, external consumer -compatibility, or cross-version semantic equivalence. -Obsolete notes, attic files, benchmarks, and inactive draft regions are outside -the declared build scope. -The blueprint, Jekyll site, and remote CI are not part of these checks. -API documentation is a local artifact. It is not published. - -The earlier migration and its evidence remain in Git at `6f719862`. -The Unity-only source remains in Git at `39e8eb63`. -The combined check logs describe the new source, not either earlier snapshot. diff --git a/home_page/_site/404.html b/home_page/_site/404.html deleted file mode 100644 index 0d983fdc..00000000 --- a/home_page/_site/404.html +++ /dev/null @@ -1,90 +0,0 @@ - - - - - - - -Groupoid Model of HoTT in Lean 4 | by S. Awodey, M. Carneiro, S. Hazratpour, J. Hua, W. Nawrocki, S. Woolfson - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to the content. - - - -
- - -
-

404

- -

Page not found :(

-

The requested page could not be found.

-
- - -
- - - diff --git a/home_page/_site/assets/css/style.css b/home_page/_site/assets/css/style.css deleted file mode 100644 index 5647b980..00000000 --- a/home_page/_site/assets/css/style.css +++ /dev/null @@ -1,327 +0,0 @@ -/* In this file you can add css rules overriding rules defined by your Jekyll theme. */ -/* Import the CSS from the specified theme */ -/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ -/** 1. Set default font family to sans-serif. 2. Prevent iOS text size adjust after orientation change, without disabling user zoom. */ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700&display=swap"); -html { font-family: sans-serif; /* 1 */ -ms-text-size-adjust: 100%; /* 2 */ -webkit-text-size-adjust: 100%; /* 2 */ } - -/** Remove default margin. */ -body { margin: 0; } - -/* HTML5 display definitions ========================================================================== */ -/** Correct `block` display not defined for any HTML5 element in IE 8/9. Correct `block` display not defined for `details` or `summary` in IE 10/11 and Firefox. Correct `block` display not defined for `main` in IE 11. */ -article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { display: block; } - -/** 1. Correct `inline-block` display not defined in IE 8/9. 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera. */ -audio, canvas, progress, video { display: inline-block; /* 1 */ vertical-align: baseline; /* 2 */ } - -/** Prevent modern browsers from displaying `audio` without controls. Remove excess height in iOS 5 devices. */ -audio:not([controls]) { display: none; height: 0; } - -/** Address `[hidden]` styling not present in IE 8/9/10. Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22. */ -[hidden], template { display: none; } - -/* Links ========================================================================== */ -/** Remove the gray background color from active links in IE 10. */ -a { background-color: transparent; } - -/** Improve readability when focused and also mouse hovered in all browsers. */ -a:active, a:hover { outline: 0; } - -/* Text-level semantics ========================================================================== */ -/** Address styling not present in IE 8/9/10/11, Safari, and Chrome. */ -abbr[title] { border-bottom: 1px dotted; } - -/** Address style set to `bolder` in Firefox 4+, Safari, and Chrome. */ -b, strong { font-weight: bold; } - -/** Address styling not present in Safari and Chrome. */ -dfn { font-style: italic; } - -/** Address variable `h1` font-size and margin within `section` and `article` contexts in Firefox 4+, Safari, and Chrome. */ -h1 { font-size: 2em; margin: 0.67em 0; } - -/** Address styling not present in IE 8/9. */ -mark { background: #ff0; color: #000; } - -/** Address inconsistent and variable font size in all browsers. */ -small { font-size: 80%; } - -/** Prevent `sub` and `sup` affecting `line-height` in all browsers. */ -sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } - -sup { top: -0.5em; } - -sub { bottom: -0.25em; } - -/* Embedded content ========================================================================== */ -/** Remove border when inside `a` element in IE 8/9/10. */ -img { border: 0; } - -/** Correct overflow not hidden in IE 9/10/11. */ -svg:not(:root) { overflow: hidden; } - -/* Grouping content ========================================================================== */ -/** Address margin not present in IE 8/9 and Safari. */ -figure { margin: 1em 40px; } - -/** Address differences between Firefox and other browsers. */ -hr { box-sizing: content-box; height: 0; } - -/** Contain overflow in all browsers. */ -pre { overflow: auto; } - -/** Address odd `em`-unit font size rendering in all browsers. */ -code, kbd, pre, samp { font-family: monospace, monospace; font-size: 1em; } - -/* Forms ========================================================================== */ -/** Known limitation: by default, Chrome and Safari on OS X allow very limited styling of `select`, unless a `border` property is set. */ -/** 1. Correct color not being inherited. Known issue: affects color of disabled elements. 2. Correct font properties not being inherited. 3. Address margins set differently in Firefox 4+, Safari, and Chrome. */ -button, input, optgroup, select, textarea { color: inherit; /* 1 */ font: inherit; /* 2 */ margin: 0; /* 3 */ } - -/** Address `overflow` set to `hidden` in IE 8/9/10/11. */ -button { overflow: visible; } - -/** Address inconsistent `text-transform` inheritance for `button` and `select`. All other form control elements do not inherit `text-transform` values. Correct `button` style inheritance in Firefox, IE 8/9/10/11, and Opera. Correct `select` style inheritance in Firefox. */ -button, select { text-transform: none; } - -/** 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` and `video` controls. 2. Correct inability to style clickable `input` types in iOS. 3. Improve usability and consistency of cursor style between image-type `input` and others. */ -button, html input[type="button"], input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } - -/** Re-set default cursor for disabled elements. */ -button[disabled], html input[disabled] { cursor: default; } - -/** Remove inner padding and border in Firefox 4+. */ -button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } - -/** Address Firefox 4+ setting `line-height` on `input` using `!important` in the UA stylesheet. */ -input { line-height: normal; } - -/** It's recommended that you don't attempt to style these elements. Firefox's implementation doesn't respect box-sizing, padding, or width. 1. Address box sizing set to `content-box` in IE 8/9/10. 2. Remove excess padding in IE 8/9/10. */ -input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } - -/** Fix the cursor style for Chrome's increment/decrement buttons. For certain `font-size` values of the `input`, it causes the cursor style of the decrement button to change from `default` to `text`. */ -input[type="number"]::-webkit-inner-spin-button, input[type="number"]::-webkit-outer-spin-button { height: auto; } - -/** 1. Address `appearance` set to `searchfield` in Safari and Chrome. 2. Address `box-sizing` set to `border-box` in Safari and Chrome (include `-moz` to future-proof). */ -input[type="search"] { -webkit-appearance: textfield; /* 1 */ /* 2 */ box-sizing: content-box; } - -/** Remove inner padding and search cancel button in Safari and Chrome on OS X. Safari (but not Chrome) clips the cancel button when the search input has padding (and `textfield` appearance). */ -input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } - -/** Define consistent border, margin, and padding. */ -fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } - -/** 1. Correct `color` not being inherited in IE 8/9/10/11. 2. Remove padding so people aren't caught out if they zero out fieldsets. */ -legend { border: 0; /* 1 */ padding: 0; /* 2 */ } - -/** Remove default vertical scrollbar in IE 8/9/10/11. */ -textarea { overflow: auto; } - -/** Don't inherit the `font-weight` (applied by a rule above). NOTE: the default cannot safely be changed in Chrome and Safari on OS X. */ -optgroup { font-weight: bold; } - -/* Tables ========================================================================== */ -/** Remove most spacing between table cells. */ -table { border-collapse: collapse; border-spacing: 0; } - -td, th { padding: 0; } - -.highlight table td { padding: 5px; } - -.highlight table pre { margin: 0; } - -.highlight .cm { color: #999988; font-style: italic; } - -.highlight .cp { color: #999999; font-weight: bold; } - -.highlight .c1 { color: #999988; font-style: italic; } - -.highlight .cs { color: #999999; font-weight: bold; font-style: italic; } - -.highlight .c, .highlight .cd { color: #999988; font-style: italic; } - -.highlight .err { color: #a61717; background-color: #e3d2d2; } - -.highlight .gd { color: #000000; background-color: #ffdddd; } - -.highlight .ge { color: #000000; font-style: italic; } - -.highlight .gr { color: #aa0000; } - -.highlight .gh { color: #999999; } - -.highlight .gi { color: #000000; background-color: #ddffdd; } - -.highlight .go { color: #888888; } - -.highlight .gp { color: #555555; } - -.highlight .gs { font-weight: bold; } - -.highlight .gu { color: #aaaaaa; } - -.highlight .gt { color: #aa0000; } - -.highlight .kc { color: #000000; font-weight: bold; } - -.highlight .kd { color: #000000; font-weight: bold; } - -.highlight .kn { color: #000000; font-weight: bold; } - -.highlight .kp { color: #000000; font-weight: bold; } - -.highlight .kr { color: #000000; font-weight: bold; } - -.highlight .kt { color: #445588; font-weight: bold; } - -.highlight .k, .highlight .kv { color: #000000; font-weight: bold; } - -.highlight .mf { color: #009999; } - -.highlight .mh { color: #009999; } - -.highlight .il { color: #009999; } - -.highlight .mi { color: #009999; } - -.highlight .mo { color: #009999; } - -.highlight .m, .highlight .mb, .highlight .mx { color: #009999; } - -.highlight .sb { color: #d14; } - -.highlight .sc { color: #d14; } - -.highlight .sd { color: #d14; } - -.highlight .s2 { color: #d14; } - -.highlight .se { color: #d14; } - -.highlight .sh { color: #d14; } - -.highlight .si { color: #d14; } - -.highlight .sx { color: #d14; } - -.highlight .sr { color: #009926; } - -.highlight .s1 { color: #d14; } - -.highlight .ss { color: #990073; } - -.highlight .s { color: #d14; } - -.highlight .na { color: #008080; } - -.highlight .bp { color: #999999; } - -.highlight .nb { color: #0086B3; } - -.highlight .nc { color: #445588; font-weight: bold; } - -.highlight .no { color: #008080; } - -.highlight .nd { color: #3c5d5d; font-weight: bold; } - -.highlight .ni { color: #800080; } - -.highlight .ne { color: #990000; font-weight: bold; } - -.highlight .nf { color: #990000; font-weight: bold; } - -.highlight .nl { color: #990000; font-weight: bold; } - -.highlight .nn { color: #555555; } - -.highlight .nt { color: #000080; } - -.highlight .vc { color: #008080; } - -.highlight .vg { color: #008080; } - -.highlight .vi { color: #008080; } - -.highlight .nv { color: #008080; } - -.highlight .ow { color: #000000; font-weight: bold; } - -.highlight .o { color: #000000; font-weight: bold; } - -.highlight .w { color: #bbbbbb; } - -.highlight { background-color: #f8f8f8; } - -* { box-sizing: border-box; } - -body { padding: 0; margin: 0; font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; line-height: 1.5; color: #606c71; } - -#skip-to-content { height: 1px; width: 1px; position: absolute; overflow: hidden; top: -10px; } -#skip-to-content:focus { position: fixed; top: 10px; left: 10px; height: auto; width: auto; background: #e19447; outline: thick solid #e19447; } - -a { color: #1e6bb8; text-decoration: none; } -a:hover { text-decoration: underline; } - -.btn { display: inline-block; margin-bottom: 1rem; color: rgba(255, 255, 255, 0.7); background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); border-style: solid; border-width: 1px; border-radius: 0.3rem; transition: color 0.2s, background-color 0.2s, border-color 0.2s; } -.btn:hover { color: rgba(255, 255, 255, 0.8); text-decoration: none; background-color: rgba(255, 255, 255, 0.2); border-color: rgba(255, 255, 255, 0.3); } -.btn + .btn { margin-left: 1rem; } -@media screen and (min-width: 64em) { .btn { padding: 0.75rem 1rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .btn { padding: 0.6rem 0.9rem; font-size: 0.9rem; } } -@media screen and (max-width: 42em) { .btn { display: block; width: 100%; padding: 0.75rem; font-size: 0.9rem; } - .btn + .btn { margin-top: 1rem; margin-left: 0; } } - -.page-header { color: #fff; text-align: center; background-color: #159957; background-image: linear-gradient(120deg, #155799, #159957); } -@media screen and (min-width: 64em) { .page-header { padding: 5rem 6rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .page-header { padding: 3rem 4rem; } } -@media screen and (max-width: 42em) { .page-header { padding: 2rem 1rem; } } - -.project-name { margin-top: 0; margin-bottom: 0.1rem; } -@media screen and (min-width: 64em) { .project-name { font-size: 3.25rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .project-name { font-size: 2.25rem; } } -@media screen and (max-width: 42em) { .project-name { font-size: 1.75rem; } } - -.project-tagline { margin-bottom: 2rem; font-weight: normal; opacity: 0.7; } -@media screen and (min-width: 64em) { .project-tagline { font-size: 1.25rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .project-tagline { font-size: 1.15rem; } } -@media screen and (max-width: 42em) { .project-tagline { font-size: 1rem; } } - -.main-content { word-wrap: break-word; } -.main-content :first-child { margin-top: 0; } -@media screen and (min-width: 64em) { .main-content { max-width: 64rem; padding: 2rem 6rem; margin: 0 auto; font-size: 1.1rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .main-content { padding: 2rem 4rem; font-size: 1.1rem; } } -@media screen and (max-width: 42em) { .main-content { padding: 2rem 1rem; font-size: 1rem; } } -.main-content kbd { background-color: #fafbfc; border: 1px solid #c6cbd1; border-bottom-color: #959da5; border-radius: 3px; box-shadow: inset 0 -1px 0 #959da5; color: #444d56; display: inline-block; font-size: 11px; line-height: 10px; padding: 3px 5px; vertical-align: middle; } -.main-content img { max-width: 100%; } -.main-content h1, .main-content h2, .main-content h3, .main-content h4, .main-content h5, .main-content h6 { margin-top: 2rem; margin-bottom: 1rem; font-weight: normal; color: #159957; } -.main-content p { margin-bottom: 1em; } -.main-content code { padding: 2px 4px; font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace; font-size: 0.9rem; color: #567482; background-color: #f3f6fa; border-radius: 0.3rem; } -.main-content pre { padding: 0.8rem; margin-top: 0; margin-bottom: 1rem; font: 1rem Consolas, "Liberation Mono", Menlo, Courier, monospace; color: #567482; word-wrap: normal; background-color: #f3f6fa; border: solid 1px #dce6f0; border-radius: 0.3rem; } -.main-content pre > code { padding: 0; margin: 0; font-size: 0.9rem; color: #567482; word-break: normal; white-space: pre; background: transparent; border: 0; } -.main-content .highlight { margin-bottom: 1rem; } -.main-content .highlight pre { margin-bottom: 0; word-break: normal; } -.main-content .highlight pre, .main-content pre { padding: 0.8rem; overflow: auto; font-size: 0.9rem; line-height: 1.45; border-radius: 0.3rem; -webkit-overflow-scrolling: touch; } -.main-content pre code, .main-content pre tt { display: inline; max-width: initial; padding: 0; margin: 0; overflow: initial; line-height: inherit; word-wrap: normal; background-color: transparent; border: 0; } -.main-content pre code:before, .main-content pre code:after, .main-content pre tt:before, .main-content pre tt:after { content: normal; } -.main-content ul, .main-content ol { margin-top: 0; } -.main-content blockquote { padding: 0 1rem; margin-left: 0; color: #819198; border-left: 0.3rem solid #dce6f0; } -.main-content blockquote > :first-child { margin-top: 0; } -.main-content blockquote > :last-child { margin-bottom: 0; } -.main-content table { display: block; width: 100%; overflow: auto; word-break: normal; word-break: keep-all; -webkit-overflow-scrolling: touch; } -.main-content table th { font-weight: bold; } -.main-content table th, .main-content table td { padding: 0.5rem 1rem; border: 1px solid #e9ebec; } -.main-content dl { padding: 0; } -.main-content dl dt { padding: 0; margin-top: 1rem; font-size: 1rem; font-weight: bold; } -.main-content dl dd { padding: 0; margin-bottom: 1rem; } -.main-content hr { height: 2px; padding: 0; margin: 1rem 0; background-color: #eff0f1; border: 0; } - -.site-footer { padding-top: 2rem; margin-top: 2rem; border-top: solid 1px #eff0f1; } -@media screen and (min-width: 64em) { .site-footer { font-size: 1rem; } } -@media screen and (min-width: 42em) and (max-width: 64em) { .site-footer { font-size: 1rem; } } -@media screen and (max-width: 42em) { .site-footer { font-size: 0.9rem; } } - -.site-footer-owner { display: block; font-weight: bold; } - -.site-footer-credits { color: #819198; } - -/* Put your rules below this line */ diff --git a/home_page/_site/index.html b/home_page/_site/index.html deleted file mode 100644 index 5e1110cf..00000000 --- a/home_page/_site/index.html +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - -Groupoid Model of HoTT in Lean 4 | by S. Awodey, M. Carneiro, S. Hazratpour, J. Hua, W. Nawrocki, S. Woolfson - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Skip to the content. - - - -
-

Useful links:

- - - - - -
- - - diff --git a/lake-manifest.json b/lake-manifest.json index 52a37e7c..a4828b70 100644 --- a/lake-manifest.json +++ b/lake-manifest.json @@ -5,10 +5,10 @@ "type": "git", "subDir": null, "scope": "", - "rev": "cc08a1f77c20e07a7366f0824ecd36ae472c0377", + "rev": "ba73d5149ac19b1186b6e58648217b52db6b8cdb", "name": "Poly", "manifestFile": "lake-manifest.json", - "inputRev": "cc08a1f77c20e07a7366f0824ecd36ae472c0377", + "inputRev": "ba73d5149ac19b1186b6e58648217b52db6b8cdb", "inherited": false, "configFile": "lakefile.lean"}, {"type": "path", diff --git a/lakefile.lean b/lakefile.lean index 154fcb89..6337022d 100644 --- a/lakefile.lean +++ b/lakefile.lean @@ -1,7 +1,8 @@ import Lake open Lake DSL -require Poly from git "https://github.com/sosudo/Poly" @ "cc08a1f77c20e07a7366f0824ecd36ae472c0377" +-- Lean v4.34.1 port, proposed in sinhp/Poly#41. +require Poly from git "https://github.com/sosudo/Poly" @ "ba73d5149ac19b1186b6e58648217b52db6b8cdb" meta if get_config? env = some "dev" then require «doc-gen4» from git