proposition: Fact is_lcm_mult p q l k : is_lcm p q l -> is_lcm (k*p) (k*q) (k*l).
proof: Proof. intros (H1 & H2 & H3); repeat (split; auto). intros r (a & Ha) (b & Hb). destruct (eq_nat_dec k 0) as [ Hk | Hk ]. + subst; simpl; auto. + assert (a*p = b*q) as H4. { rewrite <- Nat.mul_cancel_r with (1 := Hk). do 2 rewrite <- Nat.mul_assoc, (Nat.mul_comm _ k). rewrite <- Hb; auto. } rewrite Ha, Nat.mul_assoc, (Nat.mul_comm _ k), <- Nat.mul_assoc. apply divides_mult_compat; auto. apply H3; auto. rewrite H4; auto. Qed.
imports: List Arith Lia Permutation Extraction Undecidability.Shared.Libs.DLW.Utils(utils_tac utils_list)