From d11fac30fa61fb0aa45cacec6afdfed9d91ac1dc Mon Sep 17 00:00:00 2001 From: KilianBruns Date: Thu, 7 Nov 2024 13:57:47 +0100 Subject: [PATCH] some corrections --- docs/oscar_references.bib | 69 +++++---- experimental/HasseSchmidt/src/HasseSchmidt.jl | 12 +- experimental/HasseSchmidt/test/runtests.jl | 134 ++++++++---------- 3 files changed, 107 insertions(+), 108 deletions(-) diff --git a/docs/oscar_references.bib b/docs/oscar_references.bib index 449c138a999..b96242bf451 100644 --- a/docs/oscar_references.bib +++ b/docs/oscar_references.bib @@ -1068,44 +1068,55 @@ @Book{Ful98 } @Article{FKRS20, - author = {Fruehbis-Krueger, Anne and Ristau, Lukas and Schober, Bernd}, - title = {Embedded desingularization for arithmetic surfaces -- toward a parallel implementation}, - year = {2020}, - pages = {32}, - eprint = {1712.08131}, - archivePrefix = {arXiv}, - primaryClass = {math.AG}, - url = {https://arxiv.org/abs/1712.08131}, + author = {Fruehbis-Krueger, Anne and Ristau, Lukas and Schober, Bernd}, + title = {Embedded desingularization for arithmetic surfaces -- toward a parallel implementation}, + year = {2021}, + pages = {32}, + eprint = {1712.08131}, + primaryClass = {math.AG}, + url = {https://doi.org/10.1090/mcom/3624} } @Article{Hasse1937, - author = {Hasse, H.}, - journal = {Journal für die reine und angewandte Mathematik}, - keywords = {algebraic function fields; higher differential quotients}, - pages = {215-223}, - title = {Noch eine Begründung der Theorie der höheren Differentialquotienten in einem algebraischen Funktionenkörper einer Unbestimmten. (Nach einer brieflichen Mitteilung von F.K. Schmidt in Jena).}, - url = {http://eudml.org/doc/150015}, - volume = {177}, - year = {1937}, + author = {Hasse, H.}, + journal = {Journal für die reine und angewandte Mathematik}, + keywords = {algebraic function fields; higher differential quotients}, + pages = {215-223}, + title = {Noch eine Begründung der Theorie der höheren Differentialquotienten in einem algebraischen Funktionenkörper einer Unbestimmten. (Nach einer brieflichen Mitteilung von F.K. Schmidt in Jena).}, + url = {http://eudml.org/doc/150015}, + volume = {177}, + year = {1937} } @Book{Cut04, - title = {Resolution of Singularities}, - author = {Cutkosky, S.D.}, - isbn = {9780821872383}, - series = {Graduate studies in mathematics}, - url = {https://books.google.de/books?id=OkAppJ7dXsgC}, - publisher = {American Mathematical Soc.} + title = {Resolution of Singularities}, + author = {Cutkosky, S.D.}, + isbn = {9780821872383}, + series = {Graduate studies in mathematics}, + url = {https://books.google.de/books?id=OkAppJ7dXsgC}, + publisher = {American Mathematical Soc.} +} + +@Article{Haze11, + author = {Hazewinkel, Michiel}, + title = {Hasse-Schmidt Derivations and the Hopf Algebra of Non-Commutative Symmetric Functions}, + journal = {Axioms}, + volume = {1}, + year = {2012}, + number = {2}, + pages = {149--154}, + issn = {2075-1680}, + doi = {10.3390/axioms1020149} } @Misc{Haze11, - title = {Hasse-Schmidt derivations and the Hopf algebra of noncommutative symmetric functions}, - author = {Michiel Hazewinkel}, - year = {2011}, - eprint = {1110.6108}, - archivePrefix = {arXiv}, - primaryClass = {math.RA}, - url = {https://arxiv.org/abs/1110.6108}, + title = {Hasse-Schmidt derivations and the Hopf algebra of noncommutative symmetric functions}, + author = {Michiel Hazewinkel}, + year = {2011}, + eprint = {1110.6108}, + archivePrefix = {arXiv}, + primaryClass = {math.RA}, + url = {https://arxiv.org/abs/1110.6108} } @Article{GH12, diff --git a/experimental/HasseSchmidt/src/HasseSchmidt.jl b/experimental/HasseSchmidt/src/HasseSchmidt.jl index b0a699c1b5a..8158e5deaaf 100644 --- a/experimental/HasseSchmidt/src/HasseSchmidt.jl +++ b/experimental/HasseSchmidt/src/HasseSchmidt.jl @@ -40,12 +40,12 @@ julia> hasse_derivatives(f) ``` """ function hasse_derivatives(f::MPolyRingElem) - R = parent(f) - x = gens(R) - n = ngens(R) - Rtemp, t = polynomial_ring(R, :t => 1:n) - F = evaluate(f, x + t) - return [[degrees(monomial(term, 1)), coeff(term, 1)] for term in terms(F)] + R = parent(f) + # x = gens(R) + # n = ngens(R) + Rtemp, t = polynomial_ring(R, :t => 1:ngens(R)) + F = evaluate(f, gens(R) + t) + return [[degrees(monomial(term, 1)), coeff(term, 1)] for term in terms(F)] end function hasse_derivatives(f::MPolyQuoRingElem) diff --git a/experimental/HasseSchmidt/test/runtests.jl b/experimental/HasseSchmidt/test/runtests.jl index 7ee608f20fa..574a01ff572 100644 --- a/experimental/HasseSchmidt/test/runtests.jl +++ b/experimental/HasseSchmidt/test/runtests.jl @@ -1,86 +1,74 @@ -###### Stil missing ################################################ -# Examples for polynomial rings over fintie fields -# -# R, (x, y) = polynomial_ring(GF(2), ["x", "y"]) -# f = x^2 + y^2 -# -# R, (x, y, z) = polynomial_ring(GF(3), ["x", "y", "z"]) -# f = x^2*y + z^6 -# -# x^2+y^2 in GF(2)[x,y] or x^2y+z^6 in GF(3)[x,y,z] -#################################################################### - @testset "hasse_derivatives" begin R, (x, y) = polynomial_ring(ZZ, ["x", "y"]); result_a1 = [ [[3, 0], 1], - [[2, 0], 3*x], - [[1, 0], 3*x^2], - [[0, 0], x^3]] + [[2, 0], 3*x], + [[1, 0], 3*x^2], + [[0, 0], x^3]] @test result_a1 == hasse_derivatives(x^3) result_a2 = [ [[0, 5], 3], - [[0, 4], 15*y], - [[0, 3], 30*y^2], - [[2, 0], 5], - [[0, 2], 30*y^3], - [[1, 0], 10*x], - [[0, 1], 15*y^4], - [[0, 0], 5*x^2 + 3*y^5]] + [[0, 4], 15*y], + [[0, 3], 30*y^2], + [[2, 0], 5], + [[0, 2], 30*y^3], + [[1, 0], 10*x], + [[0, 1], 15*y^4], + [[0, 0], 5*x^2 + 3*y^5]] @test result_a2 == hasse_derivatives(5*x^2 + 3*y^5) - result_a3 = [ [[2, 3], 1], - [[2, 2], 3*y], - [[1, 3], 2*x], - [[2, 1], 3*y^2], - [[1, 2], 6*x*y], - [[0, 3], x^2], - [[2, 0], y^3], - [[1, 1], 6*x*y^2], - [[0, 2], 3*x^2*y], - [[1, 0], 2*x*y^3], - [[0, 1], 3*x^2*y^2], - [[0, 0], x^2*y^3]] + result_a3 = [ [[2, 3], 1], + [[2, 2], 3*y], + [[1, 3], 2*x], + [[2, 1], 3*y^2], + [[1, 2], 6*x*y], + [[0, 3], x^2], + [[2, 0], y^3], + [[1, 1], 6*x*y^2], + [[0, 2], 3*x^2*y], + [[1, 0], 2*x*y^3], + [[0, 1], 3*x^2*y^2], + [[0, 0], x^2*y^3]] @test result_a3 == hasse_derivatives(x^2*y^3) result_a4 = [ [[4, 0], 1], - [[3, 0], 4*x], - [[2, 0], 6*x^2], - [[0, 2], 1], - [[1, 0], 4*x^3], - [[0, 1], 2*y], - [[0, 0], x^4 + y^2]] + [[3, 0], 4*x], + [[2, 0], 6*x^2], + [[0, 2], 1], + [[1, 0], 4*x^3], + [[0, 1], 2*y], + [[0, 0], x^4 + y^2]] @test result_a4 == hasse_derivatives(x^4 + y^2) - - result_a5 = [ [[2, 1], 1], - [[1, 2], 1], - [[2, 0], y], - [[1, 1], 2*x + 2*y], - [[0, 2], x], - [[1, 0], 2*x*y + y^2], - [[0, 1], x^2 + 2*x*y], - [[0, 0], x^2*y + x*y^2]] - @test result_a5 == hasse_derivatives(x^2*y + x*y^2) + + result_a5 = [ [[2, 1], 1], + [[1, 2], 1], + [[2, 0], y], + [[1, 1], 2*x + 2*y], + [[0, 2], x], + [[1, 0], 2*x*y + y^2], + [[0, 1], x^2 + 2*x*y], + [[0, 0], x^2*y + x*y^2]] + @test result_a5 == hasse_derivatives(x^2*y + x*y^2) end @testset "hasse_derivatives finite fields" begin R, (x, y, z) = polynomial_ring(GF(3), ["x", "y", "z"]); result_b1 = [ [[2, 0, 0], 1], - [[0, 2, 0], 1], - [[1, 0, 0], 2*x], - [[0, 1, 0], 2*y], - [[0, 0, 0], x^2 + y^2]] + [[0, 2, 0], 1], + [[1, 0, 0], 2*x], + [[0, 1, 0], 2*y], + [[0, 0, 0], x^2 + y^2]] @test result_b1 == hasse_derivatives(x^2 + y^2) result_b2 = [ [[0, 0, 6], 1], - [[2, 1, 0], 1], - [[0, 0, 3], 2*z^3], - [[2, 0, 0], y], - [[1, 1, 0], 2*x], - [[1, 0, 0], 2*x*y], - [[0, 1, 0], x^2], - [[0, 0, 0], x^2*y + z^6]] + [[2, 1, 0], 1], + [[0, 0, 3], 2*z^3], + [[2, 0, 0], y], + [[1, 1, 0], 2*x], + [[1, 0, 0], 2*x*y], + [[0, 1, 0], x^2], + [[0, 0, 0], x^2*y + z^6]] @test result_b2 == hasse_derivatives(x^2*y + z^6) end @@ -90,10 +78,10 @@ end RQ, _ = quo(R, I); result_c1 = [ [[0, 4, 0], 3], - [[0, 3, 0], 12*y], - [[0, 2, 0], 18*y^2], - [[0, 1, 0], 12*y^3], - [[0, 0, 0], 3*y^4]] + [[0, 3, 0], 12*y], + [[0, 2, 0], 18*y^2], + [[0, 1, 0], 12*y^3], + [[0, 0, 0], 3*y^4]] @test result_c1 == Oscar._hasse_derivatives(RQ(3y^4)) end @@ -104,9 +92,9 @@ end RL, _ = localization(R, U); result_d1 = [ [[3, 0, 0], 5], - [[2, 0, 0], 15*x], - [[1, 0, 0], 15*x^2], - [[0, 0, 0], 5*x^3]] + [[2, 0, 0], 15*x], + [[1, 0, 0], 15*x^2], + [[0, 0, 0], 5*x^3]] @test result_d1 == Oscar._hasse_derivatives(RL(5x^3)) end @@ -119,11 +107,11 @@ end RQL, _ = localization(RQ, U); result_e1 = [ [[0, 0, 5], 2], - [[0, 0, 4], 10*z], - [[0, 0, 3], 20*z^2], - [[0, 0, 2], 20*z^3], - [[0, 0, 1], 10*z^4], - [[0, 0, 0], 2*z^5]] + [[0, 0, 4], 10*z], + [[0, 0, 3], 20*z^2], + [[0, 0, 2], 20*z^3], + [[0, 0, 1], 10*z^4], + [[0, 0, 0], 2*z^5]] @test result_e1 == Oscar._hasse_derivatives(RQL(2z^5)) end