The following example should show a square and a smaller copy of it inside, the commands xscale and yscale work when I write the coordinates manually on both paths, but when I reference the coordinates defined previously, it doesn't.
\documentclass{minimal}
\usepackage{tikz}
\pagestyle{empty}
\begin{document}
\begin{tikzpicture}
\coordinate (A) at (-1,1);
\coordinate (B) at (1,1);
\coordinate (C) at (1,-1);
\coordinate (D) at (-1,-1);
\draw (A) to (B) to (C) to (D) to cycle;
\draw[xscale=0.5,yscale=0.5] (A) to (B) to (C) to (D) to cycle;
\end{tikzpicture}
\end{document}
This image shows the expected versus the obtained figure.
EDIT: Apparently I forgot to explicit my question, how to properly get this done? Apply scalings, or any transformation in general, to previously defined coordinates?

\usetikzlibrary{calc}) :\draw ($0.5*(A)$) to ($0.5*(B)$) to ($0.5*(C)$) to ($0.5*(D)$) to cycle;or shorter\draw ($0.5*(A)$) rectangle ($0.5*(C)$);. – Apr 28 '18 at 18:16calcfor this([scale=.5]A)works. – Kpym Apr 28 '18 at 19:25\draw[transform canvas={xscale=0.5,yscale=0.5}] (A) to (B) to (C) to (D) to cycle;This should also work here. – Apr 28 '18 at 19:36transform canvasmay be OK or even better than the other solution. (I upvoted both your and Mark's answer... ) – Apr 28 '18 at 19:41