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.

Lemma lstep_normal_cons_l a A:
Normal lstep (a :: A) -> Normal R a.