VHDL increase decrease integer value
Your code doesn't compile, you can't use &lt;= to assign to a variable.  Nor can you assign to an input (which counter is defined as...)

You also can't have two separate processes writing to the same signal (when it's of a non-resolved type, like integer).  Is this an academic exercise?  Why not just have a single process which does:

if rising_edge(clk) then
  if up = '1' then
     count &lt;= count + 1;
  elsif down = '1' then 
     count &lt;= count - 1;
  end if;
end if;


As you have a limited range counter, you'll have to be explicit about making it wrap around (or saturate) when you try and increment it or decrement it beyond the acceptable range.  The simulator will die otherwise.  The synthesis tool may or may not do what you require, depending - but it's better to be explicit with that sort of behaviour.

Also, get rid of std_logic_arith - if you want vectors to be treated as numbers, use ieee.numeric_std.all instead