Как использовать 64-битные целые числа с Boolector - PullRequest
0 голосов
/ 20 июня 2019

Я пытаюсь создать модель, используя boolector , но я не могу найти способ представить 64-битное целое число.На самом деле, число всегда усекается до 32 бит.Я думаю, это связано с тем, что я использую boolector_int, который имеет uint32 в качестве параметра (см. doc )

Может кто-нибудь предложить мне способ представлениятакой номер?Честно говоря, на данный момент я не вижу причины, по которой можно создать boolector_bitvec_sort из 64 битов и boolector_int принять только uint32.

Спасибо

1 Ответ

1 голос
/ 20 июня 2019

Функция boolector_int предназначена для преобразования из фактического int32_t. И аналогично boolector_unsigned_int предназначен для преобразования из фактического uint32_t.

В вашем случае используйте одну из функций:

  • boolector_const
  • boolector_constd
  • boolector_consth

, которые по существу принимают строки в качестве аргументов для ввода вашей константы. См .: https://github.com/Boolector/boolector/blob/ae2a749b858b42c06d436353d8c1857b05021b2e/src/boolector.h#L707-L743

Это немного обходно, но по сути вы сначала конвертируете свою константу в строку, а затем передаете ее. (Различные варианты по существу допускают двоичное, десятичное и шестнадцатеричное представление.) Таким образом, вам не нужно беспокоиться о том, насколько широкой является эта константа, поскольку эти функции также принимают в качестве аргумента пункт назначения sort.

...