I'm not an expert on VHDL, but I think you have a couple of errors - this should probably be:
G <= not (A and B and C) after 3 ns;
i.e. the destination is not in that direction, and I'm not sure that nand commutes as you need for the three inputs, hence using and for inputs, and then not to invert the output.
source share