proposition: Lemma lift_upath_on (G H : relType) (f : G -> H) a b p' : (forall x y, f x \in f a :: p' -> f y \in f a :: p' -> f x -- f y -> x -- y) -> injective f -> upath (f a) (f b) p' -> {subset p' <= codom f} -> exists p, upath a b p /\ map f p = p'.
proof: Proof. move => A B /andP [C D] E. case: (lift_pathp_on A B D E) => p [p1 p2]. exists p. split => //. apply/andP. split => //. by rewrite -(map_inj_uniq B) /= p2. Qed.
imports: HB(structures) Coq(Setoid CMorphisms) mathcomp(all_ssreflect) GraphTheory(edone preliminaries bij)