572 shows "h \<in> ring_hom R S ==> h \<one> = \<one>\<^bsub>S\<^esub>" |
572 shows "h \<in> ring_hom R S ==> h \<one> = \<one>\<^bsub>S\<^esub>" |
573 by (simp add: ring_hom_def) |
573 by (simp add: ring_hom_def) |
574 |
574 |
575 locale ring_hom_cring = cring R + cring S + var h + |
575 locale ring_hom_cring = cring R + cring S + var h + |
576 assumes homh [simp, intro]: "h \<in> ring_hom R S" |
576 assumes homh [simp, intro]: "h \<in> ring_hom R S" |
|
577 (* |
577 notes hom_closed [simp, intro] = ring_hom_closed [OF homh] |
578 notes hom_closed [simp, intro] = ring_hom_closed [OF homh] |
578 and hom_mult [simp] = ring_hom_mult [OF homh] |
579 and hom_mult [simp] = ring_hom_mult [OF homh] |
579 and hom_add [simp] = ring_hom_add [OF homh] |
580 and hom_add [simp] = ring_hom_add [OF homh] |
580 and hom_one [simp] = ring_hom_one [OF homh] |
581 and hom_one [simp] = ring_hom_one [OF homh] |
|
582 *) |
|
583 |
|
584 lemma (in ring_hom_cring) hom_closed [simp, intro]: |
|
585 "x \<in> carrier R ==> h x \<in> carrier S" |
|
586 by (simp add: ring_hom_closed [OF homh]) |
|
587 |
|
588 lemma (in ring_hom_cring) hom_mult [simp]: |
|
589 "[| x \<in> carrier R; y \<in> carrier R |] ==> h (x \<otimes> y) = h x \<otimes>\<^bsub>S\<^esub> h y" |
|
590 by (simp add: ring_hom_mult [OF homh]) |
|
591 |
|
592 lemma (in ring_hom_cring) hom_add [simp]: |
|
593 "[| x \<in> carrier R; y \<in> carrier R |] ==> h (x \<oplus> y) = h x \<oplus>\<^bsub>S\<^esub> h y" |
|
594 by (simp add: ring_hom_add [OF homh]) |
|
595 |
|
596 lemma (in ring_hom_cring) hom_one [simp]: |
|
597 "h \<one> = \<one>\<^bsub>S\<^esub>" |
|
598 by (simp add: ring_hom_one [OF homh]) |
581 |
599 |
582 lemma (in ring_hom_cring) hom_zero [simp]: |
600 lemma (in ring_hom_cring) hom_zero [simp]: |
583 "h \<zero> = \<zero>\<^bsub>S\<^esub>" |
601 "h \<zero> = \<zero>\<^bsub>S\<^esub>" |
584 proof - |
602 proof - |
585 have "h \<zero> \<oplus>\<^bsub>S\<^esub> h \<zero> = h \<zero> \<oplus>\<^bsub>S\<^esub> \<zero>\<^bsub>S\<^esub>" |
603 have "h \<zero> \<oplus>\<^bsub>S\<^esub> h \<zero> = h \<zero> \<oplus>\<^bsub>S\<^esub> \<zero>\<^bsub>S\<^esub>" |