proposition: Lemma list_vectors_spec X n (L:list X) v : (forall (p:pos n), vec_pos v p el L) -> v el list_vectors X n L.
proof: Proof. induction v as [|x n xr IH]. - intros _. cbn. now left. - intros H. cbn. eapply in_map_iff. exists (x,xr). split; try easy. apply in_prod. 1: apply (H pos0). apply IH. intros p. apply (H (Fin.FS p)). Qed.
imports: Arith Lia List Bool Eqdep_dec EqdepFacts Undecidability.Shared.Libs.DLW(utils_tac utils_nat utils_list finite pos vec) Undecidability.Synthetic(Definitions DecidabilityFacts EnumerabilityFacts ListEnumerabilityFacts ReducibilityFacts) Undecidability(Shared.ListAutomation Shared.Dec) Undecidability.MuRec.Util.recalg