ACL2 は定理をただ書けばいいわけではなくて定理を書くことで ACL2 をプログラミングする感じなので初見だと意味が分からないんだよな。たとえば、 `(equal x y)` みたいな定理があったとき `(equal y x)` は式としては同じだけど ACL2 の rewrite ルールとしては全然意味が違う(ACL2 は equal の左にあるやつを右に置き換える)とかいうのを知った瞬間にこれは厳しいってなる人はたくさんいるんじゃないだろか……。
でもその壁を乗り越えるとちょっと関数が複雑になっても定理証明できたりして結構楽しいんだよな。こんな感じでなんか ACL2 で楽しんでいる層を増やして ACL2 界隈を日本に構築したい気持ちがある。