proposition: Lemma opposite_is_preorder1 r: preorder r -> preorder (opp_order r).
proof: Proof. move=> [gr rr tr]. have go: (sgraph (opp_order r)) by fprops. have ss: (sub (substrate (opp_order r)) (substrate r)). move=> t /(substrate_P go) [] [y] /igraph_pP => h; substr_tac. split => //. by move=> y ys; apply /igraph_pP;apply: rr; apply: ss. move => x y z /igraph_pP p1 /igraph_pP p2; apply /igraph_pP; apply: tr p2 p1. Qed.
imports: mathcomp(ssreflect ssrfun ssrbool eqtype ssrnat)