Fixpoint beq (s1 s2: t) : bool :=
  match s1, s2 with
  | Nil, Nil => true
  | Cons l1 h1 t1, Cons l2 h2 t2 => zeq l1 l2 && zeq h1 h2 && beq t1 t2
  | _, _ => false
  end.

(* Specifications: *)
Lemma beq_spec: forall s1, ok s1 -> forall s2, ok s2 -> (beq s1 s2 = true <-> (forall x, In x s1 <-> In x s2)).
Lemma beq_spec: forall s1, ok s1 -> forall s2, ok s2 -> (beq s1 s2 = true <-> (forall x, In x s1 <-> In x s2)).