def _is_poison(self):
    """A z3 term is poison if it's name starts with poison, or any of its
    subterms are poison."""
    if self.children():
        for c in self.children():
            if c.is_poison():
                return True
        return False
    else:
        return self.sexpr().startswith('poison.')