End BIJECTION.
Section PROD.
Variable A B : Type.
Variable agA: ageable A.
Let levelAB (x:prod A B) := level (fst x).
Let age1AB (x:prod A B) :=
match age1 (fst x) with
| None => None
| Some a' => Some (a',snd x)
end.

Lemma prod_nec_split : forall n x n' x',
@necR (prod A B) ag_prod (n,x) (n',x') <-> necR n n' /\ x = x'.