3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-08-14 09:45:36 +00:00
z3/src/smt
Nikolaj Bjorner 2c508b3753
Fix regex ITE propagation (#10379) (#10431)
Preserve both regex membership branches while an ITE condition is
unresolved so the selected branch is enforced after assignment.

fix #10379 

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot-Session: a8f87ede-b718-4fe9-9839-cc9eaaf9c3a7
2026-08-06 21:39:20 -07:00
..
proto_model
tactic Parallel tactic (#9824) (#9825) 2026-06-26 10:36:15 -06:00
arith_eq_adapter.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
arith_eq_adapter.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
arith_eq_solver.cpp
arith_eq_solver.h
CMakeLists.txt
database.h
database.smt
diff_logic.h
dyn_ack.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
dyn_ack.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
expr_context_simplifier.cpp
expr_context_simplifier.h
fingerprints.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
fingerprints.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
mam.cpp Fix uses of gnu anonymous structs. (#10345) 2026-08-01 11:44:01 -07:00
mam.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
old_interval.cpp
old_interval.h
qi_queue.cpp disable instantiation for inconsistent states 2026-07-15 20:55:11 -07:00
qi_queue.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
seq_axioms.cpp
seq_axioms.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
seq_eq_solver.cpp tweaks to string solver 2026-06-28 17:16:52 -07:00
seq_ne_solver.cpp
seq_offset_eq.cpp
seq_offset_eq.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
seq_regex.cpp Fix regex ITE propagation (#10379) (#10431) 2026-08-06 21:39:20 -07:00
seq_regex.h Monadic refine (#10389) 2026-08-05 13:27:00 -07:00
smt2_extra_cmds.cpp
smt2_extra_cmds.h
smt_almost_cg_table.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_almost_cg_table.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_arith_value.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_arith_value.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_b_justification.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_bool_var_data.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_case_split_queue.cpp Improve generation accounting (#10008) (#10009) 2026-07-08 15:43:41 -07:00
smt_case_split_queue.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_cg_table.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_cg_table.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_checker.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_checker.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_clause.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_clause.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_clause_proof.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_clause_proof.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_conflict_resolution.cpp Fix 10388 (#10418) 2026-08-05 19:27:03 -07:00
smt_conflict_resolution.h Fix uses of gnu anonymous structs. (#10345) 2026-08-01 11:44:01 -07:00
smt_consequences.cpp
smt_context.cpp Fix 10388 (#10418) 2026-08-05 19:27:03 -07:00
smt_context.h remove relvancy marking code 2026-07-15 15:17:14 -07:00
smt_context_inv.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_context_pp.cpp Add global suppress_platform_verbose parameter (#10319) 2026-07-30 20:08:25 -07:00
smt_context_stat.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_enode.cpp Improve generation accounting (#10008) (#10009) 2026-07-08 15:43:41 -07:00
smt_enode.h Improve generation accounting (#10008) (#10009) 2026-07-08 15:43:41 -07:00
smt_eq_justification.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_failure.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_farkas_util.cpp
smt_farkas_util.h
smt_for_each_relevant_expr.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_for_each_relevant_expr.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_implied_equalities.cpp
smt_implied_equalities.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_induction.cpp.disabled
smt_induction.h.disabled
smt_internalizer.cpp Fix remaining clang warnings for fallthrough switch cases (in debug build). (#10314) 2026-07-30 19:24:46 -07:00
smt_justification.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_justification.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_kernel.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_kernel.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_literal.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_literal.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_lookahead.cpp
smt_lookahead.h
smt_model_checker.cpp Improve generation accounting (#10008) (#10009) 2026-07-08 15:43:41 -07:00
smt_model_checker.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_model_finder.cpp Improve generation accounting (#10008) (#10009) 2026-07-08 15:43:41 -07:00
smt_model_finder.h smt: instrument ho-matching and ho-var term-enumeration statistics 2026-07-06 17:14:39 -07:00
smt_model_generator.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_model_generator.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_parallel.cpp Fix unsigned overflow in parallel solver conflict budget escalation (#10076) 2026-07-10 15:25:57 -07:00
smt_parallel.h Fix unsigned overflow in parallel solver conflict budget escalation (#10076) 2026-07-10 15:25:57 -07:00
smt_quantifier.cpp fix warnings 2026-07-12 16:45:24 -07:00
smt_quantifier.h smt: instrument ho-matching and ho-var term-enumeration statistics 2026-07-06 17:14:39 -07:00
smt_quantifier_instances.h
smt_quick_checker.cpp Improve generation accounting (#10008) (#10009) 2026-07-08 15:43:41 -07:00
smt_quick_checker.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_relevancy.cpp bug fixes to ho_matching - offset alignment inv_var_shift, callback scopes should not be nested, allow bindings that are not ground 2026-07-09 19:16:12 -07:00
smt_relevancy.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_setup.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_setup.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_solver.cpp Fix swapped assert_expr arguments in smt_solver::translate for named assertions (#10135) 2026-07-16 13:46:19 -07:00
smt_solver.h
smt_statistics.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_statistics.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_theory.cpp disable term enumeration by default 2026-07-10 14:23:40 -07:00
smt_theory.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_types.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
smt_value_sort.cpp
smt_value_sort.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
spanning_tree.h
spanning_tree_base.h
spanning_tree_def.h
theory_arith.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_arith.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_arith_aux.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_arith_core.h Make implicit switch case fall-throughs explicit (#10284) 2026-07-29 09:05:42 -07:00
theory_arith_def.h
theory_arith_eq.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_arith_int.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_arith_inv.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_arith_nl.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_arith_pp.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_array.cpp prepare ground for general projection 2026-07-12 15:59:56 -07:00
theory_array.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_array_base.cpp prepare ho-matcher for congruences 2026-07-30 20:28:27 -07:00
theory_array_base.h debug array models 2026-07-14 13:52:14 -07:00
theory_array_full.cpp disable term enumeration by default 2026-07-10 14:23:40 -07:00
theory_array_full.h handle lambda equalities 2026-07-05 12:52:01 -07:00
theory_bv.cpp Use macros to disable semi-colon warnings for blocks of macros. (#10192) 2026-07-22 18:01:50 -07:00
theory_bv.h Issue 438 (#10085) 2026-07-12 13:35:57 -07:00
theory_char.cpp
theory_char.h
theory_datatype.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_datatype.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_dense_diff_logic.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_dense_diff_logic.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_dense_diff_logic_def.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_diff_logic.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_diff_logic.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_diff_logic_def.h prepare for enodes over lambdas 2026-06-01 13:00:35 -07:00
theory_dl.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_dl.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_dummy.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_dummy.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_finite_set.cpp fix build warnings 2026-06-22 18:20:23 -07:00
theory_finite_set.h use expr based access to enodes to allow for storing first-class lambas 2026-05-30 15:13:08 -07:00
theory_finite_set_size.cpp Fix set.size soundness: cardinality lower bound for concrete distinct members (#10246) 2026-07-27 15:05:49 -07:00
theory_finite_set_size.h
theory_fpa.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_fpa.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_intblast.cpp use expr based access to enodes to allow for storing first-class lambas 2026-05-30 15:13:08 -07:00
theory_intblast.h
theory_lra.cpp Update theory_lra.cpp 2026-07-24 14:10:06 -07:00
theory_lra.h use expr based access to enodes to allow for storing first-class lambas 2026-05-30 15:13:08 -07:00
theory_opt.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_opt.h
theory_pb.cpp Make implicit switch case fall-throughs explicit (#10284) 2026-07-29 09:05:42 -07:00
theory_pb.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_polymorphism.h Fix TPTP polymorphism crashes in final-check and model checking 2026-07-03 20:32:04 -07:00
theory_recfun.cpp use expr based access to enodes to allow for storing first-class lambas 2026-05-30 15:13:08 -07:00
theory_recfun.h use expr based access to enodes to allow for storing first-class lambas 2026-05-30 15:13:08 -07:00
theory_seq.cpp Add monadic regex statistics 2026-08-02 20:20:58 -07:00
theory_seq.h Add monadic regex end-game solver 2026-08-01 12:03:53 -07:00
theory_seq_empty.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_sls.cpp
theory_sls.h Eliminate unused private fields and local variables. (#9875) 2026-06-16 14:55:18 +01:00
theory_special_relations.cpp use expr based access to enodes to allow for storing first-class lambas 2026-05-30 15:13:08 -07:00
theory_special_relations.h
theory_user_propagator.cpp
theory_user_propagator.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_utvpi.cpp
theory_utvpi.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_utvpi_def.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_wmaxsat.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
theory_wmaxsat.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
uses_theory.cpp
uses_theory.h
watch_list.cpp Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00
watch_list.h Remove unnecessary semicolons (Attempt 2) (#10020) 2026-07-02 12:47:29 -07:00