Definition ad_monotonic (pf:ad -> ad) :=
forall a a':ad, Nless a a' = true -> Nless (pf a) (pf a') = true.

Lemma alist_semantics_same_tail :
forall (l l':alist A) (a:ad) (y:A),
alist_sorted_2 ((a, y) :: l) ->
alist_sorted_2 ((a, y) :: l') ->
eqm A (alist_semantics A ((a, y) :: l))
(alist_semantics A ((a, y) :: l')) ->
eqm A (alist_semantics A l) (alist_semantics A l').