mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-04 13:29:11 +00:00 
			
		
		
		
	Fix mbp to respect reduce_all_selects option
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									0c2e3c0894
								
							
						
					
					
						commit
						ebfb2a4a1e
					
				
					 1 changed files with 9 additions and 10 deletions
				
			
		| 
						 | 
				
			
			@ -592,10 +592,11 @@ public:
 | 
			
		|||
 | 
			
		||||
        flatten_and(fml);
 | 
			
		||||
 | 
			
		||||
        do_qe_lite(vars, fml);
 | 
			
		||||
 | 
			
		||||
        while (!vars.empty()) {
 | 
			
		||||
 | 
			
		||||
            do_qe_lite(vars, fml);
 | 
			
		||||
 | 
			
		||||
            do_qe_bool(mdl, vars, fml);
 | 
			
		||||
            
 | 
			
		||||
            // sort out vars into bools, arith (int/real), and arrays
 | 
			
		||||
| 
						 | 
				
			
			@ -613,21 +614,19 @@ public:
 | 
			
		|||
            vars.reset ();
 | 
			
		||||
            
 | 
			
		||||
            // project arrays
 | 
			
		||||
            if (!array_vars.empty()) {
 | 
			
		||||
                qe::array_project_plugin ap(m);
 | 
			
		||||
                ap(mdl, array_vars, fml, vars, m_reduce_all_selects);
 | 
			
		||||
                SASSERT (array_vars.empty ());
 | 
			
		||||
                m_rw (fml);
 | 
			
		||||
                SASSERT (!m.is_false (fml));
 | 
			
		||||
            }
 | 
			
		||||
            
 | 
			
		||||
            qe::array_project_plugin ap(m);
 | 
			
		||||
            ap(mdl, array_vars, fml, vars, m_reduce_all_selects);
 | 
			
		||||
            SASSERT (array_vars.empty ());
 | 
			
		||||
            m_rw (fml);
 | 
			
		||||
            SASSERT (!m.is_false (fml));
 | 
			
		||||
 | 
			
		||||
            TRACE ("qe",
 | 
			
		||||
                   tout << "extended model:\n";
 | 
			
		||||
                   model_pp (tout, mdl);
 | 
			
		||||
                   tout << "Vars: " << vars << "\n";
 | 
			
		||||
                   );            
 | 
			
		||||
            
 | 
			
		||||
        }
 | 
			
		||||
                        
 | 
			
		||||
        // project reals, ints and other variables.
 | 
			
		||||
        if (!other_vars.empty ()) {
 | 
			
		||||
            TRACE ("qe", tout << "Other vars: " << other_vars << "\n";
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue