Simplify Job and Task Definitions
The definitions of valid jobs and tasks in Job.v and Task.v are a bit convoluted. We should simplify that and remove what is not being used. We can also make the assumptions more explicit, instead of having a conjunction of multiple properties.