当前位置: 首页>>代码示例>>C++>>正文


C++ goal::inconsistent方法代码示例

本文整理汇总了C++中goal::inconsistent方法的典型用法代码示例。如果您正苦于以下问题:C++ goal::inconsistent方法的具体用法?C++ goal::inconsistent怎么用?C++ goal::inconsistent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在goal的用法示例。


在下文中一共展示了goal::inconsistent方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: operator

 void operator()(goal & g) {
     if (g.inconsistent())
         return;
     tactic_report report("symmetry-reduce", g);
     vector<ptr_vector<app> > P;    
     expr_ref fml(m());
     to_formula(g, fml);
     app_map occs;
     compute_occurrences(fml, occs);
     find_candidate_permutations(fml, occs, P);
     if (P.empty()) {
         return;
     }
     term_set T, cts;        
     unsigned num_sym_break_preds = 0;
     for (unsigned i = 0; i < P.size(); ++i) {
         term_set& consts = P[i];
         if (invariant_by_permutations(fml, consts)) {
             cts.reset();
             select_terms(fml, consts, T);
             while (!T.empty() && cts.size() < consts.size()) {
                 app* t = select_most_promising_term(fml, T, cts, consts, occs);
                 T.erase(t);                    
                 compute_used_in(t, cts, consts);
                 app* c = select_const(consts, cts);
                 if (!c) break;
                 cts.push_back(c);
                 expr* mem = mk_member(t, cts);
                 g.assert_expr(mem); 
                 num_sym_break_preds++;
                 TRACE("symmetry_reduce", tout << "member predicate: " << mk_pp(mem, m()) << "\n";);
                 fml = m().mk_and(fml.get(), mem);
                 normalize(fml);
             }
         }
     }
开发者ID:AleksandarZeljic,项目名称:z3,代码行数:36,代码来源:symmetry_reduce_tactic.cpp


注:本文中的goal::inconsistent方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。