equal
deleted
inserted
replaced
293 |
293 |
294 lemma transfer_nat_int_multiplicity: "p >= 0 \<Longrightarrow> n >= 0 \<Longrightarrow> |
294 lemma transfer_nat_int_multiplicity: "p >= 0 \<Longrightarrow> n >= 0 \<Longrightarrow> |
295 multiplicity (nat p) (nat n) = multiplicity p n" |
295 multiplicity (nat p) (nat n) = multiplicity p n" |
296 by (auto simp add: multiplicity_int_def) |
296 by (auto simp add: multiplicity_int_def) |
297 |
297 |
298 declare TransferMorphism_nat_int[transfer add return: |
298 declare transfer_morphism_nat_int[transfer add return: |
299 transfer_nat_int_prime_factors transfer_nat_int_prime_factors_closure |
299 transfer_nat_int_prime_factors transfer_nat_int_prime_factors_closure |
300 transfer_nat_int_multiplicity] |
300 transfer_nat_int_multiplicity] |
301 |
301 |
302 |
302 |
303 lemma transfer_int_nat_prime_factors: |
303 lemma transfer_int_nat_prime_factors: |
310 |
310 |
311 lemma transfer_int_nat_multiplicity: |
311 lemma transfer_int_nat_multiplicity: |
312 "multiplicity (int p) (int n) = multiplicity p n" |
312 "multiplicity (int p) (int n) = multiplicity p n" |
313 by (auto simp add: multiplicity_int_def) |
313 by (auto simp add: multiplicity_int_def) |
314 |
314 |
315 declare TransferMorphism_int_nat[transfer add return: |
315 declare transfer_morphism_int_nat[transfer add return: |
316 transfer_int_nat_prime_factors transfer_int_nat_prime_factors_closure |
316 transfer_int_nat_prime_factors transfer_int_nat_prime_factors_closure |
317 transfer_int_nat_multiplicity] |
317 transfer_int_nat_multiplicity] |
318 |
318 |
319 |
319 |
320 subsection {* Properties of prime factors and multiplicity for nats and ints *} |
320 subsection {* Properties of prime factors and multiplicity for nats and ints *} |
634 "(PROD x : A. int (f x)) >= 0" |
634 "(PROD x : A. int (f x)) >= 0" |
635 apply (rule setsum_nonneg, auto) |
635 apply (rule setsum_nonneg, auto) |
636 apply (rule setprod_nonneg, auto) |
636 apply (rule setprod_nonneg, auto) |
637 done |
637 done |
638 |
638 |
639 declare TransferMorphism_nat_int[transfer |
639 declare transfer_morphism_nat_int[transfer |
640 add return: transfer_nat_int_sum_prod_closure3 |
640 add return: transfer_nat_int_sum_prod_closure3 |
641 del: transfer_nat_int_sum_prod2 (1)] |
641 del: transfer_nat_int_sum_prod2 (1)] |
642 |
642 |
643 lemma multiplicity_setprod_int: "p >= 0 \<Longrightarrow> finite S \<Longrightarrow> |
643 lemma multiplicity_setprod_int: "p >= 0 \<Longrightarrow> finite S \<Longrightarrow> |
644 (ALL x : S. f x > 0) \<Longrightarrow> |
644 (ALL x : S. f x > 0) \<Longrightarrow> |
655 apply auto |
655 apply auto |
656 apply (rule setsum_cong) |
656 apply (rule setsum_cong) |
657 apply auto |
657 apply auto |
658 done |
658 done |
659 |
659 |
660 declare TransferMorphism_nat_int[transfer |
660 declare transfer_morphism_nat_int[transfer |
661 add return: transfer_nat_int_sum_prod2 (1)] |
661 add return: transfer_nat_int_sum_prod2 (1)] |
662 |
662 |
663 lemma multiplicity_prod_prime_powers_nat: |
663 lemma multiplicity_prod_prime_powers_nat: |
664 "finite S \<Longrightarrow> (ALL p : S. prime (p::nat)) \<Longrightarrow> |
664 "finite S \<Longrightarrow> (ALL p : S. prime (p::nat)) \<Longrightarrow> |
665 multiplicity p (PROD p : S. p ^ f p) = (if p : S then f p else 0)" |
665 multiplicity p (PROD p : S. p ^ f p) = (if p : S then f p else 0)" |