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 semFreqSize :
forall {A : Type} (ng : nat * G A) (l : seq (nat * G A)) (size : nat),
List.Forall (fun x => x.1 > 0) (ng :: l) ->
semGenSize (freq ((fst ng, snd ng) ;; l)) size <-->
\bigcup_(x in (ng :: l)) semGenSize x.2 size.