(* john major on pairs *)
Section Coercions2.
Variable (T : Type -> Type -> Type).
Program
Definition coerce2 A1 A2 B1 B2 (x : T A1 A2) :
(A1, A2) = (B1, B2) -> T B1 B2.

Lemma or5P : reflect [\/ b1, b2, b3, b4 | b5] [|| b1, b2, b3, b4 | b5].