mirror of
https://github.com/Z3Prover/z3
synced 2026-03-22 04:28:50 +00:00
seq_nielsen: replace mk_fresh_var() with mk_fresh_var(sort* s) (#9037)
* replace mk_fresh_var() with mk_fresh_var(sort* s) in seq_nielsen; fix snode_label_html linkage Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * remove mk_var(symbol const&) from sgraph; update all callers to pass sort explicitly Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
parent
4b40969da6
commit
f837651434
9 changed files with 203 additions and 201 deletions
|
|
@ -2858,7 +2858,7 @@ namespace seq {
|
|||
|
||||
euf::snode* pad = nullptr;
|
||||
if (padding != 0) {
|
||||
pad = mk_fresh_var();
|
||||
pad = mk_fresh_var(eq.m_lhs->get_sort());
|
||||
if (padding > 0) {
|
||||
// LHS prefix is longer by |padding| constants.
|
||||
// Prepend pad to RHS prefix, append pad to LHS suffix.
|
||||
|
|
@ -2910,10 +2910,10 @@ namespace seq {
|
|||
// nielsen_graph: mk_fresh_var
|
||||
// -----------------------------------------------------------------------
|
||||
|
||||
euf::snode* nielsen_graph::mk_fresh_var() {
|
||||
euf::snode* nielsen_graph::mk_fresh_var(sort* s) {
|
||||
++m_stats.m_num_fresh_vars;
|
||||
std::string name = "v!" + std::to_string(m_fresh_cnt++);
|
||||
return m_sg.mk_var(symbol(name.c_str()));
|
||||
return m_sg.mk_var(symbol(name.c_str()), s);
|
||||
}
|
||||
|
||||
euf::snode* nielsen_graph::mk_fresh_char_var() {
|
||||
|
|
@ -3424,8 +3424,8 @@ namespace seq {
|
|||
continue;
|
||||
|
||||
// Create child: x → pr · po
|
||||
euf::snode* pr = mk_fresh_var();
|
||||
euf::snode* po = mk_fresh_var();
|
||||
euf::snode* pr = mk_fresh_var(mem.m_str->get_sort());
|
||||
euf::snode* po = mk_fresh_var(mem.m_str->get_sort());
|
||||
euf::snode* str_tail = m_sg.drop_first(mem.m_str);
|
||||
|
||||
nielsen_node* child = mk_child(node);
|
||||
|
|
@ -3865,7 +3865,7 @@ namespace seq {
|
|||
|
||||
// Branch 2: x = u^n · x' (variable extends past full power, non-progress)
|
||||
{
|
||||
euf::snode* fresh_tail = mk_fresh_var();
|
||||
euf::snode* fresh_tail = mk_fresh_var(var_head->get_sort());
|
||||
euf::snode* replacement = dir_concat(m_sg, power, fresh_tail, fwd);
|
||||
nielsen_node* child = mk_child(node);
|
||||
nielsen_edge* e = mk_edge(node, child, false);
|
||||
|
|
@ -3918,7 +3918,7 @@ namespace seq {
|
|||
// Branch 2: n >= 1 → peel one u: u^n → u · u^(n-1)
|
||||
// Side constraint: n >= 1
|
||||
{
|
||||
euf::snode* fresh = mk_fresh_var();
|
||||
euf::snode* fresh = mk_fresh_var(var_head->get_sort());
|
||||
euf::snode* replacement = dir_concat(m_sg, base, fresh, fwd);
|
||||
nielsen_node* child = mk_child(node);
|
||||
nielsen_edge* e = mk_edge(node, child, false);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue