Ltac really_simplify A :=
  let aa := fresh "aa" in
  pose (aa := A); compute in aa; change A with aa; subst aa.

(* Specifications: *)
Lemma eq_rect_r_eq: forall (U: Type) (p: U) Q x h, @eq_rect_r U p Q x p h = x.
Lemma pair_congr: forall (A B: Type) (x x': A) (y y': B), x=x' -> y=y' -> (x,y)=(x',y').