Fixpoint extendr {A} (l : list A) ls :=
match l, ls with
| x :: xs, y :: ys => (y ++ [x]) :: extendr xs ys
| _, _ => ls
end.

Lemma func_tycontext_sub : forall f V G A V2 G2 (HV : incl V V2) (HG : incl G G2)
(Hdistinct : NoDup (map fst V2 ++ map fst G2)),
tycontext_sub (func_tycontext f V G A) (func_tycontext f V2 G2 A).