Arrows that compose
Ukurasa huu bado haujatafsiriwa kwa Kiswahili, kwa hiyo unaonyeshwa kwa English.
Saidia kutafsiri →Swali
What do functions between sets, maps between groups and continuous maps between shapes have in common? What if we studied only the arrows?
Fanya jaribio kabla ya kuendelea kusoma. Hakuna njia mbaya ya kuchunguza.
Jaribio
Mishale inayojumuika
Bofya mishale ili kujenga njia. Kila njia hujumuika kuwa mshale mmoja — na mabano hayajalishi kamwe.
Mshale wako wa mjumuisho
Anza kwa kubofya mshale wowote.
Njia mbili za kuweka mabano katika h ∘ g ∘ f
| x | (g∘f)(x) | h((g∘f)(x)) | (h∘g)(f(x)) |
|---|---|---|---|
| 1 | x | 1 | 1 |
| 2 | z | 0 | 0 |
| 3 | x | 1 | 1 |
Safu wima mbili za mwisho hukubaliana daima: h ∘ (g ∘ f) = (h ∘ g) ∘ f. Hiyo ndiyo sifa ya ushirikishi.
Vidokezo, ukivitaka
Kinachoendelea
Kinachoendelea
Every path of arrows in the experiment composed to a single arrow, the identity arrows changed nothing, and the two ways of bracketing always agreed. These are exactly the laws that define a category:
- a collection of objects;
- for any two objects , a collection of arrows (or morphisms) ;
- a composition of arrows and into an arrow ;
- an identity arrow on every object;
such that composition is associative and identities are neutral.
Here is that definition in Lean. Our version writes composition in "diagrammatic" order — first the left arrow, then the right — the same convention Mathlib uses for its ≫ notation:
/-- A **category** has objects, and for any two objects `X` and `Y` a type `Hom X Y` of
morphisms (arrows) from `X` to `Y`, together with
* an identity arrow `id X : Hom X X` for every object, and
* composition: from `f : Hom X Y` and `g : Hom Y Z` we get `comp f g : Hom X Z`,
such that identities do nothing (`id_comp`, `comp_id`) and composition is associative.
**Order of composition:** `comp f g` means "first `f`, then `g`" (diagrammatic order).
Mathlib uses the same order and writes it `f ≫ g`; ordinary function composition `g ∘ f`
lists the same two steps the other way round. -/
class Category.{v₁, u₁} (Obj : Type u₁) : Type (max u₁ (v₁ + 1)) where
/-- The arrows from `X` to `Y`. -/
Hom : Obj → Obj → Type v₁
/-- The identity arrow on `X`. -/
id : (X : Obj) → Hom X X
/-- `comp f g`: first `f`, then `g`. -/
comp : {X Y Z : Obj} → Hom X Y → Hom Y Z → Hom X Z
/-- Doing nothing first changes nothing. -/
id_comp : ∀ {X Y : Obj} (f : Hom X Y), comp (id X) f = f
/-- Doing nothing afterwards changes nothing. -/
comp_id : ∀ {X Y : Obj} (f : Hom X Y), comp f (id Y) = f
/-- Composing three arrows does not depend on the bracketing. -/
assoc : ∀ {W X Y Z : Obj} (f : Hom W X) (g : Hom X Y) (h : Hom Y Z),
comp (comp f g) h = comp f (comp g h)Sets with functions form a category. So do groups with group homomorphisms, vector spaces with linear maps, and topological spaces with continuous maps. Even a single monoid is a category, with one object whose arrows are the monoid's elements:
/-- **A monoid is a category with one object.** Take a single object (the only element of
`Unit`); its arrows are the elements of `M`; composing arrows is multiplying; the identity
arrow is `one`. The category laws are exactly the monoid laws.
(Declared with `abbrev` so that Lean can unfold it when it is used as an instance.) -/
abbrev monoidAsCategory {M : Type u} (m : Monoid' M) : Category.{u, 0} Unit where
Hom _ _ := M
id _ := m.one
comp f g := m.mul f g
id_comp f := m.one_mul f
comp_id f := m.mul_one f
assoc f g h := m.mul_assoc f g hOnce many areas of mathematics are seen as categories, we can compare them with arrows too. A structure-preserving map between categories is called a functor. Category theory, introduced by Samuel Eilenberg and Saunders Mac Lane in 1945, is the study of these patterns — and it has become a common language for algebra, topology, logic and the theory of programming languages.
Hii inaelekea wapi
- Shahada ya kwanza (mwanzo) · ImepangwaCategoriesCategories as objects and morphisms with associative composition and identities; the categories of sets, groups, vector spaces, topological spaces and posets; monoids and preorders as categories; isomorphisms; and opposite categories with the duality principle.
- Shahada ya kwanza (mwanzo) · ImepangwaFunctorsFunctors as structure-preserving maps between categories: covariant and contravariant functors, forgetful and free functors, power-set and hom functors, and functoriality as a tool for proving that things are impossible.