Section OF_LIST.
Variable A: Type.
Let f := fun (m: T.t A) (k_v: T.elt * A) => T.set (fst k_v) (snd k_v) m.
Definition of_list (l: list (T.elt * A)) : T.t A :=
List.fold_left f l (T.empty _).

Lemma of_list_dom:
forall l k, In k (map fst l) -> exists v, T.get k (of_list l) = Some v.