Skip to content
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

Use CategoryOfRows as the range category of the homomorphism structure of CategoryOfColumns #1092

Merged
merged 6 commits into from
Oct 10, 2022

Conversation

zickgraf
Copy link
Member

@ all: Is anyone relying on the fact that CategoryOfColumns has itself as the range of its homomorphism structure? If not, I suggest we use the CategoryOfRows as the range instead. This is what the implementation of Opposite automatically gives us, so we can drop some code, and it allows to revert two commits which only existed to make sure CategoryOfColumns could change its range category artificially.

@mohamed-barakat
Copy link
Member

I don't rely on this.

…tes"

This reverts commit 3e862f4.

This was previously needed because CompilerForCAP resolved up to
ObjectifyWithAttributes. Now we stop at CreateCap*WithAttributes so the
object and morphism types do not appear in compiled code anymore.
@codecov
Copy link

codecov bot commented Oct 10, 2022

Codecov Report

Base: 78.64% // Head: 78.65% // Increases project coverage by +0.00% 🎉

Coverage data is based on head (c1d626c) compared to base (1d15622).
Patch coverage: 100.00% of modified lines in pull request are covered.

❗ Current head c1d626c differs from pull request most recent head 8b26b32. Consider uploading reports for the commit 8b26b32 to get more accurate results

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1092   +/-   ##
=======================================
  Coverage   78.64%   78.65%           
=======================================
  Files         494      494           
  Lines       63886    63845   -41     
=======================================
- Hits        50244    50216   -28     
+ Misses      13642    13629   -13     
Flag Coverage Δ
ActionsForCAP 41.23% <ø> (ø)
AttributeCategoryForCAP 86.34% <ø> (ø)
CAP 84.71% <100.00%> (-0.01%) ⬇️
CartesianCategories 92.71% <ø> (ø)
CompilerForCAP 94.88% <ø> (ø)
ComplexesAndFilteredObjectsForCAP 73.17% <ø> (ø)
DeductiveSystemForCAP 25.48% <ø> (ø)
FreydCategoriesForCAP 84.38% <100.00%> (+0.08%) ⬆️
GeneralizedMorphismsForCAP 62.47% <ø> (ø)
GradedModulePresentationsForCAP 44.57% <ø> (ø)
GroupRepresentationsForCAP 49.72% <ø> (ø)
HomologicalAlgebraForCAP 73.21% <ø> (ø)
InternalExteriorAlgebraForCAP 40.24% <ø> (ø)
LinearAlgebraForCAP 65.03% <ø> (ø)
ModulePresentationsForCAP 66.46% <ø> (ø)
ModulesOverLocalRingsForCAP 90.02% <ø> (ø)
MonoidalCategories 90.91% <ø> (ø)
ToricSheaves 21.79% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
CAP/gap/CAP.gd 95.08% <ø> (-0.24%) ⬇️
...gap/CategoryOfColumnsAsOppositeOfCategoryOfRows.gi 73.43% <ø> (+5.69%) ⬆️
CAP/PackageInfo.g 100.00% <100.00%> (ø)
CAP/gap/CategoryMorphisms.gi 79.13% <100.00%> (-0.07%) ⬇️
CAP/gap/CategoryObjects.gi 71.01% <100.00%> (-0.21%) ⬇️
CAP/gap/ToolsForCategories.gi 65.54% <100.00%> (ø)
FreydCategoriesForCAP/PackageInfo.g 100.00% <100.00%> (ø)
...iteOfCategoryOfRowsOfCommutativeRingPrecompiled.gi 87.43% <100.00%> (ø)
...mnsAsOppositeOfCategoryOfRowsOfFieldPrecompiled.gi 70.66% <100.00%> (ø)
CAP/doc/manual.six 100.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@sebastianpos
Copy link
Member

Me neither. Moreover, I like your suggestion since it implements the generic viewpoint (a B-homomorphism structure on A induces a B-homomorphism structure on A^{op}).

@zickgraf zickgraf merged commit 07afc14 into homalg-project:master Oct 10, 2022
@zickgraf zickgraf deleted the mutable_attr branch October 10, 2022 15:27
@zickgraf
Copy link
Member Author

Me neither. Moreover, I like your suggestion since it implements the generic viewpoint (a B-homomorphism structure on A induces a B-homomorphism structure on A^{op}).

Just to make sure I understand things correctly: any B-hom structure on A also induces a B^{op}-hom structure on A (and then of course also vice versa), correct? So equipping A^{op} with a B-hom structure and not with a B^{op}-hom structure is a choice, right?

@sebastianpos
Copy link
Member

I don't think so. If anything, a resulting induced structure would be something like an "op-hom-structure", since you would have the equation Hom( a, b ) = Hom( H(a,b), 1) instead of Hom( a, b ) = Hom( 1, H(a,b) ).

@zickgraf
Copy link
Member Author

I don't think so. If anything, a resulting induced structure would be something like an "op-hom-structure", since you would have the equation Hom( a, b ) = Hom( H(a,b), 1) instead of Hom( a, b ) = Hom( 1, H(a,b) ).

Ah, I didn't think far enough and did not notice that the 1 was in the wrong position. Then a new try to describe the situation:

Rows has a hom-structure over itself induced by the internal hom. Analogously, it has a "co-hom-structure" over itself induced by the internal co-hom. By opping the range of the co-hom-structure and swapping the arguments of the co-hom-structure on objects and morphisms, we could obtain a Cols-hom-structure on Rows.

Opposite swaps the arguments of the Rows-hom-structure to obtain a Rows-hom-structure on Cols. It could instead op the range category of the "co-hom-structure" to obtain a Cols-hom-structure on Cols. The latter would correspond to the situation before this PR.

If you agree that those ideas make sense, I would open an issue for the support for "co-hom-structures".

@sebastianpos
Copy link
Member

sebastianpos commented Oct 12, 2022

Yes, if you introduced a "co-hom-structure", then there would indeed be a choice in how A^{op} derives its hom-structure:

  • either from the hom-structure of A
  • or the "co-hom-structure" of A

That would also be fine. Although I have no immediate need for a co-hom-structure yet.

@zickgraf
Copy link
Member Author

Thanks for your replies, I'm now every happy with this point of view :-)

That would also be fine. Although I have no immediate need for a co-hom-structure yet.

Me neither, but asymmetries pop up now and then (e.g. in #917), so I think it's a good thing to keep track of them. And once we have #1078, adding opposite concepts is cheap because it comes down to just giving the definitions, everything else will be handled automatically.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants