% ----------------------------------------------------------% % tca_3D - Time of closest approach for cylindrical distance % between the two aircraft. % ----------------------------------------------------------%
cyl_norm_sq_IVT1: LEMMA cyl_norm_sq(s+t1*v) = sqv(vect2(s)+t1*vect2(v))/sq(D) AND cyl_norm_sq(s+t2*v) /= sqv(vect2(s)+t2*vect2(v))/sq(D) IMPLIES (EXISTS (t:real): ((t1<=t AND t<=t2) OR (t2<=t AND t<=t1)) AND sqv(vect2(s)+t*vect2(v))/sq(D) = sq(s`z+t*v`z)/sq(H))
cyl_norm_sq_IVT2: LEMMA cyl_norm_sq(s+t1*v) = sq(s`z+t1*v`z)/sq(H) AND cyl_norm_sq(s+t2*v) /= sq(s`z+t2*v`z)/sq(H) IMPLIES (EXISTS (t:real): ((t1<=t AND t<=t2) OR (t2<=t AND t<=t1)) AND sqv(vect2(s)+t*vect2(v))/sq(D) = sq(s`z+t*v`z)/sq(H))
minimum_info(MI1,MI2): {MI : Min_Info | (MI = MI1 OR MI = MI2) AND MI`min_dist <= MI1`min_dist AND MI`min_dist <= MI2`min_dist}
= IF MI1`min_dist <= MI2`min_dist THEN MI1 ELSE MI2 ENDIF
horizontal_min_info(s,v) : {MI : Min_Info | MI`min_dist <= info(s,v,0)`min_dist AND
(vect2(v) /= zero AND horizontal_tca(s,v)>=0 IMPLIES MI`min_dist<=info(s,v,horizontal_tca(s,v))`min_dist)}= IF vect2(v) = zero OR (vect2(v) /= zero AND horizontal_tca(s,v) <= 0) THEN
info(s,v,0) ELSE minimum_info(info(s,v,horizontal_tca(s,v)),info(s,v,0)) ENDIF
horiz_vert_min_info(s,v) : {MI : Min_Info | MI`min_dist <= info(s,v,0)`min_dist AND
(vect2(v) /= zero AND horizontal_tca(s,v)>=0 IMPLIES MI`min_dist<=info(s,v,horizontal_tca(s,v))`min_dist) AND (v`z/=0 AND -s`z/v`z>=0 IMPLIES MI`min_dist <= info(s,v,-s`z/v`z)`min_dist)} = IF v`z = 0 OR (v`z /= 0 AND -s`z/v`z <= 0) THEN
horizontal_min_info(s,v) ELSE
minimum_info(horizontal_min_info(s,v),info(s,v,-s`z/v`z)) ENDIF
cyl_intersect_time(s,v,eps) : real = LET
a = sqv(vect2(v))/sq(D) - sq(v`z)/sq(H),
b = vect2(s)*vect2(v)/sq(D) - s`z*v`z/sq(H),
c = sqv(vect2(s))/sq(D) - sq(s`z)/sq(H) IN IF a = 0 AND b = 0 THEN 0 ELSIF a = 0 THEN -c/(2*b) ELSIF discr2b(a,b,c) < 0 THEN 0 ELSE root2b(a,b,c,sign(a)*eps) ENDIF% This uses sign(a)*eps instead of just eps, so that the LT lemma will prove
% for nonnegative times, cyl_norm_sq_fun is decreasing to the left of tca_3D % and increasing to the right.
tca_3D_left_decreasing: LEMMA nnt<=pt AND pt<=tca_3D(s,v) IMPLIES
cyl_norm_sq_fun(s,v)(nnt)>=cyl_norm_sq_fun(s,v)(pt)
tca_3D_right_increasing: LEMMA tca_3D(s,v)<=nnt AND nnt<=pt IMPLIES
cyl_norm_sq_fun(s,v)(nnt)<=cyl_norm_sq_fun(s,v)(pt)
END tca_3D
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.1Bemerkung:
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.