set "baseuri" "cic:/matita/Z/dirichlet_product".
+include "nat/primes.ma".
include "Z/sigma_p.ma".
include "Z/times.ma".
(* da spostare *)
+(* spostati in div_and_mod.ma
theorem mod_SO: \forall n:nat. mod n (S O) = O.
intro.
apply sym_eq.
apply times_n_SO
|apply le_n
]
-qed.
+qed.*)
theorem and_true: \forall a,b:bool.
andb a b =true \to a =true \land b= true.
assumption
]
qed.
-
+(* spostato in primes.ma
theorem divides_to_div: \forall n,m.divides n m \to m/n*n = m.
intro.
elim (le_to_or_lt_eq O n (le_O_n n))
rewrite > H3.
reflexivity
]
-qed.
-
+qed.*)
+(* spostato in div_and_mod.ma
theorem le_div: \forall n,m. O < n \to m/n \le m.
intros.
rewrite > (div_mod m n) in \vdash (? ? %)
]
|assumption
]
-qed.
+qed.*)
theorem sigma_p2_eq:
\forall g: nat \to nat \to Z.
]
qed.
+(* spostato in primes.ma (non in div_and_mod.ma perche' serve il predicato divides)
theorem div_div: \forall n,d:nat. O < n \to divides d n \to
n/(n/d) = d.
intros.
]
]
qed.
-
+*)
theorem commutative_dirichlet_product: \forall f,g:nat \to Z.\forall n. O < n \to
dirichlet_product f g n = dirichlet_product g f n.
intros.