mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-03 21:09:11 +00:00 
			
		
		
		
	ranges are never nullable
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									6e55880601
								
							
						
					
					
						commit
						ff34d84b35
					
				
					 1 changed files with 3 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -1993,7 +1993,7 @@ expr_ref seq_rewriter::kleene_and(expr* cond, expr* r) {
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
expr_ref seq_rewriter::kleene_predicate(expr* cond, sort* seq_sort) {
 | 
			
		||||
    expr* re_with_empty = m_util.re.mk_to_re(m_util.str.mk_empty(seq_sort));
 | 
			
		||||
    expr_ref re_with_empty(m_util.re.mk_to_re(m_util.str.mk_empty(seq_sort)), m());
 | 
			
		||||
    return kleene_and(cond, re_with_empty);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2017,20 +2017,13 @@ expr_ref seq_rewriter::is_nullable(expr* r) {
 | 
			
		|||
    }
 | 
			
		||||
    if (m_util.re.is_full_char(r) ||
 | 
			
		||||
        m_util.re.is_empty(r) ||
 | 
			
		||||
        m_util.re.is_of_pred(r)) {
 | 
			
		||||
        m_util.re.is_of_pred(r) ||
 | 
			
		||||
        m_util.re.is_range(r)) {
 | 
			
		||||
        return expr_ref(m().mk_false(), m());
 | 
			
		||||
    }
 | 
			
		||||
    if (m_util.re.is_plus(r, r1)) {
 | 
			
		||||
        return is_nullable(r1);
 | 
			
		||||
    }
 | 
			
		||||
    if (m_util.re.is_range(r, r1, r2)) {
 | 
			
		||||
        if (m_util.is_const_char(r1, lo) && m_util.is_const_char(r2, hi)) {
 | 
			
		||||
            return expr_ref(m().mk_bool_val(lo > hi), m());
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
            return expr_ref(m_util.mk_lt(r2, r1), m());
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    if (m_util.re.is_complement(r, r1)) {
 | 
			
		||||
        return expr_ref(mk_not(m(), is_nullable(r1)), m());
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue