Module red1 := ext_red_one e_invert.
Set Implicit Arguments.
Set Bullet Behavior "Strict Subproofs".

Lemma subst_head_reduction : forall G a a',
head_reduction G a a' -> forall G1 G2 A b x,
G = G1 ++ [(x, Tm A)] ++ G2
-> AnnTyping G2 b A
-> head_reduction (map (tm_subst_tm_sort b x) G1 ++ G2)
(tm_subst_tm_tm b x a)
(tm_subst_tm_tm b x a').