proposition: Fact finite_prod X Y : finite X -> finite Y -> finite (X*Y).
proof: Proof. intros (l & Hl) (m & Hm); exists (list_prod l m). intros []; apply list_prod_spec; auto. 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)