Skip to content

Conversation

@joelriou
Copy link
Collaborator

@joelriou joelriou commented Nov 25, 2025

Given an injective resolution R of an object Y in an abelian category, we define a constructor for elements in Ext X Y n which takes as input "cocycles" given as morphisms X ⟶ R.cocomplex.X n, and we provide API for this definition.

When the dual construction for projective resolution will be done, it will be possible to remove the old Ext API.

DRAFT


Open in Gitpod

joelriou and others added 30 commits November 20, 2025 09:20
@joelriou joelriou added the t-category-theory Category theory label Nov 25, 2025
@github-actions
Copy link

github-actions bot commented Nov 25, 2025

PR summary c36d1388e6

Import changes for modified files

No significant changes to the import graph

Import changes for all files
Files Import difference

Declarations diff

+ CochainComplex.IsKInjective.Qh_map_bijective
+ CohomologyClass
+ EqUpTo
+ HasExt.hasSmallLocalizedShiftedHom_of_isLE_of_isGE
+ IsKInjective
+ IsKInjective.rightOrthogonal
+ Q_map_eq_of_homotopy
+ _root_.HomotopyEquiv.isKInjective
+ bijective_toSmallShiftedHom_of_isKInjective
+ coboundaries
+ cochainComplex
+ cochainComplexXIso
+ cochainComplex_d
+ comp_mk₀_id
+ descAddMonoidHom
+ descAddMonoidHom_cohomologyClass
+ equivHomShift
+ equivOfIsKInjective
+ equiv_mk₀Inv
+ equiv_toSmallShiftedHom_mk
+ exists_iso_singleFunctor_obj_of_isGE_of_isLE
+ extEquivCohomologyClass
+ extMk
+ extMk_surjective
+ extendSingleIso
+ extendSingleIso_hom_f
+ extendSingleIso_inv_f
+ extend_single_d
+ fromSingleEquiv
+ fromSingleMk_v
+ fromSingleMk_v_eq_zero
+ fromSingleMk_zero
+ homAddEquiv
+ homologyAddEquiv
+ instance (L : CochainComplex C ℤ) [hL : L.IsKInjective] (n : ℤ) :
+ instance (X : CochainComplex C ℕ) :
+ instance (n : ℤ) : Injective (R.cochainComplex.X n) := by
+ instance : AddCommGroup (CohomologyClass K L n)
+ instance : QuasiIso R.ι' := by dsimp [ι']; infer_instance
+ instance : R.cochainComplex.IsKInjective := isKInjective_of_injective _ 0
+ instance : R.cochainComplex.IsLE 0 := by
+ instance [HasExt.{w} C] (K L : CochainComplex C ℤ)
+ instance [HasExt.{w} C] (X Y : C) (a b : ℤ) [HasDerivedCategory.{w'} C] :
+ instance [∀ j, K.HasHomology j] [∀ j, L.HasHomology j] [QuasiIso φ] :
+ isKInjective_iff_of_iso
+ isKInjective_iff_rightOrthogonal
+ isKInjective_of_injective
+ isKInjective_of_injective_aux
+ isKInjective_of_iso
+ isKInjective_shift_iff
+ isKernel
+ isLocal_trW
+ isSupported_iff_of_quasiIso
+ leftHomologyData
+ leftHomologyData'
+ limitSequence
+ limitSequence_eqUpTo
+ mk
+ mkAddMonoidHom
+ mk_add
+ mk_eq_zero_iff
+ mk_neg
+ mk_sub
+ mk_surjective
+ mk_zero
+ mk₀Inv
+ mk₀Inv_comp_mk₀
+ mk₀_comp_mk₀Inv
+ mk₀_id_comp
+ postcompEquiv
+ precompEquiv
+ quotient_map_eq_zero_iff
+ quotient_obj_mem_subcategoryAcyclic_iff_acyclic
+ rightOrthogonal.map_bijective_of_isTriangulated
+ rightShiftAddEquiv
+ sequence
+ sequence_eqUpTo
+ single
+ singleFunctor_obj_d
+ single_v
+ single_v_eq_zero
+ single_v_eq_zero'
+ single_zero
+ toCochainAddMonoidHom
+ toHom
+ toHom_bijective
+ toHom_mk
+ toHom_mk_eq_zero_iff
+ toSingleMk_v
+ toSingleMk_v_eq_zero
+ toSingleMk_zero
+ toSmallShiftedHom
+ toSmallShiftedHom_mk
+ δ_fromSingleMk
+ δ_single
+ δ_toSingleMk
+ ι'
+ ι'_f_zero
++ fromSingleMk
++ fromSingleMk_surjective
++ instance : R.cochainComplex.IsStrictlyGE 0 := by
++ toSingleMk

You can run this locally as follows
## summary with just the declaration names:
./scripts/declarations_diff.sh <optional_commit>

## more verbose report:
./scripts/declarations_diff.sh long <optional_commit>

The doc-module for script/declarations_diff.sh contains some details about this script.


No changes to technical debt.

You can run this locally as

./scripts/technical-debt-metrics.sh pr_summary
  • The relative value is the weighted sum of the differences with weight given by the inverse of the current value of the statistic.
  • The absolute value is the relative value divided by the total sum of the inverses of the current values (i.e. the weighted average of the differences).

@mathlib4-dependent-issues-bot mathlib4-dependent-issues-bot added the blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) label Nov 25, 2025
@joelriou joelriou added the WIP Work in progress label Nov 25, 2025
@joelriou joelriou changed the title feat(CategoryTheory): constructor for Ext-groups using an injective resolution feat(CategoryTheory): computing Ext-groups using an injective resolution Nov 26, 2025
@mathlib4-merge-conflict-bot mathlib4-merge-conflict-bot added the merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) label Nov 26, 2025
@mathlib4-merge-conflict-bot
Copy link
Collaborator

This pull request has conflicts, please merge master and resolve them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

blocked-by-other-PR This PR depends on another PR (this label is automatically managed by a bot) merge-conflict The PR has a merge conflict with master, and needs manual merging. (this label is managed by a bot) t-category-theory Category theory WIP Work in progress

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants