Narrowing basically extends rewriting by allowing free variables
in terms and by replacing matching with unification. As a consequence,
the search space of narrowing becomes usually infinite, as in
logic programming. ...
[EN] Essentially, in a reversible programming language, for each forward computation from state S to state S', there exists a constructive method to go backwards from state S' to state S. Besides its theoretical interest, ...