Section maps.
Variable A B : Setoid.
Definition Map_law (f : A -> B) := forall x y : A, x =_S y -> f x =_S f y.
Structure > Map : Type :=  {Ap :> A -> B; Pres :> Map_law Ap}.
(*** rewrite rule ***)

Lemma Pres1 : forall (m : Map) (x y : A), x =_S y -> m x =_S m y.