struct H1 as [[_ EQ] | BI1]. inversion EQ.
  edestruct (H0 c1) as (C & P1 & P2); eauto.
  move: (binds_In _ c1 _ _ BI1) => b0.
  unfold erase_context in b0. move: (dom_map _ _ erase_sort G) => DM. fsetdec.
  exists C. repeat split;
         eapply context_Par_irrelevance; eauto.
Qed.

(* Specifications: *)
lc lemmas to cut down the search space. *) Ltac eauto_lc := simpl; eauto using AnnTyping_lc1, Value_lc, AnnDefEq_lc3, AnnPropWff_lc.
[ H4 : forall x A, binds x _ _ -> x `notin` _ |- _ ] => simpl in H4; econstructor; eauto;
move: (IHa0 _ IR ltac:(eauto) ltac:(auto)) => [a0' [? ?]]; exists (a_Conv a0' g); split; [ eapply multi_An_ConvTerm; eauto with lc | simpl; auto