Hint Rewrite @eval_make_args_same : norm2.
Hint Rewrite @eval_make_args_other using (solve [clear; intro Hx; inversion Hx]) : norm.
Infix "oo" := Basics.compose (at level 54, right associativity).
Arguments Basics.compose {A B C} g f x / .

(* Specifications: *)
Lemma compose_backtick:
forall A B C (F: B -> C) (G: A -> B) (J: environ -> A),
`F (`G  J) = `(Basics.compose F G) J.
Lemma compose_eval_make_args_other:
forall {cs: compspecs}  Q i j fsig t0 t t' tl (e: expr) el,
i<>j ->
@liftx (Tarrow environ (LiftEnviron Prop))
(Q oo (eval_id i)) (make_args' ((j,t)::fsig, t0) (eval_exprlist (t'::tl) (e::el))) =
`Q (`(eval_id i) (make_args' (fsig, t0) (eval_exprlist tl el))).