specmanでgenを使用して「randc」の種類の実装を生成するにはどうすればよいですか?
例:
list_l : list of uint(bits:3);
keep list_1.size () == 8;
リストのすべての要素が(0 -7)の間のランダムな番号を持つように生成したいと考えています。
specmanでgenを使用して「randc」の種類の実装を生成するにはどうすればよいですか?
例:
list_l : list of uint(bits:3);
keep list_1.size () == 8;
リストのすべての要素が(0 -7)の間のランダムな番号を持つように生成したいと考えています。
リストに現在定義されている制約により、範囲内のすべての値でリストが生成されることが保証されます[0..7]
。
を使用gen
すると、必要に応じてリストが生成されます。
例
list_l : list of uint(bits:3);
keep list_l.size () == 8;
generate_list() is {
gen list_l;
}
すべてのリスト アイテムを一意にする場合は、リストに次の制約を追加します。
keep list_l.all_differnt(it);
リストに各値を一度入力するために、 「is_a_permutation()」疑似メソッドを使用することができます。
例
list_l : list of uint(bits:3);
keep list_1.is_a_permutation(all_values(uint(bits:3)));
また
keep list_1.is_a_permutation({0;1;2;3;4;5;6;7});
この例では、「is_a_permutation()」がリストサイズを正確に 8 に制限していることに注意してください。