proposition: Fact Zp_mult_plus_distr_l : forall x y z, x ⊗ (y ⊕ z) = x ⊗ y ⊕ x ⊗ z.
proof: Proof. intros (x & ?) (y & ?) (z & ?); apply Zp_inj; simpl. rewrite <- rem_plus, <- rem_scal; f_equal; ring. Qed.
imports: Arith Lia ZArith List Permutation Eqdep_dec Undecidability.Shared.Libs.DLW.Utils(utils_tac utils_list gcd prime binomial sums php) Undecidability.H10.ArithLibs(matrix)