Instance bindUnsized
{A B} (g : G A) (f : A -> G B) `{Unsized _ g} `{forall x, Unsized (f x)} :
Unsized (bindGen g f).
Instance bindMonotonic
{A B} (g : G A) (f : A -> G B) `{SizeMonotonic _ g} `{forall x, SizeMonotonic (f x)} :
SizeMonotonic (bindGen g f).
Instance bindMonotonicOpt
{A B} (g : G A) (f : A -> G (option B))
`{SizeMonotonic _ g} `{forall x, SizeMonotonicOpt (f x)} :
SizeMonotonicOpt (bindGen g f).
Instance bindMonotonicStrong
{A B} (g : G A) (f : A -> G B) `{SizeMonotonic _ g}
`{forall x, semGen g x -> SizeMonotonic (f x)} :
SizeMonotonic (bindGen g f).
Instance bindMonotonicOptStrong
{A B} (g : G A) (f : A -> G (option B)) `{SizeMonotonic _ g}
`{forall x, semGen g x -> SizeMonotonicOpt (f x)} :
SizeMonotonicOpt (bindGen g f).

(* Specifications: *)
(* begin semBindUnsized1 *)
Lemma semBindUnsized1 {A B} (g : G A) (f : A -> G B) `{H : Unsized _ g}:
semGen (bindGen g f) <--> \bigcup_(a in semGen g) semGen (f a).