ltlsynt implement polarity and gequiv after decomposition too

* bin/ltlsynt.cc: Also simplify subformulas using polarity and global
equivalence.  Add support for --polarity=before-decompose and
--global-equiv=before-decompose to restablish the previous behavior.
* spot/tl/apcollect.hh,
spot/tl/apcollect.cc (realizability_simplifier::merge_mapping): New
method.
* tests/core/ltlsynt.test: Add new test cases.
This commit is contained in:
Alexandre Duret-Lutz 2024-04-05 12:42:43 +02:00
parent 848d1a3901
commit 9230614f8d
4 changed files with 217 additions and 14 deletions

View file

@ -429,6 +429,13 @@ namespace spot
while (oldf != f_);
}
void
realizability_simplifier::merge_mapping(const realizability_simplifier& other)
{
for (auto [from, from_is_input, to]: other.get_mapping())
mapping_.emplace_back(from, from_is_input, to);
}
void realizability_simplifier::patch_mealy(twa_graph_ptr mealy) const
{
bdd add = bddtrue;

View file

@ -107,6 +107,10 @@ namespace spot
return mapping_;
}
/// \brief Augment the current mapping with output variable renaming from
/// another realizability_simplifier.
void merge_mapping(const realizability_simplifier& other);
/// \brief Patch a Mealy machine to add the missing APs.
void patch_mealy(twa_graph_ptr mealy) const;