Skip to content

Commit

Permalink
some corrections
Browse files Browse the repository at this point in the history
  • Loading branch information
KilianBruns committed Nov 7, 2024
1 parent 817d35e commit d11fac3
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 108 deletions.
69 changes: 40 additions & 29 deletions docs/oscar_references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
12 changes: 6 additions & 6 deletions experimental/HasseSchmidt/src/HasseSchmidt.jl
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
134 changes: 61 additions & 73 deletions experimental/HasseSchmidt/test/runtests.jl
Original file line number Diff line number Diff line change
@@ -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

Expand All @@ -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

Expand All @@ -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

Expand All @@ -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

0 comments on commit d11fac3

Please sign in to comment.