Lemma fold_right_perm : forall (A B : Set) (f : B -> A -> A) (o : A) (l0 l1 : list B) (x : B), (forall (a b : B) (c : A), f a (f b c) = f b (f a c)) -> fold_right f o (l0 ++ x :: l1) = fold_right f o (x :: l0 ++ l1).