%------------------------------------------------------------------------------ % space_3D.pvs % ACCoRD v1.0 % % This theory provides definitons that are common to horizontal and vertical % resolutions. %------------------------------------------------------------------------------
vertical_horizontal_conflict : LEMMA
conflict?(s,v) IMPLIES
vertical_conflict?(s`z,v`z) AND
horizontal_conflict?(s,v)
Spz_vect3 : TYPE = {s : Vect3 | vertical_sep?(s`z)}
Sp2_vect3 : TYPE = {s : Vect3 | horizontal_sep?(s)}
Ss2_vect3 : TYPE = {s : Vect3 | strict_horizontal_sep?(s)}
Sp_vect3 : TYPE = (separation?)
spz : VAR Spz_vect3
sp2 : VAR Sp2_vect3
sp : VAR Sp_vect3
ss2 : VAR Ss2_vect3
neg_spz : JUDGEMENT
-(spz) HAS_TYPE Spz_vect3
neg_sp2 : JUDGEMENT
-(sp2) HAS_TYPE Sp2_vect3
neg_sp : JUDGEMENT
-(sp) HAS_TYPE Sp_vect3
spv2 : JUDGEMENT
vect2(sp2) HAS_TYPE Sp_vect2
ssv2 : JUDGEMENT
vect2(ss2) HAS_TYPE Ss_vect2
sp_nzv : JUDGEMENT
Sp_vect3 SUBTYPE_OF Nz_vect3
verticalCoordinationConflict(s,v) : Sign = LET a = sqv(vect2(v)),
b = vect2(s)*vect2(v),
c = sqv(vect2(s)) - sq(D),
d = sq(b)-a*c IN IF s = zero THEN
break_symmetry(v) ELSIF v`z = 0 OR zero_vect2?(v) OR d < 0 OR eq(v`z,sq(b)-a*c,s`z*a-v`z*b) THEN
break_symmetry(s) ELSIF gt(v`z,sq(b)-a*c,s`z*a-v`z*b) THEN
-1 ELSE
1 ENDIF
% VerticalCoordinationConflict is a vertical strategy
verticalCoordinationConflict_asymm : LEMMA
(s /= zero OR v /= zero) IMPLIES verticalCoordinationConflict(-s,-v) = -verticalCoordinationConflict(s,v)
Vertical_Strategy : TYPE+ = {f:[[Vect3,Vect3]->Sign]| FORALL (s,v):
(s /= zero OR v /= zero) => f(-s,-v)=-f(s,v)}
verticalCoordinationConflict_correct : LEMMA
Delta(nzs,v) > 0 IMPLIES LET sz=nzs`z+Theta_D(nzs,v,Entry)*v`z IN
sz /= 0 IMPLIES
verticalCoordinationConflict(nzs,v) = sign(sz)
% vs_los_strategy for recovery from vertical loss of separation
vs_los_strategy(s,v): Sign = IF (horizontal_exit?(s,v) OR vect2(v) = zero) THEN
(IF s`z /= 0 THEN
sign(s`z) ELSIF v`z/=0 THEN
sign(v`z) ELSIF s /= zero THEN
break_symmetry(s) ELSIF v /= zero THEN
break_symmetry(v) ELSE
1 ENDIF) ELSIF (s + horizontal_tca(s,v)*v)`z /= 0 THEN
sign((s + horizontal_tca(s,v)*v)`z) ELSIF v`z/=0 THEN
sign(v`z) ELSIF s /= zero THEN
break_symmetry(s) ELSIF v /= zero THEN
break_symmetry(v) ELSE
1 ENDIF
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.