(* 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.

(* Specifications: *)
Lemma refl_jmeq2 A B (x : T A B) : jmeq2 x x.
Lemma or5P : reflect [\/ b1, b2, b3, b4 | b5] [|| b1, b2, b3, b4 | b5].
Lemma or6P : reflect [\/ b1, b2, b3, b4, b5 | b6] [|| b1, b2, b3, b4, b5 | b6].
End ReflectConnectives.