# Using TikZ coordinates in expressions?

I would like to be able to calculate two new \coordinates by starting from two existing coordinates. I have defined two coordinates c1 and c2. A minimal example would be

\documentclass{report}
\usepackage{tikz}
\usetikzlibrary{calc}

\begin{document}
\begin{tikzpicture}[x={(.05\textwidth,0)},y={(0,.05\textwidth)}]
\def\arrowlength{0.5}
\coordinate (c1) at (1,0);
\coordinate (c2) at (4,1);

\draw (c1) -- (c2);
\end{tikzpicture}
\end{document}


Continuing from here, I would like to calculate a third coordinate, c3, that lies in the middle of c1 and c2. I have tried

\coordinate (c3) at (0.5*c1+0.5*c2);


but that gives me the error

Package pgf Error: No shape named 0 is known


Second, I would like to draw an arrow from c3, orthogonal to the line between c1 and c2. So I would like to take the difference c2-c1, rotate that vector by 90 degrees, normalize it, multiply it with the length the arrow is supposed to have, then add it to c3 and store it as a new coordinate called c4. Is this possible? (I want to avoid calculating the coordinates manually since I have to do this a lot of times and I want to be able to make changes to it easily)