Matching mathematical expressions
We encounter mathematical operations all the time. Logic programming is an efficient way of comparing expressions and finding out unknown values. Let's see how to do that.
Create a new Python file and import the following packages:
from logpy import run, var, fact
import logpy.assoccomm as la
Define a couple of mathematical operations:
# Define mathematical operations
add = 'addition'
mul = 'multiplication'
Both addition and multiplication are commutative operations (meaning the operands can be flipped without changing the result). Let's specify that:
# Declare that these operations are commutative
# using the facts system
fact(la.commutative, mul)
fact(la.commutative, add)
fact(la.associative, mul)
fact(la.associative, add)
Let's define some variables:
# Define some variables
a, b, c = var('a'), var('b'), var('c')
Consider...