in reply to List all different equations for a given one
If you are trying to solve a permutation problem (which is what it sounds like to me), I think you are applying yourself incorrectly. Rather than figuring out how to map your answer to their answer, your parser should generate a canonical read that will necessarily map to yours. For your simple case, it might look like:
my $eq = {op => '+',
terms => [1,
'x',
],
};
where a canonical sorting algorithm is used to order terms. Note that, if you want to accept complex expressions, the sort is nontrivial since you'll need to rank complex references, so cmp won't be enough. This type of format also supports nested operations:
my $eq = {op => '+',
terms => [{ op => '*',
terms => [3,
'z',
],
},
'x',
],
};
You can then do a recursive descent in order to check equivalence. Of course, this isn't going to help you with distributivity.
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.
