parameters {
vector[K] beta;
real<upper = -max(X * beta)> intercept;
}
I have used the simple example above to try to explain the problem, but unfortunately my actual model is rather more horrible in how the constraint is imposed (which makes it much more difficult to satisfy).
If you imagine I have y = f({beta_X,beta_Z}, {X,Z}), my constraint requires that y(X+dX,Z) - y(X) < 0, ie the constraint relates to a complex derivative function.
Thanks for your thoughts anyway - it may be difficult for me to enforce the constraint.
You may have to write a function in the functions block that implements (1) because you can't define any intermediate quantities in the parameters block.
Ben