Section Typing.
Variable (E: list deq).
Definition Gamma__deq :=
tab (fun x => if partition_F_G x then (alpha → alpha) else (alpha → alpha → alpha → alpha))
(S (Sum (Fs E) + Sum (Gs E))).
Arguments Gamma__deq: simpl never.

Lemma typing_F x:
x ∈ Vars__de E -> Gamma__deq ⊢(2) @var ag (F x) : alpha → alpha.