
#define time1 (time < 60)
#define time2 (time <= 60)
#define time3 (time < 75)
#define time4 (time <= 75)
#define safe1 (Viking1.safe)
#define safe2 (Viking2.safe)
#define safe3 (Viking3.safe)
#define safe4 (Viking4.safe)

// it can't happen that all soldiers are safe in less that 60 time units (holds)
#property !F( time1 && safe1 && safe2 && safe3 && safe4 )

// it can't happen that all soldiers are safe in 60 time units or less (does not hold, counter-example shows how to do it)
#property !F( time2 && safe1 && safe2 && safe3 && safe4 )

// it can't happen that all soldiers are safe in less that 75 time units and the first soldier does not cross until then (holds)
#property !(( !safe1 ) U ( time3 && safe1 && safe2 && safe3 && safe4 ))

// it can't happen that all soldiers are safe in 75 time units or less and the first soldier does not cross until then (does not hold, counter-example shows how to do it)
#property !(( !safe1 ) U ( time4 && safe1 && safe2 && safe3 && safe4 ))

