intros.
unfold try_extend in |- *.
set (dgv := dec_gen (seq_set v)) in *.
case dgv.
intro.
red in g.
split; split.
auto.
simpl in |- *; auto.
intro; intro.
clear H1 g dgv H v V F.
simpl in k.
simpl in H0.
induction k; intuition.
inversion_clear H0.
intro.
red in H0; apply False_ind.
auto.
intro.
set (Acv := ACcomplement (not_generates_then_leaves_over n)) in *.
case Acv.
intros.
split; split.
intro; apply False_ind.
simpl in H0.
clear n0 x Acv n dgv H v.
induction k; intuition.
inversion_clear H0.
intros; apply False_ind; intuition.
2: auto with algebra.
intros _.
intro.
red in n0; apply n0.
case (H0 x).
simpl in |- *; auto with algebra.
Qed.

(* Specifications: *)
Lemma extend_prop2 :
forall (k : Nat) (v : seq k V) (H : lin_indep (seq_set v) /\ distinct v),
match try_extend H with
| existT i (existT w H') =>
(i =' k in _ <-> seq_equal v w) /\
(i =' S k in _ -> seq_equal v (Seqtl w))
end.