rel Own_Below_Threat__call_18(Other_Tracked_Alt_0,Own_Tracked_Alt_0,return_1) iff { tmp1_1 = $(Own_Tracked_Alt_0Down_Separation_0), upward_preferred_1 = tmp2_1, ite(upward_preferred_1, { ALIM__call_3(Positive_RA_Alt_Thresh_0_0,Positive_RA_Alt_Thresh_1_0,Positive_RA_Alt_Thresh_2_0,Positive_RA_Alt_Thresh_3_0,Alt_Layer_Value_0,tmp3_1), tmp4_1 = $(Down_Separation_0>=tmp3_1), tmp5_1 = not tmp4_1, Own_Below_Threat__call_6(Other_Tracked_Alt_0,Own_Tracked_Alt_0,tmp6_1), tmp7_1 = tmp6_1 and tmp5_1, Own_Below_Threat__call_8(Other_Tracked_Alt_0,Own_Tracked_Alt_0,tmp8_1), tmp9_1 = not tmp8_1, tmp10_1 = tmp9_1 or tmp7_1, result_1 = tmp10_1, result_3 = result_1, tmp14_2 = tmp14_0, tmp15_2 = tmp15_0, tmp16_2 = tmp16_0 }, { ALIM__call_11(Positive_RA_Alt_Thresh_0_0,Positive_RA_Alt_Thresh_1_0,Positive_RA_Alt_Thresh_2_0,Positive_RA_Alt_Thresh_3_0,Alt_Layer_Value_0,tmp11_1), tmp12_1 = $(Up_Separation_0>=tmp11_1), tmp13_1 = $(Cur_Vertical_Sep_0>=300), Own_Above_Threat__call_14(Own_Tracked_Alt_0,Other_Tracked_Alt_0,tmp14_1), tmp15_1 = tmp14_1 and tmp13_1, tmp16_1 = tmp15_1 and tmp12_1, result_2 = tmp16_1, result_3 = result_2, tmp14_2 = tmp14_1, tmp15_2 = tmp15_1, tmp16_2 = tmp16_1 }) , return_1 = result_3 } rel Own_Above_Threat__call_21(Own_Tracked_Alt_0,Other_Tracked_Alt_0,return_1) iff { tmp1_1 = $(Other_Tracked_Alt_0Down_Separation_0), upward_preferred_1 = tmp2_1, ite(upward_preferred_1, { ALIM__call_3(Positive_RA_Alt_Thresh_0_0,Positive_RA_Alt_Thresh_1_0,Positive_RA_Alt_Thresh_2_0,Positive_RA_Alt_Thresh_3_0,Alt_Layer_Value_0,tmp3_1), tmp4_1 = $(Down_Separation_0>=tmp3_1), tmp5_1 = $(Cur_Vertical_Sep_0>=300), Own_Below_Threat__call_6(Other_Tracked_Alt_0,Own_Tracked_Alt_0,tmp6_1), tmp7_1 = tmp6_1 and tmp5_1, tmp8_1 = tmp7_1 and tmp4_1, result_1 = tmp8_1, result_3 = result_1, tmp13_2 = tmp13_0, tmp14_2 = tmp14_0, tmp15_2 = tmp15_0 }, { ALIM__call_9(Positive_RA_Alt_Thresh_0_0,Positive_RA_Alt_Thresh_1_0,Positive_RA_Alt_Thresh_2_0,Positive_RA_Alt_Thresh_3_0,Alt_Layer_Value_0,tmp9_1), tmp10_1 = $(Up_Separation_0>=tmp9_1), Own_Above_Threat__call_11(Own_Tracked_Alt_0,Other_Tracked_Alt_0,tmp11_1), tmp12_1 = tmp11_1 and tmp10_1, Own_Above_Threat__call_13(Own_Tracked_Alt_0,Other_Tracked_Alt_0,tmp13_1), tmp14_1 = not tmp13_1, tmp15_1 = tmp14_1 or tmp12_1, result_2 = tmp15_1, result_3 = result_2, tmp13_2 = tmp13_1, tmp14_2 = tmp14_1, tmp15_2 = tmp15_1 }) , return_1 = result_3 } rel alt_sep_test(Own_Tracked_Alt_0,Other_Tracked_Alt_0,Positive_RA_Alt_Thresh_0_0,Positive_RA_Alt_Thresh_1_0,Positive_RA_Alt_Thresh_2_0,Positive_RA_Alt_Thresh_3_0,Alt_Layer_Value_0,Climb_Inhibit_0,Up_Separation_0,Down_Separation_0,Cur_Vertical_Sep_0,Own_Tracked_Alt_Rate_0,High_Confidence_0,Other_Capability_0,Other_RAC_0,Two_of_Three_Reports_Valid_0,return_1) iff { Alt_Layer_Value_0 = 0, Positive_RA_Alt_Thresh_0_0 > 100, Own_Tracked_Alt_0 >= 0, Other_Tracked_Alt_0 >= 0, Up_Separation_0 >= 0, Own_Tracked_Alt_0 < Other_Tracked_Alt_0, need_upward_RA_1 = 0, need_downward_RA_1 = 0, tmp1_1 = $(Own_Tracked_Alt_Rate_0>=300), tmp2_1 = $(Other_Tracked_Alt_0>=300), tmp3_1 = $(Own_Tracked_Alt_0>=300), tmp4_1 = tmp3_1 and tmp2_1, tmp5_1 = tmp4_1 and tmp1_1, tmp5_1 = 1, tmp7_1 = $(Cur_Vertical_Sep_0>600), tmp8_1 = $(Own_Tracked_Alt_Rate_0=<600), tmp9_1 = High_Confidence_0 and tmp8_1, tmp10_1 = tmp9_1 and tmp7_1, enabled_1 = tmp10_1, tmp11_1 = $(Other_Capability_0=1), tcas_equipped_1 = tmp11_1, tmp12_1 = $(Other_RAC_0=0), tmp13_1 = Two_of_Three_Reports_Valid_0 and tmp12_1, intent_not_known_1 = tmp13_1, alt_sep_1 = 0, tmp14_1 = not tcas_equipped_1, tmp15_1 = tcas_equipped_1 and intent_not_known_1, tmp16_1 = tmp15_1 or tmp14_1, tmp17_1 = enabled_1 and tmp16_1, ite(tmp17_1, { Own_Below_Threat__call_18(Other_Tracked_Alt_0,Own_Tracked_Alt_0,tmp18_1), Non_Crossing_Biased_Climb__call_19(Own_Tracked_Alt_0,Other_Tracked_Alt_0,Positive_RA_Alt_Thresh_0_0,Positive_RA_Alt_Thresh_1_0,Positive_RA_Alt_Thresh_2_0,Positive_RA_Alt_Thresh_3_0,Alt_Layer_Value_0,Climb_Inhibit_0,Up_Separation_0,Down_Separation_0,Cur_Vertical_Sep_0,tmp19_1), tmp20_1 = tmp19_1 and tmp18_1, need_upward_RA_2 = tmp20_1, Own_Above_Threat__call_21(Own_Tracked_Alt_0,Other_Tracked_Alt_0,tmp21_1), Non_Crossing_Biased_Descend__call_22(Own_Tracked_Alt_0,Other_Tracked_Alt_0,Positive_RA_Alt_Thresh_0_0,Positive_RA_Alt_Thresh_1_0,Positive_RA_Alt_Thresh_2_0,Positive_RA_Alt_Thresh_3_0,Alt_Layer_Value_0,Climb_Inhibit_0,Up_Separation_0,Down_Separation_0,Cur_Vertical_Sep_0,tmp22_1), tmp23_1 = tmp22_1 and tmp21_1, need_downward_RA_2 = tmp23_1, tmp24_1 = need_upward_RA_2 and need_downward_RA_2, ite(tmp24_1, { alt_sep_2 = 0, alt_sep_8 = alt_sep_2 }, { ite(need_upward_RA_2, { reach, alt_sep_3 = 1, alt_sep_7 = alt_sep_3 }, { ite(need_downward_RA_2, { alt_sep_4 = 2, alt_sep_6 = alt_sep_4 }, { alt_sep_5 = 0, alt_sep_6 = alt_sep_5 }) , alt_sep_7 = alt_sep_6 }) , alt_sep_8 = alt_sep_7 }) , alt_sep_9 = alt_sep_8, need_downward_RA_3 = need_downward_RA_2, tmp22_2 = tmp22_1, tmp23_2 = tmp23_1, tmp24_2 = tmp24_1 }, { alt_sep_9 = alt_sep_1, need_downward_RA_3 = need_downward_RA_1, tmp22_2 = tmp22_0, tmp23_2 = tmp23_0, tmp24_2 = tmp24_0 }) , return_1 = alt_sep_9 }