示例#1
0
    def there_is_a_chance_to_apply_to(self, expression: Expression):
        contains_u = False
        contains_du = False
        for variable in expression.variables:
            if variable.tag == 'u':
                contains_u = True
            if variable.tag == 'du':
                contains_du = True

        return not expression.contains_integral() and contains_du and contains_u
    def solution_tree(self, expression: Expression) -> SolutionTreeNode:
        logger.info("get solution tree for: " + expression.to_string())
        theorems = []
        if expression.contains_derivative():
            theorems += DerivativeTheorems.get_all()
        if expression.contains_integral():
            theorems += IntegrateTheorems.get_all()

        return self.solution_tree_for(expression, theorems,
                                      Theorem('none', None, None, {}))