Initial and Boundary Conditions

How to set the initial condition not u(x,0) = u_0(x), but u(x,0) <= u_0(x). And how to set the boundary condition not u(t,0) = u_1(t), but u(t,0) <= u_1(t)?

These are inequality constraints, and can for instance be handled with the PETSc SNES solver.

Is there a small and simple example?

https://bitbucket.org/fenics-project/dolfin/src/8060a84e8ada0df018772497534092727b06bd56/python/demo/undocumented/contact-vi-snes/demo_contact-vi-snes.py?at=master#demo_contact-vi-snes.py-1,87:88,99