integrate(sin(x)*cos(x),x)



Does the algorithm in Maxima use something like substitution as used by
hand? 
y= cos(x) or sin(x) 
=> dy = -sin(x)dx or cos(x)dx 
=> I(x)=integrate(sin(x)*cos(x),x) = -cos^2(x) or sin^2(x)? 
Or does substitution not factor in at all?