Merge branch 'master' into next
Conflicts: src/ltlvisit/simplify.cc src/tgbatest/Makefile.am
This commit is contained in:
commit
53de8fc3a4
24 changed files with 333 additions and 223 deletions
|
|
@ -1,6 +1,6 @@
|
|||
// -*- coding: utf-8 -*-
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012 Laboratoire de Recherche
|
||||
// et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2008, 2009, 2010, 2011, 2012, 2014 Laboratoire de
|
||||
// Recherche et Développement de l'Epita (LRDE).
|
||||
// Copyright (C) 2003, 2004, 2006 Laboratoire d'Informatique de
|
||||
// Paris 6 (LIP6), département Systèmes Répartis Coopératifs (SRC),
|
||||
// Université Pierre et Marie Curie.
|
||||
|
|
@ -68,7 +68,7 @@ main(int argc, char** argv)
|
|||
if (spot::ltl::format_parse_errors(std::cerr, argv[2], p2))
|
||||
return 2;
|
||||
|
||||
int exit_code;
|
||||
int exit_code = 0;
|
||||
|
||||
{
|
||||
#if defined LUNABBREV || defined TUNABBREV || defined NENOFORM || defined WM
|
||||
|
|
@ -112,6 +112,14 @@ main(int argc, char** argv)
|
|||
const spot::ltl::formula* tmp;
|
||||
tmp = f1;
|
||||
f1 = simp.simplify(f1);
|
||||
|
||||
if (!simp.are_equivalent(f1, tmp))
|
||||
{
|
||||
std::cerr << "Source and simplified formulae are not equivalent!\n";
|
||||
std::cerr << "Simplified: " << spot::ltl::to_string(f1) << "\n";
|
||||
exit_code = 1;
|
||||
}
|
||||
|
||||
tmp->destroy();
|
||||
}
|
||||
spot::ltl::dump(std::cout, f1);
|
||||
|
|
@ -124,6 +132,14 @@ main(int argc, char** argv)
|
|||
const spot::ltl::formula* tmp;
|
||||
tmp = f1;
|
||||
f1 = simp.simplify(f1);
|
||||
|
||||
if (!simp.are_equivalent(f1, tmp))
|
||||
{
|
||||
std::cerr << "Source and simplified formulae are not equivalent!\n";
|
||||
std::cerr << "Simplified: " << spot::ltl::to_string(f1) << "\n";
|
||||
exit_code = 1;
|
||||
}
|
||||
|
||||
tmp->destroy();
|
||||
}
|
||||
spot::ltl::dump(std::cout, f1);
|
||||
|
|
@ -136,13 +152,21 @@ main(int argc, char** argv)
|
|||
const spot::ltl::formula* tmp;
|
||||
tmp = f1;
|
||||
f1 = simp.simplify(f1);
|
||||
|
||||
if (!simp.are_equivalent(f1, tmp))
|
||||
{
|
||||
std::cerr << "Source and simplified formulae are not equivalent!\n";
|
||||
std::cerr << "Simplified: " << spot::ltl::to_string(f1) << "\n";
|
||||
exit_code = 1;
|
||||
}
|
||||
|
||||
tmp->destroy();
|
||||
}
|
||||
spot::ltl::dump(std::cout, f1);
|
||||
std::cout << std::endl;
|
||||
#endif
|
||||
|
||||
exit_code = f1 != f2;
|
||||
exit_code |= f1 != f2;
|
||||
|
||||
#if (!defined(REDUC) && !defined(REDUC_TAU) && !defined(REDUC_TAUSTR))
|
||||
spot::ltl::ltl_simplifier simp;
|
||||
|
|
@ -150,8 +174,11 @@ main(int argc, char** argv)
|
|||
|
||||
if (!simp.are_equivalent(f1, f2))
|
||||
{
|
||||
std::cerr << "Source and destination formulae are not equivalent!"
|
||||
<< std::endl;
|
||||
#if (!defined(REDUC) && !defined(REDUC_TAU) && !defined(REDUC_TAUSTR))
|
||||
std::cerr << "Source and destination formulae are not equivalent!\n";
|
||||
#else
|
||||
std::cerr << "Simpl. and destination formulae are not equivalent!\n";
|
||||
#endif
|
||||
exit_code = 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2012, 2013 Laboratoire de Recherche et Developpement
|
||||
# de l'Epita (LRDE).
|
||||
# Copyright (C) 2012, 2013, 2014 Laboratoire de Recherche et
|
||||
# Developpement de l'Epita (LRDE).
|
||||
#
|
||||
# This file is part of Spot, a model checking library.
|
||||
#
|
||||
|
|
@ -48,7 +48,7 @@ check 'a U (b | Fc)' '(a U b) | Fc'
|
|||
check 'a W (b | Fc)' '(a W b) | Fc'
|
||||
check 'a U (b & GFc)' '(a U b) & GFc'
|
||||
check 'a W (b & GFc)' 'a W (b & GFc)' # Unchanged
|
||||
check '(a | Gc) W g' '(a W g) | Gc'
|
||||
check '(a | Gc) W g' '(a | Gc) W g' # Unchanged
|
||||
check '(a | Gc) U g' '(a | Gc) U g' # Unchanged
|
||||
|
||||
check '(a & GFc) M b' '(a M b) & GFc'
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#! /bin/sh
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright (C) 2009, 2010, 2011, 2012, 2013 Laboratoire de Recherche
|
||||
# et Developpement de l'Epita (LRDE).
|
||||
# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014 Laboratoire de
|
||||
# Recherche et Developpement de l'Epita (LRDE).
|
||||
# Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
|
||||
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
|
||||
# et Marie Curie.
|
||||
|
|
@ -317,9 +317,10 @@ for x in ../reduccmp ../reductaustr; do
|
|||
run 0 $x '{{a;b*;c}&&{d;e*}&&{f*;g}&&{h*}}' \
|
||||
'{{f*;g}&&{h*}&&{{a&&d};{e* && {b*;c}}}}'
|
||||
run 0 $x '{{{b1;r1*}&{b2;r2*}};c}' 'b1&b2&X{{r1*&r2*};c}'
|
||||
run 0 $x '{{b1:r1*}&{b2:r2*}}' '{{b1&&b2}:{r1*&r2*}}'
|
||||
run 0 $x '{{r1*;b1}&{r2*;b2}}' '{{r1*&r2*};{b1&&b2}}'
|
||||
run 0 $x '{{r1*:b1}&{r2*:b2}}' '{{r1*&r2*}:{b1&&b2}}'
|
||||
run 0 $x '{{b1:(r1;x1*)}&{b2:(r2;x2*)}}' '{{b1&&b2}:{{r1&&r2};{x1*&x2*}}}'
|
||||
run 0 $x '{{b1:r1*}&{b2:r2*}}' '{{b1:r1*}&{b2:r2*}}' # Not reduced
|
||||
run 0 $x '{{r1*;b1}&{r2*;b2}}' '{{r1*;b1}&{r2*;b2}}' # Not reduced
|
||||
run 0 $x '{{r1*:b1}&{r2*:b2}}' '{{r1*:b1}&{r2*:b2}}' # Not reduced
|
||||
run 0 $x '{{a;b*;c}&{d;e*}&{f*;g}&{h*}}' \
|
||||
'{{f*;g}&{h*}&{{a&&d};{e* & {b*;c}}}}'
|
||||
run 0 $x '{a;(b*;c*;([*0]+{d;e}))*}!' '{a;{b|c|{d;e}}*}!'
|
||||
|
|
@ -347,6 +348,8 @@ for x in ../reduccmp ../reductaustr; do
|
|||
run 0 $x '{s[*]}<>->b' 'b M s'
|
||||
run 0 $x '{s[+]}<>->b' 'b M s'
|
||||
run 0 $x '{s[*2..]}<>->b' 's & X(b M s)'
|
||||
run 0 $x '{1:a*}!' 'a'
|
||||
run 0 $x '{(1;1):a*}!' 'Xa'
|
||||
run 0 $x '{a;b*;c;d*}<>->e' 'a & X(b U (c & (e | X(e M d))))'
|
||||
run 0 $x '{a:b*:c:d*}<>->e' 'a & ((c & (e M d)) M b)'
|
||||
run 0 $x '{a|b*|c|d*}<>->e' '((a | c) & e) | (e M b) | (e M d)'
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue