Check if two statements are related by function renaming.
(statement-renamefun old new ren) → _
In case of success, this function returns nothing, because we extend the funcion renaming only ephemerally, prior to processing blocks or loops.
Old and new statement must be of the same kind, and have constituents recursively related.
We treat the initialization blocks of a loop specially, as usual (e.g. in the static safety checks and in dynamic execution): we extend the renaming list according to the function definitions in the initialization block, and then we process the rest of the statement with the updated renaming list. However, the renaming list after the loop is the same as the one before: a loop does not permanently introduce new variables.