proposition: Lemma inj_left_compose2C (a b c:Set) (f:a->b) (f':b->c): injectiveC (f' \o f) -> surjectiveC f -> injectiveC f'.
proof: Proof. move=> ic sf x x' sv. move: (sf x) (sf x') => [y yv] [y' y'v]. have: (y = y') by apply: ic; rewrite !composeC_ev yv y'v sv. by rewrite -yv -y'v; move=>->. Qed.
imports: mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat)