Instance proper_fold_left: forall (f: A -> B -> A) {Proper_f: Proper (equiv ==> equiv ==> equiv) f}, Proper (Forall2 equiv ==> equiv ==> equiv) (fold_left f).Instance proper_fold_left': forall (f: A -> B -> A) {Proper_f: Proper (RA ==> RB ==> RA) f}, Proper (Forall2 RB ==> RA ==> RA) (fold_left f).Definition not_nil {A: Type} (l: list A): Prop := l <> nil.

Lemma eq_nil_dec {A: Type}: forall (l: list A), {l = nil} + {not_nil l}.