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

More information on fundamental groups of plane curves #7

Closed
wants to merge 87 commits into from

Conversation

enriqueartal
Copy link
Owner

@enriqueartal enriqueartal commented Oct 2, 2023

The goal of this PR is to add some features to the computation of fundamental groups of complements of the plane curves introduced in Sagemath by @miguelmarco and his optional package sirocco. It also corrects a bug introduced in sagemath#35376 and cleans some code.

We add the following information: given a tuple of curves we retrieve the information of meridians of each curve as words in the fundamental group, and also of the strands of the braid monodromy. We also add the possibility of excluding the vertical lines from the computation of braid monodromy (as far as there is no vertical asymptote) which makes its computation faster.

To achieve this goal we introduce new classes AffinePlaneCurveArrangements and ProjectivePlaneCurveArrangements. For now, they serve only to compute the fundamental groups with the meridian information (and braid monodromy and strand information for the affine curves) but more methods may be constructed in the future. The structure of these classes follows the one of HyperplaneArrangements, with one difference, the order is important. This is why we also introduce the class of OrderedHyperplaneArrangements, where the fundamental group is computed. We have also introduce a new method for hyperplane arrangements, jhyperplane_section, in order to compute the fundamental group also for hyperplane arrangements and not only for line arrangements.

These are the main changes:

  • schemes/curves/affine_curve.py
    • Introducion of some auxiliary new methods: has_vertical_asymptote, is_vertical_line
    • Small update of fundamental_group
  • schemes/curves/projective_curve.py. Some trivial cases were not considered in fundamental_group.
  • schemes/curves/plane_curve_arrangement.py. New file with the new classes.
  • schemes/curves/zariski_vankampen.py
    • For consistency some lists are converted into tuples.
    • Some functions take a new keyword to take into account the option of eliminating the vertical lines for the computation of the braid monodromy.
    • In braid_in_segment, correction of the bug introduced in the previous PR (the parameters must be in the number field embedded in QQbar).
    • The function geometric_basis has been changed for designed and to cover some cases where the former one failed.
    • A new function vertical_lines_in_braidmon to isolate vertical lines if needed.
    • The function braid_monodromy has been cleaned and now it takes into account the strand information.
  • geometry/hyperplane_arrangement/arrangement.py
    • Introducion of the class of OrderedHyperplaneArrangements. The hyperplanes are not sorted in this class and the introduction order is respected. It forces to update some methods.
    • Five new methods for this new class: hyperplane_section, affine_fundamental_group, affine_meridians, projective_fundamental_group, and projective_meridians.

📝 Checklist

  • The title is concise, informative, and self-explanatory.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation accordingly.

⌛ Dependencies

@enriqueartal enriqueartal reopened this Nov 25, 2023
@enriqueartal enriqueartal changed the title Arrangements More information on fundamental groups of plane curves Nov 25, 2023
Copy link

Documentation preview for this PR (built with commit 483aa6c; changes) is ready! 🎉

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.

1 participant