(*could prove this w/ perm lemma on rsort*)
induction l... simpl. rewrite <- IHl. apply listd_insert.
Qed.
End ListDenoteInsert.
Section ListDenoteInsertUniq.
Context {A T : Type}.
Variables (f : A -> T) (g : T -> T -> T) (b : T).
Variable (gS : forall x y, g x y = g y x).
Variable (gA : forall x y z, g x (g y z) = g (g x y) z).
Variable (cmp : A -> A -> comparison).
Variable (Hcmp : forall x y, Eq = cmp x y ->
forall b, g (f x) (g (f y) b) = g (f y) b).

(* Specifications: *)
Lemma listd_insert_uniq a l :
listd f g b (insert_uniq cmp a l) = g (f a) (list_denote f g b l).