(************************************************************************) (* v * The Coq Proof Assistant / The Coq Development Team *) (* ~ (EXT z | (Strict_Rel_of x z) /\ (Strict_Rel_of z y)) -> (covers y x). End Partial_orders. Hints Unfold Carrier_of Rel_of Strict_Rel_of : sets v62. Hints Resolve Definition_of_covers : sets v62. Section Partial_order_facts. Variable U:Type. Variable D:(PO U). Lemma Strict_Rel_Transitive_with_Rel: (x:U) (y:U) (z:U) (Strict_Rel_of U D x y) -> (Rel_of U D y z) -> (Strict_Rel_of U D x z). Unfold 1 Strict_Rel_of. Red. Elim D; Simpl. Intros C R H' H'0; Elim H'0. Intros H'1 H'2 H'3 x y z H'4 H'5; Split. Apply H'2 with y := y; Tauto. Red; Intro H'6. Elim H'4; Intros H'7 H'8; Apply H'8; Clear H'4. Apply H'3; Auto. Rewrite H'6; Tauto. Qed. Lemma Strict_Rel_Transitive_with_Rel_left: (x:U) (y:U) (z:U) (Rel_of U D x y) -> (Strict_Rel_of U D y z) -> (Strict_Rel_of U D x z). Unfold 1 Strict_Rel_of. Red. Elim D; Simpl. Intros C R H' H'0; Elim H'0. Intros H'1 H'2 H'3 x y z H'4 H'5; Split. Apply H'2 with y := y; Tauto. Red; Intro H'6. Elim H'5; Intros H'7 H'8; Apply H'8; Clear H'5. Apply H'3; Auto. Rewrite <- H'6; Auto. Qed. Lemma Strict_Rel_Transitive: (Transitive U (Strict_Rel_of U D)). Red. Intros x y z H' H'0. Apply Strict_Rel_Transitive_with_Rel with y := y; [ Intuition | Unfold Strict_Rel_of in H' H'0; Intuition ]. Qed. End Partial_order_facts.