Zulip Chat Archive
Stream: maths
Topic: category of discrete rings
Kenny Lau (Jun 22 2019 at 21:08):
import category_theory.concrete_category data.polynomial universes u v /-- Discrete Commutative Rings (with unity) -/ structure DCRing : Type (u+1) := (carrier : Type u) (cring : comm_ring carrier) (discrete : decidable_eq carrier) attribute [instance] DCRing.cring DCRing.discrete namespace DCRing instance : has_coe_to_sort DCRing.{u} := ⟨Type u, DCRing.carrier⟩ instance (R : DCRing) : comm_ring R := R.cring instance (R : DCRing) : decidable_eq R := R.discrete instance : category_theory.category DCRing.{u} := { hom := λ R S, { f : R → S // is_ring_hom f }, id := λ R, ⟨id, is_ring_hom.id⟩, comp := λ R S T f g, ⟨g.1 ∘ f.1, @@is_ring_hom.comp _ _ f.1 f.2 _ g.1 g.2⟩ } instance (R S : DCRing) : has_coe_to_fun (R ⟶ S) := ⟨λ f, R → S, subtype.val⟩ instance (R S : DCRing) (f : R ⟶ S) : is_ring_hom f := f.2 @[extensionality] theorem hom_ext {R S : DCRing} {f g : R ⟶ S} (H : ∀ x, f x = g x) : f = g := subtype.eq $ funext H def polynomial : DCRing.{u} ⥤ DCRing.{u} := { obj := λ R, ⟨polynomial R, polynomial.comm_ring, polynomial.decidable_eq⟩, map := λ R S f, ⟨polynomial.map f, polynomial.map.is_ring_hom f⟩, map_id' := λ R, hom_ext $ λ x, polynomial.map_id, map_comp' := λ R S T f g, hom_ext $ λ x, (polynomial.map_map f g x).symm } end DCRing
Kenny Lau (Jun 22 2019 at 21:08):
main result:
def polynomial : DCRing.{u} ⥤ DCRing.{u} := { obj := λ R, ⟨polynomial R, polynomial.comm_ring, polynomial.decidable_eq⟩, map := λ R S f, ⟨polynomial.map f, polynomial.map.is_ring_hom f⟩, map_id' := λ R, hom_ext $ λ x, polynomial.map_id, map_comp' := λ R S T f g, hom_ext $ λ x, (polynomial.map_map f g x).symm }
Kenny Lau (Jun 22 2019 at 21:08):
this is just a proof of concept
Reid Barton (Jun 22 2019 at 22:58):
Still like the concept although possibly we can find a word more obviously irrelevant to classical mathematics than "discrete"
Last updated: Dec 20 2023 at 11:08 UTC