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


Python z3.is_app函数代码示例

本文整理汇总了Python中z3.is_app函数的典型用法代码示例。如果您正苦于以下问题:Python is_app函数的具体用法?Python is_app怎么用?Python is_app使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


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

示例1: infix_args_core

 def infix_args_core(self, a, d, xs, r):
     sz = len(r)
     k  = a.decl().kind()
     p  = self.get_precedence(k)
     first = True
     for child in a.children():
         child_pp = self.pp_expr(child, d+1, xs)
         child_k = None
         if z3.is_app(child):
             child_k = child.decl().kind()
         if k == child_k and (self.is_assoc(k) or (first and self.is_left_assoc(k))):
             self.infix_args_core(child, d, xs, r)
             sz = len(r)
             if sz > self.max_args:
                 return
         elif self.is_infix_unary(child_k):
             child_p = self.get_precedence(child_k)
             if p > child_p or (_is_add(k) and _is_sub(child_k)) or (_is_sub(k) and first and _is_add(child_k)):
                 r.append(child_pp)
             else: 
                 r.append(self.add_paren(child_pp))
             sz = sz + 1
         elif z3.is_quantifier(child):
             r.append(self.add_paren(child_pp))
         else:
             r.append(child_pp)
             sz = sz + 1
         if sz > self.max_args:
             r.append(self.pp_ellipses())
             return
         first = False
开发者ID:Moondee,项目名称:Artemis,代码行数:31,代码来源:z3printer.py

示例2: translate

    def translate(self, expr, bound_variables=[]):
        if z3.is_const(expr):
            return self.mk_const(expr)
#                raise Z3_Unexpected_Expression('Unrecognized constant')
        elif z3.is_var(expr):    # a de Bruijn indexed bound variable
            bv_length = len(bound_variables)
            return bound_variables[bv_length - z3.get_var_index(expr) - 1]
        elif z3.is_app(expr):
            args = [self.translate(expr.arg(i), bound_variables)
                for i in range(expr.num_args())]
            return self.mk_fun(expr.decl())(*args)

#            else:
#                raise Z3_Unexpected_Expression(expr)
        elif z3.is_quantifier(expr):
            num_vars = expr.num_vars()
#            vars = [language.const_dict[expr.var_name(i)]
#                for i in range(num_vars)]
            vars = [const(expr.var_name(i), self.mk_sort(expr.var_sort(i))) \
                for i in range(num_vars)]
            new_bound_variables = bound_variables + vars
            body = self.translate(expr.body(), new_bound_variables)
            if expr.is_forall():
                return forall(vars, body)
            else:
                return exists(vars, body)

        elif z3.is_func_decl(expr):
            return self.mk_fun(expr)
        else:
            print expr.kind
            raise Z3_Unexpected_Expression(expr)
开发者ID:leodemoura,项目名称:boole,代码行数:32,代码来源:z3_interface.py

示例3: visitor_app

def visitor_app(e):
    if z3.is_app(e) and e.decl().kind() == z3.Z3_OP_UNINTERPRETED:
        if e.num_args() > 0:
            yield e
            for ch in e.children():
                for e0 in visitor_app(ch):
                    yield e0
开发者ID:cxcfan,项目名称:PZ3,代码行数:7,代码来源:sparsecounter.py

示例4: pp_power_arg

 def pp_power_arg(self, arg, d, xs):
     r = self.pp_expr(arg, d+1, xs)
     k = None
     if z3.is_app(arg):
         k = arg.decl().kind()
     if self.is_infix_unary(k) or (z3.is_rational_value(arg) and arg.denominator_as_long() != 1):
         return self.add_paren(r)
     else:
         return r
开发者ID:Moondee,项目名称:Artemis,代码行数:9,代码来源:z3printer.py

示例5: pp_expr

 def pp_expr(self, a, d, xs):
     self.visited = self.visited + 1
     if d > self.max_depth or self.visited > self.max_visited:
         return self.pp_ellipses()
     if z3.is_app(a):
         return self.pp_app(a, d, xs)
     elif z3.is_quantifier(a):
         return self.pp_quantifier(a, d, xs)
     elif z3.is_var(a):
         return self.pp_var(a, d, xs)
     else:
         return to_format(self.pp_unknown())
开发者ID:Moondee,项目名称:Artemis,代码行数:12,代码来源:z3printer.py

示例6: existVars

 def existVars(self, v1, v2):
     """
     create a list of variables to be bound
     """
     v1_str = [str(v) for v in v1]
     v2_filtered = list()
     for v in v2:
         if z3.is_not(v):
             v2_filtered.append(v.children()[0])
         elif z3.is_app(v) and not z3.is_not(v):
             v2_filtered.append(v)
     for v in v2_filtered:
         if str(v) not in v1_str : v1.append(v)
     return v1
开发者ID:edmcman,项目名称:seahorn,代码行数:14,代码来源:par_inc.py

示例7: visitor

 def visitor(e, seen):
     if e in seen:
         return
     seen[e] = True
     yield e
     if is_app(e):
         for ch in e.children():
             for e in visitor(ch, seen):
                 yield e
         return
     if is_quantifier(e):
         for e in visitor(e.body(), seen):
             yield e
         return
开发者ID:AndriyLin,项目名称:Utils,代码行数:14,代码来源:z3.py

示例8: fp_add_cover

def fp_add_cover (fp, pred, lemma, level=-1):
    # no trivial lemmas
    if z3.is_true (lemma): return

    assert (z3.is_app (pred))
    sub = []
    for i in range (0, pred.num_args ()):
        arg = pred.arg (i)
        sub.append ((arg,
                     z3.Var (i, arg.decl ().range ())))

    tlemma = z3.substitute (lemma, sub)
    if verbose:
        print "Lemma for ", pred.decl (), ": ", tlemma
    fp.add_cover (level, pred.decl (), tlemma)
开发者ID:coco-team,项目名称:zustre,代码行数:15,代码来源:utils.py

示例9: pp_unary

 def pp_unary(self, a, d, xs):
     k  = a.decl().kind()
     p  = self.get_precedence(k)
     child    = a.children()[0]
     child_k  = None
     if z3.is_app(child):
         child_k = child.decl().kind()
     child_pp = self.pp_expr(child, d+1, xs)        
     if k != child_k and self.is_infix_unary(child_k):
         child_p = self.get_precedence(child_k)
         if p <= child_p:
             child_pp = self.add_paren(child_pp)
     if z3.is_quantifier(child):
         child_pp = self.add_paren(child_pp)
     name = self.pp_name(a)
     return compose(to_format(name), indent(_len(name), child_pp))
开发者ID:Moondee,项目名称:Artemis,代码行数:16,代码来源:z3printer.py

示例10: __init__

  def __init__ (self, vs):
    if z3.is_app (vs):
      vs = [vs]

    self._saved_vs = vs
    self._num_vars = len (vs)

    num_vars = self._num_vars

    self._vs = (z3.Ast * num_vars) ()
    for i in range (num_vars):
      self._vs [i] = vs[i].as_ast ()

    self._pats = (z3.Pattern * 0) ()
    self._num_pats = 0

    self._num_no_pats = 0
    self._no_pats = (z3.Ast * 0) ()
开发者ID:edmcman,项目名称:seahorn,代码行数:18,代码来源:z3_utils.py

示例11: find_atomic_terms

def find_atomic_terms (exp, terms = list (), seen = set ()):
  """ Finds all declarations in an expression """

  if (z3.is_quantifier (exp)):
    return find_atomic_terms (exp.body (), terms, seen)

  if not (z3.is_app (exp)) : return terms

  if z3AstRefKey (exp) in seen: return terms

  seen.add (z3AstRefKey (exp))
  decl = exp.decl ()

  # atomic term
  if decl.kind () == z3.Z3_OP_UNINTERPRETED:
    if z3AstRefKey (decl) not in seen:
      seen.add (z3AstRefKey (decl))
      terms.append (decl)
  # uninterpreted can also have kids
  for k in exp.children (): find_atomic_terms (k, terms, seen)
  return terms
开发者ID:edmcman,项目名称:seahorn,代码行数:21,代码来源:z3_utils.py

示例12: z3ExpChildGenerator

def z3ExpChildGenerator (exp) :
  if z3.is_app (exp) :
    for i in range (exp.num_args ()) :
      yield exp.arg (i)
开发者ID:edmcman,项目名称:seahorn,代码行数:4,代码来源:z3_utils.py

示例13: getFirstConjunct

def getFirstConjunct (exp) :
  assert z3.is_app (exp)
  if z3.is_and (exp) : return exp.arg (0)
  else : return exp
开发者ID:edmcman,项目名称:seahorn,代码行数:4,代码来源:z3_utils.py


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