どんな誤りが些細なミスなのか
(forum.owlofsogang.com)どんな誤りが些細なミスなのか
要点
- ある定義や証明にある誤りが修正しやすくても、気づくのが難しいなら、そのミスは些細ではありません。
- ある種の誤りは、証明支援系の助けを借りなければ見つけられません。
要約本文
- 昨年12月から今年4月16日までに約170時間をかけて、Lean証明支援系の標準ライブラリにある文字列定理
String.splitOn_of_validを証明しました。 - この定理を証明する途中で、
String.splitOn関数の定義にあるバグを発見しました。 - このバグを修正すること自体はそれほど難しくありませんでした。該当する定義で
iをi - jに置き換えるだけでよかったのです。 - だからといって、この誤りが些細なミスだったとは思いません。この定義では
splitOn関数はたいてい正しく動作しますが、特殊な場合には誤った結果を返すからです。 - Leanのような証明支援系を使っていなければ、私はこのような微妙な誤りを絶対に見つけられなかったでしょう。
まだコメントはありません。