fact: Fixpoint rewrites t (ds : list data) : option (list term) := match ds with | nil => Some nil | d :: ds' => match rewrite t d with | None => None | Some u => match rewrites u ds' with | None => None | Some us => Some (u::us) end end end.
imports: Coq(Euclid Wf_nat) CoLoR(LogicUtil ATrs ListUtil RelUtil AMatching ListDec APosition NatUtil)