PPT Slide
Rewrite the last rule to be more general.
d( [ C , * , U ] , X , [ C , * , A ] ) : -
d( [ U , ^ , V ] , X , [ V , * , [U , ^ , [ V , - , 1 ] ] , * , W ] )
| ? - d( [ c , * , [ x , ^ , t ] ] , x , Q ) .
Q = [ c , * , [ t , * , [ x , ^ [ t , - , 1 ] ] , * , 1 ] ]
| ? - d( [ c , * , [ [ [ a , * , x ] , + , b ] , ^ , t ] ] , x , Q ) .
Q = [ c, * , [ t , * , [ [ [ a , * , x ] , + , b ] ,
^ , [t , - , 1 ] ] , * , [ [ a , * , 1 ] , + , 0 ] ] ]