to model something we can use:
sets, functions between sets
vector spaces, maps between vec spaces
btw. small ex-cursus on vector spaces:
A vector space is a set whose elements, often called vectors, can be added together and multiplied (“scaled”) by numbers called scalars. The operations of vector addition and scalar multiplication must satisfy certain requirements, called vector axioms. Real vector spaces and complex vector spaces are kinds of vector spaces based on different kinds of scalars: real numbers and complex numbers. Scalars can also be, more generally, elements of any field.
types, function between types (e.g. in Lean)
e.g.  corresponds to
      inductive Sum A B                       | inj_l : A => Sum A B                       | inj_r : B => Sum A B      
groups, group homorphisms
dialects in MLIR …
A category is a
Where a homomorphism is a map between two algebraic structures of the same type that preserves the operations of the structures. We define
Examples:
We define product operation : (note that the product is unique modulo isomorphisms.)
                    -------- C --------
                    |        : t      |              
                    |        :        |              
                    |        v        |              
                 s1 |      A x B      | s2                
                    |   p1 |   |  p2  |              
                    |      |   |      |
                    |      v   v      |
                    -----> A   B <-----
Note that t is unique. If this happens we say “the diagram commutes”: , .
In the natural number with \le example:
                    n       m   
                    ^       ^    
                    |\     /|       
                    | \   / |       
                    |  \ /  |
                    |   k   |
                    |   ^   |
                    |   :   |
                    --- l ---
, ,
Some examples:
 4       9       
 ^       ^    
 |\     /|       
 | \   / |       
 |  \ /  |
 |   3   |
 |   ^   |
 |   :   |
 --- 2 ---
 and  : this is not correct, since e.g.  does not satisfy  4       9     
 ^       ^    
 |\     /|       
 | \   / |       
 |  \ /  |         
 |   4   |
 |   ^   |
 |   :   |
 --- 2 ---
 and  : this is correct, since any number that is 
and  is also  P       Q    
 ^       ^    
 |\     /|       
 | \   / |       
 |  \ /  |        
 | P & Q |
 |   ^   |
 |   :   |
 --- R ---
 and  : this is correct, since any prop that  P and Q also  P & QA few last notes:
A colimit is like product but arrows go in the opposite direction:
        ------> D <-------
        |       ^ t      |
        |       :        |
        |       :        |
    s1  |       Q        | s2
        |  p1 ^   ^  p2  |
        |     |   |      |
        |     |   |      |
        ----- A   B ------
for sets this corresponds to disjoint union (“smallest thing”) an example I don’t understand:
                 f
              A --> B
            g |     :
              v     v
              C .. > B |_| C / f ~ g ("B disjoint union C quotiented by ~")
—> the product is unique modulo isomorphisms another example I don’t understand:
             C ---- D
            A        E              ===>                E,A         or          A,C - D,E
            |       /                                 /  |                       |  /
            |      /                               F,D - B,C                     B,F
            |     /
            B    F
and defining different colimits gives you different ways to glue up these things and define different shapes (e.g. torus) —> you need category theory to discuss the glueing