-
-
Notifications
You must be signed in to change notification settings - Fork 655
Allow partial result in minimal_model, and translate OS-algebra to cdga #35782
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
Conversation
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.
Why is the method to return the OS algebra as differential algebra and not just a CGA? It seems like that would be the more natural thing to have as the user could then easily enough add the differential.
The OS algebra is the cohomology ring of the complement of the arrangement, so i guess it makes sense to consider it as a differential algebra. But as you said, since it is so easy to add the differential structure, it is almost equivalent to return it just as gca. |
Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com>
Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com>
Ah, I see. We have modded out by the image in the original chain complex, so the differentials all become 0.
Perhaps we can have both methods, but with the |
Yes, that makes sense. |
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.
Thanks. Just a few other essentially trivial things.
Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com>
Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com>
Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com>
Co-authored-by: Travis Scrimshaw <clfrngrown@aol.com>
So, is it ready for positive review? |
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.
Sorry, just a few more trivial things I noticed while looking at the compiled doc. One formatting thing, and then breaking up the long output lines (might even be a bit better to be slightly shorter per line too; I didn't check closely).
I've approved the PR, so once you push the changes, you can switch the status to positive review.
src/sage/algebras/commutative_dga.py
Outdated
on the `partial_result` flag. | ||
|
||
- ``partial_result`` -- boolean (default: `False`); wether to return | ||
the partial result if the `max_iterations` limit is reached. |
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.
on the `partial_result` flag. | |
- ``partial_result`` -- boolean (default: `False`); wether to return | |
the partial result if the `max_iterations` limit is reached. | |
on the ``partial_result`` flag. | |
- ``partial_result`` -- boolean (default: ``False``); wether to return | |
the partial result if the ``max_iterations`` limit is reached |
src/sage/algebras/commutative_dga.py
Outdated
ValueError: could not cover all relations in max iterations in degree 2 | ||
sage: S.minimal_model(partial_result=True) | ||
Commutative Differential Graded Algebra morphism: | ||
From: Commutative Differential Graded Algebra with generators ('x1_0', 'x1_1', 'x1_2', 'y1_0', 'y1_1', 'y1_2') in degrees (1, 1, 1, 1, 1, 1) over Rational Field with differential: |
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.
From: Commutative Differential Graded Algebra with generators ('x1_0', 'x1_1', 'x1_2', 'y1_0', 'y1_1', 'y1_2') in degrees (1, 1, 1, 1, 1, 1) over Rational Field with differential: | |
From: Commutative Differential Graded Algebra with generators | |
('x1_0', 'x1_1', 'x1_2', 'y1_0', 'y1_1', 'y1_2') in degrees (1, 1, 1, 1, 1, 1) | |
over Rational Field with differential: |
src/sage/algebras/commutative_dga.py
Outdated
y1_0 --> x1_0*x1_1 - x1_0*x1_2 + x1_1*x1_2 | ||
y1_1 --> x1_0*y1_0 - x1_2*y1_0 | ||
y1_2 --> x1_1*y1_0 - x1_2*y1_0 | ||
To: Commutative Differential Graded Algebra with generators ('a', 'b', 'c') in degrees (1, 1, 1) with relations [a*b - a*c + b*c] over Rational Field with differential: |
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.
To: Commutative Differential Graded Algebra with generators ('a', 'b', 'c') in degrees (1, 1, 1) with relations [a*b - a*c + b*c] over Rational Field with differential: | |
To: Commutative Differential Graded Algebra with generators ('a', 'b', 'c') | |
in degrees (1, 1, 1) with relations [a*b - a*c + b*c] over Rational Field with differential: |
src/sage/algebras/orlik_solomon.py
Outdated
Graded Commutative Algebra with generators ('e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6') in degrees (1, 1, 1, 1, 1, 1, 1) with relations [e1*e2 - e1*e3 + e2*e3, e0*e2 - e0*e4 + e2*e4, e0*e1 - e0*e5 + e1*e5, e3*e4 - e3*e5 + e4*e5, e0*e3 - e0*e6 + e3*e6, e1*e4 - e1*e6 + e4*e6, e2*e5 - e2*e6 + e5*e6] over Rational Field | ||
|
||
""" |
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.
Graded Commutative Algebra with generators ('e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6') in degrees (1, 1, 1, 1, 1, 1, 1) with relations [e1*e2 - e1*e3 + e2*e3, e0*e2 - e0*e4 + e2*e4, e0*e1 - e0*e5 + e1*e5, e3*e4 - e3*e5 + e4*e5, e0*e3 - e0*e6 + e3*e6, e1*e4 - e1*e6 + e4*e6, e2*e5 - e2*e6 + e5*e6] over Rational Field | |
""" | |
Graded Commutative Algebra with generators ('e0', 'e1', 'e2', 'e3', 'e4', 'e5', 'e6') | |
in degrees (1, 1, 1, 1, 1, 1, 1) with relations | |
[e1*e2 - e1*e3 + e2*e3, e0*e2 - e0*e4 + e2*e4, e0*e1 - e0*e5 + e1*e5, | |
e3*e4 - e3*e5 + e4*e5, e0*e3 - e0*e6 + e3*e6, e1*e4 - e1*e6 + e4*e6, | |
e2*e5 - e2*e6 + e5*e6] over Rational Field | |
""" |
src/sage/algebras/orlik_solomon.py
Outdated
sage: H = hyperplane_arrangements.braid(3) | ||
sage: O = H.orlik_solomon_algebra(QQ) | ||
sage: O.as_cdga() | ||
Commutative Differential Graded Algebra with generators ('e0', 'e1', 'e2') in degrees (1, 1, 1) with relations [e0*e1 - e0*e2 + e1*e2] over Rational Field with differential: |
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.
Commutative Differential Graded Algebra with generators ('e0', 'e1', 'e2') in degrees (1, 1, 1) with relations [e0*e1 - e0*e2 + e1*e2] over Rational Field with differential: | |
Commutative Differential Graded Algebra with generators ('e0', 'e1', 'e2') in degrees | |
(1, 1, 1) with relations [e0*e1 - e0*e2 + e1*e2] over Rational Field with differential: |
Sorry, I just realized that the computations where only valid for the case of line arrangements (that is, we only cared about rank 2 relations). I changed the method to add missing relations. I think it is correct now, but another pair of eyes would help. |
Good catch. Is there some way we can easily/quickly test that the result matches, say, (partially) computing the (graded) degrees? |
We can check if the Betti numbers match the coefficients of the poincare polynomial. For instance:
|
If that’s a quick (in the doctest time sense), then can we add that as an additional test? I promise, absolutely last thing. |
Done |
Thank you. |
Documentation preview for this PR (built with commit 9a1de5e; changes) is ready! 🎉 |
📚 Description
Fixes #35781
📝 Checklist