A symbolic approach to computing with holonomic functions