As an aside, can you link to/say more about this? Do you mean that there exists a faithful functor from Set to Vect (the category of vector spaces)? If you mean that, then every concrete category can be embedded into Vect, no?
Yes, the free vector space functor. For a finite set X, it’s just the functions X→R, with operations defined pointwise. For infinite sets, it is the subset of those functions that have finite support. It’s essentially the same as what you’ve been doing by considering Rd for an outcome set with d outcomes, except with members of a set as indices, rather than numerically numbering the outcomes.
Actually I just realized I should probably clarify how it lifts functions to linear transformations too, because it doesn’t do so in the obvious way. If F is the free vector space functor and f:X→Y is a function, then F(f):F(X)→F(Y) is given by F(f)(y)=∑x∈f−1({y})f(x). (One way of understanding why the functions X→R must have finite support is in ensuring that this sum is well-defined. Though there are alternatives to requiring finite support, as long as one is willing to embed a more structured category than Set into a more structured category than Vect.)
It may be more intuitive to see the free vector space over X as containing formal sums c0x0+⋯+cnxn for xi∈X and ci∈R. The downside to this is that it requires a bunch of quotients, e.g. to ensure commutativity, associativity, distributivity, etc..
Yes, the free vector space functor. For a finite set X, it’s just the functions X→R, with operations defined pointwise. For infinite sets, it is the subset of those functions that have finite support. It’s essentially the same as what you’ve been doing by considering Rd for an outcome set with d outcomes, except with members of a set as indices, rather than numerically numbering the outcomes.
Actually I just realized I should probably clarify how it lifts functions to linear transformations too, because it doesn’t do so in the obvious way. If F is the free vector space functor and f:X→Y is a function, then F(f):F(X)→F(Y) is given by F(f)(y)=∑x∈f−1({y})f(x). (One way of understanding why the functions X→R must have finite support is in ensuring that this sum is well-defined. Though there are alternatives to requiring finite support, as long as one is willing to embed a more structured category than Set into a more structured category than Vect.)
It may be more intuitive to see the free vector space over X as containing formal sums c0x0+⋯+cnxn for xi∈X and ci∈R. The downside to this is that it requires a bunch of quotients, e.g. to ensure commutativity, associativity, distributivity, etc..