Introduce AndRat and OrRat operator.
It was a mistake to try to overload And/Or LTL operator for these when trivial simplification are performed. The reason is so simple it is embarassing: And(f,1)=f is a trivial identity that should not be applied with AndRat. E.g. AndRat(a;b, 1) is equal to 0, not a;b. * src/ltlast/multop.hh, src/ltlast/multop.cc: Add the AndRat and OrRat operators. * src/ltlparse/ltlparse.yy: Build them. * src/ltlvisit/mark.cc, src/ltlvisit/simplify.cc, src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc, src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc: Adjust all switches.
This commit is contained in:
parent
35b41331f7
commit
691119c188
11 changed files with 916 additions and 759 deletions
|
|
@ -354,7 +354,7 @@ sere: booleanatom
|
|||
$$ = constant::false_instance();
|
||||
}
|
||||
| sere OP_AND sere
|
||||
{ $$ = multop::instance(multop::And, $1, $3); }
|
||||
{ $$ = multop::instance(multop::AndRat, $1, $3); }
|
||||
| sere OP_AND error
|
||||
{ missing_right_binop($$, $1, @2,
|
||||
"length-matching and operator"); }
|
||||
|
|
@ -364,7 +364,7 @@ sere: booleanatom
|
|||
{ missing_right_binop($$, $1, @2,
|
||||
"non-length-matching and operator"); }
|
||||
| sere OP_OR sere
|
||||
{ $$ = multop::instance(multop::Or, $1, $3); }
|
||||
{ $$ = multop::instance(multop::OrRat, $1, $3); }
|
||||
| sere OP_OR error
|
||||
{ missing_right_binop($$, $1, @2, "or operator"); }
|
||||
| sere OP_CONCAT sere
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue