Section ListRelations.
Variable (X : Type) (R: X -> X -> Prop).
Inductive lstep: list X -> list X -> Prop :=
| stepHead s s' A: R s s' -> lstep (s :: A) (s' :: A)
| stepTail s A A': lstep A A' -> lstep (s :: A) (s :: A').
Hint Constructors lstep : core.
Global Instance lsteps_cons :
Proper (star R ++> star lstep ++> star lstep) cons.
Hint Resolve confluence_lstep : core.
Global Instance equiv_lstep_cons_proper:
Proper (equiv R ++> equiv lstep ++> equiv lstep) cons.

Lemma not_equiv_lstep_nil_cons a A:
~ equiv lstep nil (a :: A).