proposition: Fact fin_t_prod X Y (P Q : _ -> Prop) : @fin_t X P -> @fin_t Y Q -> fin_t (fun c => P (fst c) /\ Q (snd c)).
proof: Proof. intros (l & Hl) (m & Hm). exists (list_prod l m); intro; rewrite list_prod_spec, Hl, Hm; tauto. Qed.
imports: List Arith Lia Eqdep_dec Bool Undecidability.Shared.Libs.DLW.Utils(utils_tac utils_list utils_nat) Undecidability.Shared.Libs.DLW.Vec(pos vec)