Skip to content

feat(AlgebraicTopology): HomologyPretheory for Eilenberg-Steenrod homology#39236

Open
quantumsnow wants to merge 12 commits into
leanprover-community:masterfrom
quantumsnow:homology-pretheory
Open

feat(AlgebraicTopology): HomologyPretheory for Eilenberg-Steenrod homology#39236
quantumsnow wants to merge 12 commits into
leanprover-community:masterfrom
quantumsnow:homology-pretheory

Conversation

@quantumsnow
Copy link
Copy Markdown
Contributor

This splits out a part of #38369 into a separate PR.

It includes a structure TopPair.HomologyPretheory containing the data for an Eilenberg-Steenrod homology theory and the first Eilenberg-Steenrod axiom as a typeclass EilenbergSteenrod.IsHomotopyInvariant.


Open in Gitpod

@github-actions github-actions Bot added the new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! label May 12, 2026
@github-actions
Copy link
Copy Markdown

Welcome new contributor!

Thank you for contributing to Mathlib! If you haven't done so already, please review our contribution guidelines, as well as the style guide and naming conventions. In particular, we kindly remind contributors that we have guidelines regarding the use of AI when making pull requests.

We use a review queue to manage reviews. If your PR does not appear there, it is probably because it is not successfully building (i.e., it doesn't have a green checkmark), has the awaiting-author tag, or another reason described in the Lifecycle of a PR. The review dashboard has a dedicated webpage which shows whether your PR is on the review queue, and (if not), why.

If you haven't already done so, please come to https://leanprover.zulipchat.com/, introduce yourself, and mention your new PR.

Thank you again for joining our community.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 12, 2026

PR summary a7c945e01f

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference
Mathlib.AlgebraicTopology.EilenbergSteenrod (new file) 1377

Declarations diff

+ Hom
+ Hom.iso_comm_app
+ Hom.w_app
+ HomologyPretheory
+ IsHomotopyInvariant
+ forget
+ forgetₚ
+ instance (f : HP ⟶ HP') [IsIso f] (i : ι) : IsIso (f.hom i)
+ instance (f : HP ⟶ HP') [IsIso f] (i : ι) : IsIso (f.homₚ i)
+ instance : Category (HomologyPretheory C c)
+ instance : IsClosedUnderIsomorphisms (isHomotopyInvariant C c)
+ inv_hom_iso_homₚ
+ inv_hom_iso_homₚ_app
+ isHomotopyInvariant
+ iso_homₚ_inv_hom
+ iso_homₚ_inv_hom_app

You can run this locally as follows
## from your `mathlib4` directory:
git clone https://github.com/leanprover-community/mathlib-ci.git ../mathlib-ci

## summary with just the declaration names:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh <optional_commit>

## more verbose report:
../mathlib-ci/scripts/pr_summary/declarations_diff.sh long <optional_commit>

The doc-module for scripts/pr_summary/declarations_diff.sh in the mathlib-ci repository contains some details about this script.


No changes to strong technical debt.
No changes to weak technical debt.

Comment thread Mathlib/AlgebraicTopology/EilenbergSteenrod.lean Outdated
Comment thread Mathlib/AlgebraicTopology/EilenbergSteenrod.lean
Comment thread Mathlib/AlgebraicTopology/EilenbergSteenrod.lean Outdated
Comment thread Mathlib/AlgebraicTopology/EilenbergSteenrod.lean Outdated
Comment thread Mathlib/AlgebraicTopology/EilenbergSteenrod.lean Outdated
Comment thread Mathlib/AlgebraicTopology/EilenbergSteenrod.lean Outdated
Comment thread Mathlib/AlgebraicTopology/EilenbergSteenrod.lean Outdated
Comment thread Mathlib/AlgebraicTopology/EilenbergSteenrod.lean Outdated
Comment thread Mathlib/AlgebraicTopology/EilenbergSteenrod.lean Outdated
Comment on lines +145 to +147
class IsHomotopyInvariant where
homotopy ⦃X Y : TopPair⦄ (f g : X ⟶ Y) (hfg : Homotopic f g) :
∀ (i : ι), (HP.Hₚ i).map f = (HP.Hₚ i).map g := by cat_disch
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
class IsHomotopyInvariant where
homotopy ⦃X Y : TopPair⦄ (f g : X ⟶ Y) (hfg : Homotopic f g) :
∀ (i : ι), (HP.Hₚ i).map f = (HP.Hₚ i).map g := by cat_disch
class IsHomotopyInvariant (HP : HomologyPretheory.{u} C c) where
map_eq_of_homotopy (HP) {X Y : TopPair} {f g : X ⟶ Y} (hfg : Homotopy f g) (i : ι) :
(HP.Hₚ i).map f = (HP.Hₚ i).map g := by cat_disch

Then, we can directly use IsHomotopyInvariant.map_eq_of_homotopy HP hfg i (and after doing export IsHomotopyInvariant (map_eq_of_homotopy) and the change of namespace above, we could use dot notation more easily as map_eq_of_homotopy would have HP as an explicit variable).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I have also exported map_eq_of_homotopy as you suggested. I hope this is what you meant.

Comment thread Mathlib/AlgebraicTopology/EilenbergSteenrod.lean
Comment thread Mathlib/AlgebraicTopology/EilenbergSteenrod.lean Outdated
@joelriou joelriou added the awaiting-author A reviewer has asked the author a question or requested changes. label May 12, 2026
@quantumsnow
Copy link
Copy Markdown
Contributor Author

-awaiting-author

@github-actions github-actions Bot removed the awaiting-author A reviewer has asked the author a question or requested changes. label May 12, 2026
/-- A `HomologyPretheory` is the data of an Eilenberg-Steenrod homology theory. -/
@[ext]
structure HomologyPretheory
(C : Type v) [Category C] [Limits.HasZeroMorphisms C] {ι : Type*} (c : ComplexShape ι) where
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
(C : Type v) [Category C] [Limits.HasZeroMorphisms C] {ι : Type*} (c : ComplexShape ι) where
(C : Type*) [Category* C] [Limits.HasZeroMorphisms C] {ι : Type*} (c : ComplexShape ι) where


open CategoryTheory TopPair ObjectProperty

universe u v
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
universe u v
universe u


namespace HomologyPretheory

variable {C : Type v} [Category C] [Limits.HasZeroMorphisms C] {ι : Type*} {c : ComplexShape ι}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
variable {C : Type v} [Category C] [Limits.HasZeroMorphisms C] {ι : Type*} {c : ComplexShape ι}
variable {C : Type*} [Category* C] [Limits.HasZeroMorphisms C] {ι : Type*} {c : ComplexShape ι}


/-- A morphism in the category `HomologyPretheory`. -/
@[ext]
structure Hom (HP HP' : HomologyPretheory C c) where
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
structure Hom (HP HP' : HomologyPretheory C c) where
structure Hom (HP HP' : HomologyPretheory.{u} C c) where

attribute [reassoc (attr := local simp)] Hom.w

@[simps]
instance : Category (HomologyPretheory C c) where
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
instance : Category (HomologyPretheory C c) where
instance : Category (HomologyPretheory.{u} C c) where

id _ := { homₚ _ := 𝟙 _ }
comp f g := { homₚ _ := f.homₚ _ ≫ g.homₚ _ }

variable {HP HP' : HomologyPretheory C c}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
variable {HP HP' : HomologyPretheory C c}
variable {HP HP' : HomologyPretheory.{u} C c}

@joelriou joelriou added the awaiting-author A reviewer has asked the author a question or requested changes. label May 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting-author A reviewer has asked the author a question or requested changes. new-contributor This PR was made by a contributor with at most 5 merged PRs. Welcome to the community! t-algebraic-topology Algebraic topology

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants