Prove that `map` preserves `isDeduplicated` for injective functions (#155)
This pull request adds a proof to `Data.List.Law` that `map` preserves `isDeduplicated` for injective functions. ```agda prop-isDeduplicated-map : ∀ ⦃ _ : Eq a ⦄ ⦃ _ : IsLawfulEq a ⦄ ⦃ _ : Eq b ⦄ ⦃ _ : IsLawfulEq b ⦄ → ∀ (f : a → b) → Injective f → ∀ (xs : List a) → isDeduplicated xs ≡ True → isDeduplicated (map f xs) ≡ True ``` In order to prove this property, it was easier to rework the definition `isDeduplicated` to be primitively recursive. The previous definition `isDeduplicated xs = (nub xs == xs)` is now a proven property rather than a definition.