現在、モデル チェック (モーダル ロジック、LTL、CTL、SAL モデル チェッカーなど) について学んでおり、余暇には、依存型をサポートする強く型付けされた関数型プログラミング言語である Idris について学んでいます。私はモデル チェックと Idris の両方を見ているので、Idris が Formal Methods とモデル チェックにどのように関係しているかに興味を持ち始めました。
モデルチェックについて学ぶとき、持ち出されるほとんどの例は、命令型で書かれたシステムまたはハードウェアコンポーネントの検証に関するもののように感じます. そのため、強く型付けされた関数型プログラミング言語、特に Idris などの依存型型付け言語でのモデル チェックの関連性について当惑しています。タイプ チェッカーが既に正しさの検証において素晴らしい仕事をしているように思えます。 ただし、私の直感では、モデルのチェックは、終了の約束をしない部分関数に関連している可能性があります。
Idris などの強く依存する型付きプログラミング言語を使用する場合、モデル チェックは適切ですか?