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_G x y z:
(x *ₑ y =ₑ z) ∈ E -> Gamma__deq ⊢(2) @var ag (G x y z) : alpha → alpha → alpha → alpha.