Hi,
for a given trip t and a given aircraft a, if assign[t][a] is 0 then you do not want to propagate anything but that is what you do here.
Let me call M a number that is greater than the number of trips times the number of aircrafts.
Can you change
forall(t in trips, a in aircrafts) sum(k in trips: k.arrTime>=t.DepTime && k.DepTime<=t.arrTime && k.tripID!=t.tripID)
(assign[k][a] )+ assign[t][a]<= 1;
into
forall(t in trips, a in aircrafts) sum(k in trips: k.arrTime>=t.DepTime && k.DepTime<=t.arrTime && k.tripID!=t.tripID)
(assign[k][a] ) <= (1-assign[t][a])*M;
regards
#DecisionOptimization#OPLusingCPLEXOptimizer