Arguments revK {T}.
(* Equality and eqType for seq.                                          *)
Section EqSeq.
Variables (n0 : nat) (T : eqType) (x0 : T).
Local Notation nth := (nth x0).
Implicit Type s : seq T.
Implicit Types x y z : T.
Fixpoint eqseq s1 s2 {struct s2} :=
match s1, s2 with
| [::], [::] => true
| x1 :: s1', x2 :: s2' => (x1 == x2) && eqseq s1' s2'
| _, _ => false
end.

(* Specifications: *)
Lemma eqseqP : Equality.axiom eqseq.
Canonical seq_eqMixin := EqMixin eqseqP.