Distributive Factor Out

The Distributive Property of numbers says that we can factor out common values from terms that are connected with an addition operator.

This rule is expressed by the equation ab + ac = a(b + c)

Note

This is a core transformation used in combining like terms, though we normally skip over it mentally because humans are quite smart.

Consider that the 9y + 9y example from above becomes (9 + 9) * y. If you then apply a constant simplification rule, you end up with 18y, which is the result of combining the two like y terms.

Transformations

Given a common parent node, this rule extracts the common value from both sides, leaving an addition and a multiplication.

Addition

ab + ac = a(b + c)

          +               *
         / \             / \
        /   \           /   \
       /     \    ->   /     \
      *       *       a       +
     / \     / \             / \
    a   b   a   c           b   c

Examples

Info

All the examples shown below are drawn from the mathy test suite that verifies the expected input/output combinations for rule transformations.

Input Output Valid
5.8c + (3393c + 6o + -8614k) (5.8 + 3393) * c + (6o + -8614k)
8c + (4v + 9n) + 7n + 4r 8c + 4v + (9 + 7) * n + 4r
11 + 11d + (1d + d^2) 11 + (11 + 1) * d + d^2
5a + o + (o + y) + 4s 5a + (1 + 1) * o + y + 4s
15 + 20j + 9j 15 + (20 + 9) * j
23f + (5f + 5d) (23 + 5) * f + 5d
9y + 9y (9 + 9) * y
14x + 7x (14 + 7) * x
6 + 4 (3 + 2) * 2
7 + 7 (1 + 1) * 7
4 + (z + 4) --- ---
(z * 4 + z * 84x) + 1 --- ---