mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 13:29:11 +00:00 
			
		
		
		
	ensure enode without recursion
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									571a74c061
								
							
						
					
					
						commit
						055732423c
					
				
					 2 changed files with 4 additions and 0 deletions
				
			
		| 
						 | 
					@ -1506,6 +1506,7 @@ void theory_seq::add_length(expr* l) {
 | 
				
			||||||
   Add length limit restrictions to sequence s.
 | 
					   Add length limit restrictions to sequence s.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
void theory_seq::add_length_limit(expr* s, unsigned k, bool is_searching) {
 | 
					void theory_seq::add_length_limit(expr* s, unsigned k, bool is_searching) {
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
    if (m_sk.is_indexof_left(s))
 | 
					    if (m_sk.is_indexof_left(s))
 | 
				
			||||||
        return;
 | 
					        return;
 | 
				
			||||||
    if (m_sk.is_indexof_right(s))
 | 
					    if (m_sk.is_indexof_right(s))
 | 
				
			||||||
| 
						 | 
					@ -3232,6 +3233,7 @@ void theory_seq::add_unhandled_expr(expr* n) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void theory_seq::add_theory_assumptions(expr_ref_vector & assumptions) {
 | 
					void theory_seq::add_theory_assumptions(expr_ref_vector & assumptions) {
 | 
				
			||||||
 | 
					    return;
 | 
				
			||||||
    if (m_has_seq) {
 | 
					    if (m_has_seq) {
 | 
				
			||||||
        TRACE("seq", tout << "add_theory_assumption\n";);
 | 
					        TRACE("seq", tout << "add_theory_assumption\n";);
 | 
				
			||||||
        expr_ref dlimit = m_sk.mk_max_unfolding_depth(m_max_unfolding_depth);
 | 
					        expr_ref dlimit = m_sk.mk_max_unfolding_depth(m_max_unfolding_depth);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -181,6 +181,8 @@ bool theory_user_propagator::internalize_atom(app* atom, bool gate_ctx) {
 | 
				
			||||||
bool theory_user_propagator::internalize_term(app* term)  { 
 | 
					bool theory_user_propagator::internalize_term(app* term)  { 
 | 
				
			||||||
    for (auto arg : *term)
 | 
					    for (auto arg : *term)
 | 
				
			||||||
        ensure_enode(arg);
 | 
					        ensure_enode(arg);
 | 
				
			||||||
 | 
					    if (term->get_family_id() == get_id() && !ctx.e_internalized(term)) 
 | 
				
			||||||
 | 
					        ctx.mk_enode(term, true, false, true);
 | 
				
			||||||
    unsigned v = add_expr(term);
 | 
					    unsigned v = add_expr(term);
 | 
				
			||||||
    if (m_created_eh)
 | 
					    if (m_created_eh)
 | 
				
			||||||
        m_created_eh(m_user_context, this, term, v);
 | 
					        m_created_eh(m_user_context, this, term, v);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue