All links are semiholomorphic

Semiholomorphic polynomials are functions f:C2→C\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$f:{\mathbb {C}}^2\rightarrow {\mathbb {C}}$$\end{document} that can be written as polynomials in complex variables u, v and the complex conjugate v¯\documentclass[12pt]{minimal} \usepackage{amsmath} \usepackage{wasysym} \usepackage{amsfonts} \usepackage{amssymb} \usepackage{amsbsy} \usepackage{mathrsfs} \usepackage{upgreek} \setlength{\oddsidemargin}{-69pt} \begin{document}$$\overline{v}$$\end{document}. The origin is a weakly isolated singularity of a polynomial map if it is locally the only critical point on the variety. In this case the intersection of the variety and a sufficiently small 3-sphere produces a link whose link type is a topological invariant of the singularity. We prove the semiholomorphic analogue of Akbulut’s and King’s All knots are algebraic, that is, every link type in the 3-sphere arises as the link of a weakly isolated singularity of a semiholomorphic polynomial. Our proof is constructive, which allows us to obtain an upper bound on the polynomial degree of the constructed functions.


INTRODUCTION
In [1] Akbulut and King proved that "All knots are algebraic".Since the word algebraic carries several different meanings, their title could cause confusion.Besides links that are built from rational tangles as studied by Conway [8] the term "algebraic link" is nowadays usually reserved for links of isolated singularities of complex hypersurfaces.These are known to be unions of certain iterated cables of torus links.So clearly not all knots are algebraic in this sense.If the word "algebraic" is interpreted as "an algebraic set", then Akbulut's and King's title is a true statement, but also a classical and well-known result in algebraic geometry, see for example the Nash-Tognoli theorem [5].
The correct interpretation of Akbulut's and King's "algebraic knots" lies somewhere between the notion of the link of an isolated singularity and an algebraic set.Consider a real polynomial map f : R 4 → R 2 .A critical point of f is a point p ∈ R 4 , where the real Jacobian matrix D f (p) of f does not have full rank.We say that the origin O ∈ R 4 is a weakly isolated singularity of f , if f (O) = 0, D f (O) = 0 (i.e., the 2 × 4-matrix with zero entries) and there is some neighbourhood U of the origin such that U\{O} ∩ f −1 (0) contains no critical points of f .Hence f is allowed to have a line of critical points pass through the origin, but the origin should be an isolated intersection point of f −1 (0) and the critical set.
Every weakly isolated singularity can be associated with a link, since the link type of the intersection of f −1 (0) and the 3-sphere S 3 ρ of radius ρ does not depend on the sufficiently small radius ρ > 0. We call L f = f −1 (0) ∩ S 3  ρ the link of the singularity.Akbulut and King prove that every link in the 3-sphere arises as the link of a weakly isolated singularity of a real polynomial map f : R 4 → R 2 .Thus their interpretation of the term "algebraic" does involve singularities, but of real polynomial maps instead of complex ones, and their definition of an isolated singularity is (as the name suggests) so weak that there is no restriction in the type of links that can be obtained this way.
Note that by composing an inverse stereographic projection R 3 → S 3 ρ with f and clearing the denominator we obtain a real polynomial map on R 3 whose variety is isotopic to the link of the singularity L f of f , so that Akbulut's and King's proof also establishes L f as an algebraic set in R 3 .
In [7], we discuss a construction of weakly isolated singularities for certain links.It produces functions f : C 2 → C that can be written as polynomials in complex variables u, v and the complex conjugate v. Hence they are holomorphic with respect to one complex variable, but not necessarily with respect to the other.We call such functions semiholomorphic.They form an interesting family of mixed polynomials [13], lying between the complex and the real setting.However, the construction in [7] only works for links that satisfy certain symmetry constraints, such as being the closure of a 2-periodic braid.This is necessary in order to obtain polynomials with the desired properties rather than more general real analytic maps.
In this paper we offer a constructive proof of Akbulut's and King's result, an algorithm that takes a braid word as input and produces a polynomial with a weakly isolated singularity, whose link is ambient isotopic to the closure of the given braid.Furthermore, all of the constructed polynomials are semiholomorphic.
Theorem 1.1.Algorithm 1 (outlined in Section 3) constructs for any given braid B on s strands a semiholomorphic polynomial f : C 2 → C with deg u ( f ) = s, with a weakly isolated singularity at the origin and L f ambient isotopic to the closure of B.
The algorithm is based on trigonometric interpolation, which allows us to prove upper bounds on the polynomial degrees of the constructed functions.
Theorem 1.2.Let B be a braid with s strands, crossings and let C denote the set of components of its closure, which by assumption is not the unknot.Let s C denote the number of strands of the component C ∈ C .Then the degree of the polynomial f that Algorithm 1 constructs from the input B is at most: Corollary 1.3.If the closure of B is a non-trivial knot, the degree of the polynomial f constructed by Algorithm 1 is bounded by We would also like to point out that there is a stronger notion of isolation of singularities of real polynomial maps.We say that the origin is an isolated singularity if f (O) = 0, D f (O) = 0 and U\{O} contains no critical points of f .Typically the set of critical points of f is 1-dimensional, so that polynomials with isolated singularities are very rare.The links that arise from isolated singularities, the real algebraic links, have not been classified yet and are conjectured to be equal to the set of fibered links [4].Some constructions of isolated singularities have been put forward to make progress on this conjecture [7,11,14], but the family of links that are known to be real algebraic is still comparatively small.A construction similar to Algorithm 1, which produces isolated singularities for a large families of fibered links will be subject of a future paper.
Our algorithm can be interpreted as a deformation of a Newton degenerate mixed function in the sense of [13] or [3].Our results can thus be viewed in the broader context of the question: How do deformations of real polynomial mappings affect the topology of their zeros close to singular points?Some work has been done on this question regarding so-called inner Newton non-degenerate mixed functions [3] and complex polynomial mappings [9,10,15], but the problem is still wide open in the general setting.
The remainder of this paper is structured as follows.Section 2 reviews some useful background and introduces notation and conventions.In Section 3 we give an overview of the algorithm that constructs weakly isolated singularities for any given link.The individual steps of the algorithm are discussed in Section 4, where we illustrate that all the steps can indeed be performed algorithmically.We prove our main result Theorem 1.1 in Section 5 by proving that the described algorithm constructs weakly isolated singularities for any given link.The bounds on the polynomial degrees are shown in Section 6. Acknowledgments: The author is grateful to Raimundo Nonato Araújo dos Santos and Eder Leandro Sanchez Quiceno for discussions and feedback on the paper.This work is supported by the European Union's Horizon 2020 Research and Innovation Programme under the Marie Sklodowska-Curie grant agreement No 101023017.

BACKGROUND
Semiholomorphic polynomials are a special type of mixed polynomials as introduced by Oka [13].In the dimensions that we are interested in, the set of mixed polynomials f : C 2 → C consists of polynomials in two complex variables u and v, and their complex conjugates, u and v, so that f takes the form with all but finitely many c i, j,k, ∈ C equal to zero.Note that every polynomial map from R 4 to R 2 can be written as a mixed polynomial.A mixed polynomial is semiholomorphic if and only if c i, j,k, = 0 implies j = 0. Thus a semiholomorphic polynomial is holomorphic with respect to the variable u, but not necessarily with respect to the variable v.
Semiholomorphic polynomials lend themselves to constructions like the one discussed in this paper for two reasons.First, the holomorphicity in one variable grants us a certain rigidity and control over the behaviour of zeros that is usually associated with complex functions.For instance, we know that for any fixed value of v = v * the number of zeros of f (•, v * ) is equal to its degree.The second advantage of working with semiholomorphic polynomials is that it is comparatively easy to prove that a point is a regular point, i.e., that the real Jacobian matrix has full rank, and consequently to prove that a singularity is weakly isolated.It suffices to show that the origin O is the only zero of f where ∂ f ∂ u vanishes.
As for complex polynomials there is the notion of a Newton polyhedron for mixed polynomials [13].For every weight vector P = (p 1 , p 2 ) ∈ N 2 we can define the radially weighted degree of a mixed monomial M = c i, j,k, u i u j v k v with respect to P as d(P; M) := p 1 (i + j) + p 2 (k + ).A mixed polynomial f is radially weighted homogeneous of degree d(P; f ) if there is a weight vector P such that all non-zero monomials M in f have the same radially weighted degree d(P; M) = d(P; f ) with respect to P.
Our algorithm is based on braids and the fact that every link is the closure of some braid [2].A braid on s strands is a collection of s disjoint curves (u j (t),t) ⊂ C × [0, 2π], j = 1, 2, . . ., s, parametrized by their height coordinate t going from 0 to 2π.The functions u j : [0, 2π] → C are assumed to be smooth and to satisfy that for every j ∈ {1, 2, . . ., s} there is a unique i ∈ {1, 2, . . ., s} such that u j (2π) = u i (0).
Identifying the t = 0-and the t = 2π-plane results in a link in C × S 1 , the closed braid.Embedding the open solid torus C × S 1 as an untwisted neighbourhood of the unknot in the 3-sphere S 3 defines a link in S 3 , the closure of the braid, whose link type is well-defined.
Projecting curves via the map (u,t) → (Re(u),t) into R × [0, 2π] results in s intersecting curves.A braid diagram is such a projection where every intersection is transverse and involves exactly two strands.We keep track of the information about the Im(u)-coordinate of these two strands at the crossing by deleting the strand with the larger Im(u)-coordinate in a neighbourhood of the crossing.The strand with the smaller Im(u)-coordinate is thus the overcrossing strand.This is an arbitrary choice and in previous papers we have not been consistent with our choices (although consistent in each individual paper).Changing this convention only means that several signs throughout this paper need to be reversed.Obviously, the results are not affected by this.If two strands cross at t = t k and for all small ε > 0 the overcrossing strand has smaller Re(u)-coordinate for all t ∈ (t k − ε,t k ), this crossing is a positive crossing.Non-positive crossings are negative.
The braid isotopy classes of braids on s strands form a group generated by the Artin generators σ j , j = 1, 2, . . ., s − 1, where σ j denotes a positive crossing between the strand with the jth smallest Re(u)-coordinate (the " jth strand") and the strand with the next larger Re(u)-coordinate (the j + 1th strand).The square B 2 of a braid B is thus the double repeat of its braid word, two copies of the same braid concatenated.
A braid diagram can be interpreted as a singular braid on s strands, that is, a collection of curves that are allowed to intersect transversely in finitely many points, whose image under projection map (u,t) → (Re(u),t) into R × [0, 2π] results in a braid diagram (see Figure 1).The singular braid monoid is generated by the Artin generators, their inverses σ −1 j and τ j , j = 1, 2, . . ., s − 1, which correspond to intersection points between the jth strand and the j + 1th strand.Thus a singular braid in R × [0, 2π] (i.e., it is a braid diagram) is represented by a word that only consists of τ j s.
The projection map that associates to every geometric braid a braid diagram can thus be understood as a function from the set of braid words to the set of singular braid words mapping a generator σ ε j , ε ∈ {±1} to τ j , regardless of the sign ε.For some given geometric braid its image under the projection map (u,t) → (Re(u),t) into R × [0, 2π] might not be a braid diagram.We call a collection of curves (u j (t),t), j = 1, 2, . . ., s, in C × [0, 2π] a generalized singular braid if for every j = 1, 2, . . ., s, there is a unique i ∈ {1, 2 . . ., s} with u j (0) = u i (2π) and all intersection points between the different strands (u j (t),t) are isolated points.Hence the intersection points are allowed to be tangential and to involve more than two strands.The condition that the intersections are isolated is always satisfied if the strands are not identical and parametrized by real-analytic functions.
We say that a singular crossing of a generalized singular braid is generic if it is a transverse intersection between exactly two strands.Otherwise we call it non-generic.Nongeneric crossings thus consist of more than two strands or are a tangential intersection of at least two strands.We also say that the functions u j that parametrize a generalized singular braid are non-generic if it has non-generic singular crossings.

AN OUTLINE OF THE ALGORITHM
In [6] we describe an algorithm that finds for any given braid a semiholomorphic polynomial f : C 2 → C whose vanishing set intersects the 3-sphere of unit radius transversely in the closure of the given braid.In [7] this construction is modified so that it produces a semiholomorphic polynomial f with a weakly isolated singularity, whose link is the closure of the square B 2 of the given braid word B.
The first step in both of these constructions is to find (via trigonometric interpolation) a parametrization of the given braid B (up to isotopy) in terms of trigonometric polynomials.Let C denote the set of connected components of the closure of B and let s C denote the number of strands that make up the component C ∈ C .The first step of the algorithm in [6] finds for every C ∈ C a pair of trigonometric polynomials Note that since we use the projection (u,t) → (Re(u),t) to obtain braid diagrams and braid words, the real part of the parametrized strands F C t+2π j s C determines the crossing pattern (i.e., the braid word without the signs of the crossings) and the imaginary part determines the signs of the crossings.In particular, the first step of the algorithm in [6] yields via trigonometric interpolation a set of trigonometric polynomials F C such that the corresponding curves F C t+2π j s C ,t parametrize a generalized singular braid.
As in [6] we would like to point out that the braid diagram for the braid parametrized by the F C s and the G C s is not necessarily identical to the braid diagram of B that we started with.However, the braids are guaranteed to be braid isotopic.The functions G C are also found via trigonometric interpolation.
Once we have found a parametrization of a braid that is isotopic to B in terms of F C and G C , we define g : C × S 1 via ( 5) Note the factor 2 in front of the variable t in the expression above.It means that as t varies between 0 and 2π we are traversing the braid B twice.In other words, the vanishing set of g is (up to isotopy) the closed braid B 2 .
Expanding the product above results in a polynomial expression for g with respect to the complex variable u, as well as with respect to e i2t and e −i2t .We define where k is a sufficiently large integer.Note that by writing v = re it this becomes a mixed polynomial 2ks is greater than the degree of g with respect to e it and e −it .Note that exponents of e it and e −it in g are even, so that the term √ v v always comes with an even exponent.
The constructed polynomials p k are semiholomorphic and radially weighted homogeneous with respect to P = (2k, 1) with degree d(P; f ) = 2ks.
Since all roots of g(•, e it ) are simple, the singularity at the origin is weakly isolated.The link of the singularity is the closure of B 2 .An explicit isotopy between p −1 k (0) ∩ S 3 ρ and a projection of p −1 k (0) ∩ (C × ρS 1 ) to S 3 ρ , which is known to be the closure of B 2 , can be constructed as in [6].
The generalized singular braid parametrized by the F C s is not necessarily a singular braid.b) We can make the F C s generic.The resulting functions FC parametrize a singular braid B sing .c) The braid diagram of a braid B that is obtained from an appropriate choice of crossing signs for the singular crossings in B sing .The braid B is braid isotopic to B in Figure 1a).d) B 2 sing , the vanishing set of g. e) A resolution of the singular crossings of B 2 sing that results in B , whose closure is the link of the singularity of f .Algorithm 1 below, which constructs a weakly isolated singularity for any given link, is based on the same ideas.However, it uses parametrizations of singular braids instead of classical braids.Figure 2 shows the parametrized braids and vanishing sets of functions at various steps throughout the algorithm.
We start with a braid diagram of a braid B that closes to the link that we want to construct, such as shown in Figure 1a).Via the same trigonometric interpolation procedure as in [6] we obtain trigonometric polynomials F C that parametrize curves that form a generalized singular braid, see Figure 2a).The functions F C are not necessarily generic.Via small modifications we can make the F C s generic and obtain a singular braid B sing (Figure 2b)) that has the property that there exists a choice of signs for each of its singular crossings that turns B sing into a classical braid that is isotopic to B, see Figure 2c).
As in [6] we define a function p k .It is a radially weighted homogeneous mixed polynomial with a singularity at the origin.The intersection sing for all ρ > 0, shown in Figure 2d).In particular, it does not have a weakly isolated singularity, since the singular crossings correspond to lines of critical points of p k through the origin.However, we can add a term r m A(e it ), where v = re it and A is a finite Fourier series, that makes the singularity weakly isolated.This term has to be constructed in such a way that all singular crossings of B 2 sing are resolved in such a way that the link of the singularity is the closure of a braid isotopic to B, which is displayed in Figure 2e).

Algorithm 1 Construction of weakly isolated singularities
Step 1: From the given braid word B find the trigonometric polynomials F C via trigonometric interpolation as in [6].
Step 2: Make F C generic.Call the resulting functions FC .
Step 3: Define g(u, . Step 4: Define p k (u, re it ) = r 2ks g u r 2k , e it with 2ks greater than the degree of g with respect to e it and e −it .
Step 5: Solve the trigonometric interpolation problem ( * ) in Section 4.2 for A : S 1 → C.
Step 6: Define f (u, re it ) = p k (u, re it ) + r m A(e it ), where m is odd and larger than the degree of A with respect to e it and e −it and larger than 2ks.
The idea behind Algorithm 1 can be understood as a natural consequence of [3], where we introduce certain non-degeneracy conditions of mixed functions and study links of their (weakly) isolated singularities.We show that for such non-degenerate mixed polynomials adding terms above the boundary of the Newton polygon does not change the topology of the link.This seems to suggest that not all links can be obtained as link of weakly isolated singularities of non-degenerate mixed polynomials (and it is an interesting question for which links this is possible).Algorithm 1 thus constructs a degenerate polynomial p k and adds an appropriate term above the Newton boundary.
In the following sections we explain the individual steps.In particular, we show that each of the steps can be performed algorithmically.Then we show that the algorithm indeed constructs weakly isolated singularities with the closure of B as the link of the singularity.

THE INDIVIDUAL STEPS
Step 1 is identical to the corresponding procedure in [6].Note however that the resulting trigonometric polynomials F C are not necessarily generic.This is not a problem for the construction in [6].For the construction in Algorithm 1 however, we need generic parametrizations.This is done in Step 2, which requires a more detailed explanation, detailed in Section 4.1.Step 3 and 4 are then simply definitions of functions.Step 5 is arguably the most important part of this algorithm.It will be discussed in detail in Section 4.2.Step 6 is again simply the definition of a function f .Thus if Step 2 and Step 5 can be performed algorithmically, Algorithm 1 is indeed an algorithm.4.1.Generic parametrizations of singular braids (Step 2).The set of trigonometric polynomials F C that result in generic parametrizations is dense in the set of trigonometric polynomials.So we should expect that the trigonometric polynomials F C found via the method from [6] almost always have this property.However, there is no guarantee.If the F C s are not generic, we have to make some adjustments to make them generic.Again we would like to emphasize that in practice, this is usually not necessary.
Alternative to the method from [6] trigonometric approximation can be used in Step 1 to find a trigonometric parametrisation of the braid.If the approximated original braid parametrisation is generic, i.e., the corresponding projection gives a braid diagram, then a sufficiently close approximation is generic, too.Therefore, Step 2 of the algorithm is not needed if trigonometric approximation is used in Step 1.However, in contrast to the method from [6], trigonometric approximation does not allow us to give bounds on the degrees of the trigonometric polynomials that parametrize the strands. To parametrizes a braid that is braid isotopic to B if there exist values t j ∈ [0, 2π], j = 1, 2, . . ., + 1, t 1 = 0, t +1 = 2π, t j < t j+1 such that the permutation associated to the F C s in the interval is [t j ,t j+1 ] is the transposition The elimination of non-generic crossings.a) A tangential intersection between strands from different components gets eliminated.b) An intersection between more than 2 strands from different components gets eliminated.c) A tangential intersection between strands from the same component gets eliminated.d) An intersection between more than two strands, all of which are from the same component, is eliminated.
The algorithm in [6] finds trigonometric polynomials F C such that the condition in Lemma 4.1 is satisfied.We would like to make the F C s generic, while maintaining this property.
The F C s being non-generic could mean that there are tangential intersections between strands of the corresponding generalized singular braid B sing or that there are more than two strands involved in a singular crossing of B sing .
Having explicit expressions for the functions F C we can find all values t = t k , k = 1, 2, . . ., M, for which there are non-generic crossings.The fact that there are only finitely many of these follows from the real analyticity of the functions.It will simplify our notation if we adopt the convention of updating our variables throughout the modifications outlined below.That is to say, when we change the function F C for example by adding a term, the resulting function will again be called F C .The values t k , k = 1, 2, . . ., M, are again defined as the values of t at which the new collection of functions F C has non-generic crossings.Note that their number M can change throughout our modification, and will eventually be 0.
A tangential intersection between the strands (C, j) and (C , j We can remove the tangential intersection points between two strands of different components C and C by adding small constants ε C,1 to each F C .This is displayed in Figure 3a).This requires ε C,1 = ε C ,1 if C = C .Furthermore, we can choose ε C,1 sufficiently small so that the resulting trigonometric polynomials F C still satisfy the property from Lemma 4.1 for the same values t j , j = 1, 2, . . ., + 1.Furthermore, the addition of ε C,1 should not introduce any new non-generic crossings.This can be achieved by choosing the values for the different ε C,1 s successively, i.e., for an arbitrary ordering of the components C 1 ,C 2 , . . .,C |C| we first choose ε C 1 ,1 such that it removes tangential intersection points involving strands from C 1 without introducing new ones, then we choose ε C 2 ,1 and so on.We also add a small constant to every F C that is constant.Such components only consist of a single vertical strand.Adding a small constant guarantees that none of them are involved in any non-generic crossings.
Note that sufficient values for ε C,1 can be found explicitly knowing the values of t for which we have generic or non-generic crossings as well as maxima and minima of the functions Alternatively, since we can check numerically if the F C s are generic or not, we can take ε C,1 to be an element of a non-zero sequence converging to 0 and if the resulting F C is non-generic, we redefine ε C,1 to be the next element in that sequence.
By taking F C (t + ε C,2 ) instead of F C (t) as the trigonometric polynomial for the component C with appropriately chosen small ε C,2 , we obtain a parametrization where every singular crossing that involves more than two strands only involves strands from the same component.This is achieved by choosing ε C,2 = ε C ,2 if C = C and each ε C,2 sufficiently small.We do not introduce any new non-generic crossing in doing this, since the intersection is transverse, the curves are real analytic and the intersection does not involve any constant strands.The effect is shown in 3b).How small we have to choose each ε C,2 can be determined from the values of t for which there are crossings.Note in particular that the ε C,2 s can be chosen such that the condition from Lemma 4.1 is still satisfied for the same values t j , j = 1, 2, . . ., + 1, as before.Note that we find the values of ε C,2 successively.We choose a value for one component C and only then decide on the value for the next component C and so on.
Thus the only remaining non-generic crossings are between strands of the same component.Suppose we have a tangential intersection between (C, j) and (C, j ) at t = t k .Then we add ε cos t − to F C , where as usual ε is small and its sign is determined by the is non-zero in a neighbourhood of t = t k (independent of ε) for all ε of the correct sign and sufficiently small modulus.We have thus reduced the number of tangential intersections by one, see Figure 3c).Proceeding like this we eliminate all tangential intersections between strands.This includes tangential intersections that are part of non-generic crossings with more than two strands.Again we can choose ε sufficiently small, so that Lemma 4.1 is still satisfied for t j , j = 1, 2, . . ., + 1.Thus the only remaining non-generic crossings are crossings that involve more than two strands and all of them are from the same component.Suppose we have such a crossing at t = t k and two of the strands involved in that crossing are (C, j) and (C, j ).Then we add ε cos (t − ϕ), where ϕ = t k /s C − π + π( j − j)/s C .This value is chosen such that cos − ϕ for all j / ∈ { j, j }.Thus after adding ε cos (t − ϕ) we still have a crossing at t = t k between (C, j) and (C, j ), but no other strand is involved in that crossing.Hence it is a generic crossing.The other strands that used to be part of that crossing have been moved aside and could form other non-generic crossings with more than two strands.Therefore, we have not necessarily reduced the number of non-generic crossings in this step.However, we have reduced the sum of the number of strands involved in a non-generic crossing c, with the sum going over all non-generic crossings c.Thus repeating this step we can eliminate all non-generic crossings and obtain a generic parametrization F C .This elimination process is illustrated in Figure 3d).
It is more difficult to give an explicit formula for a sufficient value of ε .Since we are not particularly concerned with achieving an optimal run-time for our algorithm, we may again resort to the approach of using a non-zero sequence converging to 0 and checking at each value of ε if the resulting parametrisation is generic and satisfies Lemma 4.1.
Let now FC , C ∈ C denote the generic trigonometric polynomials that we obtain from this procedure and let B sing = ∏ j=1 τ i j be the singular braid that is parametrized by the FC s.

Lemma 4.2.
There is a choice of signs ε j ∈ {±1} such that the input braid B is braid Proof.We have selected the values of the different ε C,1 s, ε C,2 s, εs and ε s such that the FC s still satisfy the condition from Lemma 4.1 for the same values t j , j = 1, 2, . . ., + 1 as the original F C s. Therefore by Lemma 4.1, there exist trigonometric polynomials GC , C ∈ C , such that FC + i GC parametrizes a braid B that is braid isotopic to B. Since the FC s are generic, this is equivalent to B sing being obtained from a braid diagram of B by forgetting information about signs of crossings, with B a braid that is isotopic to B. Thus the value of ε j is the sign of the corresponding crossing in the braid B .
Note that throughout Step 2 we only add terms of degree 0 or 1 with respect to e it and e −it and the degree 1 terms are only necessary for components with more than one strand.Therefore, the degrees of the trigonometric polynomials F C are not affected by the procedure above and the degree of FC is equal to the degree of F C .

Trigonometric interpolation (Step 5).
For a given generic collection of trigonometric polynomials FC the roots of ( 9) form a singular braid B 2 sing that is the square of the singular braid B sing .Both of these singular braids have s = ∑ C∈C s C strands.
Let t k , k = 1, 2, . . ., denote the values of t ∈ [0, 2π] for which there are singular crossings in B sing .By a shift of the variable t, we can always guarantee that t k = π for all k.Denote by (C 1 (k), j 1 (k)) and (C 2 (k), j 2 (k)) the two strands that form the crossing at t = t k .Which of these strands carries which label is not important, but by convention we choose the labels such that FC 1 (k) for all t ∈ (t k − ε,t k ) for some small ε > 0. Note that g from Eq. ( 9) has only real roots and is therefore a real polynomial.Since all roots of g(•, e it ) are simple when t = t k , k = 1, 2, . . ., , there is a critical point of g between each neighbouring pair of roots of g, i.e., if u 1 , u 2 ∈ R are roots of g(•, e it ) and there is no root of g(•, e it ) in the open interval (u 1 , u 2 ), there is a unique critical point c ∈ (u 1 , u 2 ).We call sign(g(c, e it )) the sign of the critical point c.As t varies, the critical points of g(•, e it ) move on the real line, but they remain distinct and maintain their sign for all t = t k , k = 1, 2, . . ., .
At t = t k two roots and their intermediate critical point c collide.We say that c is the critical point associated with the crossing.
Step 5 of Algorithm 1 is to solve the following trigonometric interpolation problem ( * ): The set of data points takes the form (t k , y k , z k ), k = 1, 2, . . ., , where t k , k = 1, 2, . . ., , are as above the values of t for which there are crossings of B sing .The value y k is such that y k cos t k 2 is a non-zero real number that has the same sign as the critical point associated with the crossing at t = t k .
We know from Lemma 4.2 that for every crossing of j k is braid isotopic to B and thus closes to the desired link.The value of z k is set to ε k .
The interpolation problem ( * ): Find a trigonometric polynomial Ã : , the interpolation problem above can be written as an interpolation where the values of the data points correspond to values of the desired function Ã and its first derivative.Such an interpolation always has a solution that can be found via explicit formulas such as the one in [12].The degree of the solution is equal to .We then define A(e it ) := Ã(e i2t ) cos(t), which satisfies A(e it k /2 ) = y k and ∂ arg(A) ∂t (e it k /2 ) has the same sign as ε k for all k ∈ {1, 2, . . ., }.

WEAKLY ISOLATED SINGULARITIES
In this section we prove that Algorithm 1 does what it is supposed to do: It constructs weakly isolated singularities with the desired link as the link of the singularity.Thereby we establish a proof of Theorem 1.1.
We use the same notation as in the previous sections.A(e it )).Since g t is monic and real and its critical points are distinct for all values of t ∈ [0, 2π], there is a diffeomorphism h : C × S 1 → C × S 1 that is the identity outside of {(u, e it ) : |u| < R} for some R > 0 and that preserves the fibers of the projection map onto the second factor C × S 1 → S 1 , and a disk D such that (g t (h)) −1 (R) ∩ D is the union of the real line ({(u, e it ) : Im(u) = 0} ∩ D) and s − 1 straight, "vertical" lines orthogonal to the real line for every t ∈ [0, 2π].This is displayed in Figure 4.Note that the vertical lines intersect the real line in the critical points of g t .Since the critical points vary with t, so do the vertical lines.
Let t k , k = 1, 2, . . ., 2 , denote the values of t for which there are crossings of B 2 sing .Note that for k ≤ these differ from the values of t k in the previous section, corresponding to the crossings of B sing , by a factor of 1/2.By symmetry we have t k+ = t k + π. Figure 5 shows subsets of the complex plane in a neighbourhood of a singular crossing at t = t k , and at t = t k + π.The black lines are the preimage set (g t (h)) −1 (R) with the horizontal line being a segment of the real line.The red points are the roots of g t at values t = t k − 2ε, t = t k − ε, t = t k , t = t k + ε and t = t k + 2ε.By symmetry the corresponding roots at t k+ are the same.The blue points indicate the roots of g t (h) + δ A(e it ), which are the preimage points (g t (h)) −1 (−δ A(e it )), for some small δ > 0.
By construction A(e it k ), k = 1, 2, . . ., , is real and has the same sign as the critical point associated with the crossing at t = t k .Hence the two preimage points (g t k (h)) −1 (−δ A(e it k )) lie on the real line on opposite sides of the vertical line for all values of δ = r m−2ks > 0 as indicated in the lower part of Figure 5c).
Since the derivative of the argument of A is non-zero at t = t k , there is a neighbourhood U of t k independent of δ such that t = t k is the only point in the neighbourhood where arg(δ A) is 0 or π.Thus t = t k is the only point in U, for which the roots of g t + δ A(e it ) a) The motion of the roots of g t (in red) and of g t + r m−2ks A (in blue) in the complex plane in a neighbourhood of singular crossings at t = t k and t = t k + π, k ∈ {1, 2, . . ., }.For each subfigure the lower part shows the behaviour near t = t k and the upper part shows the behaviour near t = t k + π. a) At t = t k − ε and t = t k + π − ε. b) At t = t k − ε/2 and t = t k + π − ε/2.c) At t = t k and t = t k + π. d) At t = t k + ε/2 and t = t k + π + ε/2.e) At t = t k + ε and t = t k + π + ε. lie on g −1 t (R).The two roots (which are the preimage points (g t k (h)) −1 (−δ A(e it k ))) lie on opposite sides of the vertical line at t = t k and cannot cross the vertical line while t is in U.
Recall that a crossing only occurs when two strands have the same Re(u)-coordinate.Since the two preimage points remain on opposite sides of the vertical line throughout U, there is no crossing between the strands that are formed by the two preimage points (g t (h)) −1 (−δ A(e it )) in a neighbourhood of the original crossing for all sufficiently small δ > 0.
Thus all crossings at t = t k , k = 1, 2, . . ., , are resolved as in Figure 6a), that is, there are no more crossings in the lower half of the braid.
By symmetry A(e it k+ ) = A(e i(t k +π) ), k = 1, 2, . . ., , is real and has the opposite sign as the critical point associated with the crossing at t = t k+ .Therefore, the two preimage points (g t (h)) −1 (−δ A(e it )) both lie on the vertical line, one "above" (with positive imaginary part) the real line and one "below" (negative imaginary part), see the upper part of Figure 5c).Furthermore, we know that the sign of ∂ arg(A) ∂t is the sign of the desired crossing.Suppose that that sign is positive.Then the point above the real line is moving from right to left and the point below is moving from left to right, relative to the motion of the vertical line.That is, there is an ε > 0 such that for all t ∈ (t k+ − ε,t k+ ) the point above a) b) the real line is in the upper right quadrant and the point below is in the lower left quadrant, while for all t ∈ (t k+ ,t k+ + ε) the point above the real line is in the upper left quadrant and the point below the real line is in the lower right quadrant.
Recall again that there is a crossing if and only if the two points have the same Re(u)coordinate.This means that in (t k+ − ε,t k+ + ε) there is a unique crossing, which occurs at t = t k+ .By our sign convention the sign of this crossing is positive as the point below the real line passing the point above the real line from left to right.
Likewise, if the desired sign ε k of the crossing is negative, then the point above the real line is moving from left to right and the point below is moving from right to left.That is, there is an ε > 0 such that for all t ∈ (t k+ − ε,t k+ ) the point above the real line is in the upper left quadrant and the point below is in the lower right quadrant, while for all t ∈ (t k+ ,t k+ + ε) the point above the real line is in the upper right quadrant and the point below the real line is in the lower left quadrant.Thus there is a unique crossing at t = t k+ and it has a negative sign.
In either case we obtain a classical crossing of the required sign as in Figure 6b).Note that the ε-neighbourhood can be chosen independently of δ and thus independent of r, so that we have the correct crossing for all small values of r.Outside of the discussed neighbourhoods of t k , k = 1, 2, . . ., 2 , we can guarantee that there are no crossings when r is sufficiently small.It follows that the zeros of g t (h) + r m−2ks A(e it ) form a closed braid in C × S 1 as t varies from 0 to 2π.
Since the singular crossings in the first half of B 2 sing at t = t k , k = 1, 2, . . ., , are all resolved into strands without crossings and the singular crossings in the second half of B 2 sing at t = t k + π, k = 1, 2, . . ., , are resolved as desired, i.e., τ j k → σ ε k j k , the braid formed by the roots of g t (h) + r m−2ks A(e it ) is represented by the word ∏ k=1 σ ε k j k , which by construction is braid isotopic to the braid B that we used as input.Since h is a diffeomorphism that preserves the fibers of the projection map onto the second factor C × S 1 → S 1 , the roots of g t + r m−2ks A(e it ) form a braid that is isotopic to B as a closed braid.
Lemma 5.2.The constructed semiholomorphic polynomial f has a weakly isolated singularity whose link is the closure of the given braid B.
Proof.At v = 0 we have that f (u, v) = u s , so that the origin is the only critical point with v = 0.
We have shown that the roots of f | |v|=r form a braid as t varies from 0 to 2π for small values of r > 0. In particular, all roots of f | |v|=r are simple, which means that ∂ f ∂ u = 0 on f −1 (0)\{O}.Thus f has a weakly isolated singularity at the origin.
We also have that f −1 (0) ∩ (C × rS 1 ) is isotopic to the closed braid B for all sufficiently small values of r.As r goes to zero, the u-coordinates of all strands converges to zero.As in [6] we can construct an explicit isotopy between the projection of f −1 (0) ∩ (C × rS 1 ) to S 3 r and f −1 (0) ∩ S 3 r for small values of r, which shows that the closure of B is the link of the singularity.

UPPER BOUNDS ON THE DEGREE
In this section we prove Theorem 1.2 and Corollary 1.3.The proof of the upper bound on the degree of the constructed polynomials is very similar to the one of the bound obtained in [6].
Proof.Since F C is found via trigonometric interpolation, its degree (as a trigonometric polynomial) is equal to x 2 , where x is the number of data points used in the interpolation and y is the floor function that maps any real number y to the largest integer less than or equal to y.As in [6] we need s C data points for the interpolation for F C , so that the degree of F C is s C 2 .(In [6] this was erroneously stated as s c −1

2
.) We can assume that > 1, since the closure of the braid is not an unknot.As observed in Section 4.1 the degree of FC is equal to the degree of F C .The degree of g is ∑ C∈C max{s C , 2 deg(F C )} ≤ s .Thus k = /2 is a choice that guarantees that p k is a polynomial, where y is the smallest integer bigger than or equal to y.
The degree of p k is then equal to 2ks ≤ s( + 1).The trigonometric polynomial Ã is found via trigonometric interpolation, where for every singular crossing of B sing there is one data point for the value of Ã and one data point for its derivative.The degree of Ã is then equal to , where is the number of singular crossings of B sing [12].Recall that could be strictly greater than .
Singular crossings of B sing correspond to intersections of the curves parametrized by FC , which correspond to the zeros of certain complex polynomials on the unit circle as in [6].It was shown in [6] that the number of singular crossings that involve two strands from the same component C is bounded above by (s C + 1)s C .(Following the mistake in [6] mentioned above this bound was originally stated as (s C + 1)(s C − 1)) It is also shown in [6] that there are at most s We need to choose m, which will equal the degree of f , to be greater than the degree of p k and at least the degree of A. The degree of A is 2 deg( Ã) + 1 and the degree of p k was at most s( + 1).Thus is a sufficient choice.
Therefore, the degree of f , may be chosen to be

FIGURE 1
FIGURE 1. a) A braid diagram.b) The corresponding singular braid a given set of trigonometric polynomials F C , C ∈ C , with given values of s C , and for any closed interval [a, b] in [0, 2π] (with a and b away from the values of t for which there are intersections between the F C t+2π j s C s) we call the permutation of the s = ∑ permutation associated to the F C s in the interval [a, b].It is thus an element of the symmetric group on s elements.Note that this is possible, because the F C s are real analytic.This is why even at tangential intersections of strands, we can uniquely determine which incoming arc corresponds to which outgoing arc.

Lemma 4 . 1 (
[6]).Let F C , C ∈ C be trigonometric polynomials and let B = ∏ a braid, whose closure has |C | components.Then there exist trigonometric polynomials G C , C ∈ C , such that FC is a generic trigonometric parametrization of the singular braid B sing = ∏ k=1 τ j k .Let ε k ∈ {±1}, k = 1, 2, . . ., and let A : S 1 → C be the trigonometric polynomial found via the interpolation procedure in Step 5 of Algorithm 1.Let g, p k and f = p k + r m A(e it ) be defined as in the description of Algorithm 1.R D (g t (h)) −1 (R)

FIGURE 6 .
FIGURE 6. Resolution of singular crossings.a) A singular crossing is resolved into two strands without a crossing.b) A singular crossing is resolved into a classical crossing with sign ε k .
C s C singular crossings with one strand from the component C and the other strand from a component C = C.The total number of singular crossings and the degree of Ã is bounded from above by deg( Ã) ≤ ∑ C∈C (s C + 1)s C

2 C
+ s (2 + s) + 1.If the closure of B is a knot, we have that |C | = 1 and s C = s.Corollary 1.3 follows immediately.