74
74
intros c x, convert (this (e.symm c) x).symm, simp only [e.apply_symm_apply] },
75
75
end
76
76
77
+ lemma algebra_map_injective [algebra Fq[X] F] [algebra (ratfunc Fq) F]
78
+ [is_scalar_tower Fq[X] (ratfunc Fq) F] : function.injective ⇑(algebra_map Fq[X] F) :=
79
+ begin
80
+ rw is_scalar_tower.algebra_map_eq Fq[X] (ratfunc Fq) F,
81
+ exact function.injective.comp ((algebra_map (ratfunc Fq) F).injective)
82
+ (is_fraction_ring.injective Fq[X] (ratfunc Fq)),
83
+ end
84
+
77
85
namespace function_field
78
86
79
87
/-- The function field analogue of `number_field.ring_of_integers`:
@@ -94,8 +102,27 @@ instance : is_domain (ring_of_integers Fq F) :=
94
102
instance : is_integral_closure (ring_of_integers Fq F) Fq[X] F :=
95
103
integral_closure.is_integral_closure _ _
96
104
97
- variables [algebra (ratfunc Fq) F] [function_field Fq F]
98
- variables [is_scalar_tower Fq[X] (ratfunc Fq) F]
105
+ variables [algebra (ratfunc Fq) F] [is_scalar_tower Fq[X] (ratfunc Fq) F]
106
+
107
+ lemma algebra_map_injective :
108
+ function.injective ⇑(algebra_map Fq[X] (ring_of_integers Fq F)) :=
109
+ begin
110
+ have hinj : function.injective ⇑(algebra_map Fq[X] F),
111
+ { rw is_scalar_tower.algebra_map_eq Fq[X] (ratfunc Fq) F,
112
+ exact function.injective.comp ((algebra_map (ratfunc Fq) F).injective)
113
+ (is_fraction_ring.injective Fq[X] (ratfunc Fq)), },
114
+ rw (algebra_map Fq[X] ↥(ring_of_integers Fq F)).injective_iff,
115
+ intros p hp,
116
+ rw [← subtype.coe_inj, subalgebra.coe_zero] at hp,
117
+ rw (algebra_map Fq[X] F).injective_iff at hinj,
118
+ exact hinj p hp,
119
+ end
120
+
121
+ lemma not_is_field : ¬ is_field (ring_of_integers Fq F) :=
122
+ by simpa [← (is_integral.is_field_iff_is_field (is_integral_closure.is_integral_algebra Fq[X] F)
123
+ (algebra_map_injective Fq F))] using (polynomial.not_is_field Fq)
124
+
125
+ variables [function_field Fq F]
99
126
100
127
instance : is_fraction_ring (ring_of_integers Fq F) F :=
101
128
integral_closure.is_fraction_ring_of_finite_extension (ratfunc Fq) F
0 commit comments