unfold distinct in |- *.
simpl in |- *.
intros.
destruct i; destruct j.
apply
(H0 (Build_finiteT (lt_le_trans index m n in_range_prf H))
(Build_finiteT (lt_le_trans index0 m n in_range_prf0 H))).
simpl in |- *; simpl in H1.
auto.
Qed.
Hint Resolve restricted_seq_preserves_distinct: algebra.
(* The restricted pointwise-generated sequence equals the pointwise-generated sequence of *)
(* restricted sequences *)

Lemma pointwise_restricted :
forall (n N : Nat) (H : n <= N) (B C D : Setoid) (op : Map (cart B C) D)
(f : seq N B) (g : seq N C),
restricted_seq (pointwise op f g) H ='
pointwise op (restricted_seq f H) (restricted_seq g H) in _.