Jazz Improvization: A Theory at the Computational Level