Instead of expecting the user to provide the inputs and outputs and inference rule, supplying the inputs and inference rule is sufficient to generate the output. This output is necessarily consistent with the inputs and inference rule.
>>> from sympy import *
Define an inference rule
def mult_both_sides_by(expr, feed):
return Equality(expr.lhs*feed, expr.rhs*feed, evaluate=False)
>>> expr = parse_latex('a = b')
>>> feed = parse_latex('f')
>>> mult_both_sides_by(expr, feed)
Eq(a*f, b*f)
This generalizes to include the relation
def mult_both_sides_by(expr, feed, relation):
return relation(expr.lhs*feed, expr.rhs*feed, evaluate=False)
>>> mult_both_sides_by(expr, feed, Equality)
Eq(a*f, b*f)
Other relations are available; see https://docs.sympy.org/latest/modules/core.html
>>> mult_both_sides_by(expr, feed, Le)
a*f <= b*f
No comments:
Post a Comment