@@ -529,17 +529,25 @@ protected def id : A →ₐ[R] A :=
529
529
{ commutes' := λ _, rfl,
530
530
..ring_hom.id A }
531
531
532
+ @[simp] lemma coe_id : ⇑(alg_hom.id R A) = id := rfl
533
+
534
+ @[simp] lemma id_to_ring_hom : (alg_hom.id R A : A →+* A) = ring_hom.id _ := rfl
535
+
532
536
end
533
537
534
- @[simp] lemma id_apply (p : A) : alg_hom.id R A p = p := rfl
538
+ lemma id_apply (p : A) : alg_hom.id R A p = p := rfl
535
539
536
540
/-- Composition of algebra homeomorphisms. -/
537
541
def comp (φ₁ : B →ₐ[R] C) (φ₂ : A →ₐ[R] B) : A →ₐ[R] C :=
538
542
{ commutes' := λ r : R, by rw [← φ₁.commutes, ← φ₂.commutes]; refl,
539
543
.. φ₁.to_ring_hom.comp ↑φ₂ }
540
544
541
- @[simp] lemma comp_apply (φ₁ : B →ₐ[R] C) (φ₂ : A →ₐ[R] B) (p : A) :
542
- φ₁.comp φ₂ p = φ₁ (φ₂ p) := rfl
545
+ @[simp] lemma coe_comp (φ₁ : B →ₐ[R] C) (φ₂ : A →ₐ[R] B) : ⇑(φ₁.comp φ₂) = φ₁ ∘ φ₂ := rfl
546
+
547
+ lemma comp_apply (φ₁ : B →ₐ[R] C) (φ₂ : A →ₐ[R] B) (p : A) : φ₁.comp φ₂ p = φ₁ (φ₂ p) := rfl
548
+
549
+ lemma comp_to_ring_hom (φ₁ : B →ₐ[R] C) (φ₂ : A →ₐ[R] B) :
550
+ ⇑(φ₁.comp φ₂ : A →+* C) = (φ₁ : B →+* C).comp ↑φ₂ := rfl
543
551
544
552
@[simp] theorem comp_id : φ.comp (alg_hom.id R A) = φ :=
545
553
ext $ λ x, rfl
@@ -750,8 +758,9 @@ instance : inhabited (A₁ ≃ₐ[R] A₁) := ⟨1⟩
750
758
@[refl]
751
759
def refl : A₁ ≃ₐ[R] A₁ := 1
752
760
753
- @[simp] lemma coe_refl : (@refl R A₁ _ _ _ : A₁ →ₐ[R] A₁) = alg_hom.id R A₁ :=
754
- alg_hom.ext (λ x, rfl)
761
+ @[simp] lemma refl_to_alg_hom : ↑(refl : A₁ ≃ₐ[R] A₁) = alg_hom.id R A₁ := rfl
762
+
763
+ @[simp] lemma coe_refl : ⇑(refl : A₁ ≃ₐ[R] A₁) = id := rfl
755
764
756
765
/-- Algebra equivalences are symmetric. -/
757
766
@[symm]
@@ -794,7 +803,10 @@ def trans (e₁ : A₁ ≃ₐ[R] A₂) (e₂ : A₂ ≃ₐ[R] A₃) : A₁ ≃
794
803
@[simp] lemma symm_apply_apply (e : A₁ ≃ₐ[R] A₂) : ∀ x, e.symm (e x) = x :=
795
804
e.to_equiv.symm_apply_apply
796
805
797
- @[simp] lemma trans_apply (e₁ : A₁ ≃ₐ[R] A₂) (e₂ : A₂ ≃ₐ[R] A₃) (x : A₁) :
806
+ @[simp] lemma coe_trans (e₁ : A₁ ≃ₐ[R] A₂) (e₂ : A₂ ≃ₐ[R] A₃) :
807
+ ⇑(e₁.trans e₂) = e₂ ∘ e₁ := rfl
808
+
809
+ lemma trans_apply (e₁ : A₁ ≃ₐ[R] A₂) (e₂ : A₂ ≃ₐ[R] A₃) (x : A₁) :
798
810
(e₁.trans e₂) x = e₂ (e₁ x) := rfl
799
811
800
812
@[simp] lemma comp_symm (e : A₁ ≃ₐ[R] A₂) :
@@ -805,6 +817,10 @@ by { ext, simp }
805
817
alg_hom.comp ↑e.symm (e : A₁ →ₐ[R] A₂) = alg_hom.id R A₁ :=
806
818
by { ext, simp }
807
819
820
+ theorem left_inverse_symm (e : A₁ ≃ₐ[R] A₂) : function.left_inverse e.symm e := e.left_inv
821
+
822
+ theorem right_inverse_symm (e : A₁ ≃ₐ[R] A₂) : function.right_inverse e.symm e := e.right_inv
823
+
808
824
/-- If `A₁` is equivalent to `A₁'` and `A₂` is equivalent to `A₂'`, then the type of maps
809
825
`A₁ →ₐ[R] A₂` is equivalent to the type of maps `A₁' →ₐ[R] A₂'`. -/
810
826
def arrow_congr {A₁' A₂' : Type *} [semiring A₁'] [semiring A₂'] [algebra R A₁'] [algebra R A₂']
0 commit comments