-- Roughly said the envelope of a family of curves is a -- a curve which "touches" every member of the family of curves. -- For example the axes are the envelope of the system of circles -- (x-t)^2 + (y-t)^2 = t^2. R=ZZ/31991[t,x,y, MonomialOrder=>Lex] F = (x-t)^2 + (y-t)^2 - t^2 dF = diff(t, F) i=ideal(F,dF) g =gens gb i envelope = selectInSubring(1,g) -- so the union of the two axes -- A family of translated parabolas (y=x^2) along x=y R=QQ[t,x,y, MonomialOrder=>Lex] F = (x-t)^2 -y +t dF = diff(t, F) i=ideal(F,dF) g =gens gb i envelope = selectInSubring(1,g) -- x-y-1/4=0 (plot this in Maple) -- Example from Cox, Little, O'Shea page 137 -- the circles (x-t)^2 + (y-t^2)^2 = 4, thus a family of -- circles of radius 2 with centres along the parabola y=x^2. R=QQ[t,x,y, MonomialOrder=>Lex] F = (x-t)^2 + (y-t^2)^2 - 4 dF = diff(t, F) i=ideal(F,dF) g =gens gb i transpose g envelope = selectInSubring(1,g) envelope = (ideal(envelope))_0 toString envelope -- a curve of degree 6 (plot this in maple) leadTerm g -- There are 5 els in the GB g above. g_0 doens't -- involve t, g_1, g_2, g_3 are of degree 1 in t -- while g_4 is of degree 2 in t but the coefficient of t^2 is 1!=0 -- => A point on "envelope" is tangent at at most 2 circles in the family -- => At a point (x,y) where the three coefficients of t in g_1, g_2, g_3 -- are no zero, the "envelope" "touches" exactly one circle in the family. gi = ideal(g) coeff1=((coefficients(0,gi_1))_1)_(0,0) coeff2=((coefficients(0,gi_2))_1)_(0,0) coeff3=((coefficients(0,gi_3))_1)_(0,0) who = ideal(coeff1, coeff2, coeff3) sing = ideal(envelope, diff(x, envelope), diff(y, envelope)) radical(sing) == who envelope % (gb who) diff(x, envelope) % (gb who) diff(y, envelope) % (gb who) coeff1 % sing coeff1^2 % sing coeff2 % sing coeff2^2 % sing coeff3 % sing coeff3^2 % sing S=QQ[x,y, MonomialOrder=>Lex] J= substitute(who,S) transpose gens gb J -- solve for real solutions (there should be exactly three)