Risch-Norman algorithm