Does anybody have any idea on how to define a linearly

homogeneous function?

The only solution I have come up with involves using rules and 'ReplaceAll'. This solution is not adequate, as it requires a lot of fine tuning.

An example:

Evaluating the following code, for a suitably defined function f (linearly homogeneous) should return 'True'

f[tau x,tau y]==tau f[x,y]

Alternatively, evaluating

In[1]:= f[mu x1,mu x2]

should return

Out[1]:= mu f[x1,x2]

Optionaly, it would really be an added bonus if somehow the definitions would persist, in the following sense:

The derivative of a linearly homogeneous function should be a homogeneous function of degree 0, i.e.

evaluating

In[2]:= Derivative[1,0][f][k x,k y]

should return

Out[2]:= Derivative[1,0][f][x,y]

I would be really gratefull if someone could offer a hint towards the right direction