@@ -208,10 +208,36 @@ variable {R : Type*} [NonAssocSemiring R]
208
208
def Subsemiring.toNonUnitalSubsemiring (S : Subsemiring R) : NonUnitalSubsemiring R :=
209
209
{ S with }
210
210
211
+ theorem Subsemiring.toNonUnitalSubsemiring_injective :
212
+ Function.Injective (toNonUnitalSubsemiring : Subsemiring R → _) :=
213
+ fun S₁ S₂ h => SetLike.ext'_iff.2 (
214
+ show (S₁.toNonUnitalSubsemiring : Set R) = S₂ from SetLike.ext'_iff.1 h)
215
+
216
+ @[simp]
217
+ theorem Subsemiring.toNonUnitalSubsemiring_inj {S₁ S₂ : Subsemiring R} :
218
+ S₁.toNonUnitalSubsemiring = S₂.toNonUnitalSubsemiring ↔ S₁ = S₂ :=
219
+ toNonUnitalSubsemiring_injective.eq_iff
220
+
221
+ @[simp]
222
+ theorem Subsemiring.mem_toNonUnitalSubsemiring {S : Subsemiring R}
223
+ {x : R} : x ∈ S.toNonUnitalSubsemiring ↔ x ∈ S := Iff.rfl
224
+
225
+ @[simp]
226
+ theorem Subsemiring.coe_toNonUnitalSubsemiring (S : Subsemiring R) :
227
+ (S.toNonUnitalSubsemiring : Set R) = S := rfl
228
+
211
229
theorem Subsemiring.one_mem_toNonUnitalSubsemiring (S : Subsemiring R) :
212
230
(1 : R) ∈ S.toNonUnitalSubsemiring :=
213
231
S.one_mem
214
232
233
+ @[simp]
234
+ theorem Submonoid.subsemiringClosure_toNonUnitalSubsemiring {M : Submonoid R} :
235
+ M.subsemiringClosure.toNonUnitalSubsemiring = .closure M := by
236
+ refine Eq.symm (NonUnitalSubsemiring.closure_eq_of_le ?_ (fun _ hx => ?_))
237
+ · simp [Submonoid.subsemiringClosure_coe]
238
+ · simp [Submonoid.subsemiringClosure_mem] at hx
239
+ induction hx using AddSubmonoid.closure_induction <;> aesop
240
+
215
241
/-- Turn a non-unital subsemiring containing `1` into a subsemiring. -/
216
242
def NonUnitalSubsemiring.toSubsemiring (S : NonUnitalSubsemiring R) (h1 : (1 : R) ∈ S) :
217
243
Subsemiring R :=
@@ -241,7 +267,7 @@ theorem unitization_apply (x : Unitization ℕ s) : unitization s x = x.fst + x.
241
267
rfl
242
268
243
269
theorem unitization_range :
244
- (unitization s).range = subalgebraOfSubsemiring (Subsemiring .closure s) := by
270
+ (unitization s).range = subalgebraOfSubsemiring (.closure s) := by
245
271
have := AddSubmonoidClass.nsmulMemClass (S := S)
246
272
rw [unitization, NonUnitalSubalgebra.unitization_range (hSRA := this), Algebra.adjoin_nat]
247
273
@@ -288,7 +314,7 @@ theorem unitization_apply (x : Unitization ℤ s) : unitization s x = x.fst + x.
288
314
rfl
289
315
290
316
theorem unitization_range :
291
- (unitization s).range = subalgebraOfSubring (Subring .closure s) := by
317
+ (unitization s).range = subalgebraOfSubring (.closure s) := by
292
318
have := AddSubgroupClass.zsmulMemClass (S := S)
293
319
rw [unitization, NonUnitalSubalgebra.unitization_range (hSRA := this), Algebra.adjoin_int]
294
320
0 commit comments