Set Warnings "-extraction-opaque-accessed,-extraction".
Set Warnings "-notation-overridden,-parsing".
GenLow GenLowInterface
GenHighImpl GenHighInterface
RandomQC Tactics Sets.
Set Bullet Behavior "Strict Subproofs".
Module Import GenHigh := GenHighImpl.Impl GenLow.

Lemma semFreq :
forall {A : Type} (ng : nat * G A) (l : seq (nat * G A)),
List.Forall (fun x => x.1 > 0) (ng :: l) ->
semGen (freq ((fst ng, snd ng) ;; l)) <-->
\bigcup_(x in (ng :: l)) semGen x.2.