@@ -972,9 +972,7 @@ instance rename.is_ring_hom
972
972
973
973
section equiv
974
974
975
- variables (α) [comm_ring α]
976
-
977
- set_option class.instance_max_depth 40
975
+ variables (α) [comm_semiring α]
978
976
979
977
/-- The ring isomorphism between multivariable polynomials in no variables and the ground ring. -/
980
978
def pempty_ring_equiv : mv_polynomial pempty α ≃+* α :=
@@ -1018,7 +1016,7 @@ def ring_equiv_of_equiv (e : β ≃ γ) : mv_polynomial β α ≃+* mv_polynomia
1018
1016
map_add' := rename_add e }
1019
1017
1020
1018
/-- The ring isomorphism between multivariable polynomials induced by a ring isomorphism of the ground ring. -/
1021
- def ring_equiv_congr [comm_ring γ] (e : α ≃+* γ) : mv_polynomial β α ≃+* mv_polynomial β γ :=
1019
+ def ring_equiv_congr [comm_semiring γ] (e : α ≃+* γ) : mv_polynomial β α ≃+* mv_polynomial β γ :=
1022
1020
{ to_fun := map e,
1023
1021
inv_fun := map e.symm,
1024
1022
left_inv := assume p,
@@ -1035,9 +1033,6 @@ def ring_equiv_congr [comm_ring γ] (e : α ≃+* γ) : mv_polynomial β α ≃+
1035
1033
section
1036
1034
variables (β γ δ)
1037
1035
1038
- instance ring_on_sum : ring (mv_polynomial (β ⊕ γ) α) := by apply_instance
1039
- instance ring_on_iter : ring (mv_polynomial β (mv_polynomial γ α)) := by apply_instance
1040
-
1041
1036
/--
1042
1037
The function from multivariable polynomials in a sum of two types,
1043
1038
to multivariable polynomials in one of the types,
@@ -1074,13 +1069,9 @@ See `sum_ring_equiv` for the ring isomorphism.
1074
1069
def iter_to_sum : mv_polynomial β (mv_polynomial γ α) → mv_polynomial (β ⊕ γ) α :=
1075
1070
eval₂ (eval₂ C (X ∘ sum.inr)) (X ∘ sum.inl)
1076
1071
1077
- section
1078
-
1079
1072
instance is_semiring_hom_iter_to_sum : is_semiring_hom (iter_to_sum α β γ) :=
1080
1073
eval₂.is_semiring_hom _ _
1081
1074
1082
- end
1083
-
1084
1075
lemma iter_to_sum_C_C (a : α) : iter_to_sum α β γ (C (C a)) = C a :=
1085
1076
eq.trans (eval₂_C _ _ (C a)) (eval₂_C _ _ _)
1086
1077
@@ -1091,7 +1082,7 @@ lemma iter_to_sum_C_X (c : γ) : iter_to_sum α β γ (C (X c)) = X (sum.inr c)
1091
1082
eq.trans (eval₂_C _ _ (X c)) (eval₂_X _ _ _)
1092
1083
1093
1084
/-- A helper function for `sum_ring_equiv`. -/
1094
- def mv_polynomial_equiv_mv_polynomial [comm_ring δ]
1085
+ def mv_polynomial_equiv_mv_polynomial [comm_semiring δ]
1095
1086
(f : mv_polynomial β α → mv_polynomial γ δ) (hf : is_semiring_hom f)
1096
1087
(g : mv_polynomial γ δ → mv_polynomial β α) (hg : is_semiring_hom g)
1097
1088
(hfgC : ∀a, f (g (C a)) = C a)
@@ -1136,15 +1127,6 @@ begin
1136
1127
{ apply mv_polynomial.is_semiring_hom_iter_to_sum α β γ }
1137
1128
end
1138
1129
1139
- instance option_ring : ring (mv_polynomial (option β) α) :=
1140
- mv_polynomial.ring
1141
-
1142
- instance polynomial_ring : ring (polynomial (mv_polynomial β α)) :=
1143
- @comm_ring.to_ring _ polynomial.comm_ring
1144
-
1145
- instance polynomial_ring2 : ring (mv_polynomial β (polynomial α)) :=
1146
- by apply_instance
1147
-
1148
1130
/--
1149
1131
The ring isomorphism between multivariable polynomials in `option β` and
1150
1132
polynomials with coefficients in `mv_polynomial β α`.
0 commit comments