*)

Lemma semBacktrack_sound :
forall (A : Type) (l : seq (nat * G (option A))),
semGen (backtrack l) \subset
(\bigcup_(x in (l :&: (fun x => x.1 <> 0))) (isSome :&: (semGen x.2))) :|:
([set None] :&: (\bigcap_(x in l :&: (fun x => x.1 <> 0)) (semGen x.2))).