From: Andrew Reynolds Date: Tue, 4 Dec 2018 22:04:47 +0000 (-0600) Subject: Apply extended rewriting on PBE static symmetry breaking. (#2735) X-Git-Tag: cvc5-1.0.0~4336 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=33ec6ac29c55ac6db7d86a700cb5e8f06b93ab96;p=cvc5.git Apply extended rewriting on PBE static symmetry breaking. (#2735) --- diff --git a/src/theory/quantifiers/sygus/sygus_pbe.cpp b/src/theory/quantifiers/sygus/sygus_pbe.cpp index e8aa0a7f0..7891814be 100644 --- a/src/theory/quantifiers/sygus/sygus_pbe.cpp +++ b/src/theory/quantifiers/sygus/sygus_pbe.cpp @@ -272,6 +272,10 @@ bool SygusPbe::initialize(Node n, Assert(!ag.isNull()); disj.push_back(ag.negate()); Node lem = disj.size() == 1 ? disj[0] : nm->mkNode(OR, disj); + // Apply extended rewriting on the lemma. This helps utilities like + // SygusEnumerator more easily recognize the shape of this lemma, e.g. + // ( ~is-ite(x) or ( ~is-ite(x) ^ P ) ) --> ~is-ite(x). + lem = d_tds->getExtRewriter()->extendedRewrite(lem); Trace("sygus-pbe") << " static redundant op lemma : " << lem << std::endl; // Register as a symmetry breaking lemma with the term database.