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

Lemma alist_semantics_tail : forall (l:alist A) (a:ad) (y:A), alist_sorted_2 ((a, y) :: l) -> eqm A (alist_semantics A l) (fun a0:ad => if Neqb a a0 then None else alist_semantics A ((a, y) :: l) a0).