(* Contribution to the Coq Library   V6.3 (July 1999)                    *)
(****************************************************************************)
(*                                                                          *)
(*                          Constructive Geometry                           *)
(*                             according to                                 *)
(*                            Jan von Plato                                 *)
(*                                                                          *)
(*                               Coq V5.10                                  *)
(*									    *)
(*			        Gilles Kahn 				    *)
(*				   INRIA                                    *)
(*		              Sophia-Antipolis		 	            *)
(*									    *)
(*                                                                          *)
(* Acknowledgments: This work started in Turin in May 95 with Yves Bertot.  *)
(* Thanks to the Newton Institute for providing an exceptional work         *)
(* environment in Summer 1995 so that I could complete this.                *)
(****************************************************************************)
(****************************************************************************)
(*                              basis.v                                     *)
(*                                                                          *)
(* Basic definitions, axioms, figures                                       *)
(****************************************************************************)
Definition Relation (U : Set) := U -> U -> Prop.
Definition Reflexive (U : Set) (R : Relation U) : Prop := forall x : U, R x x.
Definition Transitive (U : Set) (R : Relation U) : Prop :=
forall x y z : U, R x y -> R y z -> R x z.
Definition Symmetric (U : Set) (R : Relation U) : Prop :=
forall x y : U, R x y -> R y x.
Inductive Equivalence (U : Set) (R : Relation U) : Prop :=
Definition_of_equivalence :
Reflexive U R -> Symmetric U R -> Transitive U R -> Equivalence U R.
Definition Negation (U : Set) (R : Relation U) : Relation U :=
fun x y : U => ~ R x y.
Hint Unfold Negation.

(* Specifications: *)
Theorem Sym_imp_NegSym :
forall (U : Set) (R : Relation U),
Symmetric U R -> Symmetric U (Negation U R).