CBMC (C の境界付きモデル チェッカー) のようなモデル チェッカーでは、ユーザー定義の assert ステートメントはブール条件を取り、モデル チェッカーはプログラムのすべての可能な実行に対して条件が true か false かをチェックします。
C プログラミングでは、ヘッダー ファイル assert.h で assert() マクロを定義します。assert() マクロは、パラメーターが TRUE と評価された場合に TRUE を返し、FALSE と評価された場合に何らかのアクションを実行します。多くのコンパイラは、失敗した assert() でプログラムを中止します。
モデルチェックとプログラミングの世界で、これら2つのアサーションの違いを誰かが明確にすることができますか?