Skip to content

Commit

Permalink
Take care of non-principal exceptional divisors.
Browse files Browse the repository at this point in the history
  • Loading branch information
HechtiDerLachs committed Oct 8, 2024
1 parent af1e9c8 commit a1c1f28
Showing 1 changed file with 8 additions and 8 deletions.
16 changes: 8 additions & 8 deletions experimental/Schemes/src/BlowupMorphism.jl
Original file line number Diff line number Diff line change
Expand Up @@ -644,18 +644,18 @@ function produce_object_on_affine_chart(I::StrictTransformIdealSheaf, U::AbsAffi
f_loc = covering_morphism(f)[U]
V = codomain(f_loc)
IE_loc = IE(U)
@assert isone(ngens(IE_loc)) "ideal sheaf of exceptional locus is not principal"
tot = pullback(f_loc)(J(V))
#return saturation_with_index(tot, IE_loc)
# It is usually better to pass to the simplified covering to do the computations
simp_cov = simplified_covering(X)
U_simp = first([V for V in patches(simp_cov) if original(V) === U])
a, b = identification_maps(U_simp)
# This used to be the following line. But we don't use the index, so we
# switch to the more performant version
# result, _ = saturation_with_index(pullback(a)(tot), pullback(a)(IE_loc))
result = _iterative_saturation(pullback(a)(tot), elem_type(OO(U_simp))[pullback(a)(u) for (u, _) in factor(lifted_numerator(first(gens(IE_loc))))])
return pullback(b)(result)
tot = pullback(f_loc)(J(V))
if isone(ngens(IE_loc))
result = _iterative_saturation(pullback(a)(tot), elem_type(OO(U_simp))[pullback(a)(u) for (u, _) in factor(lifted_numerator(first(gens(IE_loc))))])
return pullback(b)(result)
else
result, _ = saturation_with_index(pullback(a)(tot), pullback(a)(IE_loc))
return result
end
end

@attr Bool function is_prime(I::StrictTransformIdealSheaf)
Expand Down

0 comments on commit a1c1f28

Please sign in to comment.