Вопросы с тегами [nusmv]

0

голосов
0

ответ
6

Просмотры

Ошибка: Невозможно построить FSM BDD с бесконечной точностью переменных

Я только что установил nuXmv и хотел попробовать на пример выращивания счетчика целочисленным из папки примеров. Когда я пытаюсь запустить команду: build_model, я получаю сообщение об ошибке: «файл взросление встречного integer.smv: строке 30: Невозможно построить Знает ли кто, как исправить эту ошибку Спасибо заранее взросления борьбы с целым числом?. SMV файл: МОДУЛЬ главного государственный ВАРА: {s0, s1, s2, s3}; VAR C: целое число; ВАР Пт: реальный; ASSIGN инициализации (состояние): = s0; следующее (состояние): = случай, STATE = s0: S1; состояние = S1: S2; состояние = s2 и с <Пт: с2; состояние = с2 & с> = Пт: s3, состояние = s3: S1; TRUE: состояние; ESAC; INIT (с): = 0; следующая (с ): = (состояние = с2 и в следующем (состояние) = с2) (с + 1) :( 0); INIT (Lim): = 2; следующий (Lim): = (состояние = s3 & следующим (состояние) = ? s1) (Lim + 1) :( Пт); INVARSPEC с <3; INVARSPEC с <4; INVARSPEC с <5; INVARSPEC с <6; INVARSPEC с <20; LTLSPEC GF (состояние = s3);
Alex
1

голосов
1

ответ
60

Просмотры

Как бороться с ошибкой, что Nusmv не может проверить свойства CTL с входными переменными (Ивар)?

МОДУЛЬ Основной ИВАР v1: логическое значение; VAR v2: булево; SPEC ИМЯ p1: = АГ (v1 & v2); файл ltlerror.smv: строка 8: Свойство содержит входные переменные:
Alvin
1

голосов
1

ответ
52

Просмотры

NuSMV: как исключить возможное следующее состояние

Я хочу, чтобы исключить возможный следующий случай в конкретных условиях. Например, у меня есть: маркер: массив 1..2 {0, 1, 2, 3, 4, 5, 6}; Следующий (маркер [1]): = случай х: {1, 2, 3, 4, 5, 6}; TRUE: 0; ESAC; Следующий (маркер [2]): = случай х: {1, 2, 3, 4, 5, 6}; TRUE: 0; ESAC; !! - исключить государственное значение 1, если position1free ... DEFINE position1free: = маркер [1] = 1 & маркер [2] = 1; ... То же самое для всех значений 1..6. В противном случае, я должен сделать много комбинаций, чтобы вернуть только позицию, что свободны. Кто-нибудь идея, если это возможно?
P. Ana
1

голосов
2

ответ
189

Просмотры

NuSMV по крайней мере, 5 шагов по времени, чтобы выиграть

У меня есть программа NuSMV и мне нужно указать в любом CTL или Лт, что программа (которая является игра) не может быть выиграна менее чем за 5 шагов по времени. Или более формально: Есть по крайней мере 5 раз шаги, необходимые, чтобы выиграть игру. У меня нет явного переменного времени, и я не хотел бы сделать один для проверки. Есть ли какой-нибудь способ подсчитать количество переходов уже сделали? Количество посещенных состояний, что-то подобное? На данный момент у меня есть это: SPEC (!? (GameState = WIN) U (как считать шаги по времени))
Sven
1

голосов
2

ответ
644

Просмотры

Движение света в NuSMV

Я пытаюсь создать внедрение системы светофора в NuSMV. Сейчас у меня есть 6 булевы для NS / EW красный, желтый, зеленый. Однако, когда я указываю, что каждый из них всегда верно в будущем состоянии, он возвращается ложь. Если кто-нибудь увидит какие-либо ошибки в моем коде, я был бы признателен за помощь. Благодарю. МОДУЛЬ Главный ВАР nsRed: логическое значение; nsYellow: булево; nsGreen: булево; время: 0..60; ewRed: булево; ewYellow: булево; ewGreen: булево; ASSIGN INIT (nsRed): = TRUE; INIT (nsYellow): = FALSE; INIT (nsGreen): = FALSE; INIT (ewRed): = FALSE; INIT (ewYellow): = FALSE; INIT (ewGreen): = TRUE; INIT (время): = 60; Следующий (nsRed): = случай (nsYellow = TRUE и (ewGreen = TRUE | ewYellow = TRUE) и время = 0): TRUE; (NsRed = TRUE, и время = 0): FALSE; TRUE: nsRed; ESAC; Следующий (nsYellow): = случай (nsGreen = TRUE, & ewRed = TRUE, и время = 0): TRUE; (NsYellow = TRUE, и время = 0): FALSE; TRUE: nsYellow; ESAC; Следующий (nsGreen): = случай (nsRed = TRUE, & ewRed = TRUE, и время = 0): TRUE; (NsGreen = TRUE, и время = 0): FALSE; TRUE: nsGreen; ESAC; Следующий (ewRed): = случай (ewYellow = TRUE и (nsGreen = TRUE | nsYellow = TRUE) и время = 0): TRUE; (EwRed = TRUE, и время = 0): FALSE; TRUE: ewRed; ESAC; Следующий (ewYellow): = случай (ewGreen = TRUE, & nsRed = TRUE, и время = 0): TRUE; (EwYellow = TRUE, и время = 0): FALSE; TRUE: ewYellow; ESAC; Следующий (ewGreen): = случай (ewRed = TRUE, & nsRed = TRUE, и время = 0): TRUE; (EwGreen = TRUE, и время = 0): ЛОЖНЫЙ; TRUE: ewGreen; ESAC; Следующий (время): = случай (время> 0): время - 1; (Время = 0 & nsRed = TRUE): 60; (Время = 0 & nsYellow = TRUE): 60; (Время = 0 & nsGreen = TRUE): 3; (Время = 0 & ewRed = TRUE): 60; (Время = 0 & ewYellow = TRUE): 60; (Время = 0 & ewGreen = TRUE): 3; - (время = 0 & nsRed = TRUE, & ewRed = TRUE): 3 ИСТИНА: время; ESAC; - спецификация SPEC AG (nsRed = TRUE и nsYellow = TRUE) SPEC AG (nsGreen = TRUE и nsRed = TRUE) SPEC AG (nsGreen = TRUE и ewGreen = TRUE) SPEC AG (nsYellow = TRUE и ewYellow = TRUE!!! ) SPEC AG! (nsRed = TRUE &
user3018947
1

голосов
0

ответ
7

Просмотры

Есть ли какие-либо инструменты или коды, чтобы перевести BPEL в NuSMV код?

Есть ли какие-либо инструменты или коды, чтобы перевести BPEL в NuSMV код? Я нашел моделирование бумаги и проверка бизнес-процессов BPEL, но нет никаких инструментов или коды, предусмотренные.
yu chen
1

голосов
1

ответ
102

Просмотры

Построение формальной модели УАПП в NuSMV?

Я изучаю проверки моделей и NuSMV для моего образования. Я могу редактировать и запускать NuSMV код и у меня есть справедливое понимание того, что UART это и делает. Моя задача состоит в том, чтобы формально модели УАПП с NuSMV, но в это время я не знаю, как это сделать. Я понимаю, что UART передает один байт как восемь последовательных битов, но как я могу моделировать это? У меня есть код мьютекса в качестве отправной точки:> NuSMV.exe mutex.smv *** Это NuSMV 2.6.0 (составитель Ср Окт 14 15:37:51 2015) *** Enabled аддоны являются: компас *** для получения дополнительной информации о NuSMV см *** или по электронной почте. *** Пожалуйста, сообщайте об ошибках в *** Copyright (с) 2010-2014, Fondazione Bruno Kessler *** Эта версия NuSMV связана с библиотекой версии Cudd 2.4.1 *** Copyright (с) 1995-2004, регентов из университета Колорадо *** Эта версия NuSMV связана с решателя MINISAT SAT. *** См Http: // MINISAT. се / MiniSat.html *** Copyright (с) 2003-2006, Никлас Еэн, Никлас Sörensson *** Copyright (с) 2007-2010, Никлас Sörensson - спецификация EF (State1 = c1 & State2 = c2) ложно - - как показано в следующей последовательности выполнения трассировки Описание: CTL контрпример Трассировка Тип: контрпример -> Состояние: 1,1 AF State1 = c1) верно - спецификация AG (State2 = t2 -> AF State2 = c2) верно код МОДУЛЬ главная ВДП State1: {n1, t1, с1}; ASSIGN инициализации (State1): = n1; Следующий (State1): = случай (State1 = n1) и (State2 = t2): t1; (State1 = n1) и (State2 = п2): t1; (State1 = n1) и (State2 = с2): t1; (State1 = t1) & (State2 = п2): с1; (State1 = t1) & (State2 = t2) & (поворот = 1): с1; (State1 = с1): n1; TRUE: State1; ESAC; VAR State2: {n2, t2, c2}; ASSIGN инициализации (State2): = n2; Следующий (State2): = случай (State2 = n2) & (State1 = t1): t2; (State2 = n2) & (State1 = n1): t2; (State2 = n2) & (State1 = с1): t2; (State2 = t2) & (State1 = n1): с2; (State2 = t2) & (State1 = t1) & (поворот = 2): с2; (State2 = с2): П2; TRUE: State2; ESAC; ВДП очередь: {1, 2}; ASSIGN инициализации (поворот): = 1; Следующий (поворот): = случай (State1 = n1) и (State2 = t2): 2; (State2 = n2) & (State1 = t1): 1; TRUE: повернуть; ESAC; SPEC EF ((State1 = c1) и (State2 = c2)) SPEC AG ((State1 = t1) -> AF (State1 = c1)) SPEC AG ((State2 = t2) -> AF (State2 = c2)) (State2 = с2): П2; TRUE: State2; ESAC; ВДП очередь: {1, 2}; ASSIGN инициализации (поворот): = 1; Следующий (поворот): = случай (State1 = n1) и (State2 = t2): 2; (State2 = n2) & (State1 = t1): 1; TRUE: повернуть; ESAC; SPEC EF ((State1 = c1) и (State2 = c2)) SPEC AG ((State1 = t1) -> AF (State1 = c1)) SPEC AG ((State2 = t2) -> AF (State2 = c2)) (State2 = с2): П2; TRUE: State2; ESAC; ВДП очередь: {1, 2}; ASSIGN инициализации (поворот): = 1; Следующий (поворот): = случай (State1 = n1) и (State2 = t2): 2; (State2 = n2) & (State1 = t1): 1; TRUE: повернуть; ESAC; SPEC EF ((State1 = c1) и (State2 = c2)) SPEC AG ((State1 = t1) -> AF (State1 = c1)) SPEC AG ((State2 = t2) -> AF (State2 = c2))
Niklas Rosencrantz
1

голосов
1

ответ
397

Просмотры

условия Дело не являются исчерпывающими?

Я пишу два модуля в NuSMV, но я получаю сообщение об ошибке, «условия Дело не являются исчерпывающими» Эта ошибка указывает на последнее утверждение случае я имею в коде. Я не уверен, как это исправить, потому что в тех случаях, которые я в настоящее время есть только случаи, что переменная требуется. Первый модуль «поезд» конкретизируется в два раза, так что два поезда могут быть на одной дорожке. Модуль «контроллер» действует как контроллер, который принимает входные данные из двух поездов и предотвращает их обоих от того, на мосту в то же время. Вот код: МОДУЛЬ главный VAR trainE: Поезд (controller1.signalE); trainW: Поезд (controller1.signalW); controller1: контроллер (trainE.out, trainW.out); INVARSPEC МОДУЛЬ Поезд (сигнал) Режим VAR ((trainE.mode = мост и trainW.mode = мост)!): {Прочь, подождите, мост}; из: {Нет, прибывают, не оставляют}; ASSIGN (режим инициализации): = прочь; INIT (уходит): = нет; --Task А1 следующий (из): = режим случая = расстояние: прибывает; Режим = мост: оставить; ИСТИНА: Нет; ESAC; --Task А2 в следующем (режим): = режим случай = прочь и следующий (уходит) = прибывают: ждать; Режим = моста и следующий (уходит) = оставить: прочь; Режим = ожидание сигнала & = зеленый: мост; TRUE: режим; ESAC; Модуль контроллера (Oute, outW) ВДП signalE: {зеленый, красный}; signalW: {зеленый, красный}; запад: {зеленый, красный}; восток: {зеленый, красный}; nearE: булево; nearW: булево; ASSIGN Init (запад): = красный; INIT (восток): = красный; INIT (nearW): = FALSE; INIT (nearE): = FALSE; --Task A1 следующий (signalW): = запад; --Task А2 следующий (signalE): = восток; --Task А3 следующая (nearE): = случай Oute = Заезд: TRUE; Oute = отпуск: FALSE; ESAC; Следующая (nearW): = случай outW = прибывает: TRUE; outW = отпуск: FALSE; ESAC; Следующий (восток): = случай, следующий (nearE) = FALSE: красный; запад = красный цвет: зеленый; ESAC; Следующий (запад): = случай, следующий (nearW) = FALSE: красный; восток = красный: зеленый; ESAC; --Task А3 следующая (nearE): = случай Oute = Заезд: TRUE; Oute = отпуск: FALSE; ESAC; Следующая (nearW): = случай outW = прибывает: TRUE; outW = отпуск: FALSE; ESAC; Следующий (восток): = случай, следующий (nearE) = FALSE: красный; запад = красный цвет: зеленый; ESAC; Следующий (запад): = случай, следующий (nearW) = FALSE: красный; восток = красный: зеленый; ESAC; --Task А3 следующая (nearE): = случай Oute = Заезд: TRUE; Oute = отпуск: FALSE; ESAC; Следующая (nearW): = случай outW = прибывает: TRUE; outW = отпуск: FALSE; ESAC; Следующий (восток): = случай, следующий (nearE) = FALSE: красный; запад = красный цвет: зеленый; ESAC; Следующий (запад): = случай, следующий (nearW) = FALSE: красный; восток = красный: зеленый; ESAC; outW = отпуск: FALSE; ESAC; Следующий (восток): = случай, следующий (nearE) = FALSE: красный; запад = красный цвет: зеленый; ESAC; Следующий (запад): = случай, следующий (nearW) = FALSE: красный; восток = красный: зеленый; ESAC; outW = отпуск: FALSE; ESAC; Следующий (восток): = случай, следующий (nearE) = FALSE: красный; запад = красный цвет: зеленый; ESAC; Следующий (запад): = случай, следующий (nearW) = FALSE: красный; восток = красный: зеленый; ESAC;
Flower
1

голосов
1

ответ
234

Просмотры

Model checking with NuSMV

Верно ли, что в NuSMV нет никакого значения, как NULL, ноль, None? И что мы не должны сделать модель для процесса, потому что модели должны repesent электронных схем? Мой сценарий является то, что у меня есть один разъем UART, основная память и процесс, в котором последний считывает и записывает в основную память и чтение и запись в УАППЫ. В основной памяти есть данные по имени K, что должно остаться то же самое. Мы хотим доказать, что если процесс не пишет K», то значение ofK` равно его следующее значение. Интересно, если моя модель мелкозернистая достаточно, или если оно слишком абстрактно. Кроме того, если я использовал правильные типы данных. МОДУЛЬ УАПП (Proc, выход, вход) ВДП состояние: {простаивает, получать, передавать}; Rx: слово без знака [8]; --vector байтов Тх: слово без знака [8]; ASSIGN следующий (Rx): = случай Proc = следующим образом: ввод данных; ИСТИНА: (Rx); ESAC; Следующий (Тх): = случай ргос = запись: выход; ИСТИНА: (Тх); ESAC; Следующий (состояние): = случай ргос = запись: получение; Proc = следующим образом: передачи; TRUE: в режиме ожидания; ESAC; TRANS прок = чтение -> следующая (Rx) = Rx!; МОДУЛЬ МЕМ (Proc, вход, выход) ВДП К: без знака слова [8]; Данные: массив 0 .. 7 из массива 0 .. 7 без знака слова [8]; ASSIGN инициализации (данные [1] [0]): = K; Следующий (К): = = случай выхода данных [1] [0]: выход; TRUE: K; ESAC; МОДУЛЬ Основной ВАР Proc: {простаивает, чтение, запись}; ввод: без знака слова [8]; Выход: без знака слова [8]; память: МЕМ (Proc, вход, выход); UART0: УАППЫ (Proc, вход, выход); ASSIGN инициализации (вход): = memory.data [0] [0]; инициализации (выход): = memory.data [0] [0]; LTLSPEC С (выход = memory.data [1] [0]!) -> G (память.
1

голосов
1

ответ
95

Просмотры

Есть варианты, которые подстегнули бы объем памяти, NuSMV можно использовать во время спецификации запуска?

Во время спецификации работает в nusmv, это занимает несколько часов, и в конечном итоге дает результат «убил 9». Как ускорить выполнение? Есть варианты, которые подстегнули бы объем памяти, NuSMV можно использовать во время спецификации запуска?
Ainur Issina
1

голосов
1

ответ
153

Просмотры

NuSMV Simulation Using Random Traces

Я пытаюсь запустить «случайное» или недетерминированное моделирование модели NuSMV я создал. Однако между последовательными запусками след, который производится точно так же. Вот модель: МОДУЛЬ Основной ВДП х: 0..4; VAR CLK: 0..10; DEFINE next_x: = случай, х = 0: {0,1}; х = 1: {1,2}; х = 2: {1,0}; TRUE: {0}; ESAC; DEFINE next_clk: = случай (CLK <10): (CLK + 1); TRUE: CLK; ESAC; INIT (х = 0); INIT (CLK = 0); ТРАНС (следующая (х) в next_x); ТРАНС следующий (CLK) = next_clk; CTLSPEC АГ (CLK <10); Я бегу это с помощью следующих команд в интерактивной оболочке: перейти pick_state -r симулировать -k -r 30 show_traces 1 бросить курить Возможно, у меня есть ошибка в моей модели? Или я не бег правильных команд в оболочке. Заранее спасибо!
Simon Diemert
1

голосов
1

ответ
204

Просмотры

NuSMV - И модель

Я пытаюсь написать следующую модель в NuSMV Другими словами, г становится плохо только тогда, когда х и у находятся в состоянии плохого тоже. Это код, который я написал МОДУЛЬ состояние одноточечно ВАР: {хороший, плохой}; INIT состояние = хороший TRANS (состояние = хорошо) -> следующее (состояние) = плохой ТРАНС (состояние = плохо) -> следующий (состояние) = плохо МОДУЛЬ эффект (конд) состояние VAR: {хороший, плохой}; ASSIGN инициализации (состояние): = хорошо; Следующий (состояние): = случай (состояние = плохо): плохо; (Состояние = хорошо и конд): плохо; (! Конд): хорошо; TRUE: состояние; ESAC; МОДУЛЬ главный ВДП х: синглтон; ВДП у: синглтон; Вар г: эффект ((x.state = плохо) & (y.state = плохо)); Но я получил только эти достижимые состояния NuSMV> print_reachable_states -v ###################################### ################################ диаметр системы: 3 достижимые состояния: 3 (2 ^ 1,58496) из 8 (2 ^ 3) ------- Государство 1 ------ x.state = хороший y.state = хороший z.state = хорошо - ----- государство 2 ------ x.state = плохо y.state = плохо z.state = плохо ------- государство 3 ------ x.state = плохо у. состояние = плохо z.state = хорошо ------------------------- ################# ################################################## ### Как я могу изменить свой код, чтобы получить также x.state = хорошо y.state = плохо z.state = хороший x.state = плохой y.state = хороший z.state = хорошее в достижимых состояний? Кроме того, я не уверен, если я добавить или нет, что красная стрелка, в модели изображения: если х и у находятся в состоянии плохо, я хочу, чтобы наверняка рано или поздно также г становится плохо. Большое спасибо за помощь! состояние = хороший ------- состояние 2 ------ x.state = плохо y.state = плохо z.state = плохо ------- Государственные 3 ------ х. состояние = плохо y.state = плохо z.state = хорошо ------------------------- ############ ################################################## ######## Как я могу изменить свой код, чтобы получить также x.state = хорошо y.state = плохо z.state = хорошо x.state = плохо y.state = хорошо z.state = хорошо в достижим состояния? Кроме того, я не уверен, если я добавить или нет, что красная стрелка, в модели изображения: если х и у находятся в состоянии плохо, я хочу, чтобы наверняка рано или поздно также г становится плохо. Большое спасибо за помощь! состояние = хороший ------- состояние 2 ------ x.state = плохо y.state = плохо z.state = плохо ------- Государственные 3 ------ х. состояние = плохо y.state = плохо z.state = хорошо ------------------------- ############ ################################################## ######## Как я могу изменить свой код, чтобы получить также x.state = хорошо y.state = плохо z.state = хорошо x.state = плохо y.state = хорошо z.state = хорошо в достижим состояния? Кроме того, я не уверен, если я добавить или нет, что красная стрелка, в модели изображения: если х и у находятся в состоянии плохо, я хочу, чтобы наверняка рано или поздно также г становится плохо. Большое спасибо за помощь! состояние = хороший ------------------------- ###################### ################################################ Как может Я изменить мой код, чтобы получить также x.state = хорошо y.state = плохо z.state = хороший x.state = плохой y.state = хороший z.state = хорошее в достижимых состояний? Кроме того, я не уверен, если я добавить или нет, что красная стрелка, в модели изображения: если х и у находятся в состоянии плохо, я хочу, чтобы наверняка рано или поздно также г становится плохо. Большое спасибо за помощь! состояние = хороший ------------------------- ###################### ################################################ Как может Я изменить мой код, чтобы получить также x.state = хорошо y.state = плохо z.state = хороший x.state = плохой y.state = хороший z.state = хорошее в достижимых состояний? Кроме того, я не уверен, если я добавить или нет, что красная стрелка, в модели изображения: если х и у находятся в состоянии плохо, я хочу, чтобы наверняка рано или поздно также г становится плохо. Большое спасибо за помощь!
panda
1

голосов
1

ответ
181

Просмотры

Как использовать NuSMV свидетель атаки посредника (протокол Needham-Schroeder)?

У меня есть следующий упрощенный открытого ключа протокол Needham-Schroeder: A → B: {Na, А} Кб В → А: {Na, Nb} Ка A → B: {Nb} Kb, где Na, Nb, являются одноразовые из А , в и Ке, Kb являются открытыми ключами A, B соответственно. Сообщения, зашифрованные с помощью открытого ключа одной из сторон могут быть расшифрованы только партия. На стадии (1), A инициирует протокол, послав одноразовый номер и его личность (зашифрованную открытым ключом Б) к B. Используя свой секретный ключ, B расшифровывает сообщение и получает идентичность в. На стадии (2), B посылает и его одноразовые номера (шифруются с открытым ключом в) обратно А. Используя свой секретный ключ, A расшифровывает сообщение и проверяет его одноразовое значение возвращается. На этапе (3), возвращает случайное слово Б (зашифрованное с помощью открытого ключа Б) обратно в B. Здесь главная-в-средней атака на выше упрощенном протокол: (1A) А → Е: {Na, А} Ke (А хочет поговорить с Е) (1В) E → B: {Na, А} Кб (Е хочет убедить B, что это) (2В) В → Е: {Na, Nb} Ка (Б возвращает одноразовые номера, зашифрованные Ka) (2A) E → A: {Na, Nb} Ка (Е передает зашифрованное сообщение к А) (3A) А → Е: {Nb} Ке (А подтверждает, что разговаривает с Е) (3B) E → B: {Nb} Кб (Е возвращает случайное слово B обратно) надеюсь, что, когда нападение было найдено, исправление было предложено, чтобы предотвратить нападение (в посылает свою идентичность вместе с временными значениями обратно в A): A → B: {Na, А} Кб в → А: {Na, Nb, B}, Ка (в отправляет его идентичность наряду с временными значениями обратно в A) A → B: {Nb} К.Б. вопросы: Как можно написать формула LTL и модуль накануне NuSMV для моделирования атакующего и наблюдать за человек-в-середине атаки? Как предотвращает атаку? Процесс Алисе (A): МОДУЛЬ алиса (in0, IN1, INKEY, OUT0, OUT1, outkey) ВАР-й: {запрос, подождите, атака, отделка}; Nonce: {НЕТ, Na, Nb, Ne}; ASSIGN инициализации (St): = запрос; Следующий (й): = случай St = запрос: ждать; й = ожидание & in0 = Na & INKEY = Ка: атака; й = атака: отделка; ИСТИНА: ул; ESAC; INIT (Nonce): = НЕТ; Следующий (Nonce): = случай й = ожидание & in0 = Na & INKEY = Ка: IN1; TRUE: одноразовое значение; ESAC; INIT (OUT0): = НЕТ; Следующий (OUT0): = случай St = запрос: Na; й = атака: одноразовое значение; TRUE: OUT0; ESAC; INIT (OUT1): = НИКТО; Следующий (OUT1): = случай St = запрос: Ia; й = атака: НИКТО; TRUE: out1; ESAC; INIT (outkey): = NOKEY; Следующий (outkey): = случай St = запрос: {} Кб; ПРАВДА : outkey; ESAC; СПРАВЕДЛИВОСТЬ работает; Процесс боб (В): МОДУЛЬ боб (in0, IN1, INKEY, OUT0, OUT1, outkey) ВАР-й: {ждать, получать подтверждения, сделано}; Nonce: {НЕТ, Na, Nb, Ne}; другие: {НИКТО, Ia, Ib, т.е.}; ASSIGN инициализации (е): = ожидание; Следующий (й): = случай й = ожидание & in0 = Na & IN1 = Ia & INKEY = Кб: получение; й = ожидание & in0 = Ne & IN1 = Т.е & INKEY = Кб: получение; й = получим: подтвердить; й = & подтверждают in0 = Nb & IN1 = НИКТО & INKEY = Кб: сделано; ИСТИНА: ул; ESAC; INIT (Nonce): = НЕТ; Следующий (Nonce): = случай й = ожидание & in0 = Na & IN1 = Ia & INKEY = Кб: in0; й = ожидание & in0 = Ne & IN1 = Т.е & INKEY = Кб: in0; TRUE: одноразовое значение; ESAC; INIT (другое): = НИКТО; Следующий (другое): = случай й = ожидание & in0 = Na & IN1 = Ia & INKEY = Кб: IN1; й = ожидание & in0 = Ne & IN1 = Т.е & INKEY = Кб: IN1; TRUE: другой; ESAC; INIT (OUT0): = НЕТ; Следующий (OUT0): = случай St = подтвердить: одноразовый номер; TRUE: OUT0; ESAC; INIT (OUT1): = НЕТ; Следующий (OUT1): = случай St = подтверждают: Nb; TRUE: out1; ESAC; INIT (outkey): = NOKEY; Следующий (outkey): = случай St = & подтверждают другие = Ia: Ka; й = & подтверждение другой = Т.е.: Ke; TRUE: outkey; ESAC; СПРАВЕДЛИВОСТЬ работает; Процесс Основной: МОДУЛЬ Основной VAR a_in0: {НЕТ, Na, Nb, Ne}; a_in1: {НЕТ, Na, Nb, Ne}; a_out0: {НЕТ, Na, Nb, Ne}; a_out1: {НИКТО, Ia, Ib, т.е.}; a_inkey: {NOKEY, Ka, Kb, Ke}; a_outkey: {NOKEY, Ka, Kb, Ke}; а: процесс алиса (a_in0, a_in1, a_inkey, a_out0, a_out1, a_outkey); б: процесс боб (a_out0, a_out1, a_outkey, a_in0, a_in1, a_inkey); СПРАВЕДЛИВОСТЬ работает; LTLSPEC F (a.st = отделка и b.st = сделано) Большое спасибо!
walkcc
1

голосов
2

ответ
104

Просмотры

как найти все возможные примеры счетчика Nusmv

У меня есть модель в NuSMV и после уточнения проверки Ltl NuSMV дать мне контрпример возможно выяснить все пути, которые содержат контрпример не один из них?
user298582
1

голосов
1

ответ
1k

Просмотры

Как создать простую модель Крипке в NuSMV?

Я в настоящее время делают некоторые теоретические исследования в LTL (Linear времени Temporal Logic) и CTL (Исчисление Tree Logic). Я новичок в NuSMV и мне трудно создать простую структуру Крипке. Моя структура М = (S, R, L), где S = {s0, s1, s2} есть множество возможных состояний, R представляет собой переходное отношение таким образом, что: s0 -> s1, s0 -> s2, s1 -> s0, S1 -> s2 и s2 -> s2 и L является функцией маркировки для каждого состояния определяется следующим образом: L (s0) = {р, д}, L (S1) = {Q, R}, и L ( с2) = {г}. Я использую нотации описания в Logic в Computer Science учебнике Хут и Райан. Я попробовал два следующие коды: Первый код: МОДУЛЬ Главный ВАР р: логическое значение; д: булево; г: логическое значение; состояние: {s0, s1, s2}; ASSIGN инициализации (состояние): = s0; Следующий (состояние): = случай State = s0: {s1, s2}; состояние = S1: {s2}; состояние = с2: {s2}; ESAC; INIT (р): = TRUE; INIT (д): = TRUE; INIT (г): = FALSE; Следующий (р): = случай состояние = s1 | состояние = с2: FALSE; ESAC; Следующий (д): = случай состояния = S1: значение TRUE; состояние = с2: FALSE; ESAC; Следующий (г): = случай состояния = S1: FALSE; состояние = с2: TRUE; ESAC; SPEC р & д Второй код: МОДУЛЬ Главный ВАР р: логическое значение; д: булево; г: логическое значение; состояние: {s0, s1, s2}; ASSIGN инициализации (состояние): = s0; Следующий (состояние): = случай State = s0: {s1, s2}; состояние = S1: {s2}; состояние = с2: {s2}; ESAC; INIT (р): = TRUE; INIT (д): = TRUE; INIT (г): = FALSE; Следующий (р): = р; Следующий (д): = случай состояния = s0 & следующая (состояние) = S1: д; состояние = s0 и следующий (состояние) = s2: д; состояние = s1 & следующая (состояние) = s0: д; состояние = s1 и следующий (состояние) = s2: д; ESAC; Следующий (г): = случай состояние = s0 & следующая (состояние) = S1: г; состояние = s0 & следующая (состояние) = с2: г; состояние = s1 & следующий (состояние) = s0: г; состояние = s1 & следующая (состояние) = с2: г; ESAC; LTLSPEC р и д Что-то было не так, и я получил сообщение: «условия случае не являются исчерпывающими». Что это значит? Как исправить проблему? Следующий (д): = случай состояния = s0 & следующая (состояние) = S1: д; состояние = s0 и следующий (состояние) = s2: д; состояние = s1 & следующая (состояние) = s0: д; состояние = s1 и следующий (состояние) = s2: д; ESAC; Следующий (г): = случай состояние = s0 & следующая (состояние) = S1: г; состояние = s0 & следующая (состояние) = с2: г; состояние = s1 & следующий (состояние) = s0: г; состояние = s1 & следующая (состояние) = с2: г; ESAC; LTLSPEC р и д Что-то было не так, и я получил сообщение: «условия случае не являются исчерпывающими». Что это значит? Как исправить проблему? Следующий (д): = случай состояния = s0 & следующая (состояние) = S1: д; состояние = s0 и следующий (состояние) = s2: д; состояние = s1 & следующая (состояние) = s0: д; состояние = s1 и следующий (состояние) = s2: д; ESAC; Следующий (г): = случай состояние = s0 & следующая (состояние) = S1: г; состояние = s0 & следующая (состояние) = с2: г; состояние = s1 & следующий (состояние) = s0: г; состояние = s1 & следующая (состояние) = с2: г; ESAC; LTLSPEC р и д Что-то было не так, и я получил сообщение: «условия случае не являются исчерпывающими». Что это значит? Как исправить проблему? состояние = s1 и следующий (состояние) = s2: д; ESAC; Следующий (г): = случай состояние = s0 & следующая (состояние) = S1: г; состояние = s0 & следующая (состояние) = с2: г; состояние = s1 & следующий (состояние) = s0: г; состояние = s1 & следующая (состояние) = с2: г; ESAC; LTLSPEC р и д Что-то было не так, и я получил сообщение: «условия случае не являются исчерпывающими». Что это значит? Как исправить проблему? состояние = s1 и следующий (состояние) = s2: д; ESAC; Следующий (г): = случай состояние = s0 & следующая (состояние) = S1: г; состояние = s0 & следующая (состояние) = с2: г; состояние = s1 & следующий (состояние) = s0: г; состояние = s1 & следующая (состояние) = с2: г; ESAC; LTLSPEC р и д Что-то было не так, и я получил сообщение: «условия случае не являются исчерпывающими». Что это значит? Как исправить проблему? д Что-то было не так, и я получил сообщение: «условия случае не являются исчерпывающими». Что это значит? Как исправить проблему? д Что-то было не так, и я получил сообщение: «условия случае не являются исчерпывающими». Что это значит? Как исправить проблему?
Iqazra
2

голосов
1

ответ
135

Просмотры

CTL fomula until contains implication

когда я использую инструменты NuSMV, чтобы проверить, если мой CTL правильно, я сталкиваюсь с проблемой, которая заставит меня так запутано. Моя модель и вот код NuSMV: МОДУЛЬ главный государственный ВАР: {ROOT, А1, В1, С1, D1, F1, M1}; ASSIGN инициализации (состояние): = ROOT; Следующий (состояние): = случай состояния = ROOT: A1; состояние = А1: {В1, С1}; состояние = B1: D1; состояние = D1: F1; TRUE: состояние; ESAC; CTLSPEC АГ (состояние = А1 -> АХ (А [состояние = В1 V (состояние = D1 -> EX состояние = F1)])); CTLSPEC АГ (состояние = А1 -> АХ (А [состояние = В1 V (состояние = F1 -> EX состояние = С1)])); CTLSPEC АГ (состояние = А1 -> АХ (А [состояние = М1 U (состояние = F1 -> EX состояние = С1)])); Моя ЦТЛ формула выглядит следующим образом: "AG (А1 -> АХ (А [В1 U (D1 -> ЕХ (F1))]))" «АГ (А1 -> AX (А [В1 U (F1 -> EX ( С1))]))»«АГ (А1 -> АХ (А [M1 U (F1 ->
victoroverflow
2

голосов
2

ответ
154

Просмотры

Модель Проверка для чисел Lite игры

Я иду через методу проверки модели, и я хочу использовать методы для того, чтобы решить игру под названием Numbers Паранойя облегченную как проблема планирования. Учитывая MxN (MxN> 8), матрица, в которой каждая пластина либо проблема изображение - пусто - идентифицируется уникальным номером от 1 до 8 целью является найти путь, который начинается с пластины, помеченный 1, охватывает все пластин в матрице и заканчивается на пластине, помеченный 8. Все непустые пластины правильный путь должны быть отсортированы в порядке возрастания от 1 до 8. Я путать с моделированием игры в переходном состоянии и работает NuSMV результатов. Вот мое решение - · ¹º§: 01 МОДУЛЬ главный VAR прн: {101.102.103.104.105.106.107.201.202.203.204.205.206.207.301.302.303.304.305.306.307.401.402.403.404.405.406.407.501.502.503.504.505.506.507}; ASSIGN инициализации (Rec): = 101; Следующий (РЭЦ): = Случай гес = 101: {102, 201}; гес = 102: {101202103}; гес = 103: {102203104}; гес = 104: {103, 204105}; гес = 105: {104205106}; гес = 106: {105206107}; гес = 107: {106207}; гес = 201: {101, 202, 301}; гес = 202: {201102203302}; гес = 203: {103, 202, 204, 303}; гес = 204: {203, 104, 304205}; гес = 205: {105305206204}; гес = 206: {106207205306}; гес = 207: {107206307}; гес = 301: {201, 302401}; гес = 302: {301, 303, 202402}; гес = 303: {302, 304, 203403}; гес = 304: {303, 204305404}; --rec = 305: {305}; гес = 306: {305206307406}; гес = 307: {306207407}; гес = 401: {301402501}; гес = 402: {401302403502}; гес = 403: {402303404503}; гес = 404: {403304405504}; гес = 405: {404305406505}; гес = 406: {405306407506}; гес = 407: {406307507}; гес = 501: {401502}; гес = 502: {501, 402503}; гес = 503: {502403504}; гес = 504: {503404505}; гес = 505: {504405506}; гес = 506: {505406507}; гес = 507: {506407}; TRUE: прн; ESAC; ! LTLSPEC (G (ЗАП = 101 -> Х ((ЗАП = 101) U гес = 305)) и G (ЗАП = 102 -> Х ((ЗАП = 102) U гес = 305)) и G (ЗАП = 103 -> Х (! (ЗАП = 103) U геса = 305)) и G (ЗАП = 104 -> Х ((ЗАП = 104) U геса = 305!)) & G (ЗАП = 105 -> Х ( ! (ЗАП = 105) U гес = 305)) и G (ЗАП = 106 -> Х ((ЗАП = 106) U гес = 305)) и G (ЗАП = 107 -> Х ((ЗАП = 107) У геса = 305)) и G (ЗАП = 201 -> Х ((ЗАП = 201!) У геса = 305)) и G (ЗАП = 202 -> Х ((ЗАП = 202) U геса = 305)) & G (ЗАП = 203 -> Х ((ЗАП = 203) U геса = 305)!) & G (ЗАП = 204 -> Х ((ЗАП = 204) U геса = 305)) и G (ЗАП = 205 -> Х (! (ЗАП = 205) U геса = 305)) и G (ЗАП = 206 -> Х ((ЗАП = 206) У геса = 305)) и G (ЗАП = 207 -> Х (( гес = 207) U гес = 305)) и G (ЗАП = 301 -> Х (!
2

голосов
1

ответ
198

Просмотры

Verify Dekker's mutual exclusion algorithm by NuSMV

I use NuSMV to verify the Dekker algorithm, and my code is as below: MODULE main VAR b1 : {true, false}; b2 : {true, false}; k : {1, 2}; pr1 : process proc(k, b1, b2, 1); pr2 : process proc(k, b2, b1, 2); ASSIGN init(b1) := false; init(b2) := false; init(k) := {1, 2}; MODULE proc(k, bi, bj, i) VAR state : {noncritical, test_bj, ftest_k, stest_k, critical}; DEFINE j := case i = 1 : 2; i = 2 : 1; esac; ASSIGN init(state) := noncritical; next(state) := case state = noncritical : {noncritical, test_bj}; state = test_bj & (bj = false) : critical; state = test_bj & (bj = true) : ftest_k; state = ftest_k & (k = j) : stest_k; state = ftest_k & (k != j) : test_bj; state = stest_k & (k = j) : stest_k; state = stest_k & (k !=j) : test_bj; state = critical : {critical, noncritical}; esac; next(bi) := case state = noncritical & next(state) = test_bj : true; state = ftest_k & (k = j) : false; state = stest_k & (k != j) : true; state = critical & next(state) = noncritical : false; 1 : bi; esac; next(k) := case state = critical & next(state) = noncritical : j; 1 : k; esac; FAIRNESS running FAIRNESS !(state = critical) FAIRNESS !(state = noncritical) but the feedback is like the picture, it shows illegal left operand type of ":". it should be boolean. I don't know why. Please help me... what's wrong with the code NuSMV feedback
Gengbin Zhang
2

голосов
1

ответ
322

Просмотры

строительство действует CTL или выражение LTL (в NuSMV)

Я пытаюсь создать действительное выражение CTL или LTL для проверки в NuSMV модели. У меня есть переменная в игре, с актерами, бегущих вокруг, пытаясь поймать друг друга. Переменная, State_Of_Game: {Win, Lose, Playing}, и я хочу выразить, что из каждого исходного состояния игры может быть как выиграл или проиграл. Итак, как бы я реализовать это в CTL или литов? Я думал, что-то вроде AG (S_O_G = Win | S_O_G = Lose), но не знаю, как реализовать, что видно из каждого исходного состояния.
Sven
2

голосов
1

ответ
256

Просмотры

Использование NuSMV в качестве модели проверки в Java

Я пытаюсь использовать NuSMV в качестве модели проверки в Java. Тем не менее, я не смог найти соответствующую библиотеку JAR онлайн. Только один я нашел предусмотрено здесь, для которых ссылка загрузки не работает больше. По-видимому, библиотека существует, но ссылка не работает доступ. Кто-нибудь знает, как я могу получить доступ к библиотеке NuSMV Java API или знает любой альтернативный путь?
Fred
3

голосов
0

ответ
33

Просмотры

Создавать различные возможные контрпримеры в NuSMV

Я хотел бы знать, если есть способ, чтобы генерировать различные возможные контрпримеры для данной LTL формулы NuSMV. Если необходимо произвести контрпример для формулы LTL, он создает одно для нас. Но один порожденный NuSMV не может быть самым захватывающим и проницательный, потому что могут быть и другие контрпримеры к той же формуле LTL. Можете ли вы предложить некоторые общие способы, чтобы спросить NuSMV производить некоторые различные контрпример, чем тот, что производится? Одним из способов было бы модифицировать формулу LTL себя так, что контрпример производства NuSMV в одном выстрел интересен для нас. Но я считаю, что это слишком много такелажа системы, чтобы получить результат, который вы хотите. Кроме того, вы должны знать заранее интересный результат. Но если я уже знаю, интересный контрпример, почему я прошу NuSMV подтвердить это мне? А почему тогда пройти через хлопоты проектирования выражения LTL, который даст желаемые контрпример? Я хочу, чтобы генерировать NuSMV другие интересные контрпримеры, которые я не подумал, тем самым добавив значение. И если это не представляется возможным в NuSMV вы можете предложить любой другой модели LTL проверки, где это возможно?
user_1_1_1
2

голосов
1

ответ
142

Просмотры

NuSMV передает неправильную спецификацию

Я новичок в NuSMV и CTL и пытаюсь простые примеры. У меня есть 3 состояния A, B, и C, и есть переход от A-> BI моделируется его в NuSMV и хочет, чтобы проверить, есть ли путь выполнения от B к A. Eventhough Я не определил такой переход, Спецификация дает мне контрпример. Модуль состояния главной ВАР: {а, Ь}; ASSIGN инициализации (состояние): = а; Следующий (состояние): = Ь; ! SPEC EF (состояние = а -> состояние = с)! SPEC EF (состояние = Ь -> состояние = а) Может ли кто-нибудь сказать, что случилось в этом? как я пишу спецификации для «является достижимой из B?» - это должно вернуться ложным, поскольку нет никакого перехода определяется
karthi
2

голосов
1

ответ
78

Просмотры

Причина разницы в количестве достижимых состояний

Я верифицировать 8-битный сумматор с этим кодом. Когда я печатаю число достижимых состояний 1, если основной модуль пуст и 2 ^ 32, если весь основной модуль включен. То, что делает эту разницу в отчётном числе достижимых состояний? Для 4-битового сумматора зарегистрированное число достижимых состояний было 2 ^ 16. Представляется логичным, что входные состояния 2 ^ п, если п число битов. Где все остальные государства пришли? Я заметил это, когда я добавляю линии А: сумматор (in1, in2); что государства увеличиваются, но это было только экспериментально подтверждено, что это то, что increasese числа состояний, а не модуль сумматора сам. Зачем? МОДУЛЬ бит сумматор (IN1, IN2, CIN) сумма ВАР: логическое значение; соиЬ: булево; ASSIGN следующий (сумма): = (IN1 XOR in2) XOR CIN; Следующий (соиЬ): = (in1 & in2) | ((In1 | in2) и CIN); МОДУЛЬ сумматор (IN1, IN2) ВДП бит0: битовый сумматор (IN1 [0], дюйм2 [0], значение FALSE); Бит 1: бит сумматор (IN1 [1], дюйм2 [1], bit0.cout); бит 2: бит сумматор (IN1 [2], дюйм2 [2], bit1.cout); Бит 3: битовый сумматор (IN1 [3], дюйм2 [3], bit2.cout); Бит 4: бит сумматор (IN1 [4], дюйм2 [4], bit3.cout); бит5: бит сумматор (IN1 [5], дюйм2 [5], bit4.cout); Бит 6: бит сумматор (IN1 [6], дюйм2 [6], bit5.cout); бит 7: битовый сумматор (IN1 [7], дюйм2 [7], bit6.cout); DEFINE sum0: = bit0.sum; sum1: = bit1.sum; sum2: = bit2.sum; sum3: = bit3.sum; sum4: = bit4.sum; sum5: = bit5.sum; sum6: = bit6.sum; sum7: = bit7.sum; Переполнение: = bit7.cout; МОДУЛЬ Основной ВАР IN1: массив 0 .. 7 логическое значение; IN2: массив 0 .. 7 логическое значение; а: Сумматор (IN1, IN2); ASSIGN следующий (IN1 [0]): = IN1 [0]; Следующий (IN1 [1]): = IN1 [1]; Следующий (IN1 [2]): = IN1 [2]; Следующий (IN1 [3]): = IN1 [3]; Следующий (IN1 [4]): = IN1 [4]; Следующий (IN1 [5]): = IN1 [5]; Следующий (IN1 [6]): = IN1 [6]; Следующий (IN1 [7]): = IN1 [7]; Следующий (дюйм2 [0]): = дюйм2 [0]; Следующий (дюйм2 [1]): = дюйм2 [1]; Следующий (дюйм2 [2]): = дюйм2 [2]; Следующий (дюйм2 [3]): = дюйм2 [3]; Следующий (дюйм2 [4]): = дюйм2 [4]; Следующий (дюйм2 [5]): = дюйм2 [5]; Следующий (дюйм2 [6]): = дюйм2 [6]; Следующий (дюйм2 [7]): = дюйм2 [7]; DEFINE ОР1: = toint (IN1 [0]) + 2 * toint (IN1 [1]) + 4 * toint (IN1 [2]) + 8 * toint (IN1 [3]) + 16 * toint (IN1 [4] ) + 32 * toint (IN1 [5]) + 64 * toint (IN1 [6]) + 128 * toint (IN1 [7]); OP2: = toint (дюйм2 [0]) + 2 * toint (дюйм2 [1]) + 4 * toint (дюйм2 [2]) + 8 * toint (дюйм2 [3]) + 16 * toint (дюйм2 [4]) + 32 * toint (дюйм2 [5]) + 64 * toint (дюйм2 [6]) + 128 * toint (дюйм2 [7]); Сумма: = toint (a.sum0) + 2 * toint (a.sum1) + 4 * toint (a.sum2) + 8 * toint (a.sum3) + 16 * toint (a.sum4) + 32 * toint ( а. sum5) + 64 * toint (a.sum6) + 128 * toint (a.sum7) + 256 * toint (a.overflow); LTLSPEC Р + OP1 OP2 = сумма
2

голосов
1

ответ
130

Просмотры

удовлетворяющая формула LTL в модели

Является ли AG (~ д ∨ Fp) LTL формула удовлетворяют в модели ниже? Почему или почему нет? модель?
any
2

голосов
1

ответ
182

Просмотры

Ошибка с NuSMV

МОДУЛЬ Основной ВДП х: 0 .. 2; ASSIGN инициализации (X): = 2; Следующий (х): = случай х = 2: х = 10; ESAC; SPEC AG х = 2 -> AG X х = 20 на лексемы "X": ошибка синтаксиса - Почему ошибка синтаксиса? Я пытаюсь использовать ключевое слово X, но не удалось.
2

голосов
1

ответ
157

Просмотры

Проверьте спецификацию CTL в SMV

Когда я пытаюсь проверить «EG (! S11included &! S10included)» в SMV, сообщается ложная и дает контрпример следующим образом, который я думаю, наоборот, поддерживают эту CTL спецификацию. Есть ли что-то не так с моей CTL спецификации? - спецификация EG (! S11included & s10included) ложна - как показано в следующей последовательности выполнения трассировки Описание: CTL контрпример Трассировка Тип: контрпример -> State: 9.1
firefighter
3

голосов
2

ответ
399

Просмотры

Как проверить LTL выполнимость с помощью NuSMV?

Я пытаюсь использовать NuSMV как выполнимость проверку для LTL формул, то есть я хочу знать, если существует модель для данной формулы. Я знаю, что NuSMV может быть использован для этой цели, а также, и потому, что это теоретически возможно, и потому, что я вижу, что цитируется во многих работах, которые имеют дело с выполнимостью (один из них утверждают также, что NuSMV является одним из самых быстрых выполнимости шашек, выполненных там). Я вижу, что с NuSMV поставляется инструмент под названием ltl2smv, что, по-видимому переводит формулу LTL в модуль SMV, но тогда я не знаю, как использовать выход. Давать его непосредственно NuSMV возвращает сообщение об ошибке «основные» быть неопределенными, так что я предполагаю, что я должен определить основной модуль и использовать другие в некотором роде. Так как я' никогда раньше не использовал NuSMV в качестве модели проверки я не имею ни малейшего представления о том, как его работа языка и руководство пользователя огромно, учитывая, что мне нужно только этот конкретный случай использования, который, кстати, нигде не упоминается в указанном руководстве. Так как я могу использовать NuSMV, чтобы проверить выполнимость формулы LTL? Есть ли место, где документально это случай использования?
gigabytes
2

голосов
0

ответ
71

Просмотры

Здание NuSMV 2,6 из источника, сделать утилиту на убунту

Я пытаюсь построить NuSMV на Ubuntu 17.04, с помощью утилиты CMake. Используется Cmake инструмент для создания сделать файл, но когда я пытаюсь использовать утилиту сделать это дает ошибку Ошибка 1 CMakeFiles / Makefile2: 824: рецепт для цели «строить-Cudd / Util / CMakeFiles / CUDD_UTIL_LIB.dir / все» неудачные сделать [1 ]: *** [наращивание Cudd / UTIL / CMakeFiles / CUDD_UTIL_LIB.dir / все] Ошибка 2 Makefile: 162: рецепт цели 'все' не удалось Произведено: *** [все] Ошибка 2 Может кто-нибудь пожалуйста, помогите. Как решить эту проблему
Sharjeel Ahmed
2

голосов
1

ответ
41

Просмотры

xSAP ошибка прохождения модели SMV

Я пытался пройти xSAP (версия 1.2.0) модели SMV, но я получил эту ошибку панда @ jakulМодель прекрасно работает с NuSMV (версия 2.6.0). Я не понимаю, если я должен перейти к xSAP файл XML (и если да, то как я перевести SMV в файл XML?) Или, если есть какая-то другая ошибка. Большое спасибо за помощь!
panda
2

голосов
0

ответ
56

Просмотры

Исследование государственного пространства в NuSMV Источник

Я работаю над проектом программы коррекции / синтеза. Моя задача состоит в том, чтобы получить трассировку ошибки (контр-пример), найдите его в полном пространстве состояний, ремонт и модели в этом месте. Я хочу, чтобы это реализовать в качестве расширения NuSMV. Я отладка NuSMV, чтобы понять и изучить его исходный код. До сих пор я нашел свой путь к созданию BDD ФШМ (COMPILE.c линии 520). Я пытаюсь найти способ, чтобы пересечь BDD, чтобы получить программный доступ к пространству состояний, и, таким образом, выполнять свою корректирующую работу на модель. Я до сих пор не в состоянии понять, рекурсивные функции геологоразведочной NuSMV использует для проверки свойств через ФШЙ BDD. Я хотел бы знать, как я могу пересечь структуру BDD, так что я могу представить себе его с помощью инструментов, таких как точки. Я также хотел бы знать, если такая или smilar Визуализация уже сделана (я искал, но придумать пустыми). Во-вторых, я хотел бы проверить направление я принял ли право один, или, если есть лучший способ, чтобы получить полное пространство состояний данной модели, а также изучить его, особенно в отношении контрпример полученного через NuSMV.
Brishna Batool
3

голосов
0

ответ
114

Просмотры

Внутреннее представление перечислимых типов в NuSMV / NuXMV

почему существует значительная выпадающая производительность при представляющем 16-разрядном целом числе в качестве переменной Intervall (-32768..32767) по сравнению с фиксированной длиной битовых массивов? Проверка предварительно обработанная модель NuSMV / NuXMV можно наблюдать, что типы интервалов преобразуются в перечисления. Статистику BDD однако не показывает соответствующую informaton.
optional
2

голосов
0

ответ
55

Просмотры

Индукция считать гарантией, с nuSMV

У меня есть асинхронный симметричный кольцеобразный протокол с 5 процессами, которые удовлетворяют заданное свойство. Я хочу, чтобы доказать (или получить контрпример), что свойство справедливо для протоколов с 6 числа процессов и многое другое; что ∀n.φ (п) я решил использовать взять на себя-гарантии, и я использую nuSMV для проверки моделей. Я знаю, что прежние версии SMV, как Cadence может поддерживать эту функцию, но есть ли способ реализации предполагать-гарантии в nuSMV? Если нет, то я могу использовать другие модели шашек как SPIN вместо этого? Спасибо.
N.mirzaie
2

голосов
1

ответ
926

Просмотры

Как выполнить .smv файл из блокнота ++

Я в настоящее время обучение NuSMV для LTL и CTL проверки модели. Я использую Notepad ++ для моего кодирования деятельности - в основном в Python - и я знаю, что мы можем запустить питон скрипт (.py-файлы) с помощью Notepad ++. Я новичок в NuSMV и мне интересно, есть ли способ, чтобы выполнить .smv скрипт в блокноте ++. Вот пример .smv кода, который я намерен работать. МОДУЛЬ главной переменной ВАР: булево; ASSIGN инициализации (переменная): = TRUE; следующая (переменная): = переменная;! LTLSPEC G (переменная & X переменная!) CTLSPEC EF (! Переменная и переменная AX) Тем не менее, у меня есть некоторые трудности, чтобы запустить выше SMV скрипт, используя NuSMV интерактивную оболочку. Предположим, что указанное имя скрипта test.smv. Как я должен запустить его с помощью NuSMV интерактивной оболочки?
Iqazra