'not alive myUnit' will be false if myUnit has not been initialized (iirc),
so you probably want to do it the other way around with something like:
("alive _x" count [tank0, tank1, tank2, tank3]) == 0
However, alive on empty vehicles might not work correctly 100% of the time (think I read that somewhere),
so you would probably want to use GetDammage instead.
But, to tidy things up alittle, create an array at the beginning of the mission containing the tanks that are actually created.
Put this in each tank's init-field:
tanks = tanks + [this]
(You might want to initialize 'tanks' before that with 'tanks = []')
Then in the trigger:
("(GetDammage _x) >= 1" count tanks) == count tanks