-- Job shop scheduling problem -- non interrupted scheduling var j1m1, j1m2, j1m3, j1m4, j2m1, j2m2, j2m3, j2m4 ; define j1flow as ([!j1m1 && !j1m2 && !j1m4] && sdur j1m3 =12)^ ([!j1m2 && !j1m3 && !j1m4] && sdur j1m1 =3)^ ([!j1m1 && !j1m3 && !j1m4] && sdur j1m2 =6)^ ([!j1m1 && !j1m2 && !j1m3] && sdur j1m4 =7)^ ; define j2flow as ([!j2m1 && !j2m3 && !j2m4] && sdur j2m2 =3)^ ([!j2m1 && !j2m2 && !j2m4] && sdur j2m3 =5)^ ([!j2m2 && !j2m3 && !j2m4] && sdur j2m1 =10)^ ([!j2m1 && !j2m2 && !j2m3] && sdur j2m4 =4)^ ; define mutexjobs as [[ !( (j1m1 && j2m1) || (j1m2 && j2m2) || (j1m3 && j2m3) || (j1m4 && j2m4)) ]] ; infer (j1flow) && (j2flow) && mutexjobs .