3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-04-21 03:13:30 +00:00

Fixed couple of regex problems [there are still others]

This commit is contained in:
CEisenhofer 2026-03-18 14:28:53 +01:00
parent b1bae695e6
commit ab53889c10
11 changed files with 392 additions and 382 deletions

View file

@ -748,6 +748,18 @@ static void test_sgraph_minterms() {
// no predicates => single minterm (full_char)
SASSERT(minterms.size() == 1);
std::cout << " re.all minterms: " << minterms.size() << "\n";
// test union of strings: "evil" and "/evil"
expr_ref evil(seq.re.mk_to_re(seq.str.mk_string(zstring("evil"))), m);
expr_ref slash_evil(seq.re.mk_to_re(seq.str.mk_string(zstring("/evil"))), m);
expr_ref union_re(seq.re.mk_union(evil, slash_evil), m);
euf::snode* s_union_re = sg.mk(union_re);
euf::snode_vector union_minterms;
sg.compute_minterms(s_union_re, union_minterms);
std::cout << " union minterms: " << union_minterms.size() << "\n";
// should collect 'e' and '/', yielding 3 disjoint subset partitions (e), (/), and the rest
SASSERT(union_minterms.size() == 3);
}
void tst_euf_sgraph() {