fact: Definition choiceA:= forall x, U x -> (forall z, U z -> R z x -> z <> emptysetU) -> (forall z1 z2, U z1 -> U z2 -> R z1 x -> R z2 x -> (z1 = z2 \/ intersectionU2 z1 z2 = emptysetU)) -> exists2 y, U y & forall z, U z -> R z x -> exists2 s, U s & intersectionU2 y z = doubletonU s s.
imports: mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat)