First an answer for the special case, then a more general answer.
 Trigonometric functions
 In the special case of the example in the question, this helps:
 sage: f(x) = 17
sage: g(x) = cos(x)^2
sage: h(x) = cos(2*x)
sage: h(x).simplify_trig()
2*cos(x)^2 - 1
 Linear independence of functions
 Returning to the general question, one way to check for
possible linear dependence relations, or for proofs of
independence, would be to project to a finite-dimensional
subspace and check there.
 Form a vectors from the value of each function at
a chosen collection of evaluation points.
 If these vectors are linearly independent, then the functions are.
 If there is a linear relation between these vectors, then it's worth
checking if the linear relation in fact holds for the functions themselves.
 Let us illustrate with the three functions above.
 Choose a collection of evaluation points:
 sage: xx = (0, pi/6, pi/4, pi/3, pi/2)
 Form a vector for each function:
 sage: u = vector([f(x) for x in xx])
sage: v = vector([g(x) for x in xx])
sage: w = vector([h(x) for x in xx])
 To look for dependence relations, compute the left kernel
of the matrix with these vectors as rows.
 sage: m = matrix([u, v, w])
sage: K = m.kernel()
sage: K
Vector space of degree 3 and dimension 1 over Algebraic Real Field
Basis matrix:
[  1 -34  17]
 This suggests that maybe f - 34*g + 17*h is zero.
 Extract the coefficients:
 sage: a, b, c = K.basis()[0]
sage: a, b, c
(1, -34, 17)
 Check if the linear relation in fact holds for the functions:
 sage: bool(a*f(x) + b*g(x) + c*h(x) == 0)
True