0

以下は、C でのコード例です。

unsigned int  COUNTER;
unsigned int  get_counter(void) {
    COUNTER ++;
    return COUNTER;
}

検証可能な c (vst) を使用して機能仕様を記述しましたが、検証の最後に「typecheck_error (deref_byvalue tint)」というエラーが発生します。上記の c 関数の正しい founc 仕様を書く方法を教えてくれる人はいますか? ポイントはグローバル変数のSEP()の書き方です。

ここは間違っています、訂正してください

Definition get_counter_spec :=
 DECLARE _get_counter
  WITH v : Z, counter:val
  PRE []
        PROP  () 
        LOCAL (gvar _COUNTER counter)
        SEP   (data_at Ews tint (Vint (Int.repr v)) counter)
  POST [ tint ]
        PROP () 
        LOCAL(temp ret_temp (Vint (Int.repr (v+1))))
        SEP   (data_at Ews tint (Vint (Int.repr (v+1))) counter).
4

1 に答える 1