proposition: Theorem le_S_n : forall n m, (S n <= S m) -> (n <= m).
proof: Proof. Admitted. Theorem le_Sn_n : forall n, ~ (S n <= n). Proof. Admitted. Definition symmetric {X: Type} (R: relation X) := forall a b : X, (R a b) -> (R b a). Theorem le_not_symmetric : ~ (symmetric le). Proof. Admitted. Definition antisymmetric {X: Type} (R: relation X) := forall a b : X, (R a b) -> (R b a) -> a = b. Theorem le_antisymmetric : antisymmetric le. Proof. Admitted. Theorem le_step : forall n m p, n < m -> m <= S p -> n <= p. Proof. Admitted. Definition equivalence {X:Type} (R: relation X) := (reflexive R) /\ (symmetric R) /\ (transitive R). Definition order {X:Type} (R: relation X) := (reflexive R) /\ (antisymmetric R) /\ (transitive R). Definition preorder {X:Type} (R: relation X) := (reflexive R) /\ (transitive R). Theorem le_order : order le. Proof. unfold order. split. - apply le_reflexive. - split. + apply le_antisymmetric. + apply le_trans. Qed.
imports: IndProp