proposition: Theorem cantor_surj : exists f : {surj [set: cantor_space] >-> [set: T]}, continuous f.
proof: Proof. have [[p ppt]|/forallNP xpt] := pselect (exists p : T, p != point). by apply: cantor_surj_twop; exact: ppt. have /Psurj[f cstf] : set_surj [set: cantor_space] [set: T] (cst point). by move=> q _; exists point => //; have /negP/negPn/eqP -> := xpt q. by exists f; rewrite -cstf; exact: cst_continuous. Qed.
imports: mathcomp(all_ssreflect ssralg ssrint ssrnum interval rat) mathcomp(finmap) mathcomp(mathcomp_extra boolp classical_sets functions) mathcomp(cardinality) reals signed topology HB(structures)