New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(algebra/homology): chain complexes #2174
Conversation
Co-Authored-By: Markus Himmel <markus@himmel-villmar.de>
| (int.neg_succ_of_nat 0) := e.symm | ||
| (int.neg_succ_of_nat (n+1)) := e.symm.trans (pow (int.neg_succ_of_nat n)) | ||
|
||
instance : has_pow (C ≌ C) ℤ := ⟨pow⟩ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should this come with simp-lemmas or canonical-isom-defs for the cases n in {-1, 0, 1}
, and similarly for (n+1)
etc?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I added the simp lemmas for -1, 0, 1
. I don't think we're ready yet to express the power laws like (e^a).trans (e^b) \iso e^(a+b)
, as we haven't even specified the category structure on equivalences, let alone the monoidal category structure on autoequivalences!
def graded_object (β : Type w) (C : Type u) : Type (max w u) := β → C | ||
|
||
-- Satisfying the inhabited linter... | ||
instance inhabited_graded_object (β : Type w) (C : Type u) [inhabited C] : |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Won't the linter complain that the instances don't have docstrings?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No, the linter isn't concerned about instances, for better or worse. @fpvandoorn, have you considered adding this requirement?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fine with merging this. I'll give others a bit of time to look over the final version.
* thoughts on chain complexes * minor * feat(category_theory): split epis and monos, and a result about (co)projections * total functor faithful * homology! * remove lint * something something homology * comment out broken stuff * adding comments * various * rewrite * fixes * Update src/category_theory/epi_mono.lean * Update src/category_theory/epi_mono.lean * Update src/category_theory/epi_mono.lean * better use of ext * feat(category_theory): subsingleton (has_zero_morphisms) * revert some independent changes moved to leanprover-community#2180 * revert some independent changes moved to leanprover-community#2181 * revert independent changes moved to leanprover-community#2182 * fix * Apply suggestions from code review Co-Authored-By: Johan Commelin <johan@commelin.net> * changes from review * module docs * various * Update src/category_theory/shift.lean Co-Authored-By: Kevin Buzzard <k.buzzard@imperial.ac.uk> * various * various fixes * fix * all the minor suggestions Co-Authored-By: Markus Himmel <markus@himmel-villmar.de> * ugh... fix reverting stuff from leanprover-community#2180 * off by one * various * use abbreviation * chain as well as cochain * satisfy the linter * some simp lemmas * simp lemmas Co-authored-by: Johan Commelin <johan@commelin.net> Co-authored-by: Kevin Buzzard <k.buzzard@imperial.ac.uk> Co-authored-by: Markus Himmel <markus@himmel-villmar.de> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
* thoughts on chain complexes * minor * feat(category_theory): split epis and monos, and a result about (co)projections * total functor faithful * homology! * remove lint * something something homology * comment out broken stuff * adding comments * various * rewrite * fixes * Update src/category_theory/epi_mono.lean * Update src/category_theory/epi_mono.lean * Update src/category_theory/epi_mono.lean * better use of ext * feat(category_theory): subsingleton (has_zero_morphisms) * revert some independent changes moved to leanprover-community#2180 * revert some independent changes moved to leanprover-community#2181 * revert independent changes moved to leanprover-community#2182 * fix * Apply suggestions from code review Co-Authored-By: Johan Commelin <johan@commelin.net> * changes from review * module docs * various * Update src/category_theory/shift.lean Co-Authored-By: Kevin Buzzard <k.buzzard@imperial.ac.uk> * various * various fixes * fix * all the minor suggestions Co-Authored-By: Markus Himmel <markus@himmel-villmar.de> * ugh... fix reverting stuff from leanprover-community#2180 * off by one * various * use abbreviation * chain as well as cochain * satisfy the linter * some simp lemmas * simp lemmas Co-authored-by: Johan Commelin <johan@commelin.net> Co-authored-by: Kevin Buzzard <k.buzzard@imperial.ac.uk> Co-authored-by: Markus Himmel <markus@himmel-villmar.de> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
I don't think this is ready yet, but given others, e.g. @TwoFX, @kbuzzard, @b-mehta, are all doing things in the vicinity, I thought I'd put this out for people to look at.This introduces
graded_object
,differential_object
, and then defineschain_complex V
asdifferential_object (graded_object int V)
. Perhaps surprisingly, this seems to work out okay in practice.I don't do a whole lot with it: basic properties like being concrete when V is concrete, having zero morphisms and zero objects, and (non-functorial) homology groups.
(There need to be some more assumptions added before homology groups become functorial, but we're getting close now.)
Really, I want to use this as a test for my design for enriched categories. but this PR is still at the "pre-enriched" stage.