We consider a set R of rules that explain (part of) the dictionary ∆ in terms of molecules X k that are added to the product side. Our goal is to find a sequence of rule applications which stepwise reduce the difference dictionary ∆ and collect a multiset S of molecules. Each r ∈ R is of the form r ⇝ X r , where r is a dictionary and X r is a corresponding molecule. The application of a rule changes ∆ accordingly. Since our rules make use of simple ions, we allow arbitrary changes of charges. The rule