mirror of
				https://github.com/Z3Prover/z3
				synced 2025-11-03 21:09:11 +00:00 
			
		
		
		
	display methods
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
		
							parent
							
								
									87bc4cf693
								
							
						
					
					
						commit
						81b1338af6
					
				
					 2 changed files with 16 additions and 8 deletions
				
			
		| 
						 | 
					@ -64,6 +64,17 @@ namespace smt {
 | 
				
			||||||
        return m_graph.add_non_strict_edge(v1, v2, ls) && m_graph.add_non_strict_edge(v2, v1, ls);
 | 
					        return m_graph.add_non_strict_edge(v1, v2, ls) && m_graph.add_non_strict_edge(v2, v1, ls);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    std::ostream& theory_special_relations::relation::display(theory_special_relations const& th, std::ostream& out) const {
 | 
				
			||||||
 | 
					        out << m_decl->get_name() << ":\n";
 | 
				
			||||||
 | 
					        m_graph.display(out);
 | 
				
			||||||
 | 
					        out << "explanation: " << m_explanation << "\n";
 | 
				
			||||||
 | 
					        m_uf.display(out);
 | 
				
			||||||
 | 
					        for (atom* ap : m_asserted_atoms) {
 | 
				
			||||||
 | 
					            th.display_atom(out, *ap);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return out;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    theory_special_relations::theory_special_relations(ast_manager& m):
 | 
					    theory_special_relations::theory_special_relations(ast_manager& m):
 | 
				
			||||||
        theory(m.mk_family_id("special_relations")),
 | 
					        theory(m.mk_family_id("special_relations")),
 | 
				
			||||||
        m_util(m) {
 | 
					        m_util(m) {
 | 
				
			||||||
| 
						 | 
					@ -94,7 +105,7 @@ namespace smt {
 | 
				
			||||||
        ctx.set_var_theory(v, get_id());
 | 
					        ctx.set_var_theory(v, get_id());
 | 
				
			||||||
        atom* a = alloc(atom, v, *r, v0, v1);
 | 
					        atom* a = alloc(atom, v, *r, v0, v1);
 | 
				
			||||||
        m_atoms.push_back(a);
 | 
					        m_atoms.push_back(a);
 | 
				
			||||||
        TRACE("special_relations", tout << mk_pp(atm, get_manager()) << " : " << a->v1() << ' ' << a->v2() << ' ' << gate_ctx << "\n";);
 | 
					        TRACE("special_relations", tout << mk_pp(atm, get_manager()) << " : bv" << v << " v" << a->v1() << " v" << a->v2() << ' ' << gate_ctx << "\n";);
 | 
				
			||||||
        m_bool_var2atom.insert(v, a);
 | 
					        m_bool_var2atom.insert(v, a);
 | 
				
			||||||
        return true;
 | 
					        return true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -291,7 +302,7 @@ namespace smt {
 | 
				
			||||||
            UNREACHABLE();
 | 
					            UNREACHABLE();
 | 
				
			||||||
            res = l_undef;
 | 
					            res = l_undef;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        TRACE("special_relations", r.display(*this, tout););
 | 
				
			||||||
        return res;
 | 
					        return res;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -754,12 +765,7 @@ namespace smt {
 | 
				
			||||||
        out << "Theory Special Relations\n";
 | 
					        out << "Theory Special Relations\n";
 | 
				
			||||||
        display_var2enode(out);
 | 
					        display_var2enode(out);
 | 
				
			||||||
        for (auto const& kv : m_relations) {
 | 
					        for (auto const& kv : m_relations) {
 | 
				
			||||||
            out << mk_pp(kv.m_value->decl(), get_manager()) << ":\n";
 | 
					            kv.m_value->display(*this, out);
 | 
				
			||||||
            kv.m_value->m_graph.display(out);
 | 
					 | 
				
			||||||
            kv.m_value->m_uf.display(out);
 | 
					 | 
				
			||||||
            for (atom* ap : kv.m_value->m_asserted_atoms) {
 | 
					 | 
				
			||||||
                display_atom(out, *ap);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -116,6 +116,8 @@ namespace smt {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            bool add_strict_edge(theory_var v1, theory_var v2, literal_vector const& j);
 | 
					            bool add_strict_edge(theory_var v1, theory_var v2, literal_vector const& j);
 | 
				
			||||||
            bool add_non_strict_edge(theory_var v1, theory_var v2, literal_vector const& j);
 | 
					            bool add_non_strict_edge(theory_var v1, theory_var v2, literal_vector const& j);
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            std::ostream& display(theory_special_relations const& sr, std::ostream& out) const;
 | 
				
			||||||
        };
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue