Global Instance Finite_bool : Finite bool.Global Instance Finite_PosMap : Finite PosMap.

(* Specifications: *)
Lemma Qsum_app (l l' : list Q) : Qsum (l ++ l') == Qsum l + Qsum l'.
Lemma Qsum_map_update_probs {X} (q : Q) (l : list (X * Q)) (f : X * Q -> Q) : (forall x q1 q2, f (x, q1 * q2) == q1 * f (x, q2)) -> Qsum (map f (update_probs q l)) == q * Qsum (map f l).
Lemma Qsum_app (l l' : list Q) : Qsum (l ++ l') == Qsum l + Qsum l'.
Lemma Qsum_map_update_probs {X} (q : Q) (l : list (X * Q)) (f : X * Q -> Q) : (forall x q1 q2, f (x, q1 * q2) == q1 * f (x, q2)) -> Qsum (map f (update_probs q l)) == q * Qsum (map f l).