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

Intermediate PR for work on elliptic fibrations #3564

Closed

Conversation

HechtiDerLachs
Copy link
Collaborator

@HechtiDerLachs HechtiDerLachs commented Apr 5, 2024

This is work in progress with @simonbrandhorst .

We would like to try to get some changes in already.

Edit: This has proved to be more nasty than expected. I will get back to it next week.

Copy link
Collaborator Author

@HechtiDerLachs HechtiDerLachs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some comments to clean up the rebase.

Comment on lines -25 to +27
morphism_of_projective_schemes(P::AbsProjectiveScheme, Q::AbsProjectiveScheme, f::Map; check::Bool=true )
morphism_of_projective_schemes(P::AbsProjectiveScheme, Q::AbsProjectiveScheme, f::Map, h::SchemeMor; check::Bool=true )
morphism_of_projective_schemes(X::AbsProjectiveScheme, Y::AbsProjectiveScheme, a::Vector{<:RingElem})
morphism(P::AbsProjectiveScheme, Q::AbsProjectiveScheme, f::Map; check::Bool=true )
morphism(P::AbsProjectiveScheme, Q::AbsProjectiveScheme, f::Map, h::SchemeMor; check::Bool=true )
morphism(X::AbsProjectiveScheme, Y::AbsProjectiveScheme, a::Vector{<:RingElem})
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@simonbrandhorst : Do you know when this happened? What is the anticipated format? Didn't we decide for plain morphism at some point?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

no clue, but we did decide for morphism

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs a deprecation though. The function is exported and in src.

experimental/Experimental.jl Outdated Show resolved Hide resolved
experimental/Schemes/elliptic_surface.jl Outdated Show resolved Hide resolved
Comment on lines -1218 to +1250
d = F2 - _vec(tor)
d = F2-vec(tor)
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@simonbrandhorst : Do you remember what was going on here in this file?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the changes to linear algebra required changes elsewhere as well

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

vec for Nemo matrices was renamed _vec

src/Modules/mpolyquo.jl Outdated Show resolved Hide resolved
src/Rings/mpoly-graded.jl Outdated Show resolved Hide resolved
Comment on lines +2117 to +2130
#=
function (f::Oscar.MPolyAnyMap{<:MPolyRing, <:MPolyQuoLocRing, <:MPolyQuoLocalizedRingHom})(a::MPolyRingElem)
if !has_attribute(f, :lifted_map)
g = get_atttribute!(f, :lifted_map) do
S = domain(f)
W = codomain(f)
L = localized_ring(W)
g = hom(S, L, x -> lift(f.coeff_map(x)), lift.(f.img_gens), check=false)
set_attribute!(f, :lifted_map, g)
end
g = get_attribute(f, :lifted_map)
return codomain(f)(g(a), check=false)
end::Map{typeof(domain(f)), typeof(localized_ring(codomain(f)))}

b = g(a)::MPolyLocRingElem
return codomain(f)(numerator(b), denominator(b), check=false)
end
=#
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seemed a bit awkward. If commenting it out does not cause the tests to fail, then we should remove it.

test/AlgebraicGeometry/Schemes/CoveredScheme.jl Outdated Show resolved Hide resolved
test/AlgebraicGeometry/Schemes/CoveredScheme.jl Outdated Show resolved Hide resolved
@lgoettgens
Copy link
Member

There have been failing Aqua tests here and I do not know where they come from. Can someone have a look, please?

CC: @lgoettgens , @benlorenz

I have looked through the last few CI logs but cannot find them. If they occur again, can you paste a link here?

@joschmitt
Copy link
Member

joschmitt commented Apr 8, 2024

There have been failing Aqua tests here and I do not know where they come from. Can someone have a look, please?
CC: @lgoettgens , @benlorenz

I have looked through the last few CI logs but cannot find them. If they occur again, can you paste a link here?

I assume he means this: https://github.com/oscar-system/Oscar.jl/actions/runs/8601641041/job/23569386555. This also occurs in #3563. Edit: #3563 is some other problem with Aqua, sorry.

@HechtiDerLachs
Copy link
Collaborator Author

Comment on lines +422 to +423
@test length(small_gens) == 3 # saturated_ideal is not called here.
#@test isone(first(small_gens))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should have both variants available. Depending on the context both make sense. What about calling your variant _small_generating_set_nosatideal?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If one wants the small generating set of the saturated ideal, one can ask for that. I see no need to introduce an extra function really. Relying on the saturated ideal in general has proved to be a severe bottleneck.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For me this is the distinction between interactive user (small_generating_set) and targeting performance (where saturated_ideal should be avoided whereever possible).

@HechtiDerLachs HechtiDerLachs marked this pull request as draft April 9, 2024 21:35
"""
function simplify(I::IdealSheaf, cov::Covering=default_covering(scheme(I)))
id_dict = IdDict{AbsAffineScheme, Ideal}(
U => ideal(OO(U), small_generating_set(saturated_ideal(I(U)))) for U in patches(cov)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is there a saturated ideal here?
Shouldn't this be taken care off by the small_generating_set function instead?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently small_generating_set does not have a method for this signature. But we could introduce one for localizations at D(f), which uses saturated_ideal internally.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

small_generating_set does not compute a saturation anymore. It's not what the name of the function suggests and it killed performance in some cases. So I threw it away.

@HechtiDerLachs
Copy link
Collaborator Author

I will make a new PR for this which is rebased on the latest master.

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.

5 participants