Fix computation of syntactic classes for Implies.

* src/ltlast/binop.cc (binop::binop): Fix computation
of syntactic guarantee and syntactic obligation for the Implies
operator.  Reported by Étienne Renault.
* src/ltltest/kind.test: Add more tests.
This commit is contained in:
Alexandre Duret-Lutz 2012-02-06 13:18:52 +01:00
parent 395793d986
commit 54fd973a90
2 changed files with 9 additions and 4 deletions

View file

@ -95,9 +95,9 @@ namespace spot
is.sugar_free_boolean = false; is.sugar_free_boolean = false;
is.in_nenoform = false; is.in_nenoform = false;
is.syntactic_safety = is.syntactic_safety =
first->is_syntactic_obligation() && second->is_syntactic_safety(); first->is_syntactic_guarantee() && second->is_syntactic_safety();
is.syntactic_obligation = is.syntactic_guarantee =
first->is_syntactic_safety() && second->is_syntactic_obligation(); first->is_syntactic_safety() && second->is_syntactic_guarantee();
// is.syntactic_obligation inherited // is.syntactic_obligation inherited
is.syntactic_persistence = first->is_syntactic_recurrence() is.syntactic_persistence = first->is_syntactic_recurrence()
&& second->is_syntactic_persistence(); && second->is_syntactic_persistence();

View file

@ -1,5 +1,5 @@
#! /bin/sh #! /bin/sh
# Copyright (C) 2010, 2011 Laboratoire de Recherche et Developement to # Copyright (C) 2010, 2011, 2012 Laboratoire de Recherche et Developement to
# l'Epita (LRDE). # l'Epita (LRDE).
# #
# This file is part of Spot, a model checking library. # This file is part of Spot, a model checking library.
@ -53,6 +53,11 @@ check 'a R (b R (c R d))' '&!xfLPsopr'
check 'a U (b U (c U d))' '&!xfLPgopr' check 'a U (b U (c U d))' '&!xfLPgopr'
check 'a W (b W (c W d))' '&!xfLPsopr' check 'a W (b W (c W d))' '&!xfLPsopr'
check 'a M (b M (c M d))' '&!xfLPgopr' check 'a M (b M (c M d))' '&!xfLPgopr'
check 'Fa -> Fb' 'xLPopr'
check 'Ga -> Fb' 'xLPgopr'
check 'Fa -> Gb' 'xLPsopr'
check '(Ga|Fc) -> Fb' 'xLPopr'
check '(Ga|Fa) -> Gb' 'xLPopr'
check '{a;c*;b}|->!Xb' '&fPsopr' check '{a;c*;b}|->!Xb' '&fPsopr'
check '{a;c*;b}|->X!b' '&!fPsopr' check '{a;c*;b}|->X!b' '&!fPsopr'
check '{a;c*;b}|->!Fb' '&xPsopr' check '{a;c*;b}|->!Fb' '&xPsopr'