fact: Definition cantor_bernstein_bij_v1 X Y f g := let Z:= Vfs g Y in let h := fun w => Vf g (Vf f w) in let A := Zo (\Po X) (fun x=> forall y, inc y x -> inc (h y) x) in let D := intersection (Zo A (sub (X -s Z))) in let f4 := (Lf (fun y => Yo (inc y D) (h y) y) X Z) in inverse_fun (restriction1 g (source g)) \co f4.
imports: mathcomp(ssreflect ssrbool eqtype ssrfun)