# Do Circles C1 and C2 touch?
TouchCeCe:=proc(C1,C2) local q:
q:=expand(subs(y=solve(C1-C2,y),C1)):
ItIsZero
(4*coeff(q,x,2)*coeff(q,x,0)-coeff(q,x,1)^2):
end:
# It first solves the equation C1=C2, plugs the solution into C1 and determines
whether
# the discriminant of the resulting quadratic is zero.