していく末尾再帰の関数です。変換するようにします(末尾再帰の関数だと状態変数の変化を追い掛けるのが面倒なのです)。下記のように定義します。返します(そのまま)。定理証明するときには結構便利です。あることを証明します。REVAPPEND-EQUAL-APPEND-REV自動証明されました。同様に文字列がきても大丈夫なように定理を書きましょう。使って証明してくれたようです。ルールでは絶対マッチしないよっていう意味です。関数を展開しないようにします。書き換えられるようになりました。的に表現すると下記のようになります。