Combine Boolean formulae in Fusion arguments.

* src/ltlast/multop.cc (multop::instance): Implement
the rewriting.   "a🅱️c[*]:d:e" becomes "{{a&&b}&c[*]}:{d&&e}".
* src/ltlast/multop.hh: Document it.
* src/ltltest/equals.test, src/ltltest/kind.test: Add test cases.
This commit is contained in:
Alexandre Duret-Lutz 2011-02-23 16:24:45 +01:00
parent a2da5184b5
commit 2669df1c96
4 changed files with 46 additions and 4 deletions

View file

@ -101,6 +101,8 @@ namespace spot
/// - Fusion(Exps1...,0,Exps2...) = 0
/// - Fusion(Exps1...,[*0],Exps2...) = 0
/// - Fusion(Exp) = Exp
/// - Fusion(Exps1...,BoolExp1...BoolExpN,Exps2,Exps3...) =
/// Fusion(Exps1...,AndNLM(And(BoolExp1...BoolExpN),Exps2),Exps3...)
static formula* instance(type op, vec* v);
virtual void accept(visitor& v);