proposition: Lemma rel_map_eq : forall (A B : Type)(ls1 : list A)(rel1 : A -> B -> Prop) ls', rel_map rel1 ls1 ls' -> forall ls2 (rel2 : A -> B -> Prop), ls1 = ls2 -> (forall a b, In a ls1 -> In b ls' -> rel1 a b -> rel2 a b) -> rel_map rel2 ls2 ls'.
proof: Proof. induction 1; intuition; subst. econstructor. econstructor. eapply IHrel_map; eauto. intuition. eapply H2. simpl. intuition. simpl. intuition. trivial. Qed.
imports: FCF.Rat List Permutation Arith FCF.EqDec FCF.StdNat Bool Permutation