Il primo che mi viene in mente è Derive, se non sbaglio esiste un modo per risolvere un'espressione passaggio per passaggio.