The parameters are all uniform by default on their
constrained values.
So if you declare:
real<lower=0> sigma;
then sigma is uniform on (0,inf).
What happens under the hood is that there is an unconstrained
parameter sigma_raw with support on (-inf,inf), and then
sigma is defined by the inverse-log transform:
sigma <- exp(sigma_raw);
and the total log probability is incremented by the log Jacobian,
here log(abs(exp'(sigma_raw))) = sigma_raw, so that the effect is
lp__ <- lp__ + sigma_raw;
The unconstrained representantations and Jacobians are all
detailed in a chapter near the end of the manual.
So when Andrew takes sigma propto 1/sigma, the effect is:
lp__ <- lp__ + log(1/sigma);
which reduces to
lp__ <- lp__ - sigma;
so it cancels the Jacobian and leaves the transform of
sigma uniform, i.e., log(sigma) propto constant.
And before anyone asks, let me say that Stan isn't smart
enough to avoid adding sigma and subtracting sigma --- it
just does both operations and calculates gradients with respect
to both and it all cancels arithmetically, not symbolically.
- Bob