I am doing some Bayesian inference over a particular domain and the functions to be inferred are known to posses certain invariances (symmetries). In particular there are 2 types of invariance that I need to enforce: (1) a 2-fold rotational symmetry about a point (a,b), and (2) a line along which all function values should be identical.
2-fold rotational symmetry
The symmetry relation I need to enforce here is
$f(x,y) = f(2a-x,2b-y)$
which corresponds to a 2-fold rotation about the point (a,b). To force samples of the posterior distribution to respect this symmetry the covariance (kernel) function must respect this symmetry. I can enforce this in a straightforward way via the "sum over group orbits" method with
$k_{symm}(x,y,x',y') = k(x,y,x',y')+k(x,y,2a-x',2b-y')+k(2a-x,2b-y,x',y')+k(2a-x,2b-y,2a-x',2b-y')$
Identifying points
For the second type of invariance I am stuck. The symmetry that I'm trying to enforce is
$f(0,y) = f(0,0)$
in other words all points along the line $x = 0$ should have the same function value. I have tried some kludgy computational hacks (e.g. extracting the correlation matrix from the covariance matrix, and setting the pair-wise correlation to 1 for all points where x = 0 and then reforming the covariance matrix), but they all result in a covariance (kernel) that is not positive definite (not even positive semi-definite). I have also tried finding the nearest symmetric positive definite matrix to my kludge-built one, but when I do the result is a valid positive definite kernel matrix that no longer enforces (even approximately) the $f(0,y) = f(0,0)$ constraint (i.e. it undoes my constraint).
Any ideas how I can enforce the $f(0,y) = f(0,0)$ invariance in the covariance function?