id,summary,reporter,owner,description,type,status,priority,milestone,component,resolution,keywords,cc,merged,author,reviewer,upstream,work_issues,branch,commit,dependencies,stopgaps
21869,A framework for discrete valuations in Sage,saraedum,,"= Review =
For your convenience you can review this ticket at https://github.com/saraedum/mac_lane/pull/4 (and leave inline comments.)
Please check off `[x]` the following when you think that a file is in good shape (modulo the comments that you made.) Or put a `[-]` if it needs substantial work. You can put your name next to file to tell others that you are already having a look at it.
{{{
[x] function_field/function_field_valuation.py (Stefan Wewers)
[x] padics/discrete_value_group.py
[x] padics/padic_valuation.py (David)
[x] valuation/README.md
[x] valuation/__init__.py
[x] valuation/all.py (David)
[x] valuation/augmented_valuation.py (David)
[x] valuation/developing_valuation.py (Shiva)
[x] valuation/gauss_valuation.py (Padmavathi)
[x] valuation/inductive_valuation.py (David)
[x] valuation/limit_valuation.py (David)
[x] valuation/mapped_valuation.py (David)
[x] valuation/scaled_valuation.py (David)
[x] valuation/trivial_valuation.py (David)
[x] valuation/valuation.py (David)
[x] valuation/valuation_space.py (David)
[x] valuation/valuations_catalog.py (David)
[x] valuation/value_group.py (Padmavathi)
[x] rings/function_field/function_field.py
[x] rings/integer_ring.pyx
[x] rings/number_field/number_field.py
[x] rings/number_field/order.py
[x] rings/padics/padic_generic.py
[x] rings/rational_field.py
}}}
== Testing ==
Because of all the dependencies of this ticket it is a bit hard to build this. If you have access to k8s, you can use the version in `~/Src/sage-mac_lane/` to try this package out. (Please do not push all the dependencies onto this branch as this is going to make reviewing this much harder.)
== Documentation ==
To review the documentation, you can go to https://drugtestbots.info/maclane/reference/index.html. The relevant sections are:
* [x] https://drugtestbots.info/maclane/reference/valuations/index.html
* [ ] https://drugtestbots.info/maclane/reference/padics/sage/rings/padics/padic_generic.html#sage.rings.padics.padic_generic.pAdicGeneric.valuation
* [ ] https://drugtestbots.info/maclane/reference/number_fields/sage/rings/number_field/number_field.html#sage.rings.number_field.number_field.NumberField_generic.valuation
* [ ] https://drugtestbots.info/maclane/reference/number_fields/sage/rings/number_field/order.html#sage.rings.number_field.order.Order.valuation
* [ ] https://drugtestbots.info/maclane/reference/function_fields/sage/rings/function_field/function_field.html#sage.rings.function_field.function_field.FunctionField.valuation
* [ ] https://drugtestbots.info/maclane/reference/rings_standard/sage/rings/rational_field.html#sage.rings.rational_field.RationalField.valuation
* [ ] https://drugtestbots.info/maclane/reference/rings_standard/sage/rings/integer_ring.html
== Known Issues ==
Some tests fail because some of the paths broke when moving the code from github into sage. The following are known problems – Julian aka saraedum is working on these:
{{{
sage -t --long --warn-long 116.4 src/sage/rings/polynomial/polynomial_quotient_ring.py # 1 doctest failed
sage -t --long --warn-long 116.4 src/sage/rings/function_field/function_field_valuation.py # 12 doctests failed
sage -t --long --warn-long 116.4 src/sage/rings/valuation/augmented_valuation.py # 28 doctests failed
sage -t --long --warn-long 116.4 src/sage/rings/valuation/inductive_valuation.py # 11 doctests failed
sage -t --long --warn-long 116.4 src/sage/rings/valuation/developing_valuation.py # 5 doctests failed
sage -t --long --warn-long 116.4 src/sage/rings/valuation/scaled_valuation.py # 1 doctest failed
sage -t --long --warn-long 116.4 src/sage/rings/valuation/gauss_valuation.py # 2 doctests failed
sage -t --long --warn-long 116.4 src/sage/rings/valuation/trivial_valuation.py # 3 doctests failed
sage -t --long --warn-long 116.4 src/sage/rings/valuation/limit_valuation.py # 2 doctests failed
sage -t --long --warn-long 116.4 src/sage/rings/padics/padic_valuation.py # 16 doctests failed
sage -t --long --warn-long 116.4 src/sage/rings/valuation/valuation_space.py # 1 doctest failed
sage -t --long --warn-long 116.4 src/sage/rings/valuation/valuation.py # 30 doctests failed
sage -t --long --warn-long 116.4 src/sage/rings/valuation/mapped_valuation.py # 6 doctests failed
sage -t --long --warn-long 116.4 src/sage/rings/function_field/function_field.py # 3 doctests failed
}}}
= Necessary changes =
== Fix bugs in Sage ==
There are a number of trivial bugs that get fixed by monkey-patches in https://github.com/saraedum/mac_lane/blob/master/__init__.py
1. Conversion from a Function Field to its Constant Field #21872
1. Conversion from a Function Field to its underlying Polynomial Ring #23166
1. Coercions between Function Fields #23167
1. Coercions are injective if the underlying map is #21879
1. Ring homomorphisms from Fields are injective #21879
1. Polynomial rings embed into their fraction fields #23185
1. The embedding of a ring into a polynomial ring over that ring is injective #23203, #23204, #23211
1. p-adic rings embed into their fraction fields #23188
1. Morphisms of number fields are injective #21879
1. ZZ into QQ is injective #21879
1. quotients of polynomial rings are injective/surjective #23190
1. ZZ into a Number Field is injective #21879
1. ZZ into an order of a Number Field is injective #21879
1. ZZ does not map onto QQ #23186
1. ~~ZpCA shifts are broken~~
1. add default implementation of inverse_of_unit() #23191
1. R[x]→S[x] is injective/surjective if R→S is #23495
== Add new features to Sage ==
New features that the code needs to work
1. Factorization over iterated extensions of finite fields. #21996
1. ~~principal_part() and sides() of a Newton Polygon~~ (patch this in the calling code instead.)
1. (cached_in_argument_method #22034)
== Make tests non-trivial ==
1. (some_elements() should be non-trivial for number fields/orders) #23192
1. (some_elements() should be non-trivial/deterministic for rational function fields and their extensions) #23193
1. (some_elements() should be non-trivial for fraction_fields of polynomial rings) #23194
== Add the valuation code to Sage ==
i.e., add these files https://github.com/saraedum/mac_lane to Sage.",enhancement,needs_review,minor,sage-7.5,commutative algebra,,"discrete valuations, valuations, p-adics, function fields, number fields, smooth projective curves, Mac Lane algorithm, Montes algorithm,sd87",,,Julian Rüth,"GaYee Park, Stefan Wewers, David Roe, Padmavathi Srinivasan, Shiva Chidambaram",N/A,"121 failing doctests, check generated documentation, add references to method, comments on github, check docbuild output for broken links",u/saraedum/a_framework_for_discrete_valuations_in_sage,548e879415fb1a128531f4961f51cc9e88a3e313,"#21782, #23166, #23167, #21879, #23185, #23203, #23204, #23211, #23188, #21879, #23186, #23191, #21996, #23190, #23495, #23483",