% This file contains a dump of the AILS theories and proofs. % Use the PVS command M-x undump-pvs-files to retrieve the % theory and proof files. %Patch files loaded: patch2 version 1.2.2.36 $$$properties.pvs %---------------------------------------------------------------------------- % Properties and axioms of the AILS alerting algorithm and % model of trajectories. % %---------------------------------------------------------------------------- properties : THEORY BEGIN importing coordinate_transf %-- Types mag_nz(x:real) : type = {y:real | (sq(x) + sq(y)) /= 0} %-- Variables s,s1,s2 : var State intruder : var {s:State | v(s) = intruderSpeed} evader : var {s:State | v(s) = evaderSpeed and heading(s) = 0 and phi(s) = 0} df,df1,df2 : VAR bank_func phi,phi1,phi2 : VAR Bank t,t1,t2,tpred : var real m : var posnat n,n1,n2 : var nat shift : var degrees %-- Axioms derivative_eq_zero_min : AXIOM FORALL (intruder,evader,t1,t2): R(intruder,evader,t1+tau(intruder,evader,t1)) <= R(intruder,evader,t1+t2) asymptotic_decrease_zero_to_tau : AXIOM FORALL (intruder,evader,t,t1,t2) : tau(intruder,evader,t) >= 0 AND t2 <= tau(intruder,evader,t) AND t1 <= t2 IMPLIES R(intruder,evader,t+t1) >= R(intruder,evader,t+t2) asymptotic_increase_tau_to_zero : AXIOM FORALL (intruder,evader,t,t1,t2) : tau(intruder,evader,t) <= 0 AND tau(intruder,evader,t) <= t1 AND t1 <= t2 IMPLIES R(intruder,evader,t+t2) >= R(intruder,evader,t+t1) % The shortest distance between the current position and the position of the % trajectory is the neg or postive maximum bank. shortest_distance_phi : axiom forall (n:subrange(0,18)) : distance(intruder,trajectory(intruder with [phi := 35],pos_35_bank,n)) <= distance(intruder,trajectory(intruder,pos_35_bank,n)) shortest_distance : axiom forall (n:subrange(0,18)) : distance(intruder,trajectory(intruder,pos_35_bank,n)) <= distance(intruder,trajectory(intruder,df,n)) % Function R is periodic on heading. R_periodic : lemma forall (i:int) : R(intruder with [heading := heading(intruder) + 360 * i],evader,t) = R(intruder,evader,t) % distance is periodic on heading. distance_periodic : lemma forall (i:int) : distance(s1 with [heading := heading(s1) + 360 * i],s2) = distance(s1,s2) % Q % /| % / | % R\ | % \| % P triangle_distance: AXIOM FORALL(P,Q,R:State) : distance(P,Q) <= distance(P,R) + distance(R,Q) %-- Theorems and Properties % speed_constant : lemma v(trajectory(s,df,n)) = v(s) % The farthest distance recheable from s after n steps is % v(s)*n*tstep absolute_distance : LEMMA FORALL (s,df,n) : distance(s,trajectory(s,df,n)) <= v(s)*n*tstep % Heading of the trajectory as a function of the direction function df. % The direction function takes the steps and returns bank angle. I(s,df,n) : recursive degrees = (if n = 0 then tstep * trkrate(phi(s)) else tstep * trkrate(df(n)) + I(s,df,n-1) endif) measure n heading_of_trajectory(s,df,n) : degrees = if n = 0 then heading(s) else heading(s) + I(s,df,n-1) endif heading_of_trajectory_lemma : lemma heading(trajectory(s,df,n)) = heading_of_trajectory(s,df,n) expanded_evader_trajectory : lemma trajectory(evader,zero_bank,18) = (# x := x(evader) + 18 * (evaderSpeed * tstep), y := y(evader), v := evaderSpeed, heading := heading(evader), phi := 0 #) evader_s2: var State C1 : real = 1+cos(tstep * trkrate(-35))+ cos(2 * (tstep * trkrate(-35)))+cos(3 * (tstep * trkrate(-35)))+ cos(4 * (tstep * trkrate(-35)))+cos(5 * (tstep * trkrate(-35)))+ cos(6 * (tstep * trkrate(-35)))+cos(7 * (tstep * trkrate(-35)))+ cos(8 * (tstep * trkrate(-35)))+cos(9 * (tstep * trkrate(-35)))+ cos(10 * (tstep * trkrate(-35)))+cos(11 * (tstep * trkrate(-35)))+ cos(12 * (tstep * trkrate(-35)))+cos(13 * (tstep * trkrate(-35)))+ cos(14 * (tstep * trkrate(-35)))+cos(15 * (tstep * trkrate(-35)))+ cos(16 * (tstep * trkrate(-35)))+cos(17 * (tstep * trkrate(-35))) C2 : real = sin(tstep * trkrate(-35))+ sin(2 * (tstep * trkrate(-35)))+sin(3 * (tstep * trkrate(-35)))+ sin(4 * (tstep * trkrate(-35)))+sin(5 * (tstep * trkrate(-35)))+ sin(6 * (tstep * trkrate(-35)))+sin(7 * (tstep * trkrate(-35)))+ sin(8 * (tstep * trkrate(-35)))+sin(9 * (tstep * trkrate(-35)))+ sin(10 * (tstep * trkrate(-35)))+sin(11 * (tstep * trkrate(-35)))+ sin(12 * (tstep * trkrate(-35)))+sin(13 * (tstep * trkrate(-35)))+ sin(14 * (tstep * trkrate(-35)))+sin(15 * (tstep * trkrate(-35)))+ sin(16 * (tstep * trkrate(-35)))+sin(17 * (tstep * trkrate(-35))) % x_change_for_neg_35_trajectory : lemma % phi(intruder) = -35 implies % x(trajectory(intruder,neg_35_bank,18)) = % x(intruder) + intruderSpeed * tstep * (cos(heading(intruder)) * C1 % - sin(heading(intruder)) * C2) y_change_for_neg_35_trajectory : lemma phi(intruder) = -35 implies y(trajectory(intruder,neg_35_bank,18)) = y(intruder) + intruderSpeed * tstep * (cos(heading(intruder)) * C2 + sin(heading(intruder)) * C1) % x_change_for_neg_35_trajectory_A : lemma % phi(intruder) = -35 implies % x(trajectory(intruder,neg_35_bank,18)) = % x(intruder) + intruderSpeed * tstep * (cos(heading(intruder)) * C1A % - sin(heading(intruder)) * C2A) y_change_for_neg_35_trajectory_A : lemma phi(intruder) = -35 implies y(trajectory(intruder,neg_35_bank,18)) = y(intruder) + intruderSpeed * tstep * (cos(heading(intruder)) * C2A + sin(heading(intruder)) * C1A) C1_pos : real = 1+cos(tstep * trkrate(35))+ cos(2 * (tstep * trkrate(35)))+cos(3 * (tstep * trkrate(35)))+ cos(4 * (tstep * trkrate(35)))+cos(5 * (tstep * trkrate(35)))+ cos(6 * (tstep * trkrate(35)))+cos(7 * (tstep * trkrate(35)))+ cos(8 * (tstep * trkrate(35)))+cos(9 * (tstep * trkrate(35)))+ cos(10 * (tstep * trkrate(35)))+cos(11 * (tstep * trkrate(35)))+ cos(12 * (tstep * trkrate(35)))+cos(13 * (tstep * trkrate(35)))+ cos(14 * (tstep * trkrate(35)))+cos(15 * (tstep * trkrate(35)))+ cos(16 * (tstep * trkrate(35)))+cos(17 * (tstep * trkrate(35))) C2_pos : real = sin(tstep * trkrate(35))+ sin(2 * (tstep * trkrate(35)))+sin(3 * (tstep * trkrate(35)))+ sin(4 * (tstep * trkrate(35)))+sin(5 * (tstep * trkrate(35)))+ sin(6 * (tstep * trkrate(35)))+sin(7 * (tstep * trkrate(35)))+ sin(8 * (tstep * trkrate(35)))+sin(9 * (tstep * trkrate(35)))+ sin(10 * (tstep * trkrate(35)))+sin(11 * (tstep * trkrate(35)))+ sin(12 * (tstep * trkrate(35)))+sin(13 * (tstep * trkrate(35)))+ sin(14 * (tstep * trkrate(35)))+sin(15 * (tstep * trkrate(35)))+ sin(16 * (tstep * trkrate(35)))+sin(17 * (tstep * trkrate(35))) x_change_for_pos_35_trajectory : lemma phi(intruder) = 35 implies x(trajectory(intruder,pos_35_bank,18)) = x(intruder) + intruderSpeed * tstep * (cos(heading(intruder)) * C1_pos - sin(heading(intruder)) * C2_pos) y_change_for_pos_35_trajectory : lemma phi(intruder) = 35 implies y(trajectory(intruder,pos_35_bank,18)) = y(intruder) + intruderSpeed * tstep * (cos(heading(intruder)) * C2_pos + sin(heading(intruder)) * C1_pos) x_change_for_pos_35_trajectory_A : lemma phi(intruder) = 35 implies x(trajectory(intruder,pos_35_bank,18)) = x(intruder) + intruderSpeed * tstep * (cos(heading(intruder)) * C1_pos_A - sin(heading(intruder)) * C2_pos_A) y_change_for_pos_35_trajectory_A : lemma phi(intruder) = 35 implies y(trajectory(intruder,pos_35_bank,18)) = y(intruder) + intruderSpeed * tstep * (cos(heading(intruder)) * C2_pos_A + sin(heading(intruder)) * C1_pos_A) distance_of_trajectory_pos35 : lemma sqrt(sq(C1_pos_A * intruderSpeed * tstep) + sq(C2_pos_A * intruderSpeed * tstep)) > 2125 % Maximum heading change is less than 5.168 degrees per second or % 2.584 degrees per step. max_heading_change_neg : lemma forall (i:subrange(0,18)) : tstep * h_c(s, neg_35_bank, i) >= -i*2584/1000 and tstep * h_c(s, neg_35_bank, i) <= 0 max_heading_change_pos : lemma forall (i:subrange(0,18)) : tstep * h_c(s, pos_35_bank, i) <= i*2584/1000 and tstep * h_c(s, pos_35_bank, i) >= 0 max_heading_change : lemma forall (i:subrange(0,18)) : tstep * h_c(s, df, i) <= i*2584/1000 and tstep * h_c(s, df, i) >= -i*2584/1000 % Maximum track rate of phi is 5.168 max_phi : lemma tstep * trkrate(phi(s)) >= tstep*-7/10*1845/intruderSpeed and tstep * trkrate(phi(s)) <= tstep*7/10*1845/intruderSpeed heading_neg35_le : lemma h_c(s,neg_35_bank,n) <= h_c(s,df,n) heading_neg35_ge : lemma -h_c(s,neg_35_bank,n) >= h_c(s,df,n) heading_pos35_le : lemma h_c(s,pos_35_bank,n) >= h_c(s,df,n) heading_pos35_ge : lemma -h_c(s,pos_35_bank,n) <= h_c(s,df,n) heading_change_eq : lemma h_c(s1,df,n) = h_c(s2,df,n) phi_0_neg_trkrate_0_neg : lemma phi(s) <= 0 implies trkrate(phi(s)) <= 0 phi_0_pos_trkrate_0_pos : lemma phi(s) >= 0 implies trkrate(phi(s)) >= 0 phi_le_trkrate_le : lemma phi(s1) <= phi(s2) implies trkrate(phi(s1)) <= trkrate(phi(s2)) %------------------------------------------------------------------------ % 34 <= heading <= 87 intruder_on_y_heading_eq_34 : lemma phi(intruder) = -35 and y(intruder) = 0 and heading(intruder) = 34 implies y(trajectory(intruder,neg_35_bank,18)) > 200 phi_neg35_heading_le : lemma heading(trajectory(intruder with [phi := -35],neg_35_bank,n)) <= heading(trajectory(intruder,neg_35_bank,n)) phi_neg35_le : lemma forall (i:subrange(0,18)) : heading(intruder) = 34 implies y(trajectory(intruder with [phi := -35],neg_35_bank,i)) <= y(trajectory(intruder,neg_35_bank,i)) intruder_on_y_heading_eq_34_any_phi : lemma y(intruder) = 0 and heading(intruder) = 34 implies y(trajectory(intruder,neg_35_bank,18)) > 200 sin_of_heading_neg35_le : lemma forall (i:subrange(0,18)) : heading(s)+tstep*trkrate(phi(s)) >= 0 and heading(s)+tstep*trkrate(phi(s)) <= 90 implies sin(heading(trajectory(s,neg_35_bank,i))) <= sin(heading(trajectory(s,df,i))) heading_le_y_le : lemma forall (i:subrange(0,18),s1,s2:{s:State | v(s) = intruderSpeed}): y(s1) <= y(s2) and heading(s1) <= heading(s2) and phi(s1) <= phi(s2) and phi(s2) <= 0 and heading(s1) >= 0 and heading(s1) <= 90 and heading(s2) >= 0 and heading(s2) <= 90 implies y(trajectory(s1,neg_35_bank,i)) <= y(trajectory(s2,neg_35_bank,i)) heading_le_y_le_any_phi : lemma forall (i:subrange(0,18),s1,s2:{s:State | v(s) = intruderSpeed}): y(s1) <= y(s2) and heading(s1) <= heading(s2) and phi(s1) <= phi(s2) and heading(s1) >= 0 and heading(s1) <= 87 and heading(s2) >= 0 and heading(s2) <= 87 implies y(trajectory(s1,neg_35_bank,i)) <= y(trajectory(s2,neg_35_bank,i)) turn_neg35_y_le : lemma forall (i:subrange(0,18)) : heading(intruder) >= 34 and heading(intruder) + tstep*trkrate(phi(intruder)) <= 90 implies y(trajectory(intruder,neg_35_bank,i)) <= y(trajectory(intruder,df,i)) heading_ge_34_le_87_y_gt_200 : lemma y(intruder) = 0 and heading(intruder) >= 34 and heading(intruder) <= 87 implies y(trajectory(intruder,df,18)) > 200 heading_ge_34i_le_87i_y_gt_200 : lemma forall (i:int): y(intruder) = 0 and heading(intruder) >= 34 + 360 * i and heading(intruder) <= 87 + 360 * i implies y(trajectory(intruder,df,18)) > 200 %-------------------------------------------------------------------- % 93 <= heading <= 146 sin_of_heading_pos35_le : lemma forall (i:subrange(0,18)) : heading(s)+tstep*trkrate(phi(s)) >= 90 and heading(s)+tstep*trkrate(phi(s)) <= 180 implies sin(heading(trajectory(s,pos_35_bank,i))) <= sin(heading(trajectory(s,df,i))) turn_pos35_y_le : lemma forall (i:subrange(0,18)) : heading(intruder) <= 146 and heading(intruder) + tstep*trkrate(phi(intruder)) >= 90 implies y(trajectory(intruder,pos_35_bank,i)) <= y(trajectory(intruder,df,i)) heading_ge_y_le_any_phi : lemma forall (i:subrange(0,18),s1,s2:{s:State | v(s) = intruderSpeed}): y(s1) <= y(s2) and heading(s2) <= heading(s1) and phi(s2) <= phi(s1) and heading(s1) >= 93 and heading(s1) <= 180 and heading(s2) >= 93 and heading(s2) <= 180 implies y(trajectory(s1,pos_35_bank,i)) <= y(trajectory(s2,pos_35_bank,i)) intruder_on_y_heading_eq_146 : lemma phi(intruder) = 35 and y(intruder) = 0 and heading(intruder) = 146 implies y(trajectory(intruder,pos_35_bank,18)) > 200 phi_pos35_heading_ge : lemma heading(trajectory(intruder with [phi := 35],pos_35_bank,n)) >= heading(trajectory(intruder,pos_35_bank,n)) phi_pos35_le : lemma forall (i:subrange(0,18)) : heading(intruder) = 146 implies y(trajectory(intruder with [phi := 35],pos_35_bank,i)) <= y(trajectory(intruder,pos_35_bank,i)) intruder_on_y_heading_eq_146_any_phi : lemma y(intruder) = 0 and heading(intruder) = 146 implies y(trajectory(intruder,pos_35_bank,18)) > 200 heading_le_146_y_gt_200 : lemma y(intruder) = 0 and heading(intruder) >= 93 and heading(intruder) <= 146 implies y(trajectory(intruder,df,18)) > 200 heading_le_146i_y_gt_200 : lemma forall (i:int): y(intruder) = 0 and heading(intruder) >= 93 + 360 * i and heading(intruder) <= 146 + 360 * i implies y(trajectory(intruder,df,18)) > 200 %--------------------------------------------------------------------- % 87 <= heading <= 93 heading_87_to_93_y_gt_200_range : lemma forall (i:subrange(2,18)) : y(intruder) = 0 and heading(intruder) >= 87 and heading(intruder) <= 93 implies y(trajectory(intruder,df,i)) > 200 heading_87_to_93_y_gt_200 : lemma y(intruder) = 0 and heading(intruder) >= 87 and heading(intruder) <= 93 implies y(trajectory(intruder,df,18)) > 200 heading_87i_to_93i_y_gt_200 : lemma forall (i:int): y(intruder) = 0 and heading(intruder) >= 87 + 360 * i and heading(intruder) <= 93 + 360 * i implies y(trajectory(intruder,df,18)) > 200 %---------------------------------------------------------------------- % -87 <= heading <= -34 intruder_on_y_heading_eq_neg34 : lemma phi(intruder) = 35 and y(intruder) = 0 and heading(intruder) = -34 implies y(trajectory(intruder,pos_35_bank,18)) < -200 phi_pos35_ge : lemma forall (i:subrange(0,18)) : heading(intruder) = -34 implies y(trajectory(intruder with [phi := 35],pos_35_bank,i)) >= y(trajectory(intruder,pos_35_bank,i)) intruder_on_y_heading_eq_neg34_any_phi : lemma y(intruder) = 0 and heading(intruder) = -34 implies y(trajectory(intruder,pos_35_bank,18)) < -200 sin_of_heading_pos35_le_neg90_0 : lemma forall (i:subrange(0,18)) : heading(s)+tstep*trkrate(phi(s)) >= -90 and heading(s)+tstep*trkrate(phi(s)) <= 0 implies sin(heading(trajectory(s,pos_35_bank,i))) >= sin(heading(trajectory(s,df,i))) heading_le_y_le_neg : lemma forall (i:subrange(0,18),s1,s2:{s:State | v(s) = intruderSpeed}): y(s1) <= y(s2) and heading(s1) <= heading(s2) and phi(s1) <= phi(s2) and phi(s1) >= 0 and heading(s1) >= -90 and heading(s1) <= 0 and heading(s2) >= -90 and heading(s2) <= 0 implies y(trajectory(s1,pos_35_bank,i)) <= y(trajectory(s2,pos_35_bank,i)) heading_le_y_le_any_phi_neg : lemma forall (i:subrange(0,18),s1,s2:{s:State | v(s) = intruderSpeed}): y(s1) <= y(s2) and heading(s1) <= heading(s2) and phi(s1) <= phi(s2) and heading(s1) >= -87 and heading(s1) <= 0 and heading(s2) >= -87 and heading(s2) <= 0 implies y(trajectory(s1,pos_35_bank,i)) <= y(trajectory(s2,pos_35_bank,i)) turn_pos35_y_le_neg34_neg90 : lemma forall (i:subrange(0,18)) : heading(intruder) <= -34 and heading(intruder) + tstep*trkrate(phi(intruder)) >= -90 implies y(trajectory(intruder,pos_35_bank,i)) >= y(trajectory(intruder,df,i)) heading_le_neg34_ge_neg87_y_gt_200 : lemma y(intruder) = 0 and heading(intruder) <= -34 and heading(intruder) >= -87 implies y(trajectory(intruder,df,18)) < -200 heading_le_neg34i_ge_neg87i_y_gt_200 : lemma forall (i:int): y(intruder) = 0 and heading(intruder) <= -34 + 360 * i and heading(intruder) >= -87 + 360 * i implies y(trajectory(intruder,df,18)) < -200 %---------------------------------------------------------------------- % -146 <= heading <= -93 sin_of_heading_neg35_le_neg90_neg180 : lemma forall (i:subrange(0,18)) : heading(s)+tstep*trkrate(phi(s)) <= -90 and heading(s)+tstep*trkrate(phi(s)) >= -180 implies sin(heading(trajectory(s,neg_35_bank,i))) >= sin(heading(trajectory(s,df,i))) turn_neg35_y_le_neg90_neg145 : lemma forall (i:subrange(0,18)) : heading(intruder) >= -146 and heading(intruder) + tstep*trkrate(phi(intruder)) <= -90 implies y(trajectory(intruder,neg_35_bank,i)) >= y(trajectory(intruder,df,i)) heading_ge_y_le_any_phi_neg93_neg180 : lemma forall (i:subrange(0,18),s1,s2:{s:State | v(s) = intruderSpeed}): y(s1) >= y(s2) and heading(s2) >= heading(s1) and phi(s2) >= phi(s1) and heading(s1) <= -93 and heading(s1) >= -180 and heading(s2) <= -93 and heading(s2) >= -180 implies y(trajectory(s1,neg_35_bank,i)) >= y(trajectory(s2,neg_35_bank,i)) intruder_on_y_heading_eq_neg146 : lemma phi(intruder) = -35 and y(intruder) = 0 and heading(intruder) = -146 implies y(trajectory(intruder,neg_35_bank,18)) < -200 phi_neg35_le_neg146 : lemma forall (i:subrange(0,18)) : heading(intruder) = -146 implies y(trajectory(intruder with [phi := -35],neg_35_bank,i)) >= y(trajectory(intruder,neg_35_bank,i)) intruder_on_y_heading_eq_neg146_any_phi : lemma y(intruder) = 0 and heading(intruder) = -146 implies y(trajectory(intruder,neg_35_bank,18)) < -200 heading_le_neg146_y_gt_200 : lemma y(intruder) = 0 and heading(intruder) <= -93 and heading(intruder) >= -146 implies y(trajectory(intruder,df,18)) < -200 heading_le_neg93i_ge_neg146i_y_gt_200 : lemma forall (i:int): y(intruder) = 0 and heading(intruder) <= -93 + 360 * i and heading(intruder) >= -146 + 360 * i implies y(trajectory(intruder,df,18)) < -200 %--------------------------------------------------------------------- % -93 <= heading <= -87 heading_neg87_to_neg93_y_gt_200_range : lemma forall (i:subrange(2,18)) : y(intruder) = 0 and heading(intruder) <= -87 and heading(intruder) >= -93 implies y(trajectory(intruder,df,i)) < -200 heading_neg87_to_neg93_y_gt_200 : lemma y(intruder) = 0 and heading(intruder) <= -87 and heading(intruder) >= -93 implies y(trajectory(intruder,df,18)) < -200 heading_neg93i_to_neg87i_y_gt_200 : lemma forall (i:int): y(intruder) = 0 and heading(intruder) >= -93 + 360 * i and heading(intruder) <= -87 + 360 * i implies y(trajectory(intruder,df,18)) < -200 %---------------------------------------------------------------------- % 146 <= heading <= 180 heading_146_to_180_x_gt_200 : lemma forall (se:State,i:subrange(0,18)) : let evader_s2 = trajectory(se,zero_bank,18) in y(intruder) = 0 and y(evader_s2) = 0 and x(evader_s2) > x(intruder) and heading(intruder) >= 146 and heading(intruder) <= 180 and distance(intruder, evader_s2) >= 1925 and distance(intruder, evader_s2) <= 2450 implies x(trajectory(se,zero_bank,18)) - x(trajectory(intruder,df,i)) > 200 heading_146i_to_180i_x_gt_200 : lemma forall (se:State) : forall (j:int): forall (i:subrange(0,18)) : let evader_s2 = trajectory(se,zero_bank,18) in y(intruder) = 0 and y(evader_s2) = 0 and x(evader_s2) > x(intruder) and heading(intruder) >= 146 + 360 * j and heading(intruder) <= 180 + 360 * j and distance(intruder, evader_s2) >= 1925 and distance(intruder, evader_s2) <= 2450 implies x(trajectory(se,zero_bank,18)) - x(trajectory(intruder,df,i)) > 200 %---------------------------------------------------------------------- % -180 <= heading <= -146 heading_neg146_to_neg180_x_gt_200 : lemma forall (se:State,i:subrange(0,18)) : let evader_s2 = trajectory(se,zero_bank,18) in y(intruder) = 0 and y(evader_s2) = 0 and x(evader_s2) > x(intruder) and heading(intruder) >= -180 and heading(intruder) <= -146 and distance(intruder, evader_s2) >= 1925 and distance(intruder, evader_s2) <= 2450 implies x(trajectory(se,zero_bank,18)) - x(trajectory(intruder,df,i)) > 200 heading_neg146i_to_neg180i_x_gt_200 : lemma forall (se:State) : forall (j:int): forall (i:subrange(0,18)) : let evader_s2 = trajectory(se,zero_bank,18) in y(intruder) = 0 and y(evader_s2) = 0 and x(evader_s2) > x(intruder) and heading(intruder) >= -180 + 360 * j and heading(intruder) <= -146 + 360 * j and distance(intruder, evader_s2) >= 1925 and distance(intruder, evader_s2) <= 2450 implies x(trajectory(se,zero_bank,18)) - x(trajectory(intruder,df,i)) > 200 %------------------------------------------------------------------------- div(x:real,b:posnat) : {i:int | exists (r:{y:real | y>= 0 and y -34 + 360 * j) or (exists (j:int): x >= 34 + 360 * j and x <= 87 + 360 * j) or (exists (j:int): x >= 87 + 360 * j and x <= 93 + 360 * j) or (exists (j:int): x >= 93 + 360 * j and x <= 146 + 360 * j) or (exists (j:int): x >= 146 + 360 * j and x <= 180 + 360 * j) or (exists (j:int): x <= -34 + 360 * j and x >= -87 + 360 * j) or (exists (j:int): x <= -87 + 360 * j and x >= -93 + 360 * j) or (exists (j:int): x <= -93 + 360 * j and x >= -146 + 360 * j) or (exists (j:int): x <= -146 + 360 * j and x >= -180 + 360 * j) intruder_and_evader_on_y_collision_imp_heading_le_34_e : lemma forall (se:State): let se_s2 = trajectory(se,zero_bank,18) in y(intruder) = 0 and y(se_s2) = 0 and distance(intruder, se_s2) >= 1925 and distance(intruder, se_s2) <= 2450 and collision_scenario(intruder,se,df,18) and x(se_s2) > x(intruder) implies (exists (j:int): heading(intruder) < 34 + 360 * j and heading(intruder) > -34 + 360 * j) %--------------------------------------------------------------------- evader_intruder_lt : lemma distance(intruder,trajectory(evader, zero_bank, n)) <= 2450 implies distance(intruder,evader) <= 2450 + v(evader)*n*tstep trans_10k_evader_not_0 : lemma distance(intruder,trajectory(evader, zero_bank, 18)) <= 2450 implies x(trans(evader,x(intruder) - 10000,0)) /= 0 evader_traj_intruder_lt : lemma FORALL (n2: tr_rg(18)): distance(intruder,trajectory(evader, zero_bank, 18)) <= 2450 implies distance(intruder,trajectory(evader, zero_bank, n2)) <= 2450 + v(evader)*(18)*tstep + v(evader)*n2*tstep trans_10k_not_0 : lemma FORALL (n2: tr_rg(18)): distance(intruder, trajectory(evader, zero_bank, 18)) <= 2450 implies x(trajectory(trans(evader, x(intruder) - 10000, 0), zero_bank, n2)) /= 0 trans_10k_not_0_rev : lemma FORALL (n2: tr_rg(18)): distance(intruder, trajectory(evader, zero_bank, 18)) <= 2450 implies x(trans(trajectory(evader,zero_bank,n2),x(intruder) - 10000, 0)) /= 0 % Function to calculate the heading of the radial to the future % location of the evader. radial_func(y,x:real):degrees = if x = 0 then (if y > 0 then -90 else 90 endif) elsif x > 0 then (if y > 0 then arctan(y/x) - 180 else 180 + arctan(y/x) endif) else arctan(y/x) endif % distance between the present location of the intruder and the location % of the evader in 9 seconds. % dist_int_to_collision : lemma % distance(intruder,trajectory(evader,zero_bank,18)) = % sqrt(sq(y(intruder) - y(trajectory(evader,zero_bank,18))) + % sq(x(intruder) - x(trajectory(evader,zero_bank,18)))) sin_of_radial_angle : lemma forall (y:real,x:mag_nz(y)): sin(radial_func(y,x)) = -y/sqrt(sq(y)+sq(x)) cos_of_radial_angle : lemma forall (y:real,x:mag_nz(y)): cos(radial_func(y,x)) = -x/sqrt(sq(y)+sq(x)) after_rotation_of_radial_y_eq : lemma let yd = y(s1) - y(s2) in let xd = x(s1) - x(s2) in x(s1) /= 0 and x(s2) /= 0 and distance(s1,s2) /= 0 implies y(rot(s1,radial_func(yd,xd))) = y(rot(s2,radial_func(yd,xd))) x_evader_gt_x_int_after_radial_rotation : lemma let yd = y(s1) - y(s2) in let xd = x(s1) - x(s2) in x(s1) /= 0 and x(s2) /= 0 and distance(s1,s2) /= 0 implies x(rot(s2,radial_func(yd,xd))) > x(rot(s1,radial_func(yd,xd))) % Calculation of function R angle_radial_distance_2250_dist_0 : lemma let evader_s2 = trajectory(evader,zero_bank,18) in let y = y(intruder) - y(evader_s2) in let x = x(intruder) - x(evader_s2) in let radial = radial_func(y,x) in distance(intruder, evader_s2) = 2250 and heading(intruder) = radial implies R(intruder,evader,9) = 0 angle_radial_distance_2250_plus_c_dist_c : lemma forall (c:{x:real | abs(x) < 2250}): let evader_s2 = trajectory(evader,zero_bank,18) in let y = y(intruder) - y(evader_s2) in let x = x(intruder) - x(evader_s2) in let radial = radial_func(y,x) in distance(intruder, evader_s2) = 2250 + c and heading(intruder) = radial implies R(intruder,evader,9) = abs(c) angle_radial_plus_shift_distance_2250 : lemma forall (shift:degrees): let evader_s2 = trajectory(evader,zero_bank,18) in let y = y(intruder) - y(evader_s2) in let x = x(intruder) - x(evader_s2) in let radial = radial_func(y,x) in distance(intruder, evader_s2) = 2250 and heading(intruder) = radial + shift implies R(intruder,evader,9) = 2*2250*abs(sin(shift/2)) angle_radial_plus_shift_distance_2250_plus_c : lemma forall (c:{x:real | x > -2250 and x <= 200}, shift:degrees): let evader_s2 = trajectory(evader,zero_bank,18) in let y = y(intruder) - y(evader_s2) in let x = x(intruder) - x(evader_s2) in let radial = radial_func(y,x) in distance(intruder, evader_s2) = 2250 + c and heading(intruder) = radial + shift implies R(intruder,evader,9) = sqrt((sq(2250) + 2250 * c) * 4 * sq(sin(shift / 2)) + sq(c)) % alert range angle_le_34_from_radial_imp_alert_range : lemma forall (c:{x:real | x > -2250 and x <= 200}, shift:degrees): let evader_s2 = trajectory(evader,zero_bank,18) in let y = y(intruder) - y(evader_s2) in let x = x(intruder) - x(evader_s2) in let radial = radial_func(y,x) in c >= -325 and c <= 200 and shift <= 34 and shift >= -34 and distance(intruder, evader_s2) = 2250 + c and heading(intruder) = radial + shift implies R(intruder,evader,9) <= alertRange % theorem used in the proof of *distance_lt_1925_no_collision_in_9sec* min_trajecory_distance : lemma distance(intruder,trajectory(intruder,df,18)) > 2125 % the theorems called from ails_last_theorem's proof distance_gt_2450_no_collision_in_9sec : lemma distance(intruder,trajectory(evader,zero_bank,18)) > 2450 implies not collision_scenario(intruder,evader,df,18) distance_lt_1925_no_collision_in_9sec : lemma distance(intruder,trajectory(evader,zero_bank,18)) < 1925 implies not collision_scenario(intruder,evader,df,18) collision_scenario_imp_angle_lt_34_from_radial_e : lemma let evader_s2 = trajectory(evader,zero_bank,18) in let y = y(intruder) - y(evader_s2) in let x = x(intruder) - x(evader_s2) in let radial = radial_func(y,x) in distance(intruder, evader_s2) >= 1925 and distance(intruder, evader_s2) <= 2450 and collision_scenario(intruder,evader,df,18) implies (exists (j:int): heading(intruder) < radial + 34 + 360 * j and heading(intruder) > radial - 34 + 360 * j) % Alarm when the heading with relation to the radial le to 34 angle_le_34_from_radial_imp_alarm : lemma forall (c:{x:real | x > -2250 and x <= 200}, shift:degrees): let evader_s2 = trajectory(evader,zero_bank,18) in let y = y(intruder) - y(evader_s2) in let x = x(intruder) - x(evader_s2) in let radial = radial_func(y,x) in c >= -325 and c <= 200 and shift <= 34 and shift >= -34 and distance(intruder, evader_s2) = 2250 + c and heading(intruder) = radial + shift implies larcalert(intruder,evader) angle_le_34_from_radial_imp_alarm_e : lemma forall (j:int): forall (c:{x:real | x > -2250 and x <= 200}, shift:degrees): let evader_s2 = trajectory(evader,zero_bank,18) in let y = y(intruder) - y(evader_s2) in let x = x(intruder) - x(evader_s2) in let radial = radial_func(y,x) in c >= -325 and c <= 200 and shift <= 34 and shift >= -34 and distance(intruder, evader_s2) = 2250 + c and heading(intruder) = radial + shift + 360 * j implies larcalert(intruder,evader) % the theorem we want to prove ails_last_theorem : theorem forall (intruder,evader) : collision_scenario(intruder,evader,df,18) implies larcalert(intruder,evader) END properties $$$properties.prf (|properties| (|shortest_distance_phi_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|R_periodic_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|R_periodic| "" (SKOSIMP*) (("" (EXPAND "R") (("" (EXPAND "dx") (("" (EXPAND "dy") (("" (REWRITE "sin_equivalence") (("" (REWRITE "cos_equivalence") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|distance_periodic| "" (SKOSIMP*) (("" (EXPAND "distance") (("" (PROPAX) NIL NIL)) NIL)) NIL) (|speed_constant| "" (INDUCT "n") (("1" (SKOSIMP*) (("1" (GRIND) NIL NIL)) NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (INST?) NIL NIL)) NIL)) NIL)) NIL)) NIL) (|absolute_distance| "" (SKOLEM 1 ("s" "df" _)) (("" (INDUCT "n") (("1" (GRIND) (("1" (CASE-REPLACE "0 = sq(0)") (("1" (REWRITE "sqrt_of_sq") (("1" (EXPAND "sq") (("1" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL) ("2" (SKOLEM 1 "J") (("2" (GROUND) (("2" (LEMMA "triangle_distance") (("2" (INST -1 "s" "trajectory(s,df,1+J)" "trajectory(s,df,J)") (("2" (CASE-REPLACE "distance(trajectory(s, df, J), trajectory(s, df, 1 + J)) = tstep * v(s)") (("1" (GROUND) NIL NIL) ("2" (HIDE -1 -2 2) (("2" (GRIND) (("2" (REWRITE "speed_constant") (("2" (NAME-REPLACE A "heading(trajectory(s, df, J))") (("2" (CASE-REPLACE "v(s) * v(s) * cos(A) * cos(A) * (1 / 2) * (1 / 2) + v(s) * v(s) * sin(A) * sin(A) * (1 / 2) * (1 / 2) = v(s) * v(s) * (1 / 2) * (1 / 2) * (sq(sin(A)) + sq(cos(A)))") (("1" (REWRITE "sin_cos_sq_one") (("1" (LEMMA "sqrt_of_sq") (("1" (INST -1 "1 / 2 * v(s)") (("1" (EXPAND "sq") (("1" (REPLACE -1 1) (("1" (TYPEPRED "v(s)") (("1" (EXPAND "abs") (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (I_TCC1 "" (SUBTYPE-TCC) NIL NIL) (I_TCC2 "" (SUBTYPE-TCC) NIL NIL) (I_TCC3 "" (TERMINATION-TCC) NIL NIL) (|heading_of_trajectory_lemma| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (EXPAND "heading_of_trajectory" 1) (("2" (INST?) (("2" (REPLACE -1) (("2" (DELETE -1) (("2" (EXPAND "heading_of_trajectory") (("2" (CASE "j!1 = 0") (("1" (ASSERT) (("1" (REPLACE -1 1) (("1" (EXPAND "I") (("1" (EXPAND "trajectory") (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (EXPAND "I" 2 2) (("2" (EXPAND "trajectory") (("2" (EXPAND "next_state") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|expanded_evader_trajectory| "" (SKOSIMP*) (("" (EXPAND "zero_bank") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (TYPEPRED "evader!1") (("" (REPLACE*) (("" (EXPAND "trkrate") (("" (LEMMA "sin_of_0_180") (("" (LEMMA "cos_of_0") (("" (INST -1 "0") (("" (FLATTEN -2) (("" (REPLACE*) (("" (ASSERT) (("" (APPLY-EXTENSIONALITY 1) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (C1_TCC1 "" (SUBTYPE-TCC) NIL NIL) (|y_change_for_neg_35_trajectory| "" (SKOSIMP*) (("" (EXPAND "neg_35_bank") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (REPLACE -1) (("" (GROUND) (("" (TYPEPRED "intruder!1") (("" (REPLACE -1) (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (EXPAND "C2") (("" (EXPAND "C1") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|y_change_for_neg_35_trajectory_A| "" (SKOSIMP*) (("" (LEMMA "y_change_for_neg_35_trajectory ") (("" (INST?) (("" (ASSERT) (("" (REPLACE -1 1) (("" (CASE "C2 = C2A and C1 = C1A") (("1" (FLATTEN) (("1" (REPLACE*) NIL NIL)) NIL) ("2" (DELETE -1 2) (("2" (SPLIT) (("1" (EXPAND "C2") (("1" (EXPAND "trkrate") (("1" (REWRITE "intruderSpeeddef") (("1" (REWRITE "tan_of_neg_35_A") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "C1") (("2" (EXPAND "trkrate") (("2" (REWRITE "intruderSpeeddef") (("2" (REWRITE "tan_of_neg_35_A") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|x_change_for_pos_35_trajectory| "" (SKOSIMP*) (("" (EXPAND "pos_35_bank") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (REPLACE -1) (("" (GROUND) (("" (TYPEPRED "intruder!1") (("" (REPLACE -1) (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (REWRITE "cos_of_sum") (("" (EXPAND "C2_pos") (("" (EXPAND "C1_pos") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|y_change_for_pos_35_trajectory| "" (SKOSIMP*) (("" (EXPAND "pos_35_bank") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (EXPAND "next_state") (("" (EXPAND "trajectory") (("" (REPLACE -1) (("" (GROUND) (("" (TYPEPRED "intruder!1") (("" (REPLACE -1) (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_sum") (("" (EXPAND "C2_pos") (("" (EXPAND "C1_pos") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|x_change_for_pos_35_trajectory_A| "" (SKOSIMP*) (("" (LEMMA "x_change_for_pos_35_trajectory") (("" (INST?) (("" (ASSERT) (("" (REPLACE -1 1) (("" (CASE "C2_pos = C2_pos_A and C1_pos = C1_pos_A") (("1" (FLATTEN) (("1" (REPLACE*) NIL NIL)) NIL) ("2" (DELETE -1 2) (("2" (SPLIT) (("1" (EXPAND "C2_pos") (("1" (EXPAND "trkrate") (("1" (REWRITE "intruderSpeeddef") (("1" (REWRITE "tan_of_35_A") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "C1_pos") (("2" (EXPAND "trkrate") (("2" (REWRITE "intruderSpeeddef") (("2" (REWRITE "tan_of_35_A") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|y_change_for_pos_35_trajectory_A| "" (SKOSIMP*) (("" (LEMMA "y_change_for_pos_35_trajectory") (("" (INST?) (("" (ASSERT) (("" (REPLACE -1 1) (("" (CASE "C2_pos = C2_pos_A and C1_pos = C1_pos_A") (("1" (FLATTEN) (("1" (REPLACE*) NIL NIL)) NIL) ("2" (DELETE -1 2) (("2" (SPLIT) (("1" (EXPAND "C2_pos") (("1" (EXPAND "trkrate") (("1" (REWRITE "intruderSpeeddef") (("1" (REWRITE "tan_of_35_A") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (REWRITE "sin_approx") (("1" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "C1_pos") (("2" (EXPAND "trkrate") (("2" (REWRITE "intruderSpeeddef") (("2" (REWRITE "tan_of_35_A") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (REWRITE "cos_approx") (("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|distance_of_trajectory_pos35| "" (CASE "forall (x,y:nonneg_real): sq(x) > sq(y) IFF x > y") (("1" (INST -1 "sqrt(sq(C1_pos_A * intruderSpeed * tstep) + sq(C2_pos_A * intruderSpeed * tstep))" "2125") (("1" (GROUND) (("1" (DELETE 1 3) (("1" (REWRITE "sq_of_sqrt") (("1" (REWRITE "intruderSpeeddef") (("1" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (SKOSIMP*) (("2" (LEMMA "both_sides_expt_non_neg_lt_aux") (("2" (INST -1 "1" "y!1" "x!1") (("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|max_heading_change_neg| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "h_c" 1) (("2" (CASE-REPLACE "k!1 = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (EXPAND "neg_35_bank" 2 1) (("2" (EXPAND "neg_35_bank" 2 2) (("2" (EXPAND "trkrate") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (INST?) (("2" (LEMMA "tan_of_35") (("2" (FLATTEN) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|max_heading_change_pos| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "h_c" 1) (("2" (CASE-REPLACE "k!1 = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (EXPAND "pos_35_bank" 2 1) (("2" (EXPAND "pos_35_bank" 2 2) (("2" (EXPAND "trkrate") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (INST?) (("2" (LEMMA "tan_of_35") (("2" (FLATTEN) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|max_heading_change| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "h_c" 1) (("2" (CASE-REPLACE "k!1 = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (INST?) (("2" (SPLIT 2) (("1" (CASE "trkrate(df!1(k!1)) * tstep <= 2584/1000") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (EXPAND "trkrate") (("2" (CASE "df!1(k!1) = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (TYPEPRED "df!1(k!1)") (("2" (LEMMA "tan_decreases_35_to_neg_35") (("2" (INST -1 "df!1(k!1)" "35") (("1" (LEMMA "tan_of_35") (("1" (EXPAND "abs") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (REWRITE "cos_of_Bank") (("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("3" (REWRITE "cos_of_Bank") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "trkrate(df!1(k!1)) * tstep >= -2584/1000") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (EXPAND "trkrate") (("2" (CASE "df!1(k!1) = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (TYPEPRED "df!1(k!1)") (("2" (EXPAND "abs") (("2" (LEMMA "tan_decreases_35_to_neg_35") (("2" (INST -1 "-35" "df!1(k!1)") (("1" (LEMMA "tan_of_35") (("1" (GROUND) NIL NIL)) NIL) ("2" (REWRITE "cos_of_Bank") NIL NIL) ("3" (REWRITE "cos_of_Bank") (("3" (EXPAND "abs") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|max_phi| "" (SKOSIMP*) (("" (TYPEPRED "phi(s!1)") (("" (EXPAND "abs") (("" (LEMMA "tan_of_35") (("" (EXPAND "trkrate") (("" (REWRITE "intruderSpeeddef") (("" (EXPAND "tstep") (("" (CASE "phi(s!1) = 0") (("1" (GROUND) NIL NIL) ("2" (ASSERT) (("2" (LEMMA "tan_decreases_35_to_neg_35") (("2" (INST -1 "phi(s!1)" "35") (("1" (GROUND) (("1" (LEMMA "tan_decreases_35_to_neg_35") (("1" (INST -1 "-35" "phi(s!1)") (("1" (GROUND) NIL NIL) ("2" (REWRITE "cos_of_Bank") NIL NIL) ("3" (REWRITE "cos_of_Bank") (("3" (EXPAND "abs") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (REWRITE "cos_of_Bank") (("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("3" (REWRITE "cos_of_Bank") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_neg35_le| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST -1 "df!1" "s!1") (("2" (EXPAND "h_c" 1) (("2" (CASE-REPLACE "j!1 = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (CASE "trkrate(neg_35_bank(j!1)) <= trkrate(df!1(j!1)) ") (("1" (GROUND) NIL NIL) ("2" (DELETE -1 2 3) (("2" (EXPAND "trkrate") (("2" (EXPAND "neg_35_bank") (("2" (REWRITE "intruderSpeeddef") (("2" (CASE-REPLACE "df!1(j!1) = 0") (("1" (ASSERT) (("1" (LEMMA "tan_of_35") (("1" (FLATTEN) (("1" (REPLACE -1) (("1" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "tan_decreases_35_to_neg_35") (("2" (INST -1 "-35" "df!1(j!1)") (("1" (TYPEPRED "df!1(j!1)") (("1" (EXPAND "abs") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (LEMMA "cos_of_Bank") (("2" (INST?) NIL NIL)) NIL) ("3" (REWRITE "cos_of_Bank") (("3" (EXPAND "abs") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_neg35_ge| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST -1 "df!1" "s!1") (("2" (EXPAND "h_c" 1) (("2" (CASE-REPLACE "j!1 = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (CASE "-trkrate(neg_35_bank(j!1)) >= trkrate(df!1(j!1)) ") (("1" (GROUND) NIL NIL) ("2" (DELETE -1 2 3) (("2" (EXPAND "trkrate") (("2" (EXPAND "neg_35_bank") (("2" (REWRITE "intruderSpeeddef") (("2" (CASE-REPLACE "df!1(j!1) = 0") (("1" (ASSERT) (("1" (LEMMA "tan_of_35") (("1" (FLATTEN) (("1" (REPLACE -1) (("1" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REWRITE "tan_of_neg") (("1" (LEMMA "tan_decreases_35_to_neg_35") (("1" (INST -1 "df!1(j!1)" "35") (("1" (TYPEPRED "df!1(j!1)") (("1" (EXPAND "abs") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (REWRITE "cos_of_Bank") (("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("3" (REWRITE "cos_of_Bank") NIL NIL)) NIL)) NIL) ("2" (REWRITE "cos_approx") (("2" (DELETE 2 3) (("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_pos35_le| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST -1 "df!1" "s!1") (("2" (EXPAND "h_c" 1) (("2" (CASE-REPLACE "j!1 = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (CASE "trkrate(pos_35_bank(j!1)) >= trkrate(df!1(j!1))") (("1" (GROUND) NIL NIL) ("2" (DELETE -1 2 3) (("2" (EXPAND "trkrate") (("2" (EXPAND "pos_35_bank") (("2" (REWRITE "intruderSpeeddef") (("2" (CASE-REPLACE "df!1(j!1) = 0") (("1" (ASSERT) (("1" (LEMMA "tan_of_35") (("1" (FLATTEN) (("1" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "tan_decreases_35_to_neg_35") (("2" (INST -1 "df!1(j!1)" "35") (("1" (TYPEPRED "df!1(j!1)") (("1" (EXPAND "abs") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (LEMMA "cos_of_Bank") (("2" (INST?) (("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("3" (REWRITE "cos_of_Bank") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_pos35_ge| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST -1 "df!1" "s!1") (("2" (EXPAND "h_c" 1) (("2" (CASE-REPLACE "j!1 = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (CASE "-trkrate(pos_35_bank(j!1)) <= trkrate(df!1(j!1)) ") (("1" (GROUND) NIL NIL) ("2" (DELETE -1 2 3) (("2" (EXPAND "trkrate") (("2" (EXPAND "pos_35_bank") (("2" (REWRITE "intruderSpeeddef") (("2" (CASE-REPLACE "df!1(j!1) = 0") (("1" (ASSERT) (("1" (LEMMA "tan_of_35") (("1" (FLATTEN) (("1" (REPLACE -2) (("1" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "tan_decreases_35_to_neg_35") (("2" (INST -1 "-35" "df!1(j!1)") (("1" (REWRITE "tan_of_neg") (("1" (TYPEPRED "df!1(j!1)") (("1" (EXPAND "abs") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (REWRITE "cos_of_Bank") (("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (REWRITE "cos_of_Bank") NIL NIL) ("3" (REWRITE "cos_approx") (("3" (DELETE 2 3) (("3" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_change_eq| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (EXPAND "h_c" 1) (("2" (CASE "j!1 = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (INST?) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|phi_0_neg_trkrate_0_neg| "" (SKOSIMP*) (("" (EXPAND "trkrate") (("" (CASE "phi(s!1) = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (REWRITE "intruderSpeeddef") (("2" (LEMMA "tan_decreases_35_to_neg_35") (("2" (INST -1 "phi(s!1)" "0") (("1" (REWRITE "tan_of_0") (("1" (TYPEPRED "phi(s!1)") (("1" (EXPAND "abs") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (REWRITE "cos_of_Bank") NIL NIL) ("3" (REWRITE "cos_of_Bank") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|phi_0_pos_trkrate_0_pos| "" (SKOSIMP*) (("" (EXPAND "trkrate") (("" (CASE "phi(s!1) = 0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (REWRITE "intruderSpeeddef") (("2" (LEMMA "tan_decreases_35_to_neg_35") (("2" (INST -1 "0" "phi(s!1)") (("1" (REWRITE "tan_of_0") (("1" (TYPEPRED "phi(s!1)") (("1" (EXPAND "abs") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (REWRITE "cos_of_Bank") NIL NIL) ("3" (REWRITE "cos_of_Bank") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|phi_le_trkrate_le| "" (SKOSIMP*) (("" (CASE "phi(s2!1) = 0") (("1" (REPLACE -1) (("1" (EXPAND "trkrate" 1 2) (("1" (REWRITE "phi_0_neg_trkrate_0_neg") NIL NIL)) NIL)) NIL) ("2" (CASE "phi(s1!1) = 0") (("1" (REPLACE -1) (("1" (EXPAND "trkrate" 2 1) (("1" (LEMMA "phi_0_pos_trkrate_0_pos") (("1" (INST?) (("1" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "trkrate") (("2" (ASSERT) (("2" (REWRITE "intruderSpeeddef") (("2" (LEMMA "tan_decreases_35_to_neg_35") (("2" (TYPEPRED "phi(s1!1)") (("2" (TYPEPRED "phi(s2!1)") (("2" (EXPAND "abs") (("2" (INST -3 "phi(s1!1)" "phi(s2!1)") (("1" (GROUND) NIL NIL) ("2" (REWRITE "cos_of_Bank") NIL NIL) ("3" (REWRITE "cos_of_Bank") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|intruder_on_y_heading_eq_34| "" (SKOSIMP*) (("" (LEMMA "y_change_for_neg_35_trajectory_A") (("" (INST?) (("" (REPLACE -3 -1) (("" (ASSERT) (("" (REPLACE -1 1) (("" (REWRITE "intruderSpeeddef") (("" (EXPAND "tstep") (("" (DELETE -1) (("" (REPLACE -3 1) (("" (REWRITE "cos_approx") (("" (REWRITE "sin_approx") (("" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|phi_neg35_heading_le| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "tstep * trkrate(phi (trajectory(intruder!1 WITH [phi := -35], neg_35_bank, j!1))) <= tstep * trkrate(phi(trajectory(intruder!1, neg_35_bank, j!1)))") (("1" (GROUND) NIL NIL) ("2" (DELETE -1 2) (("2" (EXPAND "trajectory") (("2" (EXPAND "next_state") (("2" (CASE-REPLACE "j!1 = 0") (("1" (ASSERT) (("1" (TYPEPRED "intruder!1`phi") (("1" (EXPAND "abs") (("1" (EXPAND "trkrate") (("1" (REWRITE "intruderSpeeddef") (("1" (EXPAND "tstep") (("1" (LEMMA "tan_of_35") (("1" (CASE "intruder!1`phi = 0") (("1" (GROUND) NIL NIL) ("2" (ASSERT) (("2" (LEMMA "tan_decreases_35_to_neg_35") (("2" (INST -1 "-35" "intruder!1`phi") (("1" (GROUND) NIL NIL) ("2" (REWRITE "cos_of_Bank") NIL NIL) ("3" (REWRITE "cos_of_Bank") (("3" (EXPAND "abs") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (PROPAX) NIL NIL)) NIL)) NIL) (|phi_neg35_le| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "v(trajectory(intruder!1 WITH [phi := -35], neg_35_bank, k!1)) * sin(heading (trajectory(intruder!1 WITH [phi := -35], neg_35_bank, k!1))) * tstep <= v(trajectory(intruder!1, neg_35_bank, k!1)) * sin(heading(trajectory(intruder!1, neg_35_bank, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (LEMMA "phi_neg35_heading_le") (("2" (INST?) (("2" (LEMMA "sin_decreases_towards_neg_90_le") (("2" (INST -1 "heading(trajectory(intruder!1 WITH [phi := -35], neg_35_bank, k!1))" "heading(trajectory(intruder!1, neg_35_bank, k!1))") (("1" (GROUND) (("1" (DELETE 2) (("1" (REWRITE "trajectory_heading ") (("1" (DELETE -1) (("1" (EXPAND "first_step") (("1" (LEMMA "max_phi") (("1" (LEMMA "max_heading_change_neg") (("1" (INST?) (("1" (INST -2 "intruder!1 WITH [phi := -35]") (("1" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE -1 2) (("2" (REWRITE "trajectory_heading ") (("2" (EXPAND "first_step") (("2" (LEMMA "max_heading_change_neg") (("2" (LEMMA "max_phi") (("2" (INST -1 "intruder!1 WITH [phi := -35]") (("1" (INST?) (("1" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (DELETE -1 2) (("3" (REWRITE "trajectory_heading ") (("3" (EXPAND "first_step") (("3" (LEMMA "max_phi") (("3" (LEMMA "max_heading_change_neg") (("3" (CASE "k!1 = 0") (("1" (INST?) (("1" (INST -3 "intruder!1 WITH [phi := -35]") (("1" (EXPAND "tstep") (("1" (REWRITE "intruderSpeeddef") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (INST?) (("2" (INST?) (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("4" (DELETE -1 2) (("4" (REWRITE "trajectory_heading ") (("4" (EXPAND "first_step") (("4" (LEMMA "max_heading_change_neg") (("4" (LEMMA "max_phi") (("4" (INST?) (("4" (INST?) (("4" (EXPAND "tstep") (("4" (REWRITE "intruderSpeeddef") (("4" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (PROPAX) NIL NIL)) NIL)) NIL) (|intruder_on_y_heading_eq_34_any_phi| "" (SKOSIMP*) (("" (LEMMA "phi_neg35_le") (("" (INST?) (("" (LEMMA "intruder_on_y_heading_eq_34") (("" (INST -1 "intruder!1 WITH [phi := -35]") (("1" (GROUND) NIL NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sin_of_heading_neg35_le| "" (SKOSIMP*) (("" (REWRITE "trajectory_heading") (("" (REWRITE "trajectory_heading") (("" (EXPAND "first_step") (("" (CASE "i!1=0") (("1" (REPLACE -1) (("1" (EXPAND "h_c") (("1" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "sin_left_of_max_le") (("2" (INST -1 "heading(s!1) + tstep * trkrate(phi(s!1))" "-tstep * h_c(s!1, neg_35_bank, i!1)" "tstep * h_c(s!1, df!1, i!1)") (("2" (GROUND) (("1" (LEMMA "max_heading_change") (("1" (INST?) (("1" (TYPEPRED "i!1") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "max_heading_change_neg") (("2" (INST?) (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("3" (LEMMA "heading_neg35_le") (("3" (INST -1 "df!1" "i!1" "s!1") (("3" (EXPAND "tstep") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("4" (EXPAND "tstep") (("4" (LEMMA "heading_neg35_ge") (("4" (INST?) (("4" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_le_y_le| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (INST?) (("2" (CASE "v(trajectory(s1!1, neg_35_bank, k!1)) * sin(heading(trajectory(s1!1, neg_35_bank, k!1))) * tstep <= v(trajectory(s2!1, neg_35_bank, k!1)) * sin(heading(trajectory(s2!1, neg_35_bank, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (REWRITE "trajectory_heading") (("2" (REWRITE "trajectory_heading") (("2" (EXPAND "first_step") (("2" (CASE "k!1 = 0") (("1" (ASSERT) (("1" (LEMMA "heading_change_eq") (("1" (INST?) (("1" (INST -1 "s2!1") (("1" (REPLACE -1 1) (("1" (LEMMA "sin_decreases_towards_neg_90_le") (("1" (INST -1 "heading(s1!1) + tstep * h_c(s2!1, neg_35_bank, k!1)" "heading(s2!1) + tstep * h_c(s2!1, neg_35_bank, k!1)") (("1" (GROUND) (("1" (DELETE 2) (("1" (LEMMA "max_heading_change") (("1" (INST?) (("1" (EXPAND "tstep") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (LEMMA "max_heading_change_neg") (("2" (INST?) (("2" (EXPAND "tstep") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("3" (DELETE 2) (("3" (LEMMA "max_heading_change_neg") (("3" (INST?) (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("4" (DELETE 2) (("4" (LEMMA "max_heading_change_neg") (("4" (INST?) (("4" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "heading_change_eq") (("2" (INST?) (("2" (INST -1 "s2!1") (("2" (REPLACE -1 2) (("2" (LEMMA "sin_decreases_towards_neg_90_le") (("2" (INST -1 "heading(s1!1) + tstep * trkrate(phi(s1!1)) + tstep * h_c(s2!1, neg_35_bank, k!1)" "heading(s2!1) + tstep * trkrate(phi(s2!1)) + tstep * h_c(s2!1, neg_35_bank, k!1)") (("2" (EXPAND "tstep") (("2" (LEMMA "max_heading_change_neg") (("2" (INST?) (("2" (LEMMA "phi_0_neg_trkrate_0_neg") (("2" (INST?) (("2" (LEMMA "phi_0_neg_trkrate_0_neg") (("2" (INST -1 "s2!1") (("2" (LEMMA "max_phi ") (("2" (INST?) (("2" (LEMMA "max_phi ") (("2" (INST -1 "s1!1") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (LEMMA "phi_le_trkrate_le") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_le_y_le_any_phi| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (INST?) (("2" (CASE "v(trajectory(s1!1, neg_35_bank, k!1)) * sin(heading(trajectory(s1!1, neg_35_bank, k!1))) * tstep <= v(trajectory(s2!1, neg_35_bank, k!1)) * sin(heading(trajectory(s2!1, neg_35_bank, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (REWRITE "trajectory_heading") (("2" (REWRITE "trajectory_heading") (("2" (EXPAND "first_step") (("2" (CASE "k!1 = 0") (("1" (ASSERT) (("1" (REPLACE -1 1) (("1" (EXPAND "h_c") (("1" (LEMMA "sin_decreases_towards_neg_90_le") (("1" (INST -1 "heading(s1!1)" "heading(s2!1)") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "heading_change_eq") (("2" (INST?) (("2" (INST -1 "s2!1") (("2" (REPLACE -1 2) (("2" (LEMMA "sin_decreases_towards_neg_90_le") (("2" (INST -1 "heading(s1!1) + tstep * trkrate(phi(s1!1)) + tstep * h_c(s2!1, neg_35_bank, k!1)" "heading(s2!1) + tstep * trkrate(phi(s2!1)) + tstep * h_c(s2!1, neg_35_bank, k!1)") (("2" (EXPAND "tstep") (("2" (LEMMA "max_heading_change_neg") (("2" (INST?) (("2" (LEMMA "max_phi ") (("2" (INST?) (("2" (LEMMA "max_phi ") (("2" (INST -1 "s2!1") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (LEMMA "phi_le_trkrate_le") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|turn_neg35_y_le| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (INST -2 "df!1") (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "v(trajectory(intruder!1, neg_35_bank, k!1)) * sin(heading(trajectory(intruder!1, neg_35_bank, k!1))) * tstep <= v(trajectory(intruder!1, df!1, k!1)) * sin(heading(trajectory(intruder!1, df!1, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (LEMMA "sin_of_heading_neg35_le") (("2" (INST -1 "df!1" "intruder!1" "k!1") (("2" (GROUND) (("1" (DELETE 2) (("1" (LEMMA "max_phi") (("1" (INST?) (("1" (REWRITE "intruderSpeeddef") (("1" (EXPAND "tstep") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "max_phi") (("2" (INST?) (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_ge_34_le_87_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "turn_neg35_y_le") (("" (INST?) (("" (LEMMA "max_phi") (("" (INST?) (("" (REWRITE "intruderSpeeddef") (("" (EXPAND "tstep") (("" (GROUND) (("" (LEMMA "heading_le_y_le_any_phi") (("" (INST -1 "18" "intruder!1 with [heading := 34]" "intruder!1") (("" (LEMMA "intruder_on_y_heading_eq_34_any_phi") (("" (INST -1 "intruder!1 WITH [heading := 34]") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_ge_34i_le_87i_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "heading_ge_34_le_87_y_gt_200") (("" (INST -1 "df!1" "intruder!1 with [heading := heading(intruder!1) - 360 * i!1]") (("" (ASSERT) (("" (LEMMA "trajectory_periodic_y") (("" (INST -1 "df!1" "18" "intruder!1" "-i!1") (("" (REPLACE -1 -2) (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sin_of_heading_pos35_le| "" (SKOSIMP*) (("" (REWRITE "trajectory_heading") (("" (REWRITE "trajectory_heading") (("" (EXPAND "first_step") (("" (CASE "i!1=0") (("1" (REPLACE -1) (("1" (EXPAND "h_c") (("1" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "sin_right_of_max_le") (("2" (INST -1 "heading(s!1) + tstep * trkrate(phi(s!1))" "tstep * h_c(s!1, pos_35_bank, i!1)" "-tstep * h_c(s!1, df!1, i!1)") (("2" (GROUND) (("1" (LEMMA "max_heading_change_pos") (("1" (INST?) (("1" (TYPEPRED "i!1") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "max_heading_change_pos") (("2" (INST?) (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("3" (LEMMA "heading_pos35_le") (("3" (INST -1 "df!1" "i!1" "s!1") (("3" (EXPAND "tstep") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("4" (EXPAND "tstep") (("4" (LEMMA "heading_pos35_ge") (("4" (INST?) (("4" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|turn_pos35_y_le| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (INST -2 "df!1") (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "v(trajectory(intruder!1, pos_35_bank, k!1)) * sin(heading(trajectory(intruder!1, pos_35_bank, k!1))) * tstep <= v(trajectory(intruder!1, df!1, k!1)) * sin(heading(trajectory(intruder!1, df!1, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (LEMMA "sin_of_heading_pos35_le") (("2" (INST -1 "df!1" "intruder!1" "k!1") (("2" (GROUND) (("1" (EXPAND "tstep") (("1" (PROPAX) NIL NIL)) NIL) ("2" (EXPAND "tstep") (("2" (DELETE 2) (("2" (LEMMA "max_phi") (("2" (INST?) (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_ge_y_le_any_phi| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (INST?) (("2" (CASE "v(trajectory(s1!1, pos_35_bank, k!1)) * sin(heading(trajectory(s1!1, pos_35_bank, k!1))) * tstep <= v(trajectory(s2!1, pos_35_bank, k!1)) * sin(heading(trajectory(s2!1, pos_35_bank, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (REWRITE "trajectory_heading") (("2" (REWRITE "trajectory_heading") (("2" (EXPAND "first_step") (("2" (CASE "k!1 = 0") (("1" (ASSERT) (("1" (REPLACE -1 1) (("1" (EXPAND "h_c") (("1" (LEMMA "sin_decreases_towards_pos_270_le") (("1" (INST -1 "heading(s2!1)" "heading(s1!1)") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "heading_change_eq") (("2" (INST?) (("2" (INST -1 "s2!1") (("2" (REPLACE -1 2) (("2" (LEMMA "sin_decreases_towards_pos_270_le") (("2" (INST -1 "heading(s2!1) + tstep * trkrate(phi(s2!1)) + tstep * h_c(s2!1, pos_35_bank, k!1)" "heading(s1!1) + tstep * trkrate(phi(s1!1)) + tstep * h_c(s2!1, pos_35_bank, k!1)") (("2" (EXPAND "tstep") (("2" (LEMMA "max_heading_change_pos") (("2" (INST?) (("2" (LEMMA "max_phi ") (("2" (INST?) (("2" (LEMMA "max_phi ") (("2" (INST -1 "s1!1") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (LEMMA "phi_le_trkrate_le") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|intruder_on_y_heading_eq_146| "" (SKOSIMP*) (("" (LEMMA "y_change_for_pos_35_trajectory_A") (("" (INST?) (("" (REPLACE -3 -1) (("" (ASSERT) (("" (REPLACE -1 1) (("" (REWRITE "intruderSpeeddef") (("" (EXPAND "tstep") (("" (DELETE -1) (("" (REPLACE -3 1) (("" (REWRITE "cos_approx") (("" (REWRITE "sin_approx") (("" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|phi_pos35_heading_ge_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|phi_pos35_heading_ge| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "tstep * trkrate(phi (trajectory(intruder!1 WITH [phi := 35], pos_35_bank, j!1))) >= tstep * trkrate(phi(trajectory(intruder!1, pos_35_bank, j!1)))") (("1" (GROUND) NIL NIL) ("2" (DELETE -1 2) (("2" (EXPAND "trajectory") (("2" (EXPAND "next_state") (("2" (CASE-REPLACE "j!1 = 0") (("1" (ASSERT) (("1" (TYPEPRED "intruder!1`phi") (("1" (EXPAND "abs") (("1" (EXPAND "trkrate") (("1" (REWRITE "intruderSpeeddef") (("1" (EXPAND "tstep") (("1" (LEMMA "tan_of_35") (("1" (CASE "intruder!1`phi = 0") (("1" (GROUND) NIL NIL) ("2" (ASSERT) (("2" (LEMMA "tan_decreases_35_to_neg_35") (("2" (INST -1 "intruder!1`phi" "35") (("1" (GROUND) NIL NIL) ("2" (REWRITE "cos_of_Bank") (("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("3" (REWRITE "cos_of_Bank") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (PROPAX) NIL NIL)) NIL)) NIL) (|phi_pos35_le| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "v(trajectory(intruder!1 WITH [phi := 35], pos_35_bank, k!1)) * sin(heading (trajectory(intruder!1 WITH [phi := 35], pos_35_bank, k!1))) * tstep <= v(trajectory(intruder!1, pos_35_bank, k!1)) * sin(heading(trajectory(intruder!1, pos_35_bank, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (LEMMA "phi_pos35_heading_ge") (("2" (INST?) (("2" (LEMMA "sin_decreases_towards_pos_270_le") (("2" (INST -1 "heading(trajectory(intruder!1, pos_35_bank, k!1))" "heading(trajectory(intruder!1 WITH [phi := 35], pos_35_bank, k!1))") (("1" (GROUND) (("1" (DELETE 2) (("1" (REWRITE "trajectory_heading ") (("1" (DELETE -1) (("1" (EXPAND "first_step") (("1" (LEMMA "max_phi") (("1" (LEMMA "max_heading_change_pos") (("1" (INST?) (("1" (INST -2 "intruder!1") (("1" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE -1 2) (("2" (REWRITE "trajectory_heading ") (("2" (EXPAND "first_step") (("2" (LEMMA "max_heading_change_pos") (("2" (LEMMA "max_phi") (("2" (INST?) (("2" (INST?) (("2" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (DELETE -1 2) (("3" (REWRITE "trajectory_heading ") (("3" (EXPAND "first_step") (("3" (LEMMA "max_phi") (("3" (LEMMA "max_heading_change_pos") (("3" (INST?) (("1" (INST -2 "intruder!1 with [phi := 35]") (("1" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("4" (DELETE -1 2) (("4" (REWRITE "trajectory_heading ") (("4" (EXPAND "first_step") (("4" (LEMMA "max_heading_change_pos") (("4" (LEMMA "max_phi") (("4" (INST -1 "intruder!1 with [phi := 35]") (("1" (INST?) (("1" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (PROPAX) NIL NIL)) NIL)) NIL) (|intruder_on_y_heading_eq_146_any_phi| "" (SKOSIMP*) (("" (LEMMA "phi_pos35_le") (("" (INST?) (("" (LEMMA "intruder_on_y_heading_eq_146") (("" (INST -1 "intruder!1 with [phi := 35]") (("1" (GROUND) NIL NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_le_146_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "turn_pos35_y_le") (("" (INST?) (("" (LEMMA "max_phi") (("" (INST?) (("" (REWRITE "intruderSpeeddef") (("" (EXPAND "tstep") (("" (GROUND) (("" (LEMMA "heading_ge_y_le_any_phi") (("" (INST -1 "18" "intruder!1 with [heading := 146]" "intruder!1") (("" (LEMMA "intruder_on_y_heading_eq_146_any_phi") (("" (INST -1 "intruder!1 WITH [heading := 146]") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_le_146i_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "heading_le_146_y_gt_200") (("" (INST -1 "df!1" "intruder!1 with [heading := heading(intruder!1) - 360 * i!1]") (("" (ASSERT) (("" (LEMMA "trajectory_periodic_y") (("" (INST -1 "df!1" "18" "intruder!1" "-i!1") (("" (REPLACE -1 -2) (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_87_to_93_y_gt_200_range| "" (INDUCT "i") (("1" (SKOSIMP*) (("1" (EXPAND "trajectory") (("1" (EXPAND "next_state") (("1" (EXPAND "trajectory") (("1" (EXPAND "next_state") (("1" (REWRITE "intruder_speed") (("1" (EXPAND "trajectory") (("1" (LEMMA "sin_of_87_93") (("1" (LEMMA "sin_of_84_96") (("1" (LEMMA "sin_decreases_towards_pos_270_le") (("1" (LEMMA "sin_decreases_towards_neg_90_le") (("1" (CASE "heading(intruder!1) + tstep * trkrate(phi(intruder!1)) > 84 and heading(intruder!1) + tstep * trkrate(phi(intruder!1)) < 96") (("1" (INST -2 "87" "heading(intruder!1)") (("1" (INST -3 "heading(intruder!1)" "93") (("1" (REVEAL -1 -2) (("1" (INST -1 "heading(intruder!1) + tstep * trkrate(phi(intruder!1))" "96") (("1" (INST -2 "84" "heading(intruder!1) + tstep * trkrate(phi(intruder!1))") (("1" (EXPAND "tstep") (("1" (REWRITE "intruderSpeeddef") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE -1 -2 2) (("2" (LEMMA "max_phi") (("2" (INST?) (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (INST?) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (REWRITE "intruder_speed") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (CASE "heading(trajectory(intruder!1, df!1, k!1)) > 0 and heading(trajectory(intruder!1, df!1, k!1)) < 180") (("1" (LEMMA "sin_between_0_180_pos") (("1" (INST?) (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (DELETE -2 2) (("2" (REWRITE "trajectory_heading ") (("2" (EXPAND "first_step") (("2" (LEMMA "max_phi") (("2" (LEMMA "max_heading_change") (("2" (INST?) (("2" (INST?) (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_87_to_93_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "heading_87_to_93_y_gt_200_range") (("" (INST -1 "df!1" "intruder!1" "18") (("" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) (|heading_87i_to_93i_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "heading_87_to_93_y_gt_200") (("" (INST -1 "df!1" "intruder!1 with [heading := heading(intruder!1) - 360 * i!1]") (("" (ASSERT) (("" (LEMMA "trajectory_periodic_y") (("" (INST -1 "df!1" "18" "intruder!1" "-i!1") (("" (REPLACE -1 -2) (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|intruder_on_y_heading_eq_neg34| "" (SKOSIMP*) (("" (LEMMA "y_change_for_pos_35_trajectory_A") (("" (INST?) (("" (REPLACE -3 -1) (("" (ASSERT) (("" (REPLACE -1 1) (("" (REWRITE "intruderSpeeddef") (("" (EXPAND "tstep") (("" (DELETE -1) (("" (REPLACE -3 1) (("" (REWRITE "cos_approx") (("" (REWRITE "sin_approx") (("" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|phi_pos35_ge| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "v(trajectory(intruder!1 WITH [phi := 35], pos_35_bank, k!1)) * sin(heading (trajectory(intruder!1 WITH [phi := 35], pos_35_bank, k!1))) * tstep >= v(trajectory(intruder!1, pos_35_bank, k!1)) * sin(heading(trajectory(intruder!1, pos_35_bank, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (LEMMA "phi_pos35_heading_ge") (("2" (INST?) (("2" (LEMMA "sin_decreases_towards_neg_90_le") (("2" (INST -1 "heading(trajectory(intruder!1, pos_35_bank, k!1))" "heading (trajectory(intruder!1 WITH [phi := 35], pos_35_bank, k!1))") (("1" (GROUND) (("1" (DELETE 2) (("1" (REWRITE "trajectory_heading ") (("1" (DELETE -1) (("1" (EXPAND "first_step") (("1" (LEMMA "max_phi") (("1" (LEMMA "max_heading_change_pos") (("1" (INST?) (("1" (INST?) (("1" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE -1 2) (("2" (REWRITE "trajectory_heading ") (("2" (EXPAND "first_step") (("2" (LEMMA "max_heading_change_pos") (("2" (LEMMA "max_phi") (("2" (INST?) (("2" (INST?) (("2" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (DELETE -1 2) (("3" (REWRITE "trajectory_heading ") (("3" (EXPAND "first_step") (("3" (LEMMA "max_phi") (("3" (LEMMA "max_heading_change_pos") (("3" (CASE "k!1 = 0") (("1" (INST?) (("1" (INST -3 "intruder!1 WITH [phi := 35]") (("1" (EXPAND "tstep") (("1" (REWRITE "intruderSpeeddef") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (INST?) (("1" (INST -2 "intruder!1 with [phi := 35]") (("1" (EXPAND "tstep") (("1" (REWRITE "intruderSpeeddef") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("4" (DELETE -1 2) (("4" (REWRITE "trajectory_heading ") (("4" (EXPAND "first_step") (("4" (LEMMA "max_heading_change_pos") (("4" (LEMMA "max_phi") (("4" (INST -1 "intruder!1 with [phi := 35]") (("1" (INST -2 "intruder!1 with [phi := 35]" "k!1") (("1" (EXPAND "tstep") (("1" (REWRITE "intruderSpeeddef") (("1" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (PROPAX) NIL NIL)) NIL)) NIL) (|intruder_on_y_heading_eq_neg34_any_phi| "" (SKOSIMP*) (("" (LEMMA "phi_pos35_ge") (("" (INST?) (("" (LEMMA "intruder_on_y_heading_eq_neg34") (("" (INST -1 "intruder!1 WITH [phi := 35]") (("1" (GROUND) NIL NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sin_of_heading_pos35_le_neg90_0| "" (SKOSIMP*) (("" (REWRITE "trajectory_heading") (("" (REWRITE "trajectory_heading") (("" (EXPAND "first_step") (("" (CASE "i!1=0") (("1" (REPLACE -1) (("1" (EXPAND "h_c") (("1" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "sin_right_of_min_ge") (("2" (INST -1 "heading(s!1) + tstep * trkrate(phi(s!1))" "tstep * h_c(s!1, pos_35_bank, i!1)" "-tstep * h_c(s!1, df!1, i!1)") (("2" (GROUND) (("1" (LEMMA "max_heading_change") (("1" (INST?) (("1" (TYPEPRED "i!1") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "max_heading_change_pos") (("2" (INST?) (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("3" (LEMMA "heading_pos35_le") (("3" (INST -1 "df!1" "i!1" "s!1") (("3" (EXPAND "tstep") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("4" (EXPAND "tstep") (("4" (LEMMA "heading_pos35_ge") (("4" (INST?) (("4" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_le_y_le_neg| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (INST?) (("2" (CASE "v(trajectory(s1!1, pos_35_bank, k!1)) * sin(heading(trajectory(s1!1, pos_35_bank, k!1))) * tstep <= v(trajectory(s2!1, pos_35_bank, k!1)) * sin(heading(trajectory(s2!1, pos_35_bank, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (REWRITE "trajectory_heading") (("2" (REWRITE "trajectory_heading") (("2" (EXPAND "first_step") (("2" (CASE "k!1 = 0") (("1" (ASSERT) (("1" (LEMMA "heading_change_eq") (("1" (INST?) (("1" (INST -1 "s2!1") (("1" (REPLACE -1 1) (("1" (LEMMA "sin_decreases_towards_neg_90_le") (("1" (INST -1 "heading(s1!1) + tstep * h_c(s2!1, pos_35_bank, k!1)" "heading(s2!1) + tstep * h_c(s2!1, pos_35_bank, k!1)") (("1" (GROUND) (("1" (DELETE 2) (("1" (LEMMA "max_heading_change") (("1" (INST?) (("1" (EXPAND "tstep") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (LEMMA "max_heading_change_pos") (("2" (INST?) (("2" (EXPAND "tstep") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("3" (DELETE 2) (("3" (LEMMA "max_heading_change_pos") (("3" (INST?) (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("4" (DELETE 2) (("4" (LEMMA "max_heading_change_pos") (("4" (INST?) (("4" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "heading_change_eq") (("2" (INST?) (("2" (INST -1 "s2!1") (("2" (REPLACE -1 2) (("2" (LEMMA "sin_decreases_towards_neg_90_le") (("2" (INST -1 "heading(s1!1) + tstep * trkrate(phi(s1!1)) + tstep * h_c(s2!1, pos_35_bank, k!1)" "heading(s2!1) + tstep * trkrate(phi(s2!1)) + tstep * h_c(s2!1, pos_35_bank, k!1)") (("2" (EXPAND "tstep") (("2" (LEMMA "max_heading_change_pos") (("2" (INST?) (("2" (LEMMA "phi_0_pos_trkrate_0_pos") (("2" (INST?) (("2" (LEMMA "phi_0_pos_trkrate_0_pos") (("2" (INST -1 "s2!1") (("2" (LEMMA "max_phi ") (("2" (INST?) (("2" (LEMMA "max_phi ") (("2" (INST -1 "s1!1") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (LEMMA "phi_le_trkrate_le") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_le_y_le_any_phi_neg| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (INST?) (("2" (CASE "v(trajectory(s1!1, pos_35_bank, k!1)) * sin(heading(trajectory(s1!1, pos_35_bank, k!1))) * tstep <= v(trajectory(s2!1, pos_35_bank, k!1)) * sin(heading(trajectory(s2!1, pos_35_bank, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (REWRITE "trajectory_heading") (("2" (REWRITE "trajectory_heading") (("2" (EXPAND "first_step") (("2" (CASE "k!1 = 0") (("1" (ASSERT) (("1" (REPLACE -1 1) (("1" (EXPAND "h_c") (("1" (LEMMA "sin_decreases_towards_neg_90_le") (("1" (INST -1 "heading(s1!1)" "heading(s2!1)") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "heading_change_eq") (("2" (INST?) (("2" (INST -1 "s2!1") (("2" (REPLACE -1 2) (("2" (LEMMA "sin_decreases_towards_neg_90_le") (("2" (INST -1 "heading(s1!1) + tstep * trkrate(phi(s1!1)) + tstep * h_c(s2!1, pos_35_bank, k!1)" "heading(s2!1) + tstep * trkrate(phi(s2!1)) + tstep * h_c(s2!1, pos_35_bank, k!1)") (("2" (EXPAND "tstep") (("2" (LEMMA "max_heading_change_pos") (("2" (INST?) (("2" (LEMMA "phi_0_pos_trkrate_0_pos") (("2" (INST?) (("2" (LEMMA "phi_0_pos_trkrate_0_pos") (("2" (INST -1 "s2!1") (("2" (LEMMA "max_phi ") (("2" (INST?) (("2" (LEMMA "max_phi ") (("2" (INST -1 "s1!1") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (LEMMA "phi_le_trkrate_le") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|turn_pos35_y_le_neg34_neg90| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (INST -2 "df!1") (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "v(trajectory(intruder!1, pos_35_bank, k!1)) * sin(heading(trajectory(intruder!1, pos_35_bank, k!1))) * tstep >= v(trajectory(intruder!1, df!1, k!1)) * sin(heading(trajectory(intruder!1, df!1, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (LEMMA "sin_of_heading_pos35_le_neg90_0") (("2" (INST -1 "df!1" "intruder!1" "k!1") (("2" (GROUND) (("1" (DELETE 2) (("1" (LEMMA "max_phi") (("1" (INST?) (("1" (REWRITE "intruderSpeeddef") (("1" (EXPAND "tstep") (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "max_phi") (("2" (INST?) (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_le_neg34_ge_neg87_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "turn_pos35_y_le_neg34_neg90") (("" (INST?) (("" (LEMMA "max_phi") (("" (INST?) (("" (REWRITE "intruderSpeeddef") (("" (EXPAND "tstep") (("" (GROUND) (("" (LEMMA "heading_le_y_le_any_phi_neg") (("" (INST -1 "18" "intruder!1" "intruder!1 with [heading := -34]") (("" (LEMMA "intruder_on_y_heading_eq_neg34_any_phi") (("" (INST -1 "intruder!1 WITH [heading := -34]") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_le_neg34i_ge_neg87i_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "heading_le_neg34_ge_neg87_y_gt_200") (("" (INST -1 "df!1" "intruder!1 with [heading := heading(intruder!1) - 360 * i!1]") (("" (ASSERT) (("" (LEMMA "trajectory_periodic_y") (("" (INST -1 "df!1" "18" "intruder!1" "-i!1") (("" (REPLACE -1 -2) (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sin_of_heading_neg35_le_neg90_neg180| "" (SKOSIMP*) (("" (REWRITE "trajectory_heading") (("" (REWRITE "trajectory_heading") (("" (EXPAND "first_step") (("" (CASE "i!1=0") (("1" (REPLACE -1) (("1" (EXPAND "h_c") (("1" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "sin_left_of_min_ge") (("2" (INST -1 "heading(s!1) + tstep * trkrate(phi(s!1))" "-tstep * h_c(s!1, neg_35_bank, i!1)" "tstep * h_c(s!1, df!1, i!1)") (("2" (GROUND) (("1" (LEMMA "max_heading_change_neg") (("1" (INST?) (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (LEMMA "max_heading_change_neg") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL) ("3" (LEMMA "heading_neg35_le") (("3" (INST -1 "df!1" "i!1" "s!1") (("3" (EXPAND "tstep") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("4" (LEMMA "heading_neg35_ge") (("4" (INST -1 "df!1" "i!1" "s!1") (("4" (EXPAND "tstep") (("4" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|turn_neg35_y_le_neg90_neg145| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (INST -2 "df!1") (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "v(trajectory(intruder!1, neg_35_bank, k!1)) * sin(heading(trajectory(intruder!1, neg_35_bank, k!1))) * tstep >= v(trajectory(intruder!1, df!1, k!1)) * sin(heading(trajectory(intruder!1, df!1, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (LEMMA "sin_of_heading_neg35_le_neg90_neg180") (("2" (INST -1 "df!1" "intruder!1" "k!1") (("2" (EXPAND "tstep") (("2" (GROUND) (("2" (DELETE 2) (("2" (LEMMA "max_phi") (("2" (INST?) (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_ge_y_le_any_phi_neg93_neg180| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (INST?) (("2" (CASE "v(trajectory(s1!1, neg_35_bank, k!1)) * sin(heading(trajectory(s1!1, neg_35_bank, k!1))) * tstep >= v(trajectory(s2!1, neg_35_bank, k!1)) * sin(heading(trajectory(s2!1, neg_35_bank, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (REWRITE "trajectory_heading") (("2" (REWRITE "trajectory_heading") (("2" (EXPAND "first_step") (("2" (CASE "k!1 = 0") (("1" (ASSERT) (("1" (REPLACE -1 1) (("1" (EXPAND "h_c") (("1" (LEMMA "sin_increases_towards_neg_270_le") (("1" (INST -1 "heading(s2!1)" "heading(s1!1)") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "heading_change_eq") (("2" (INST?) (("2" (INST -1 "s2!1") (("2" (REPLACE -1 2) (("2" (LEMMA "sin_increases_towards_neg_270_le") (("2" (INST -1 "heading(s2!1) + tstep * trkrate(phi(s2!1)) + tstep * h_c(s2!1, neg_35_bank, k!1)" "heading(s1!1) + tstep * trkrate(phi(s1!1)) + tstep * h_c(s2!1, neg_35_bank, k!1)") (("2" (EXPAND "tstep") (("2" (LEMMA "max_heading_change_neg") (("2" (INST?) (("2" (LEMMA "max_phi ") (("2" (INST?) (("2" (LEMMA "max_phi ") (("2" (INST -1 "s1!1") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (LEMMA "phi_le_trkrate_le") (("2" (INST?) (("2" (INST -1 "s2!1") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|intruder_on_y_heading_eq_neg146| "" (SKOSIMP*) (("" (LEMMA "y_change_for_neg_35_trajectory_A") (("" (INST?) (("" (REPLACE -3 -1) (("" (ASSERT) (("" (REPLACE -1 1) (("" (REWRITE "intruderSpeeddef") (("" (EXPAND "tstep") (("" (DELETE -1) (("" (REPLACE -3 1) (("" (REWRITE "cos_approx") (("" (REWRITE "sin_approx") (("" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|phi_neg35_le_neg146| "" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "v(trajectory(intruder!1 WITH [phi := -35], neg_35_bank, k!1)) * sin(heading (trajectory(intruder!1 WITH [phi := -35], neg_35_bank, k!1))) * tstep >= v(trajectory(intruder!1, neg_35_bank, k!1)) * sin(heading(trajectory(intruder!1, neg_35_bank, k!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -2 2) (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruder_speed") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (LEMMA "phi_neg35_heading_le") (("2" (INST?) (("2" (LEMMA "sin_increases_towards_neg_270_le") (("2" (INST -1 "heading(trajectory(intruder!1, neg_35_bank, k!1))" "heading (trajectory(intruder!1 WITH [phi := -35], neg_35_bank, k!1))") (("1" (GROUND) (("1" (DELETE 2) (("1" (REWRITE "trajectory_heading ") (("1" (DELETE -1) (("1" (EXPAND "first_step") (("1" (LEMMA "max_phi") (("1" (LEMMA "max_heading_change_neg") (("1" (INST?) (("1" (INST?) (("1" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE -1 2) (("2" (REWRITE "trajectory_heading ") (("2" (EXPAND "first_step") (("2" (LEMMA "max_heading_change_neg") (("2" (LEMMA "max_phi") (("2" (INST?) (("2" (INST?) (("2" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (DELETE -1 2) (("3" (REWRITE "trajectory_heading ") (("3" (EXPAND "first_step") (("3" (LEMMA "max_heading_change_neg") (("3" (LEMMA "max_phi") (("3" (INST -1 "intruder!1 WITH [phi := -35]") (("1" (INST?) (("1" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("4" (REWRITE "trajectory_heading ") (("4" (EXPAND "first_step") (("4" (LEMMA "max_heading_change_neg") (("4" (LEMMA "max_phi") (("4" (INST -1 "intruder!1 WITH [phi := -35]") (("1" (INST?) (("1" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "abs") (("3" (PROPAX) NIL NIL)) NIL)) NIL) (|intruder_on_y_heading_eq_neg146_any_phi| "" (SKOSIMP*) (("" (LEMMA "phi_neg35_le_neg146") (("" (INST?) (("" (LEMMA "intruder_on_y_heading_eq_neg146") (("" (INST -1 "intruder!1 with [phi := -35]") (("1" (GROUND) NIL NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_le_neg146_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "turn_neg35_y_le_neg90_neg145") (("" (INST?) (("" (LEMMA "max_phi") (("" (INST?) (("" (REWRITE "intruderSpeeddef") (("" (EXPAND "tstep") (("" (GROUND) (("" (LEMMA "heading_ge_y_le_any_phi_neg93_neg180") (("" (INST -1 "18" "intruder!1 with [heading := -146]" "intruder!1") (("" (LEMMA "intruder_on_y_heading_eq_neg146_any_phi") (("" (INST -1 "intruder!1 WITH [heading := -146]") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_le_neg93i_ge_neg146i_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "heading_le_neg146_y_gt_200 ") (("" (INST -1 "df!1" "intruder!1 with [heading := heading(intruder!1) - 360 * i!1]") (("" (ASSERT) (("" (LEMMA "trajectory_periodic_y") (("" (INST -1 "df!1" "18" "intruder!1" "-i!1") (("" (REPLACE -1 -2) (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_neg87_to_neg93_y_gt_200_range| "" (INDUCT "i") (("1" (SKOSIMP*) (("1" (EXPAND "trajectory") (("1" (EXPAND "next_state") (("1" (EXPAND "trajectory") (("1" (EXPAND "next_state") (("1" (REWRITE "intruder_speed") (("1" (EXPAND "trajectory") (("1" (LEMMA "sin_of_neg87_neg93") (("1" (LEMMA "sin_of_neg84_neg96") (("1" (LEMMA "sin_increases_towards_neg_270_le") (("1" (LEMMA "sin_decreases_towards_neg_90_le") (("1" (CASE "heading(intruder!1) + tstep * trkrate(phi(intruder!1)) < -84 and heading(intruder!1) + tstep * trkrate(phi(intruder!1)) > -96") (("1" (INST -2 "heading(intruder!1)" "-87") (("1" (INST -3 "heading(intruder!1)" "-93") (("1" (REVEAL -1 -2) (("1" (INST -1 "heading(intruder!1) + tstep * trkrate(phi(intruder!1))" "-96") (("1" (INST -2 "heading(intruder!1) + tstep * trkrate(phi(intruder!1))" "-84") (("1" (EXPAND "tstep") (("1" (REWRITE "intruderSpeeddef") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE -1 -2 2) (("2" (LEMMA "max_phi") (("2" (INST?) (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (INST -2 "df!1") (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (REWRITE "intruder_speed") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (CASE "heading(trajectory(intruder!1, df!1, k!1)) < 0 and heading(trajectory(intruder!1, df!1, k!1)) > -180") (("1" (LEMMA "sin_between_0_neg180_neg") (("1" (INST?) (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (DELETE -2 2) (("2" (REWRITE "trajectory_heading ") (("2" (EXPAND "first_step") (("2" (LEMMA "max_phi") (("2" (LEMMA "max_heading_change") (("2" (INST?) (("2" (INST?) (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_neg87_to_neg93_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "heading_neg87_to_neg93_y_gt_200_range") (("" (INST -1 "df!1" "intruder!1" "18") (("" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) (|heading_neg93i_to_neg87i_y_gt_200| "" (SKOSIMP*) (("" (LEMMA "heading_neg87_to_neg93_y_gt_200") (("" (INST -1 "df!1" "intruder!1 with [heading := heading(intruder!1) - 360 * i!1]") (("" (ASSERT) (("" (LEMMA "trajectory_periodic_y") (("" (INST -1 "df!1" "18" "intruder!1" "-i!1") (("" (REPLACE -1 -2) (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_146_to_180_x_gt_200| "" (INDUCT "i") (("1" (SKOSIMP*) (("1" (EXPAND "distance") (("1" (REPLACE -1) (("1" (REPLACE -2) (("1" (EXPAND "trajectory" 1 2) (("1" (ASSERT) (("1" (EXPAND "sq" -6 1) (("1" (REWRITE "sqrt_of_sq") (("1" (EXPAND "abs") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" 1 2) (("2" (EXPAND "next_state") (("2" (INST?) (("2" (REWRITE "intruder_speed") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (CASE "heading(trajectory(intruder!1, df!1, k!1)) >= 90 and heading(trajectory(intruder!1, df!1, k!1)) <= 270") (("1" (LEMMA "cos_90_to_270") (("1" (INST?) (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (DELETE -2 2) (("2" (REWRITE "trajectory_heading") (("2" (EXPAND "first_step") (("2" (LEMMA "max_phi") (("2" (INST?) (("2" (LEMMA "max_heading_change") (("2" (INST?) (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_146i_to_180i_x_gt_200| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (LEMMA "heading_146_to_180_x_gt_200") (("" (INST -1 "df!1" "intruder!1 with [heading := heading(intruder!1) - 360 * j!1]" "se!1" "i!1") (("" (ASSERT) (("" (ASSERT) (("" (EXPAND "distance") (("" (ASSERT) (("" (LEMMA "trajectory_periodic_x") (("" (INST -1 "df!1" "i!1" "intruder!1" "-j!1") (("" (REPLACE -1 -2) (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_neg146_to_neg180_x_gt_200| "" (INDUCT "i") (("1" (SKOSIMP*) (("1" (EXPAND "distance") (("1" (REPLACE -1) (("1" (REPLACE -2) (("1" (EXPAND "trajectory" 1 2) (("1" (ASSERT) (("1" (EXPAND "sq" -6 1) (("1" (REWRITE "sqrt_of_sq") (("1" (EXPAND "abs") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" 1 2) (("2" (EXPAND "next_state") (("2" (INST?) (("2" (REWRITE "intruder_speed") (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (CASE "heading(trajectory(intruder!1, df!1, k!1)) >= -270 and heading(trajectory(intruder!1, df!1, k!1)) <= -90") (("1" (LEMMA "cos_neg90_to_neg270") (("1" (INST?) (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (DELETE -2 2) (("2" (REWRITE "trajectory_heading") (("2" (EXPAND "first_step") (("2" (LEMMA "max_phi") (("2" (INST?) (("2" (LEMMA "max_heading_change") (("2" (INST?) (("2" (EXPAND "tstep") (("2" (REWRITE "intruderSpeeddef") (("2" (CASE "k!1 = 0") (("1" (GROUND) NIL NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|heading_neg146i_to_neg180i_x_gt_200| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (LEMMA "heading_neg146_to_neg180_x_gt_200") (("" (INST -1 "df!1" "intruder!1 with [heading := heading(intruder!1) - 360 * j!1]" "se!1" "i!1") (("" (ASSERT) (("" (ASSERT) (("" (EXPAND "distance") (("" (ASSERT) (("" (LEMMA "trajectory_periodic_x") (("" (INST -1 "df!1" "i!1" "intruder!1" "-j!1") (("" (REPLACE -1 -2) (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|div_TCC1| "" (INST 1 "lambda (x:real,b:posnat):floor(x/b)") (("" (SKOSIMP*) (("" (INST 1 "x!1 - floor(x!1 / b!1) * b!1") (("1" (GROUND) NIL NIL) ("2" (TYPEPRED "floor(x!1 / b!1)") (("2" (GROUND) (("1" (BOTH-SIDES "/" "b!1") (("1" (GROUND) NIL NIL)) NIL) ("2" (BOTH-SIDES "/" "b!1") (("1" (GROUND) NIL NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|all_angles| "" (SKOSIMP*) (("" (INST 1 "div(x!1+180,360)") (("" (INST 2 "div(x!1+180,360)") (("" (INST 3 "div(x!1+180,360)") (("" (INST 4 "div(x!1+180,360)") (("" (INST 5 "div(x!1+180,360)") (("" (INST 6 "div(x!1+180,360)") (("" (INST 7 "div(x!1+180,360)") (("" (INST 8 "div(x!1+180,360)") (("" (INST 9 "div(x!1+180,360)") (("" (TYPEPRED "div(x!1+180, 360)") (("" (SKOSIMP*) (("" (TYPEPRED "r!1") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|intruder_and_evader_on_y_collision_imp_heading_le_34_e| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (CASE "forall (x,y:nonneg_real): sq(y) <= sq(x) IFF y<=x") (("1" (EXPAND "collision_scenario") (("1" (EXPAND "collision") (("1" (EXPAND "collisionRange") (("1" (LEMMA "sqrt_monotone") (("1" (INST -1 "sq(x(trajectory(intruder!1, df!1, 18)) - x(trajectory(se!1, zero_bank, 18))) + sq(y(trajectory(intruder!1, df!1, 18)) - y(trajectory(se!1, zero_bank, 18)))" "sq(200)") (("1" (REWRITE "sqrt_of_sq") (("1" (EXPAND "abs") (("1" (EXPAND "distance" -7) (("1" (NAME-REPLACE XDSQ "sq(x(trajectory(intruder!1, df!1, 18)) - x(trajectory(se!1, zero_bank, 18)))") (("1" (CASE "exists (i:int): heading(intruder!1) >= 34 + 360 * i and heading(intruder!1) <= 87 + 360 * i") (("1" (SKOSIMP*) (("1" (LEMMA "heading_ge_34i_le_87i_y_gt_200") (("1" (INST?) (("1" (INST?) (("1" (INST -6 "200" "y(trajectory(intruder!1, df!1, 18))") (("1" (TYPEPRED "XDSQ") (("1" (GROUND) NIL NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "exists (i:int): heading(intruder!1) >= 87 + 360 * i and heading(intruder!1) <= 93 + 360 * i") (("1" (SKOSIMP*) (("1" (LEMMA "heading_87i_to_93i_y_gt_200") (("1" (INST?) (("1" (INST?) (("1" (INST -6 "200" "y(trajectory(intruder!1, df!1, 18))") (("1" (TYPEPRED "XDSQ") (("1" (GROUND) NIL NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "XDSQ") (("2" (CASE "exists (i:int): heading(intruder!1) >= 93 + 360 * i and heading(intruder!1) <= 146 + 360 * i") (("1" (SKOSIMP*) (("1" (LEMMA "heading_le_146i_y_gt_200 ") (("1" (INST?) (("1" (INST?) (("1" (INST -7 "200" "y(trajectory(intruder!1, df!1, 18))") (("1" (GROUND) NIL NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "exists (i:int): heading(intruder!1) >= -87 + 360 * i and heading(intruder!1) <= -34 + 360 * i") (("1" (SKOSIMP*) (("1" (LEMMA "heading_le_neg34i_ge_neg87i_y_gt_200") (("1" (INST?) (("1" (INST?) (("1" (LEMMA "sq_of_neg_le_ge") (("1" (INST -1 "-200" "y(trajectory(intruder!1, df!1, 18))") (("1" (CASE-REPLACE "sq(-200) = sq(200)") (("1" (GROUND) NIL NIL) ("2" (EXPAND "sq") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "exists (i:int): heading(intruder!1) >= -93 + 360 * i and heading(intruder!1) <= -87 + 360 * i") (("1" (SKOSIMP*) (("1" (LEMMA " heading_neg93i_to_neg87i_y_gt_200") (("1" (INST?) (("1" (INST?) (("1" (LEMMA "sq_of_neg_le_ge") (("1" (INST -1 "-200" "y(trajectory(intruder!1, df!1, 18))") (("1" (CASE-REPLACE "sq(-200) = sq(200)") (("1" (GROUND) NIL NIL) ("2" (EXPAND "sq") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "exists (i:int): heading(intruder!1) >= -146 + 360 * i and heading(intruder!1) <= -93 + 360 * i") (("1" (SKOSIMP*) (("1" (LEMMA "heading_le_neg93i_ge_neg146i_y_gt_200") (("1" (INST?) (("1" (INST?) (("1" (LEMMA "sq_of_neg_le_ge") (("1" (INST -1 "-200" "y(trajectory(intruder!1, df!1, 18))") (("1" (CASE-REPLACE "sq(-200) = sq(200)") (("1" (GROUND) NIL NIL) ("2" (EXPAND "sq") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE -1) (("2" (REVEAL -1) (("2" (REPLACE -1 :DIR RL) (("2" (DELETE -1) (("2" (NAME-REPLACE YDSQ "sq(y(trajectory(intruder!1, df!1, 18)) - y(trajectory(se!1, zero_bank, 18)))") (("2" (TYPEPRED "YDSQ") (("2" (CASE "exists (i:int): heading(intruder!1) >= -180 + 360 * i and heading(intruder!1) <= -146 + 360 * i") (("1" (SKOSIMP*) (("1" (LEMMA "heading_neg146i_to_neg180i_x_gt_200") (("1" (INST?) (("1" (INST?) (("1" (INST?) (("1" (INST -7 "200" "x(trajectory(se!1, zero_bank, 18)) -x(trajectory(intruder!1, df!1, 18))") (("1" (CASE "forall (x,y:real): sq(y-x) = sq(x-y)") (("1" (INST -1 "x(trajectory(intruder!1, df!1, 18))" "x(trajectory(se!1, zero_bank, 18))") (("1" (REPLACE -1 -8) (("1" (GROUND) (("1" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL) ("2" (GROUND) (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "exists (i:int): heading(intruder!1) >= 146 + 360 * i and heading(intruder!1) <= 180 + 360 * i") (("1" (SKOSIMP*) (("1" (LEMMA "heading_146i_to_180i_x_gt_200") (("1" (INST?) (("1" (INST?) (("1" (INST?) (("1" (INST -7 "200" "x(trajectory(se!1, zero_bank, 18)) -x(trajectory(intruder!1, df!1, 18))") (("1" (CASE "forall (x,y:real): sq(y-x) = sq(x-y)") (("1" (INST -1 "x(trajectory(intruder!1, df!1, 18))" "x(trajectory(se!1, zero_bank, 18))") (("1" (REPLACE -1 -8) (("1" (GROUND) (("1" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL) ("2" (GROUND) (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "all_angles") (("2" (INST -1 "heading(intruder!1)") (("2" (GROUND) (("1" (SKOSIMP*) (("1" (INST 5 "j!1") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (INST 4 "j!1") (("2" (GROUND) NIL NIL)) NIL)) NIL) ("3" (SKOSIMP*) (("3" (INST 3 "j!1") (("3" (GROUND) NIL NIL)) NIL)) NIL) ("4" (SKOSIMP*) (("4" (INST 2 "j!1") (("4" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (REWRITE "sq_le_IFF_le") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|evader_intruder_lt| "" (SKOSIMP*) (("" (LEMMA "absolute_distance") (("" (INST?) (("" (LEMMA "triangle_distance") (("" (INST -1 "intruder!1" "evader!1" "trajectory(evader!1, zero_bank, n!1)") (("" (CASE-REPLACE "distance(evader!1, trajectory(evader!1, zero_bank, n!1)) = distance(trajectory(evader!1, zero_bank, n!1),evader!1)") (("1" (DELETE -1) (("1" (GROUND) NIL NIL)) NIL) ("2" (DELETE -) (("2" (DELETE 2) (("2" (EXPAND "distance") (("2" (GROUND) (("2" (CASE "forall (x,y:real): sq(x-y) = sq(y-x)") (("1" (INST?) (("1" (REPLACE -1 1) (("1" (REVEAL -1) (("1" (INST -1 "y(evader!1)" "y(trajectory(evader!1, zero_bank, n!1))") (("1" (REPLACE -1 1) (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (SKOSIMP*) (("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|trans_10k_evader_not_0| "" (SKOSIMP*) (("" (LEMMA "evader_intruder_lt") (("" (INST?) (("" (ASSERT) (("" (HIDE -2) (("" (EXPAND "distance") (("" (CASE-REPLACE "2450 + v(evader!1) * 18 * tstep = sqrt(sq(2450 + v(evader!1) * 18 * tstep))") (("1" (REWRITE "sqrt_monotone") (("1" (CASE "sq(x(intruder!1) - x(evader!1)) <= sq(2450 + 18 * (v(evader!1) * tstep))") (("1" (HIDE -2 -3) (("1" (TYPEPRED "evader!1") (("1" (REWRITE "evaderSpeeddef") (("1" (REPLACE -1) (("1" (EXPAND "tstep") (("1" (CASE "forall (x,y:real): sq(x-y) = sq(y-x)") (("1" (CASE "x(intruder!1) - x(evader!1) >= 0") (("1" (REWRITE "sq_monotone") (("1" (EXPAND "trans") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (INST?) (("2" (REPLACE -1 -5) (("2" (REWRITE "sq_monotone") (("2" (EXPAND "trans") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL) ("2" (REWRITE "sqrt_of_sq") (("2" (TYPEPRED "evader!1") (("2" (REPLACE -1) (("2" (REWRITE "evaderSpeeddef") (("2" (EXPAND "tstep") (("2" (EXPAND "abs") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|evader_traj_intruder_lt| "" (SKOSIMP*) (("" (LEMMA "absolute_distance") (("" (INST -1 "evader!1" "zero_bank" "n2!1") (("" (LEMMA "triangle_distance") (("" (INST -1 "intruder!1" "trajectory(evader!1, zero_bank, n2!1)" "evader!1") (("" (LEMMA "evader_intruder_lt") (("" (INST?) (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|trans_10k_not_0| "" (SKOSIMP*) (("" (LEMMA "evader_traj_intruder_lt") (("" (INST -1 "evader!1" "intruder!1" "n2!1") (("" (ASSERT) (("" (REWRITE "trans_before_after_traj_eq ") (("" (EXPAND "trans") (("" (DELETE -2) (("" (EXPAND "distance") (("" (LEMMA "both_sides_expt_non_neg_le_aux") (("" (INST -1 "1" "sqrt(sq(x(intruder!1) - x(trajectory(evader!1, zero_bank, n2!1))) + sq(y(intruder!1) - y(trajectory(evader!1, zero_bank, n2!1))))" "2450 + 18 * (v(evader!1) * tstep) + v(evader!1) * n2!1 * tstep") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (ASSERT) (("1" (DELETE -2) (("1" (LEMMA "sq_of_sqrt") (("1" (EXPAND "sq" -1) (("1" (REWRITE -1) (("1" (CASE-REPLACE "6002500 + 88200 * (v(evader!1) * tstep) + 4900 * (v(evader!1) * n2!1 * tstep) + 324 * (v(evader!1) * v(evader!1) * tstep * tstep) + 36 * (v(evader!1) * v(evader!1) * n2!1 * tstep * tstep) + v(evader!1) * v(evader!1) * n2!1 * n2!1 * tstep * tstep = sq(2450 + 18 * (v(evader!1) * tstep) + v(evader!1) * n2!1 * tstep)") (("1" (DELETE -1 -2) (("1" (CASE "sq(x(intruder!1) - x(trajectory(evader!1, zero_bank, n2!1))) <= sq(2450 + 18 * (v(evader!1) * tstep) + v(evader!1) * n2!1 * tstep)") (("1" (DELETE -2) (("1" (LEMMA "both_sides_expt_non_neg_le_aux") (("1" (INST -1 "1" "x(intruder!1) - x(trajectory(evader!1, zero_bank, n2!1))" "2450 + 18 * (v(evader!1) * tstep) + v(evader!1) * n2!1 * tstep") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "sq") (("1" (ASSERT) (("1" (DELETE -2) (("1" (TYPEPRED "n2!1") (("1" (EXPAND "tstep") (("1" (TYPEPRED "evader!1") (("1" (REPLACE -1) (("1" (REWRITE "evaderSpeeddef") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL) ("2" (EXPAND "sq") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "n2!1") (("2" (EXPAND "tstep") (("2" (TYPEPRED "evader!1") (("2" (REPLACE -1) (("2" (REWRITE "evaderSpeeddef") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|trans_10k_not_0_rev| "" (SKOSIMP*) (("" (LEMMA "trans_10k_not_0") (("" (INST -1 "evader!1" "intruder!1" "n2!1") (("" (REWRITE "trans_before_after_traj_eq") (("" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) (|radial_func_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|radial_func_TCC2| "" (SUBTYPE-TCC) NIL NIL) (|radial_func_TCC3| "" (SUBTYPE-TCC) NIL NIL) (|sin_of_radial_angle_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|sin_of_radial_angle| "" (SKOSIMP*) (("" (EXPAND "radial_func") (("" (CASE "x!1 = 0") (("1" (ASSERT) (("1" (CASE "y!1 > 0") (("1" (ASSERT) (("1" (REPLACE -2) (("1" (EXPAND "sq" 1 1) (("1" (REWRITE "sqrt_of_sq") (("1" (REWRITE "sin_of_neg90") (("1" (EXPAND "abs") (("1" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REPLACE -1) (("2" (EXPAND "sq" 2 1) (("2" (REWRITE "sqrt_of_sq") (("2" (EXPAND "abs") (("2" (REWRITE "sin_of_90") (("2" (TYPEPRED "x!1") (("2" (REPLACE -1 1) (("2" (EXPAND "sq") (("2" (REWRITE "sq_x_0_IFF_x_0") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (CASE "x!1 > 0") (("1" (ASSERT) (("1" (CASE "y!1 > 0") (("1" (ASSERT) (("1" (REWRITE "sin_of_sub") (("1" (REWRITE "sin_180") (("1" (REWRITE "cos_180") (("1" (REWRITE "sin_of_arctan") (("1" (ASSERT) (("1" (REWRITE "yx_over_sqrt_1 ") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REWRITE "sin_of_sum") (("2" (REWRITE "sin_180") (("2" (REWRITE "cos_180") (("2" (REWRITE "sin_of_arctan") (("2" (REWRITE "yx_over_sqrt_1") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REWRITE "sin_of_arctan") (("2" (REWRITE "yx_over_sqrt_2") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|cos_of_radial_angle| "" (SKOSIMP*) (("" (EXPAND "radial_func") (("" (CASE "x!1 = 0") (("1" (ASSERT) (("1" (CASE "y!1 > 0") (("1" (ASSERT) (("1" (REWRITE "cos_of_neg90") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REWRITE "cos_of_90") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "x!1 > 0") (("1" (ASSERT) (("1" (CASE "y!1 > 0") (("1" (ASSERT) (("1" (REWRITE "cos_of_sub") (("1" (REWRITE "cos_180") (("1" (REWRITE "sin_180") (("1" (REWRITE "cos_of_arctan") (("1" (REWRITE "one_over_sqrt_3 ") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REWRITE "cos_of_sum") (("2" (REWRITE "cos_180") (("2" (REWRITE "sin_180") (("2" (REWRITE "cos_of_arctan") (("2" (REWRITE "one_over_sqrt_3 ") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REWRITE "cos_of_arctan") (("2" (REWRITE "one_over_sqrt_4 ") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|after_rotation_of_radial_y_eq| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (EXPAND "rot") (("" (CASE "x(s1!1) > 0") (("1" (ASSERT) (("1" (REWRITE "sin_of_sub") (("1" (CASE-REPLACE "x(s2!1) > 0") (("1" (REWRITE "sin_of_sub") (("1" (REWRITE "cos_of_radial_angle") (("1" (REWRITE "sin_of_radial_angle") (("1" (REWRITE "sin_of_arctan") (("1" (REWRITE "sin_of_arctan") (("1" (REWRITE "cos_of_arctan") (("1" (REWRITE "cos_of_arctan") (("1" (CASE-REPLACE "sqrt(sq(x(s1!1)) + sq(y(s1!1))) * (y(s1!1) / x(s1!1) / (sqrt(1 + sq(y(s1!1) / x(s1!1)))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) - 1 / (sqrt(1 + sq(y(s1!1) / x(s1!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1))))) = sqrt(sq(x(s1!1)) + sq(y(s1!1))) * ((y(s1!1) / x(s1!1)) * (1 / (sqrt(1 + sq(y(s1!1) / x(s1!1))))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) - 1 / (sqrt(1 + sq(y(s1!1) / x(s1!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))))") (("1" (DELETE -1) (("1" (CASE-REPLACE "sqrt(sq(x(s2!1)) + sq(y(s2!1))) * (y(s2!1) / x(s2!1) / (sqrt(1 + sq(y(s2!1) / x(s2!1)))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) - 1 / (sqrt(1 + sq(y(s2!1) / x(s2!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1))))) = sqrt(sq(x(s2!1)) + sq(y(s2!1))) * ((y(s2!1) / x(s2!1)) * (1 / (sqrt(1 + sq(y(s2!1) / x(s2!1))))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) - 1 / (sqrt(1 + sq(y(s2!1) / x(s2!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))))") (("1" (DELETE -1) (("1" (REWRITE "one_over_sqrt_3") (("1" (REWRITE "one_over_sqrt_3") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (DELETE 3) (("3" (EXPAND "distance") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL) ("3" (GROUND) (("3" (EXPAND "distance") (("3" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "cos_of_sub") (("2" (LEMMA "cos_of_180") (("2" (INST -1 "0") (("2" (LEMMA "sin_of_0_180") (("2" (FLATTEN -1) (("2" (REPLACE*) (("2" (ASSERT) (("2" (REWRITE "sin_of_arctan") (("2" (REWRITE "cos_of_arctan") (("2" (REWRITE "cos_of_radial_angle") (("1" (REWRITE "sin_of_radial_angle") (("1" (REWRITE "cos_of_arctan") (("1" (REWRITE "sin_of_arctan") (("1" (CASE-REPLACE "1 / (sqrt(1 + sq(y(s2!1) / x(s2!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) * sqrt(sq(x(s2!1)) + sq(y(s2!1))) - -(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1))) * (y(s2!1) / x(s2!1) / (sqrt(1 + sq(y(s2!1) / x(s2!1))))) * sqrt(sq(x(s2!1)) + sq(y(s2!1))) = 1 / (sqrt(1 + sq(y(s2!1) / x(s2!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) * sqrt(sq(x(s2!1)) + sq(y(s2!1))) - -(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1))) * ((y(s2!1) / x(s2!1)) * (1 / (sqrt(1 + sq(y(s2!1) / x(s2!1)))))) * sqrt(sq(x(s2!1)) + sq(y(s2!1)))") (("1" (DELETE -1) (("1" (CASE-REPLACE "-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1))) * (y(s1!1) / x(s1!1) / (sqrt(1 + sq(y(s1!1) / x(s1!1))))) * sqrt(sq(x(s1!1)) + sq(y(s1!1))) - 1 / (sqrt(1 + sq(y(s1!1) / x(s1!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) * sqrt(sq(x(s1!1)) + sq(y(s1!1))) = -(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1))) * ((y(s1!1) / x(s1!1)) * (1 / (sqrt(1 + sq(y(s1!1) / x(s1!1)))))) * sqrt(sq(x(s1!1)) + sq(y(s1!1))) - 1 / (sqrt(1 + sq(y(s1!1) / x(s1!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) * sqrt(sq(x(s1!1)) + sq(y(s1!1)))") (("1" (DELETE -1) (("1" (REWRITE "one_over_sqrt_3") (("1" (REWRITE "one_over_sqrt_4") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (EXPAND "distance") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (EXPAND "distance") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "x(s2!1) > 0") (("1" (ASSERT) (("1" (REWRITE "sin_of_sub") (("1" (REWRITE "sin_of_sub") (("1" (REWRITE "sin_of_sub") (("1" (REWRITE "cos_of_sub") (("1" (LEMMA "sin_of_0_180") (("1" (FLATTEN -1) (("1" (LEMMA "cos_of_180") (("1" (INST -1 "0") (("1" (REPLACE*) (("1" (ASSERT) (("1" (REWRITE "cos_of_arctan") (("1" (REWRITE "cos_of_arctan") (("1" (REWRITE "cos_of_radial_angle") (("1" (REWRITE "sin_of_radial_angle") (("1" (REWRITE "sin_of_arctan") (("1" (REWRITE "sin_of_arctan") (("1" (REWRITE "yx_over_sqrt_2") (("1" (REWRITE "yx_over_sqrt_1") (("1" (REWRITE "one_over_sqrt_4") (("1" (REWRITE "one_over_sqrt_3") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "cos_180") (("2" (REWRITE "sin_180") (("2" (ASSERT) (("2" (REWRITE "cos_of_arctan") (("2" (REWRITE "cos_of_arctan") (("2" (REWRITE "sin_of_arctan") (("2" (REWRITE "sin_of_arctan") (("2" (REWRITE "sin_of_radial_angle") (("1" (REWRITE "cos_of_radial_angle") (("1" (REWRITE "yx_over_sqrt_2") (("1" (REWRITE "yx_over_sqrt_2") (("1" (REWRITE "one_over_sqrt_4") (("1" (REWRITE "one_over_sqrt_4") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|x_evader_gt_x_int_after_radial_rotation| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (EXPAND "rot") (("" (CASE "x(s2!1) > 0") (("1" (CASE "x(s1!1) > 0") (("1" (ASSERT) (("1" (REWRITE "cos_of_sub") (("1" (REWRITE "cos_of_sub") (("1" (REWRITE "cos_of_arctan") (("1" (REWRITE "cos_of_arctan") (("1" (REWRITE "cos_of_radial_angle") (("1" (REWRITE "sin_of_arctan") (("1" (REWRITE "sin_of_arctan") (("1" (REWRITE "sin_of_radial_angle") (("1" (REWRITE "one_over_sqrt_3") (("1" (REWRITE "one_over_sqrt_3") (("1" (REWRITE "yx_over_sqrt_1") (("1" (REWRITE "yx_over_sqrt_1") (("1" (GROUND) (("1" (CASE-REPLACE "x(s2!1) * sqrt(sq(x(s2!1)) + sq(y(s2!1))) * (1 / sqrt(sq(x(s2!1)) + sq(y(s2!1)))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) + y(s2!1) * sqrt(sq(x(s2!1)) + sq(y(s2!1))) * (1 / sqrt(sq(x(s2!1)) + sq(y(s2!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) = (x(s2!1) * (-(x(s1!1) - x(s2!1))) + y(s2!1) * (-(y(s1!1) - y(s2!1)))) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))") (("1" (DELETE -1) (("1" (CASE-REPLACE "x(s1!1) * sqrt(sq(x(s1!1)) + sq(y(s1!1))) * (1 / sqrt(sq(x(s1!1)) + sq(y(s1!1)))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) + y(s1!1) * sqrt(sq(x(s1!1)) + sq(y(s1!1))) * (1 / sqrt(sq(x(s1!1)) + sq(y(s1!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) = (x(s1!1) * (-(x(s1!1) - x(s2!1))) + y(s1!1) * (-(y(s1!1) - y(s2!1)))) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))") (("1" (DELETE -1) (("1" (REWRITE "both_sides_div_pos_gt1") (("1" (CASE "x(s1!1) /= x(s2!1)") (("1" (LEMMA "inequality_on_x") (("1" (INST?) (("1" (LEMMA "x_ge") (("1" (INST -1 "y(s1!1)" "y(s2!1)") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (REPLACE -1) (("2" (GROUND) (("2" (REWRITE "zero_is_neg_zero") (("2" (ASSERT) (("2" (EXPAND "distance") (("2" (REPLACE -1 3) (("2" (ASSERT) (("2" (EXPAND "sq" 3 1) (("2" (REWRITE "sqrt_of_sq") (("2" (EXPAND "abs") (("2" (REWRITE "inequality_on_x") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (EXPAND "distance") (("3" (ASSERT) NIL NIL)) NIL) ("4" (REWRITE "sqrt_of_magnitud_not_0") NIL NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (EXPAND "distance") (("3" (ASSERT) NIL NIL)) NIL) ("4" (REWRITE "sqrt_of_magnitud_not_0") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "sin_180") (("2" (REWRITE "cos_180") (("2" (ASSERT) (("2" (REWRITE "cos_of_arctan") (("2" (REWRITE "cos_of_arctan") (("2" (REWRITE "sin_of_arctan") (("2" (REWRITE "sin_of_arctan") (("2" (REWRITE "cos_of_radial_angle") (("1" (REWRITE "sin_of_radial_angle") (("1" (LEMMA "one_over_sqrt_3") (("1" (INST?) (("1" (ASSERT) (("1" (REPLACE -1 5) (("1" (DELETE -1) (("1" (LEMMA "one_over_sqrt_4") (("1" (INST -1 "x(s1!1)" "y(s1!1)") (("1" (ASSERT) (("1" (REPLACE -1 5) (("1" (DELETE -1) (("1" (REWRITE "yx_over_sqrt_1") (("1" (LEMMA "yx_over_sqrt_2") (("1" (INST -1 "x(s1!1)" "y(s1!1)") (("1" (GROUND) (("1" (REPLACE -1 5) (("1" (DELETE -1) (("1" (CASE-REPLACE "x(s2!1) * sqrt(sq(x(s2!1)) + sq(y(s2!1))) * (1 / sqrt(sq(x(s2!1)) + sq(y(s2!1)))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) + y(s2!1) * sqrt(sq(x(s2!1)) + sq(y(s2!1))) * (1 / sqrt(sq(x(s2!1)) + sq(y(s2!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) = (x(s2!1) * (-(x(s1!1) - x(s2!1))) + y(s2!1) * (-(y(s1!1) - y(s2!1)))) /sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))") (("1" (DELETE -1) (("1" (CASE-REPLACE " -1 * (sqrt(sq(x(s1!1)) + sq(y(s1!1))) * (-y(s1!1) * (1 / sqrt(sq(x(s1!1)) + sq(y(s1!1))))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1))))) - sqrt(sq(x(s1!1)) + sq(y(s1!1))) * (1 / sqrt(sq(x(s1!1)) + sq(y(s1!1)))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) * -x(s1!1) = (y(s1!1) * (-(y(s1!1) - y(s2!1))) + x(s1!1) * (-(x(s1!1) - x(s2!1))))/ sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))") (("1" (REWRITE "both_sides_div_pos_gt1") (("1" (LEMMA "inequality_on_x") (("1" (INST?) (("1" (LEMMA "x_ge") (("1" (INST -1 "y(s1!1)" "y(s2!1)") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (EXPAND "distance") (("3" (ASSERT) NIL NIL)) NIL) ("4" (REWRITE "sqrt_of_magnitud_not_0") NIL NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (EXPAND "distance") (("3" (ASSERT) NIL NIL)) NIL) ("4" (REWRITE "sqrt_of_magnitud_not_0") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "x(s1!1) > 0") (("1" (ASSERT) (("1" (REWRITE "cos_of_sub") (("1" (REWRITE "cos_of_sub") (("1" (REWRITE "sin_of_sub") (("1" (REWRITE "sin_180") (("1" (REWRITE "cos_180") (("1" (ASSERT) (("1" (REWRITE "cos_of_sub") (("1" (REWRITE "cos_of_arctan") (("1" (REWRITE "cos_of_arctan") (("1" (REWRITE "sin_of_arctan") (("1" (REWRITE "sin_of_arctan") (("1" (REWRITE "sin_of_radial_angle") (("1" (REWRITE "cos_of_radial_angle") (("1" (REWRITE "one_over_sqrt_4") (("1" (REWRITE "one_over_sqrt_3") (("1" (REWRITE "yx_over_sqrt_2") (("1" (REWRITE "yx_over_sqrt_1") (("1" (CASE-REPLACE "-1 * (-x(s2!1) * (1 / sqrt(sq(x(s2!1)) + sq(y(s2!1)))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) * sqrt(sq(x(s2!1)) + sq(y(s2!1)))) - -y(s2!1) * (1 / sqrt(sq(x(s2!1)) + sq(y(s2!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) * sqrt(sq(x(s2!1)) + sq(y(s2!1))) = (x(s2!1) * (-(x(s1!1) - x(s2!1))) + y(s2!1) * (-(y(s1!1) - y(s2!1))))/ sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))") (("1" (CASE-REPLACE "sqrt(sq(x(s1!1)) + sq(y(s1!1))) * (x(s1!1) * (1 / sqrt(sq(x(s1!1)) + sq(y(s1!1)))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) + y(s1!1) * (1 / sqrt(sq(x(s1!1)) + sq(y(s1!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1))))) = (x(s1!1) * (-(x(s1!1) - x(s2!1))) + y(s1!1) * (-(y(s1!1) - y(s2!1))))/ sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))") (("1" (DELETE -1 -2) (("1" (REWRITE "both_sides_div_pos_gt1") (("1" (LEMMA "inequality_on_x") (("1" (INST?) (("1" (LEMMA "x_ge") (("1" (INST -1 "y(s1!1)" "y(s2!1)") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (EXPAND "distance") (("3" (ASSERT) NIL NIL)) NIL) ("4" (REWRITE "sqrt_of_magnitud_not_0") NIL NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (EXPAND "distance") (("3" (ASSERT) NIL NIL)) NIL) ("4" (REWRITE "sqrt_of_magnitud_not_0") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "sin_180") (("2" (REWRITE "cos_180") (("2" (ASSERT) (("2" (REWRITE "cos_of_arctan") (("2" (REWRITE "cos_of_arctan") (("2" (REWRITE "sin_of_arctan") (("2" (REWRITE "sin_of_arctan") (("2" (REWRITE "sin_of_radial_angle") (("1" (REWRITE "cos_of_radial_angle") (("1" (REWRITE "one_over_sqrt_4") (("1" (REWRITE "one_over_sqrt_4") (("1" (REWRITE "yx_over_sqrt_2") (("1" (REWRITE "yx_over_sqrt_2") (("1" (CASE-REPLACE "-1 * (-x(s2!1) * (1 / sqrt(sq(x(s2!1)) + sq(y(s2!1)))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) * sqrt(sq(x(s2!1)) + sq(y(s2!1)))) - -y(s2!1) * (1 / sqrt(sq(x(s2!1)) + sq(y(s2!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) * sqrt(sq(x(s2!1)) + sq(y(s2!1))) = (x(s2!1) * (-(x(s1!1) - x(s2!1))) + y(s2!1) * (-(y(s1!1) - y(s2!1))))/ sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))") (("1" (CASE-REPLACE "-1 * (-x(s1!1) * (1 / sqrt(sq(x(s1!1)) + sq(y(s1!1)))) * (-(x(s1!1) - x(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) * sqrt(sq(x(s1!1)) + sq(y(s1!1)))) - -y(s1!1) * (1 / sqrt(sq(x(s1!1)) + sq(y(s1!1)))) * (-(y(s1!1) - y(s2!1)) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))) * sqrt(sq(x(s1!1)) + sq(y(s1!1))) = (x(s1!1) * (-(x(s1!1) - x(s2!1))) + y(s1!1) * (-(y(s1!1) - y(s2!1)))) / sqrt(sq(x(s1!1) - x(s2!1)) + sq(y(s1!1) - y(s2!1)))") (("1" (DELETE -1 -2) (("1" (REWRITE "both_sides_div_pos_gt1") (("1" (LEMMA "inequality_on_x") (("1" (INST?) (("1" (LEMMA "x_ge") (("1" (INST -1 "y(s1!1)" "y(s2!1)") (("1" (GROUND) (("1" (EXPAND "distance") (("1" (REPLACE -1) (("1" (GROUND) (("1" (REWRITE "zero_is_neg_zero") (("1" (ASSERT) (("1" (EXPAND "sq" 5 1) (("1" (REWRITE "sqrt_of_sq") (("1" (EXPAND "abs") (("1" (REWRITE "inequality_on_x") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (EXPAND "distance") (("3" (ASSERT) NIL NIL)) NIL) ("4" (REWRITE "sqrt_of_magnitud_not_0") NIL NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (EXPAND "distance") (("3" (ASSERT) NIL NIL)) NIL) ("4" (REWRITE "sqrt_of_magnitud_not_0") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|angle_radial_distance_2250_dist_0| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (EXPAND "R") (("" (EXPAND "dx") (("" (EXPAND "dy") (("" (EXPAND "distance") (("" (REPLACE -2 1) (("" (REWRITE "sin_of_radial_angle") (("" (REWRITE "cos_of_radial_angle") (("" (REPLACE -1) (("" (REWRITE "expanded_evader_trajectory") (("" (DELETE -) (("" (ASSERT) (("" (EXPAND "tstep") (("" (REWRITE "intruderSpeeddef") (("" (REWRITE "evaderSpeeddef") (("" (ASSERT) (("" (REWRITE "sqrt_0_x_0 ") (("" (CASE "forall (x,y:nonneg_real): x+y = 0 IFF x=0 and y=0") (("1" (INST?) (("1" (GROUND) (("1" (DELETE 2 3) (("1" (GRIND) NIL NIL)) NIL) ("2" (DELETE 2 3) (("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|angle_radial_distance_2250_plus_c_dist_c| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (EXPAND "R") (("" (EXPAND "dx") (("" (EXPAND "dy") (("" (EXPAND "distance") (("" (REPLACE -2 1) (("" (REWRITE "sin_of_radial_angle") (("1" (REWRITE "cos_of_radial_angle") (("1" (REPLACE -1) (("1" (REWRITE "expanded_evader_trajectory") (("1" (ASSERT) (("1" (EXPAND "tstep") (("1" (REWRITE "intruderSpeeddef") (("1" (REWRITE "evaderSpeeddef") (("1" (ASSERT) (("1" (CASE-REPLACE "x(intruder!1) + 2250 * (-(x(intruder!1) - x(evader!1) - 4500 * (1 / 2)) / (2250 + c!1)) - 2250 - x(evader!1) = x(intruder!1)*((2250 + c!1)/(2250 + c!1)) + 2250 * (-(x(intruder!1) - x(evader!1) - 4500 * (1 / 2)) / (2250 + c!1)) - 2250 * ((2250 + c!1)/(2250 + c!1)) - x(evader!1) * ((2250 + c!1)/(2250 + c!1))") (("1" (CASE-REPLACE "(y(intruder!1) + 2250 * (-(y(intruder!1) - y(evader!1)) / (2250 + c!1))) - y(evader!1) = y(intruder!1)*((2250 + c!1) / (2250 + c!1)) + 2250 * (-(y(intruder!1) - y(evader!1)) / (2250 + c!1)) - y(evader!1)*((2250 + c!1) / (2250 + c!1))") (("1" (DELETE -1 -2) (("1" (NAME-REPLACE XI "x(intruder!1)") (("1" (NAME-REPLACE YI "y(intruder!1)") (("1" (NAME-REPLACE XE "x(evader!1)") (("1" (NAME-REPLACE YE "y(evader!1)") (("1" (CASE-REPLACE "XI * ((2250 + c!1) / (2250 + c!1)) + 2250 * (-(XI - XE - 4500 * (1 / 2)) / (2250 + c!1)) - 2250 * ((2250 + c!1) / (2250 + c!1)) - XE * ((2250 + c!1) / (2250 + c!1)) = (XI * 2250 + XI * c!1 - 2250 * XI + 2250 * XE + 2250 * 2250 - 2250 * 2250 - 2250 * c!1 - XE * 2250 - XE * c!1)/(2250 + c!1)") (("1" (CASE-REPLACE "YI * ((2250 + c!1) / (2250 + c!1)) + 2250 * (-(YI - YE) / (2250 + c!1)) - YE * ((2250 + c!1) / (2250 + c!1)) = (YI * 2250 + YI * c!1 - 2250 * YI + 2250 * YE - YE * 2250 - YE * c!1)/(2250 + c!1)") (("1" (DELETE -1 -2) (("1" (GROUND) (("1" (CASE-REPLACE "(YI * c!1 - YE * c!1) / (2250 + c!1) = c!1 * ((YI - YE)/(2250 + c!1))") (("1" (CASE-REPLACE "(-1 * (XE * c!1) - 2250 * c!1 + XI * c!1)/ (2250 + c!1) = c!1 * ((XI - 2250 - XE)/(2250 + c!1))") (("1" (DELETE -1 -2) (("1" (REWRITE "square_product") (("1" (REWRITE "square_product") (("1" (CASE-REPLACE "sq(c!1) * sq(((YI - YE) / (2250 + c!1))) + sq(c!1) * sq(((-2250 - XE + XI) / (2250 + c!1))) = sq(c!1) * (sq(((YI - YE) / (2250 + c!1))) + sq(((-2250 - XE + XI) / (2250 + c!1))))") (("1" (REWRITE "sqrt_product") (("1" (REWRITE "sqrt_of_sq") (("1" (DELETE -1) (("1" (REWRITE "sqrt_sides_over_magnitud") (("1" (GROUND) NIL NIL) ("2" (TYPEPRED "c!1") (("2" (EXPAND "abs") (("2" (GROUND) NIL NIL)) NIL)) NIL) ("3" (LEMMA "sqrt_0_x_0") (("3" (INST?) (("3" (TYPEPRED "c!1") (("3" (EXPAND "abs") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "c!1") (("2" (EXPAND "abs") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (TYPEPRED "c!1") (("3" (EXPAND "abs") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "c!1") (("2" (EXPAND "abs") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "c!1") (("2" (EXPAND "abs") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (TYPEPRED "c!1") (("3" (EXPAND "abs") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (TYPEPRED "c!1") (("3" (EXPAND "abs") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (TYPEPRED "c!1") (("3" (EXPAND "abs") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (TYPEPRED "c!1") (("3" (EXPAND "abs") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (TYPEPRED "c!1") (("3" (TYPEPRED "c!1") (("3" (EXPAND "abs") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (TYPEPRED "c!1") (("3" (EXPAND "abs") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "c!1") (("2" (EXPAND "abs") (("2" (GROUND) (("2" (TYPEPRED "c!1") (("2" (EXPAND "abs") (("2" (TYPEPRED "c!1") (("2" (EXPAND "abs") (("2" (LEMMA "sqrt_0_x_0") (("2" (INST?) (("2" (TYPEPRED "c!1") (("2" (EXPAND "abs") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "sqrt_0_x_0") (("2" (INST?) (("2" (TYPEPRED "c!1") (("2" (EXPAND "abs") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|angle_radial_plus_shift_distance_2250| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (EXPAND "R") (("" (EXPAND "dx") (("" (EXPAND "dy") (("" (REPLACE -2 1) (("" (DELETE -2) (("" (REWRITE "expanded_evader_trajectory") (("" (ASSERT) (("" (EXPAND "distance") (("" (NAME-REPLACE YI "y(intruder!1)") (("" (NAME-REPLACE YE "y(evader!1)") (("" (NAME-REPLACE XI "x(intruder!1)") (("" (NAME-REPLACE XE "x(evader!1)") (("" (REWRITE "evaderSpeeddef") (("" (REWRITE "intruderSpeeddef") (("" (REWRITE "cos_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "cos_of_radial_angle") (("" (REWRITE "sin_of_radial_angle") (("" (REPLACE -1 1) (("" (EXPAND "tstep") (("" (GROUND) (("" (CASE-REPLACE "2250 * (cos(shift!1) * (-(-1 * XE - 4500 * (1 / 2) + XI) / 2250)) = cos(shift!1) * (XE + 2250 - XI)") (("1" (CASE-REPLACE "2250 * (sin(shift!1) * (-(YI - YE) / 2250)) = sin(shift!1) * (YE - YI)") (("1" (CASE-REPLACE "2250 * (cos(shift!1) * (-(YI - YE) / 2250)) + 2250 * (sin(shift!1) * (-(-1 * XE - 4500 * (1 / 2) + XI) / 2250)) = cos(shift!1) * (YE - YI) + sin(shift!1) * (XE + 2250 - XI)") (("1" (DELETE -1 -2 -3) (("1" (CASE-REPLACE "cos(shift!1) * (XE + 2250 - XI) - 2250 - XE - sin(shift!1) * (YE - YI) + XI = (1 - cos(shift!1)) * (XI - 2250 - XE) + sin(shift!1) * (YI - YE)") (("1" (CASE-REPLACE "cos(shift!1) * (YE - YI) + sin(shift!1) * (XE + 2250 - XI) - YE + YI = (1-cos(shift!1)) * (YI - YE) + sin(shift!1) * (XE + 2250 - XI)") (("1" (DELETE -1 -2) (("1" (NAME CT "1 - cos(shift!1)") (("1" (NAME XD "XI - 2250 - XE") (("1" (NAME YD "YI - YE") (("1" (EXPAND "sq" 1) (("1" (GROUND) (("1" (CASE "forall (x:real): x*x = sq(x)") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE-REPLACE "5062500 + 5062500 * sq(cos(shift!1)) + 5062500 * sq(sin(shift!1)) = 5062500 + 5062500 * (sq(sin(shift!1)) + sq(cos(shift!1)))") (("1" (REWRITE "sin_cos_sq_one") (("1" (CASE-REPLACE "5062500 + 5062500 * 1 + sq(XE) + sq(XI) + sq(YE) + sq(YI) + 9000 * (cos(shift!1) * XI) + 4500 * (sq(cos(shift!1)) * XE) + 4500 * (sq(sin(shift!1)) * XE) - 2 * (cos(shift!1) * XE * XE) - 2 * (cos(shift!1) * XI * XI) - 2 * (cos(shift!1) * YE * YE) - 2 * (cos(shift!1) * YI * YI) - 2 * (sq(cos(shift!1)) * XE * XI) - 2 * (sq(cos(shift!1)) * YE * YI) - 2 * (sq(sin(shift!1)) * XE * XI) - 2 * (sq(sin(shift!1)) * YE * YI) = 5062500 + 5062500 * 1 + sq(XE) + sq(XI) + sq(YE) + sq(YI) + 9000 * (cos(shift!1) * XI) + 4500 * (sq(cos(shift!1)) * XE) + 4500 * (sq(sin(shift!1)) * XE) - 2 * (cos(shift!1) * XE * XE) - 2 * (cos(shift!1) * XI * XI) - 2 * (cos(shift!1) * YE * YE) - 2 * (cos(shift!1) * YI * YI) - 2 * (sq(sin(shift!1)) + sq(cos(shift!1))) * XE * XI - 2 * (sq(sin(shift!1)) + sq(cos(shift!1))) * YE * YI") (("1" (REWRITE "sin_cos_sq_one") (("1" (GROUND) (("1" (DELETE -1 -2) (("1" (CASE-REPLACE "10125000 + sq(XE) + sq(XI) + sq(YE) + sq(YI) + 9000 * (cos(shift!1) * XI) + 4500 * (sq(cos(shift!1)) * XE) + 4500 * (sq(sin(shift!1)) * XE) - 2 * (cos(shift!1) * XE * XE) - 2 * (cos(shift!1) * XI * XI) - 2 * (cos(shift!1) * YE * YE) - 2 * (cos(shift!1) * YI * YI) - 4 * (XE * XI) - 4 * (YE * YI) - 4500 * (sq(cos(shift!1)) * XI) - 4500 * (sq(sin(shift!1)) * XI) - 4500 * XI - 9000 * (cos(shift!1) * XE) - 10125000 * cos(shift!1) + 4 * (cos(shift!1) * XE * XI) + 4 * (cos(shift!1) * YE * YI) + sq(cos(shift!1)) * XE * XE + sq(cos(shift!1)) * XI * XI + sq(cos(shift!1)) * YE * YE + sq(cos(shift!1)) * YI * YI + sq(sin(shift!1)) * XE * XE + sq(sin(shift!1)) * XI * XI + sq(sin(shift!1)) * YE * YE + sq(sin(shift!1)) * YI * YI = 10125000 + sq(XE) + sq(XI) + sq(YE) + sq(YI) + 9000 * (cos(shift!1) * XI) + 4500 * (sq(sin(shift!1)) + sq(cos(shift!1))) * XE - 2 * (cos(shift!1) * XE * XE) - 2 * (cos(shift!1) * XI * XI) - 2 * (cos(shift!1) * YE * YE) - 2 * (cos(shift!1) * YI * YI) - 4 * (XE * XI) - 4 * (YE * YI) - 4500 * (sq(sin(shift!1)) + sq(cos(shift!1))) * XI - 4500 * XI - 9000 * (cos(shift!1) * XE) - 10125000 * cos(shift!1) + 4 * (cos(shift!1) * XE * XI) + 4 * (cos(shift!1) * YE * YI) + (sq(sin(shift!1)) + sq(cos(shift!1))) * XE * XE + (sq(sin(shift!1)) + sq(cos(shift!1))) * XI * XI + (sq(sin(shift!1)) + sq(cos(shift!1))) * YE * YE + (sq(sin(shift!1)) + sq(cos(shift!1))) * YI * YI") (("1" (DELETE -1) (("1" (REWRITE "sin_cos_sq_one") (("1" (GROUND) (("1" (CASE-REPLACE "10125000 + 2 * sq(XE) + 2 * sq(XI) + 2 * sq(YE) + 2 * sq(YI) + 9000 * (cos(shift!1) * XI) - 2 * (cos(shift!1) * XE * XE) - 2 * (cos(shift!1) * XI * XI) - 2 * (cos(shift!1) * YE * YE) - 2 * (cos(shift!1) * YI * YI) - 4 * (XE * XI) - 4 * (YE * YI) - 9000 * (cos(shift!1) * XE) - 9000 * XI - 10125000 * cos(shift!1) + 4 * (cos(shift!1) * XE * XI) + 4 * (cos(shift!1) * YE * YI) + 9000 * XE = (1 - cos(shift!1)) * 2 * ( sq(2250) + sq(XE) + sq(XI) + sq(YE) + sq(YI) - 4500 * XI - 2 * XE * XI - 2 * YE * YI + 4500 * XE)") (("1" (DELETE -1) (("1" (LEMMA "sqrt_product") (("1" (INST?) (("1" (REPLACE -1 1) (("1" (DELETE -1) (("1" (EXPAND "sq") (("1" (CASE-REPLACE "20250000 * (1 / 2 * (1 / 2)) + 4500 * (1 / 2 * XE) + 4500 * (1 / 2 * XE) - XE * XI - XE * XI - YE * YI - YE * YI - 4500 * (1 / 2 * XI) - 4500 * (1 / 2 * XI) + XE * XE + XI * XI + YE * YE + YI * YI = 5062500 - 2 * (XE * XI) - 2 * (YE * YI) - 4500 * XI + XE * XE + XI * XI + YE * YE + YI * YI + 4500 * XE") (("1" (DELETE -1) (("1" (REPLACE -4 1) (("1" (CASE-REPLACE "2 - 2 * cos(shift!1) = 4 * ((1 - cos(shift!1))/2)") (("1" (LEMMA "sqrt_product") (("1" (INST?) (("1" (REPLACE -1 1) (("1" (CASE-REPLACE "sqrt(4) = 2") (("1" (LEMMA "sin_of_half_angle ") (("1" (INST?) (("1" (REPLACE -1 1) (("1" (DELETE -) (("1" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "sqrt(4)") (("2" (CASE-REPLACE "4 = sq(2)") (("1" (REWRITE "sqrt_of_sq") (("1" (EXPAND "abs") (("1" (PROPAX) NIL NIL)) NIL)) NIL) ("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "cos(shift!1)") (("2" (EXPAND "abs") (("2" (DELETE -2 -3 -4 -5 -6 2) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (DELETE -4 2) (("2" (CASE-REPLACE "(1 / 2 * (1 / 2)) = 1/4") (("1" (GROUND) NIL NIL) ("2" (DELETE 2) (("2" (GROUND) (("2" (REWRITE "square_divide") (("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "cos(shift!1)") (("2" (EXPAND "abs") (("2" (GROUND) NIL NIL)) NIL)) NIL) ("3" (DELETE 2) (("3" (CASE-REPLACE "sq(2250) + sq(XE) + sq(XI) + sq(YE) + sq(YI) - 2 * (XE * XI) - 2 * (YE * YI) - 4500 * XI + 4500 * XE = sq(YI - YE) + sq(XI - 2250 - XE)") (("1" (DELETE -1) (("1" (TYPEPRED "sq(XI - 2250 - XE)") (("1" (TYPEPRED "sq(YI - YE)") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "sq" 1) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|angle_radial_plus_shift_distance_2250_plus_c_TCC1| "" (SKOSIMP*) (("" (TYPEPRED "c!1") (("" (CASE "sq(2250) + 2250 * c!1 >= 0") (("1" (TYPEPRED "sq(sin(shift!1 / 2))") (("1" (TYPEPRED "sq(c!1)") (("1" (CASE "(sq(2250) + 2250 * c!1) * 4 * sq(sin(shift!1 / 2)) >= 0") (("1" (GROUND) NIL NIL) ("2" (DELETE 2) (("2" (LEMMA " pos_times_ge") (("2" (INST -1 "(sq(2250) + 2250 * c!1) * 4" "sq(sin(shift!1 / 2))") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (EXPAND "sq") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|angle_radial_plus_shift_distance_2250_plus_c| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (EXPAND "R") (("" (EXPAND "dx") (("" (EXPAND "dy") (("" (REPLACE -2 1) (("" (REWRITE "cos_of_sum") (("" (REWRITE "sin_of_sum") (("" (REWRITE "sin_of_radial_angle") (("1" (REWRITE "cos_of_radial_angle") (("1" (EXPAND "distance") (("1" (REPLACE -1 1) (("1" (NAME-REPLACE XE2 "x(trajectory(evader!1, zero_bank, 18))") (("1" (TYPEPRED "evader!1") (("1" (REWRITE "expanded_evader_trajectory") (("1" (ASSERT) (("1" (NAME-REPLACE YD "y(intruder!1) - y(evader!1)") (("1" (NAME-REPLACE XD "x(intruder!1) - XE2") (("1" (REWRITE "evaderSpeeddef") (("1" (GROUND) (("1" (REVEAL -3) (("1" (REWRITE "expanded_evader_trajectory") (("1" (ASSERT) (("1" (REWRITE "evaderSpeeddef") (("1" (EXPAND "tstep") (("1" (CASE "x(intruder!1) - 2250 - x(evader!1) = x(intruder!1) - (x(evader!1) + 2250)") (("1" (REPLACE -1 1) (("1" (REPLACE -2 1) (("1" (REVEAL -1 1) (("1" (REPLACE -1 1) (("1" (HIDE -1 -2 -3 -4 -5 -6) (("1" (REWRITE "intruderSpeeddef") (("1" (GROUND) (("1" (EXPAND "sq" 1) (("1" (GROUND) (("1" (NAME-REPLACE A "shift!1") (("1" (CASE-REPLACE "4500 * ((cos(A) * (-XD / (2250 + c!1))) * XD) - 4500 * ((sin(A) * (-YD / (2250 + c!1))) * XD) + 4500 * ((cos(A) * (-YD / (2250 + c!1))) * YD) + 4500 * ((sin(A) * (-XD / (2250 + c!1))) * YD) + 5062500 * ((cos(A) * cos(A) * (-XD / (2250 + c!1))) * (-XD / (2250 + c!1))) + 5062500 * ((cos(A) * cos(A) * (-YD / (2250 + c!1))) * (-YD / (2250 + c!1))) + 5062500 * ((sin(A) * sin(A) * (-XD / (2250 + c!1))) * (-XD / (2250 + c!1))) + 5062500 * ((sin(A) * sin(A) * (-YD / (2250 + c!1))) * (-YD / (2250 + c!1))) + XD * XD + YD * YD = 4500 * ((cos(A) * (-XD / (2250 + c!1))) * XD) - 4500 * ((sin(A) * (-YD / (2250 + c!1))) * XD) + 4500 * ((cos(A) * (-YD / (2250 + c!1))) * YD) + 4500 * ((sin(A) * (-XD / (2250 + c!1))) * YD) + 5062500 * ((sq(sin(A)) + sq(cos(A))) * (-XD / (2250 + c!1)) * (-XD / (2250 + c!1))) + 5062500 * ((sq(sin(A)) + sq(cos(A))) * (-YD / (2250 + c!1)) * (-YD / (2250 + c!1))) + XD * XD + YD * YD") (("1" (DELETE -1) (("1" (REWRITE "sin_cos_sq_one") (("1" (NAME-REPLACE D11 "2250 + c!1") (("1" (CASE-REPLACE "4500 * ((cos(A) * (-XD / D11)) * XD) - 4500 * ((sin(A) * (-YD / D11)) * XD) + 4500 * ((cos(A) * (-YD / D11)) * YD) + 4500 * ((sin(A) * (-XD / D11)) * YD) + 5062500 * (1 * (-XD / D11) * (-XD / D11)) + 5062500 * (1 * (-YD / D11) * (-YD / D11)) + XD * XD + YD * YD = 5062500 * ((sq(XD) + sq(YD))/(D11*D11)) - 4500 * ((sin(A) * (-YD / D11)) * XD) + 4500 * ((cos(A) * (-XD / D11)) * XD) + 4500 * ((cos(A) * (-YD / D11)) * YD) + 4500 * ((sin(A) * (-XD / D11)) * YD) + XD * XD + YD * YD") (("1" (DELETE -1) (("1" (LEMMA "sq_eq_IFF_eq") (("1" (INST -1 "D11" "sqrt(sq(XD) + sq(YD))") (("1" (GROUND) (("1" (REWRITE "sq_of_sqrt") (("1" (REPLACE -1 1) (("1" (EXPAND "sq" 1) (("1" (CASE-REPLACE "D11 * D11 / (D11 * D11) = 1") (("1" (GROUND) (("1" (CASE-REPLACE "5062500 - 4500 * ((sin(A) * (-YD / D11)) * XD) + 4500 * ((cos(A) * (-XD / D11)) * XD) + 4500 * ((cos(A) * (-YD / D11)) * YD) + 4500 * ((sin(A) * (-XD / D11)) * YD) + XD * XD + YD * YD = 5062500 + 4500 * ((cos(A) * (-XD / D11)) * XD) + 4500 * ((cos(A) * (-YD / D11)) * YD) + XD * XD + YD * YD") (("1" (DELETE -1) (("1" (CASE-REPLACE "5062500 * D11 * D11 / (D11 * D11) + (D11 / D11) * 4500 * ((cos(A) * (-XD / D11)) * XD) + (D11 / D11) * 4500 * ((cos(A) * (-YD / D11)) * YD) + XD * XD * D11 * D11 / (D11 * D11) + YD * YD * D11 * D11 / (D11 * D11) = (1/sq(D11)) * (5062500 * D11 * D11 + D11 * 4500 * (cos(A) * (-XD) * XD) + D11 * 4500 * (cos(A) * (-YD) * YD) + XD * XD * D11 * D11 + YD * YD * D11 * D11)") (("1" (DELETE -1) (("1" (CASE-REPLACE "(1 / sq(D11)) * (5062500 * D11 * D11 + D11 * 4500 * (cos(A) * (-XD) * XD) + D11 * 4500 * (cos(A) * (-YD) * YD) + XD * XD * D11 * D11 + YD * YD * D11 * D11) = (1 / (D11 * D11)) * (5062500 * sq(D11) + D11 * 4500 * (cos(A) * (-XD) * XD) + D11 * 4500 * (cos(A) * (-YD) * YD) + XD * XD * D11 * D11 + YD * YD * D11 * D11)") (("1" (DELETE -1) (("1" (CASE-REPLACE "(1 / (D11 * D11)) * (5062500 * sq(D11) + D11 * 4500 * (cos(A) * (-XD) * XD) + D11 * 4500 * (cos(A) * (-YD) * YD) + XD * XD * D11 * D11 + YD * YD * D11 * D11) = (1 / (D11 * D11)) * (sq(XD) + sq(YD)) * (2*sq(2250) + sq(c!1) + 2*2250*c!1 - sq(2250) * 2 * cos(A) - c!1 * 2 * 2250 * cos(A))") (("1" (DELETE -1) (("1" (REWRITE "sqrt_product") (("1" (CASE-REPLACE "sqrt(sq(XD) * (1 / (D11 * D11)) + sq(YD) * (1 / (D11 * D11))) * sqrt(2 * sq(2250) + sq(c!1) - 2 * (cos(A) * sq(2250)) - 4500 * (cos(A) * c!1) + 4500 * c!1) = sqrt(sq(XD/D11) + sq(YD/D11)) * sqrt(2 * sq(2250) + sq(c!1) - 2 * (cos(A) * sq(2250)) - 4500 * (cos(A) * c!1) + 4500 * c!1)") (("1" (DELETE -1) (("1" (REWRITE "sqrt_sides_over_magnitud ") (("1" (CASE-REPLACE "2 * sq(2250) + sq(c!1) - 2 * (cos(A) * sq(2250)) - 4500 * (cos(A) * c!1) + 4500 * c!1 = (sq(2250) + 2250*c!1) * 4 * ((1 - cos(A))/2) + sq(c!1)") (("1" (DELETE -1) (("1" (LEMMA "sq_sin_of_half_angle") (("1" (INST?) (("1" (REPLACE -1 1 :DIR RL) (("1" (EXPAND "sq" 1) (("1" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (EXPAND "sq" 1) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (EXPAND "sq" 1) (("2" (GROUND) NIL NIL)) NIL)) NIL) ("3" (TYPEPRED "c!1") (("3" (REVEAL -2) (("3" (REPLACE -1 1 :DIR RL) (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (REPLACE -2 1 :DIR RL) (("2" (REVEAL -2) (("2" (REPLACE -1 1 :DIR RL) (("2" (EXPAND "sq" 1) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (TYPEPRED "c!1") (("3" (REVEAL -2) (("3" (REPLACE -1 1 :DIR RL) (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (EXPAND "sq" 1) (("2" (PROPAX) NIL NIL)) NIL)) NIL) ("3" (TYPEPRED "c!1") (("3" (REVEAL -2) (("3" (REPLACE -1 1 :DIR RL) (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("4" (TYPEPRED "c!1") (("4" (REVEAL -2) (("4" (REPLACE -1 1 :DIR RL) (("4" (EXPAND "sq" 1) (("4" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (EXPAND "sq" 1) (("2" (GROUND) NIL NIL)) NIL)) NIL) ("3" (TYPEPRED "c!1") (("3" (REVEAL -2) (("3" (REPLACE -1 1 :DIR RL) (("3" (EXPAND "sq" 1) (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("4" (TYPEPRED "c!1") (("4" (REVEAL -2) (("4" (REPLACE -1 1 :DIR RL) (("4" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (TYPEPRED "c!1") (("3" (REVEAL -2) (("3" (REPLACE -1 1 :DIR RL) (("3" (DELETE -4 -5 -6 -7 2) (("3" (LEMMA "sq_x_0_IFF_x_0") (("3" (INST?) (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (REVEAL -2) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (EXPAND "sq") (("2" (GROUND) NIL NIL)) NIL)) NIL) ("3" (REVEAL -1) (("3" (LEMMA "sq_x_0_IFF_x_0") (("3" (INST?) (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("4" (REVEAL -1) (("4" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (DELETE 1) (("2" (LEMMA "sqrt_0_x_0") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 1) (("2" (EXPAND "distance") (("2" (LEMMA "sqrt_0_x_0") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|angle_le_34_from_radial_imp_alert_range| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (LEMMA "angle_radial_plus_shift_distance_2250_plus_c") (("" (INST?) (("" (INST -1 "c!1" "shift!1") (("" (ASSERT) (("" (ASSERT) (("" (REPLACE -1 1) (("" (EXPAND "alertRange") (("" (LEMMA "value_range_1") (("" (INST?) (("" (INST -1 "c!1") (("" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|min_trajecory_distance| "" (SKOSIMP*) (("" (LEMMA "shortest_distance") (("" (INST?) (("" (LEMMA "shortest_distance_phi") (("" (INST?) (("" (EXPAND "distance" -1 1) (("" (REWRITE "x_change_for_pos_35_trajectory_A") (("1" (REWRITE "y_change_for_pos_35_trajectory_A") (("1" (GROUND) (("1" (EXPAND "sq") (("1" (GROUND) (("1" (CASE-REPLACE "cos(intruder!1`heading) * cos(intruder!1`heading) * C1_pos_A * C1_pos_A * intruderSpeed * intruderSpeed * tstep * tstep + cos(intruder!1`heading) * cos(intruder!1`heading) * C2_pos_A * C2_pos_A * intruderSpeed * intruderSpeed * tstep * tstep + sin(intruder!1`heading) * sin(intruder!1`heading) * C1_pos_A * C1_pos_A * intruderSpeed * intruderSpeed * tstep * tstep + sin(intruder!1`heading) * sin(intruder!1`heading) * C2_pos_A * C2_pos_A * intruderSpeed * intruderSpeed * tstep * tstep = C1_pos_A * C1_pos_A * intruderSpeed * intruderSpeed * tstep * tstep + C2_pos_A * C2_pos_A * intruderSpeed * intruderSpeed * tstep * tstep") (("1" (DELETE -1) (("1" (LEMMA "distance_of_trajectory_pos35") (("1" (EXPAND "sq") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (DELETE -1 -2 2) (("2" (CASE-REPLACE "cos(intruder!1`heading) * cos(intruder!1`heading) * C1_pos_A * C1_pos_A * intruderSpeed * intruderSpeed * tstep * tstep + cos(intruder!1`heading) * cos(intruder!1`heading) * C2_pos_A * C2_pos_A * intruderSpeed * intruderSpeed * tstep * tstep + sin(intruder!1`heading) * sin(intruder!1`heading) * C1_pos_A * C1_pos_A * intruderSpeed * intruderSpeed * tstep * tstep + sin(intruder!1`heading) * sin(intruder!1`heading) * C2_pos_A * C2_pos_A * intruderSpeed * intruderSpeed * tstep * tstep = (sq(sin(intruder!1`heading)) + sq(cos(intruder!1`heading))) * C1_pos_A * C1_pos_A * intruderSpeed * intruderSpeed * tstep * tstep + (sq(sin(intruder!1`heading)) + sq(cos(intruder!1`heading))) * C2_pos_A * C2_pos_A * intruderSpeed * intruderSpeed * tstep * tstep") (("1" (DELETE -1) (("1" (REWRITE "sin_cos_sq_one") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|distance_gt_2450_no_collision_in_9sec| "" (SKOSIMP*) (("" (EXPAND "collision_scenario") (("" (EXPAND "collision") (("" (EXPAND "collisionRange") (("" (LEMMA "absolute_distance") (("" (INST -1 "intruder!1" "df!1" "18") (("" (LEMMA "triangle_distance") (("" (INST -1 "intruder!1" "trajectory(evader!1, zero_bank, 18)" "trajectory(intruder!1, df!1, 18)") (("" (EXPAND "tstep") (("" (TYPEPRED "intruder!1") (("" (REPLACE -1) (("" (REWRITE "intruderSpeeddef") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|distance_lt_1925_no_collision_in_9sec| "" (SKOLEM 1 ("df" "evader" "intruder")) (("" (EXPAND "collision_scenario") (("" (EXPAND "collision") (("" (LEMMA "min_trajecory_distance") (("" (INST -1 "df" "intruder") (("" (EXPAND "collisionRange") (("" (LEMMA "triangle_distance") (("" (INST -1 "intruder" "trajectory(intruder, df, 18)" "trajectory(evader, zero_bank,18)") (("" (GROUND) (("" (CASE "distance(trajectory(evader, zero_bank,18), trajectory(intruder, df, 18)) = distance(trajectory(intruder, df,18), trajectory(evader, zero_bank, 18))") (("1" (REPLACE -1 -2) (("1" (GROUND) NIL NIL)) NIL) ("2" (EXPAND "distance" 1) (("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|collision_scenario_imp_angle_lt_34_from_radial_e| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (LEMMA "intruder_and_evader_on_y_collision_imp_heading_le_34_e") (("" (BETA) (("" (INST -1 "df!1" "trans(rot(trans(intruder!1,x(intruder!1)-10000,0),radial_func(y(intruder!1) - y(trajectory(evader!1, zero_bank, 18)), x(intruder!1) - x(trajectory(evader!1, zero_bank, 18)))),0,y(rot(trans(intruder!1,x(intruder!1)-10000,0),radial_func(y(intruder!1) - y(trajectory(evader!1, zero_bank, 18)), x(intruder!1) - x(trajectory(evader!1, zero_bank, 18))))))" "trans(rot(trans(evader!1,x(intruder!1)-10000,0),radial_func(y(intruder!1) - y(trajectory(evader!1, zero_bank, 18)), x(intruder!1) - x(trajectory(evader!1, zero_bank, 18)))),0,y(rot(trans(intruder!1,x(intruder!1)-10000,0),radial_func(y(intruder!1) - y(trajectory(evader!1, zero_bank, 18)), x(intruder!1) - x(trajectory(evader!1, zero_bank, 18))))))") (("1" (GROUND) (("1" (SKOSIMP*) (("1" (INST 1 "j!1") (("1" (EXPAND "trans") (("1" (EXPAND "rot") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "trans" 1 1) (("2" (PROPAX) NIL NIL)) NIL) ("3" (REWRITE "trans_before_after_traj_eq ") (("1" (REWRITE "rot_before_after_traj_eq ") (("1" (LEMMA "after_rotation_of_radial_y_eq ") (("1" (INST -1 "trans(intruder!1,x(intruder!1) - 10000, 0)" "trans(trajectory(evader!1, zero_bank, 18),x(intruder!1) - 10000, 0)") (("1" (BETA) (("1" (REWRITE "trans_before_after_traj_eq ") (("1" (EXPAND "trans") (("1" (GROUND) (("1" (LEMMA "trans_10k_not_0_rev") (("1" (INST?) (("1" (INST?) (("1" (EXPAND "trans") (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (LEMMA "trans_10k_not_0 ") (("2" (INST?) (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "trans") (("2" (ASSERT) NIL NIL)) NIL) ("3" (REWRITE "trans_10k_evader_not_0 ") NIL NIL)) NIL) ("4" (REWRITE "trans_before_after_traj_eq ") (("1" (REWRITE "rot_before_after_traj_eq ") (("1" (REWRITE "trans_before_after_traj_eq ") (("1" (REWRITE "distance_eq_over_translation ") (("1" (REWRITE "distance_eq_over_rotation ") (("1" (REWRITE "distance_eq_over_translation ") NIL NIL) ("2" (EXPAND "trans") (("2" (ASSERT) NIL NIL)) NIL) ("3" (REWRITE "trans_10k_not_0_rev") NIL NIL)) NIL) ("2" (REWRITE "trans_10k_not_0_rev") NIL NIL) ("3" (EXPAND "trans") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (LEMMA "trans_10k_not_0") (("2" (INST?) (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "trans") (("2" (ASSERT) NIL NIL)) NIL) ("3" (REWRITE "trans_10k_evader_not_0 ") NIL NIL)) NIL) ("5" (REWRITE "trans_before_after_traj_eq ") (("1" (REWRITE "rot_before_after_traj_eq ") (("1" (REWRITE "trans_before_after_traj_eq ") (("1" (REWRITE "distance_eq_over_translation ") (("1" (REWRITE "distance_eq_over_rotation ") (("1" (REWRITE "distance_eq_over_translation ") NIL NIL) ("2" (EXPAND "trans") (("2" (ASSERT) NIL NIL)) NIL) ("3" (REWRITE "trans_10k_not_0_rev") NIL NIL)) NIL) ("2" (REWRITE "trans_10k_not_0_rev") NIL NIL) ("3" (EXPAND "trans") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (LEMMA "trans_10k_not_0") (("2" (INST?) (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "trans") (("2" (ASSERT) NIL NIL)) NIL) ("3" (REWRITE "trans_10k_evader_not_0 ") NIL NIL)) NIL) ("6" (REWRITE "collision_scenario_equivalent_over_translation ") (("1" (REWRITE "collision_scenario_equivalent_over_rotation") (("1" (REWRITE "collision_scenario_equivalent_over_translation ") NIL NIL) ("2" (DELETE 2 3) (("2" (SKOSIMP*) (("2" (REWRITE "trans_before_after_traj_eq ") (("2" (EXPAND "trans") (("2" (TYPEPRED "n2!1") (("2" (LEMMA "absolute_distance") (("2" (INST?) (("2" (EXPAND "distance") (("2" (CASE-REPLACE "v(intruder!1) * n2!1 * tstep = sqrt(sq(v(intruder!1) * n2!1 * tstep))") (("1" (REWRITE "sqrt_monotone") (("1" (CASE "sq(x(intruder!1) - x(trajectory(intruder!1, df!1, n2!1))) <= sq(v(intruder!1) * n2!1 * tstep)") (("1" (DELETE -2 -3) (("1" (REWRITE "sq_monotone") (("1" (TYPEPRED "intruder!1") (("1" (REPLACE -1 :HIDE? T) (("1" (REWRITE "intruderSpeeddef") (("1" (EXPAND "tstep") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "intruder!1") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "tstep") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL) ("2" (REWRITE "sqrt_of_sq") (("2" (EXPAND "tstep") (("2" (TYPEPRED "intruder!1") (("2" (REWRITE "intruderSpeeddef") (("2" (EXPAND "abs") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (SKOSIMP*) (("3" (LEMMA "trans_10k_not_0") (("3" (INST?) (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("4" (EXPAND "trans") (("4" (TYPEPRED "intruder!1") (("4" (PROPAX) NIL NIL)) NIL)) NIL) ("5" (TYPEPRED "evader!1") (("5" (EXPAND "trans") (("5" (PROPAX) NIL NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "intruder!1") (("2" (EXPAND "trans") (("2" (EXPAND "rot") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL) ("3" (EXPAND "trans") (("3" (ASSERT) NIL NIL)) NIL) ("4" (TYPEPRED "evader!1") (("4" (EXPAND "trans") (("4" (EXPAND "rot") (("4" (PROPAX) NIL NIL)) NIL)) NIL)) NIL) ("5" (REWRITE "trans_10k_evader_not_0 ") NIL NIL)) NIL) ("7" (LEMMA "x_evader_gt_x_int_after_radial_rotation") (("7" (DELETE 2) (("7" (REWRITE "trans_before_after_traj_eq ") (("1" (REWRITE "rot_before_after_traj_eq ") (("1" (REWRITE "trans_before_after_traj_eq ") (("1" (INST -1 "trans(intruder!1, x(intruder!1) - 10000, 0)" "trans(trajectory(evader!1, zero_bank, 18), x(intruder!1) - 10000, 0)") (("1" (BETA) (("1" (EXPAND "trans") (("1" (GROUND) (("1" (LEMMA "trans_10k_not_0_rev") (("1" (INST?) (("1" (INST?) (("1" (EXPAND "trans") (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "distance") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (SKOSIMP*) (("2" (REWRITE "trans_before_after_traj_eq ") (("2" (LEMMA "trans_10k_not_0_rev") (("2" (INST?) (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "trans") (("2" (ASSERT) NIL NIL)) NIL) ("3" (REWRITE "trans_10k_evader_not_0 ") NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (REWRITE "trans_10k_evader_not_0 ") NIL NIL) ("3" (TYPEPRED "intruder!1") (("3" (EXPAND "trans") (("3" (EXPAND "rot") (("3" (PROPAX) NIL NIL)) NIL)) NIL)) NIL) ("4" (EXPAND "trans") (("4" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|angle_le_34_from_radial_imp_alarm| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (LEMMA "angle_le_34_from_radial_imp_alert_range") (("" (INST?) (("" (INST -1 "evader!1" "intruder!1" "shift!1") (("" (ASSERT) (("" (ASSERT) (("" (HIDE -2 -3 -4 -5 -6) (("" (EXPAND "larcalert") (("" (CASE "trkrate(phi(intruder!1)) = 0") (("1" (ASSERT) (("1" (EXPAND "chktrack") (("1" (CASE "tau(intruder!1, evader!1, 0) <= 0") (("1" (ASSERT) (("1" (EXPAND "chkrange") (("1" (EXPAND "alertTime") (("1" (LEMMA "asymptotic_increase_tau_to_zero") (("1" (INST -1 "intruder!1" "evader!1" "0" "0" "9") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (CASE "tau(intruder!1, evader!1, 0) > alertTime") (("1" (ASSERT) (("1" (EXPAND "alertTime") (("1" (LEMMA "asymptotic_decrease_zero_to_tau") (("1" (INST -1 "intruder!1" "evader!1" "0" "9" "19") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "derivative_eq_zero_min") (("2" (INST -1 "intruder!1" "evader!1" "0" "9") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (EXPAND "arc_loop") (("2" (EXPAND "maxStep") (("2" (EXPAND "alertTime") (("2" (EXPAND "divtstep") (("2" (CASE "mod(0, IF trkrate(phi(intruder!1)) >= 3 THEN 1 ELSIF trkrate(phi(intruder!1)) >= 1 + 1 / 2 THEN 2 ELSE IF trkrate(phi(intruder!1)) >= 3 / 4 THEN 4 ELSE 8 ENDIF ENDIF) = 0") (("1" (REPLACE -1 2) (("1" (ASSERT) (("1" (CASE "chktrack(intruder!1 WITH [x := x(intruder!1), y := y(intruder!1), heading := heading(intruder!1)], evader!1 WITH [x := x(evader!1), y := y(evader!1)], 0 * tstep)") (("1" (ASSERT) NIL NIL) ("2" (DELETE -1 3) (("2" (EXPAND "chktrack") (("2" (CASE-REPLACE "intruder!1 WITH [x := x(intruder!1), y := y(intruder!1), heading := heading(intruder!1)] = intruder!1") (("1" (CASE-REPLACE "evader!1 WITH [x := x(evader!1), y := y(evader!1)] = evader!1") (("1" (CASE-REPLACE "tau(intruder!1, evader!1, 0) <= 0") (("1" (EXPAND "chkrange") (("1" (EXPAND "alertTime") (("1" (LEMMA "asymptotic_increase_tau_to_zero") (("1" (INST -1 "intruder!1" "evader!1" "0" "0" "9") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (CASE-REPLACE "tau(intruder!1, evader!1, 0) > alertTime") (("1" (LEMMA "asymptotic_decrease_zero_to_tau") (("1" (INST -1 "intruder!1" "evader!1" "0" "9" "19") (("1" (EXPAND "alertTime") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "derivative_eq_zero_min") (("2" (INST -1 "intruder!1" "evader!1" "0" "9") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (DELETE 2) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 3) (("2" (CASE-REPLACE "trkrate(phi(intruder!1)) >= 3") (("1" (EXPAND "mod") (("1" (PROPAX) NIL NIL)) NIL) ("2" (CASE-REPLACE "trkrate(phi(intruder!1)) >= 1 + 1 / 2") (("1" (EXPAND "mod") (("1" (ASSERT) NIL NIL)) NIL) ("2" (CASE-REPLACE "trkrate(phi(intruder!1)) >= 3 / 4") (("1" (ASSERT) (("1" (EXPAND "mod") (("1" (PROPAX) NIL NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (EXPAND "mod") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|angle_le_34_from_radial_imp_alarm_e| "" (SKOSIMP*) (("" (ASSERT) (("" (SKOSIMP*) (("" (LEMMA "angle_le_34_from_radial_imp_alert_range") (("" (INST?) (("" (INST -1 "evader!1" "intruder!1 with [heading := heading(intruder!1) - 360 * j!1]" "shift!1") (("" (ASSERT) (("" (LEMMA "distance_periodic") (("" (INST -1 "intruder!1" "trajectory(evader!1, zero_bank, 18)" "-j!1") (("" (REPLACE -1) (("" (DELETE -1) (("" (LEMMA "R_periodic") (("" (INST -1 "evader!1" "intruder!1" "9" "-j!1") (("" (REPLACE -1) (("" (DELETE -1) (("" (ASSERT) (("" (HIDE -2 -3 -4 -5 -6) (("" (EXPAND "larcalert") (("" (CASE "trkrate(phi(intruder!1)) = 0") (("1" (ASSERT) (("1" (EXPAND "chktrack") (("1" (CASE "tau(intruder!1, evader!1, 0) <= 0") (("1" (ASSERT) (("1" (EXPAND "chkrange") (("1" (EXPAND "alertTime") (("1" (LEMMA "asymptotic_increase_tau_to_zero") (("1" (INST -1 "intruder!1" "evader!1" "0" "0" "9") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (CASE "tau(intruder!1, evader!1, 0) > alertTime") (("1" (ASSERT) (("1" (EXPAND "alertTime") (("1" (LEMMA "asymptotic_decrease_zero_to_tau") (("1" (INST -1 "intruder!1" "evader!1" "0" "9" "19") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "derivative_eq_zero_min") (("2" (INST -1 "intruder!1" "evader!1" "0" "9") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (EXPAND "arc_loop") (("2" (EXPAND "maxStep") (("2" (EXPAND "alertTime") (("2" (EXPAND "divtstep") (("2" (CASE "mod(0, IF trkrate(phi(intruder!1)) >= 3 THEN 1 ELSIF trkrate(phi(intruder!1)) >= 1 + 1 / 2 THEN 2 ELSE IF trkrate(phi(intruder!1)) >= 3 / 4 THEN 4 ELSE 8 ENDIF ENDIF) = 0") (("1" (REPLACE -1 2) (("1" (ASSERT) (("1" (CASE "chktrack(intruder!1 WITH [x := x(intruder!1), y := y(intruder!1), heading := heading(intruder!1)], evader!1 WITH [x := x(evader!1), y := y(evader!1)], 0 * tstep)") (("1" (ASSERT) NIL NIL) ("2" (DELETE -1 3) (("2" (EXPAND "chktrack") (("2" (CASE-REPLACE "intruder!1 WITH [x := x(intruder!1), y := y(intruder!1), heading := heading(intruder!1)] = intruder!1") (("1" (CASE-REPLACE "evader!1 WITH [x := x(evader!1), y := y(evader!1)] = evader!1") (("1" (CASE-REPLACE "tau(intruder!1, evader!1, 0) <= 0") (("1" (EXPAND "chkrange") (("1" (EXPAND "alertTime") (("1" (LEMMA "asymptotic_increase_tau_to_zero") (("1" (INST -1 "intruder!1" "evader!1" "0" "0" "9") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (CASE-REPLACE "tau(intruder!1, evader!1, 0) > alertTime") (("1" (LEMMA "asymptotic_decrease_zero_to_tau") (("1" (INST -1 "intruder!1" "evader!1" "0" "9" "19") (("1" (EXPAND "alertTime") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (LEMMA "derivative_eq_zero_min") (("2" (INST -1 "intruder!1" "evader!1" "0" "9") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (DELETE 2) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 3) (("2" (CASE-REPLACE "trkrate(phi(intruder!1)) >= 3") (("1" (EXPAND "mod") (("1" (PROPAX) NIL NIL)) NIL) ("2" (CASE-REPLACE "trkrate(phi(intruder!1)) >= 1 + 1 / 2") (("1" (EXPAND "mod") (("1" (ASSERT) NIL NIL)) NIL) ("2" (CASE-REPLACE "trkrate(phi(intruder!1)) >= 3 / 4") (("1" (ASSERT) (("1" (EXPAND "mod") (("1" (PROPAX) NIL NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (EXPAND "mod") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|ails_last_theorem| "" (SKOLEM 1 ("df" "intruder" "evader")) (("" (SKOSIMP*) (("" (CASE "distance(intruder,trajectory(evader,zero_bank,18)) > 2450") (("1" (REWRITE "distance_gt_2450_no_collision_in_9sec") NIL NIL) ("2" (CASE "distance(intruder,trajectory(evader,zero_bank,18)) < 1925") (("1" (REWRITE "distance_lt_1925_no_collision_in_9sec") NIL NIL) ("2" (LEMMA "collision_scenario_imp_angle_lt_34_from_radial_e") (("2" (INST?) (("2" (ASSERT) (("2" (LEMMA "angle_le_34_from_radial_imp_alarm_e") (("2" (ASSERT) (("2" (SKOSIMP*) (("2" (INST -1 "evader" "intruder" "j!1" "distance(intruder, trajectory(evader, zero_bank, 18)) - 2250" "heading(intruder) - 360 * j!1 - radial_func(y(intruder) - y(trajectory(evader, zero_bank, 18)), x(intruder) - x(trajectory(evader, zero_bank, 18)))") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) $$$trigonometry.pvs trigonometry : theory begin importing sqrt %-- types degrees : TYPE = real One : TYPE = {r:real| abs(r) <= 1} CONTAINING 0 Bank : TYPE = {r:real|abs(r) <= 35} %-- variables x : var real i,j,k : var int d,a,b : var degrees phi,phi1,phi2 : var Bank %% ---------------------------------------------------- pi : real PI : real = 3141592/1000000 pidef : AXIOM pi = PI cos(d): One COS(d:degrees) : real = LET r = d*PI/180 IN 1 - expt(r,2)/2 + expt(r,4)/24 - expt(r,6)/720 + expt(r,8)/40320 cos_approx : AXIOM FORALL (d:degrees) : cos(d) = COS(d) cos_equivalence : axiom cos(d + 360 * i) = cos(d) cos_of_0 : axiom cos(360 * i) = 1 cos_of_180 : axiom cos(180 + 360 * i) = -1 cos_180 : lemma cos(180) = -1 cos_of_90 : axiom cos(90) = 0 cos_of_neg90 : axiom cos(-90) = 0 cos_90_to_270 : axiom d >= 90 and d <= 270 implies cos(d) <= 0 cos_neg90_to_neg270 : lemma d >= -270 and d <= -90 implies cos(d) <= 0 sin(d) : One SIN(d:degrees) : real = LET r = d*PI/180 IN r - expt(r,3)/6 + expt(r,5)/120 - expt(r,7)/5040 + expt(r,9)/362880 sin_approx : AXIOM FORALL (d:degrees) : sin(d) = SIN(d) sin_equivalence : axiom sin(d + 360 * i) = sin(d) sin_decreases_towards_neg_90_lt : AXIOM FORALL (d1,d2:degrees) : -90 <= d1 AND d1 <= 90 AND -90 <= d2 AND d2 <= 90 AND d1 < d2 IMPLIES sin(d1) < sin(d2) sin_decreases_towards_neg_90_le : LEMMA FORALL (d1,d2:degrees) : -90 <= d1 AND d1 <= 90 AND -90 <= d2 AND d2 <= 90 AND d1 <= d2 IMPLIES sin(d1) <= sin(d2) sin_decreases_towards_pos_270_lt : AXIOM FORALL (d1,d2:degrees) : 90 <= d1 AND d1 <= 270 AND 90 <= d2 AND d2 <= 270 AND d1 < d2 IMPLIES sin(d2) < sin(d1) sin_decreases_towards_pos_270_le : LEMMA FORALL (d1,d2:degrees) : 90 <= d1 AND d1 <= 270 AND 90 <= d2 AND d2 <= 270 AND d1 <= d2 IMPLIES sin(d2) <= sin(d1) sin_decreases_towards_neg_180_lt : AXIOM FORALL (d1,d2:degrees) : -180 <= d1 AND d1 <= -90 AND -180 <= d2 AND d2 <= -90 AND d1 > d2 IMPLIES sin(d1) < sin(d2) sin_decreases_towards_neg_180_le : LEMMA FORALL (d1,d2:degrees) : -180 <= d1 AND d1 <= -90 AND -180 <= d2 AND d2 <= -90 AND d1 >= d2 IMPLIES sin(d1) <= sin(d2) sin_increases_towards_neg_270_le : axiom FORALL (d1,d2:degrees) : -270 <= d1 AND d1 <= -90 AND -270 <= d2 AND d2 <= -90 AND d1 >= d2 IMPLIES sin(d1) <= sin(d2) sin_left_of_max_le : axiom forall (a,c1,c2:degrees) : a - c1 >= -90 and a <= 90 and c1 >= 0 and -c1 <= c2 and c2 <= c1 implies sin(a - c1) <= sin(a + c2) sin_right_of_max_le : axiom forall (a,c1,c2:degrees) : a + c1 <= 270 and a >= 90 and c1 >= 0 and -c1 <= c2 and c2 <= c1 implies sin(a + c1) <= sin(a - c2) sin_right_of_min_ge : axiom forall (a,c1,c2:degrees) : a + c1 <= 90 and a >= -90 and c1 >= 0 and -c1 <= c2 and c2 <= c1 implies sin(a+c1) >= sin(a-c2) sin_left_of_min_ge : axiom forall (a,c1,c2:degrees) : a - c1 >= -270 and a <= -90 and c1 >= 0 and -c1 <= c2 and c2 <= c1 implies sin(a-c1) >= sin(a+c2) sin_of_0_180 : AXIOM sin(0) = 0 AND sin(180) = 0 AND sin(-180) = 0 sin_180 : lemma sin(180) = 0 sin_of_90 : axiom sin(90) = 1 sin_of_neg90 : axiom sin(-90) = -1 sin_of_87_93 : lemma sin(87) > 9986/10000 and sin(93) > 9986/10000 sin_of_84_96 : lemma sin(84) > 9945/10000 and sin(96) > 9945/10000 sin_of_neg87_neg93 : lemma sin(-87) < -9986/10000 and sin(-93) < -9986/10000 sin_of_neg84_neg96 : lemma sin(-84) < -9945/10000 and sin(-96) < -9945/10000 sin_between_0_180_pos : LEMMA 0 < d AND d < 180 IMPLIES sin(d) > 0 sin_of_neg_neg : LEMMA FORALL (x:real) : x < 0 AND x > -180 IMPLIES sin(x) < 0 sin_between_0_neg180_neg : LEMMA -180 < d AND d < 0 IMPLIES sin(d) < 0 sin_of_sum : axiom sin(a + b) = sin(a) * cos(b) + cos(a) * sin(b) cos_of_sum : axiom cos(a + b) = cos(a) * cos(b) - sin(a) * sin(b) sin_of_sub : axiom sin(a - b) = sin(a) * cos(b) - cos(a) * sin(b) cos_of_sub :axiom cos(a - b) = cos(a) * cos(b) + sin(a) * sin(b) sin_of_34 : lemma sin(34) = 83675683152334637347629483331566882250633513559859686857539967827229/149636552853584289550781250000000000000000000000000000000000000000000 cos_of_Bank : AXIOM cos(phi) /= 0 Tan : TYPE = {d | cos(d) /= 0} tan(d:Tan): real = sin(d)/cos(d) TAN(d:Tan): real = SIN(d)/COS(d) tan_approx : axiom FORALL (d:Tan) : tan(d) = TAN(d) tan_of_neg : axiom FORALL (d:Tan) : tan(-d) = -tan(d) tan_decreases_45_to_neg_45 : AXIOM FORALL (d1,d2:Tan): -45 <= d1 AND d1 <= 45 AND d1 <= d2 IMPLIES tan(d1) <= tan(d2) tan_decreases_35_to_neg_35 : AXIOM FORALL (d1,d2:Tan): -35 <= d1 AND d1 <= 35 AND -35 <= d2 AND d2 <= 35 AND d1 <= d2 IMPLIES tan(d1) <= tan(d2) tan_of_45 : AXIOM tan(-45) = -1 AND tan(45) = 1 tan_of_35 : AXIOM tan(-35) = -7/10 AND tan(35) = 7/10 tan_of_0 : lemma tan(0) = 0 tan_of_35_A : lemma tan(35) = 22499291345047646301797609779586757039831379546768851075511969499/32132326850689715565723467632399236095009782349706769437091500000 tan_of_neg_35_A : lemma tan(-35) = -22499291345047646301797609779586757039831379546768851075511969499/32132326850689715565723467632399236095009782349706769437091500000 arctan(x) : Tan arctan_fst_cuadrant : axiom x >= 0 implies 0 <= arctan(x) and arctan(x) < 90 arctan_fourth_cuadrant : axiom x <= 0 implies -90 < arctan(x) and arctan(x) <= 0 arctan_bounds : theorem -90 < arctan(x) and arctan(x) < 90 % These axioms are from CRC Stanard mathematical tables 23rd edition. tan_of_arctan : axiom tan(arctan(x)) = x sin_of_arctan : axiom sin(arctan(x)) = x/(sqrt(1+sq(x))) cos_of_arctan : axiom cos(arctan(x)) = 1/(sqrt(1+sq(x))) sin_of_neg_arctan : axiom sin(-arctan(x)) = -x/(sqrt(1+sq(x))) cos_of_neg_arctan : axiom cos(-arctan(x)) = 1/(sqrt(1+sq(x))) sin_of_half_angle : axiom abs(sin(x/2)) = sqrt((1 - cos(x))/2) sq_sin_of_half_angle : axiom sq(sin(x/2)) = (1 - cos(x))/2 % ----------- sin_cos_sq_one : AXIOM FORALL (x): sq(sin(x)) + sq(cos(x)) = 1 % This axiom has been checked using Mupad. value_range_1 :AXIOM forall (c:{x:real | x > -2250 and x <= 200}, shift:{x:degrees | -40 < x and x < 40}): c >= -325 and c <= 200 and shift <= 34 and shift >= -34 implies sqrt((sq(2250) + 2250 * c) * 4 * sq(sin(shift / 2)) + sq(c)) <= 1400 % 16 + 24061/100000 < C1A < 16 + 24062/100000 C1A approx. = 16.240615 C1A : real = 540705974974844227119093990377945882616090466046839053221195787166260864026690096339093105462371245811068227653237226285972409368581812468110078754372913679297208919709366762559589746537168854101507336606112070849895383964252101159525105333241787844877978190098914705191444841548313619663939006603314721364866879772207261158458710145737847475646268251465784062004495104138962364970199805041647030593968669797833111731080916612130203726148246816004658921069906909368088617260775243392963688486514051381905806476795430498534459799433323496609909233214167129489064783426876028853068892832549/33293442716888833763462254920638585548046385782305064367599897725988788321882714220836597683585354722343426658722122572459979368648140857257649524877002112368005703757498505087445389651791612692011017883474953338733135255119597115489787339692342509106435472052639867036850964238423201181125116996392091979600056890441287870329246108109471933586154307803217527566456764424821009976203184927935294518953146600390475393002324774419561655793416716976713198477217603234948498649597167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 % -6 - 549108/1000000 < C2A < -6 - 549107/1000000 C2A approx. = -6.5491075 C2A : real = -194616886056243714521915563604445509846325953782673455973958878003675664355042049194889605879661428369687442205198864798283274728485275585791764691353823418938845555750186789720378927711277536877809123378233350123653398011198728239594354878843261315679182994936807326937248452396167444864709468941989100576656643630205082802127551738420357105725073041659125868609222275248806175973942292756283567299478368173232024928462320533215507691632395652334188190327458398731138000067554510770159033373526611496881281508931407401711306017334151846339251055707529221253398532986779408547910046477673753135333005313285490678577789346341846573420593538064751469049014692573/29716549537882972980034600220726234502502538373320372071352071823457138739541982713491209828355065476510315739107193363589183807546389598006900223117739523995800868881139310313580307264792375780008163108995293367204864982275931252238012664801774006519965997265248978247493620207334419700679311157324456813164210697914549446829669538348520968622841400818332604465865444848459942984670438609216699870275806573986292248742035365154455794521225543998795584668214310780715617708864092958153708673770937381398754299978848890230576997284889221191406250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 C1_pos_A : real = 540705974974844227119093990377945882616090466046839053221195787166260864026690096339093105462371245811068227653237226285972409368581812468110078754372913679297208919709366762559589746537168854101507336606112070849895383964252101159525105333241787844877978190098914705191444841548313619663939006603314721364866879772207261158458710145737847475646268251465784062004495104138962364970199805041647030593968669797833111731080916612130203726148246816004658921069906909368088617260775243392963688486514051381905806476795430498534459799433323496609909233214167129489064783426876028853068892832549/33293442716888833763462254920638585548046385782305064367599897725988788321882714220836597683585354722343426658722122572459979368648140857257649524877002112368005703757498505087445389651791612692011017883474953338733135255119597115489787339692342509106435472052639867036850964238423201181125116996392091979600056890441287870329246108109471933586154307803217527566456764424821009976203184927935294518953146600390475393002324774419561655793416716976713198477217603234948498649597167968750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 C2_pos_A : real = 194616886056243714521915563604445509846325953782673455973958878003675664355042049194889605879661428369687442205198864798283274728485275585791764691353823418938845555750186789720378927711277536877809123378233350123653398011198728239594354878843261315679182994936807326937248452396167444864709468941989100576656643630205082802127551738420357105725073041659125868609222275248806175973942292756283567299478368173232024928462320533215507691632395652334188190327458398731138000067554510770159033373526611496881281508931407401711306017334151846339251055707529221253398532986779408547910046477673753135333005313285490678577789346341846573420593538064751469049014692573/29716549537882972980034600220726234502502538373320372071352071823457138739541982713491209828355065476510315739107193363589183807546389598006900223117739523995800868881139310313580307264792375780008163108995293367204864982275931252238012664801774006519965997265248978247493620207334419700679311157324456813164210697914549446829669538348520968622841400818332604465865444848459942984670438609216699870275806573986292248742035365154455794521225543998795584668214310780715617708864092958153708673770937381398754299978848890230576997284889221191406250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 end trigonometry $$$trigonometry.prf (|trigonometry| (|One_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|cos_180| "" (LEMMA "cos_of_180") (("" (INST -1 "0") (("" (GROUND) NIL NIL)) NIL)) NIL) (|cos_neg90_to_neg270| "" (SKOSIMP*) (("" (LEMMA "cos_90_to_270") (("" (INST -1 "d!1 + 360") (("" (LEMMA "cos_equivalence") (("" (INST -1 "d!1" "1") (("" (REPLACE -1) (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sin_decreases_towards_neg_90_le| "" (LEMMA "sin_decreases_towards_neg_90_lt") (("" (SKOLEM 1 ("d1" "d2")) (("" (INST -1 "d1" "d2") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL) (|sin_decreases_towards_pos_270_le| "" (SKOSIMP*) (("" (LEMMA "sin_decreases_towards_pos_270_lt") (("" (INST?) (("" (INST -1 "d1!1") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) (|sin_decreases_towards_neg_180_le| "" (LEMMA "sin_decreases_towards_neg_180_lt") (("" (SKOLEM 1 ("d1" "d2")) (("" (INST -1 "d1" "d2") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL) (|sin_180| "" (LEMMA "sin_of_0_180") (("" (GROUND) NIL NIL)) NIL) (|sin_of_87_93| "" (REWRITE "sin_approx") (("" (REWRITE "sin_approx") (("" (GROUND) (("1" (GRIND) NIL NIL) ("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL) (|sin_of_84_96| "" (REWRITE "sin_approx") (("" (REWRITE "sin_approx") (("" (GRIND) NIL NIL)) NIL)) NIL) (|sin_of_neg87_neg93| "" (REWRITE "sin_approx") (("" (REWRITE "sin_approx") (("" (GRIND) NIL NIL)) NIL)) NIL) (|sin_of_neg84_neg96| "" (REWRITE "sin_approx") (("" (REWRITE "sin_approx") (("" (GRIND) NIL NIL)) NIL)) NIL) (|sin_between_0_180_pos| "" (SKOSIMP*) (("" (LEMMA "sin_decreases_towards_neg_90_lt") (("" (LEMMA "sin_decreases_towards_pos_270_lt") (("" (INST -1 "d!1" "180") (("" (INST -2 "0" "d!1") (("" (LEMMA "sin_of_0_180") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sin_of_neg_neg| "" (SKOSIMP*) (("" (LEMMA "sin_decreases_towards_neg_90_lt") (("" (INST -1 "x!1" "0") (("" (LEMMA "sin_decreases_towards_neg_180_lt") (("" (INST -1 "x!1" "-180") (("" (LEMMA "sin_of_0_180") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sin_between_0_neg180_neg| "" (SKOSIMP*) (("" (CASE "(-180 < d!1 and d!1 <= -90) or (d!1 > -90 and d!1 < 0)") (("1" (SPLIT -1) (("1" (LEMMA "sin_decreases_towards_neg_180_lt") (("1" (INST -1 "d!1" "-180") (("1" (ASSERT) (("1" (ASSERT) (("1" (LEMMA "sin_of_0_180") (("1" (SKOSIMP*) (("1" (REPLACE -3) (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "sin_decreases_towards_neg_90_lt") (("2" (INST -1 "d!1" "0") (("2" (ASSERT) (("2" (ASSERT) (("2" (LEMMA "sin_of_0_180") (("2" (SKOSIMP*) (("2" (REPLACE -1) (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL) (|sin_of_34| "" (REWRITE "sin_approx") (("" (GRIND) NIL NIL)) NIL) (|tan_TCC1| "" (SUBTYPE-TCC) NIL NIL) (TAN_TCC1 "" (SKOSIMP*) (("" (TYPEPRED "COS(d!1)") (("" (TYPEPRED "d!1") (("" (REWRITE "cos_approx") (("" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) (|tan_of_neg_TCC1| "" (SKOSIMP*) (("" (TYPEPRED "d!1") (("" (REWRITE "cos_approx") (("" (REWRITE "cos_approx") (("" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL) (|tan_of_45_TCC1| "" (REWRITE "cos_approx") (("" (GRIND) NIL NIL)) NIL) (|tan_of_45_TCC2| "" (REWRITE "cos_approx") (("" (GRIND) NIL NIL)) NIL) (|tan_of_35_TCC1| "" (REWRITE "cos_approx") (("" (GRIND) NIL NIL)) NIL) (|tan_of_35_TCC2| "" (REWRITE "cos_approx") (("" (SKOSIMP*) (("" (DELETE -1) (("" (GRIND) NIL NIL)) NIL)) NIL)) NIL) (|tan_of_0_TCC1| "" (LEMMA "cos_of_0") (("" (INST -1 "0") (("" (GROUND) NIL NIL)) NIL)) NIL) (|tan_of_0| "" (REWRITE "tan_approx") (("1" (GRIND) NIL NIL) ("2" (LEMMA "cos_of_0") (("2" (INST -1 "0") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) (|tan_of_35_A_TCC1| "" (REWRITE "cos_of_Bank") (("" (EXPAND "abs") (("" (ASSERT) NIL NIL)) NIL)) NIL) (|tan_of_35_A| "" (REWRITE "tan_approx") (("1" (GRIND) NIL NIL) ("2" (REWRITE "cos_of_Bank") (("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) (|tan_of_neg_35_A| "" (REWRITE "tan_approx") (("1" (GRIND) NIL NIL) ("2" (REWRITE "cos_of_Bank") (("2" (EXPAND "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) (|arctan_TCC1| "" (INST 1 "lambda (y:real) : 45") (("" (REWRITE "cos_approx") (("" (GRIND) NIL NIL)) NIL)) NIL) (|arctan_bounds| "" (SKOLEM 1 ("x")) (("" (LEMMA "arctan_fst_cuadrant") (("" (LEMMA "arctan_fourth_cuadrant") (("" (CASE "x <= 0") (("1" (INST?) (("1" (INST?) (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (INST?) (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sin_of_half_angle_TCC1| "" (SKOSIMP*) (("" (REWRITE "pos_div_ge") (("" (TYPEPRED "cos(x!1)") (("" (EXPAND "abs") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) (|value_range_1_TCC1| "" (SKOSIMP*) (("" (TYPEPRED "sq(c!1)") (("" (CASE "(sq(2250) + 2250 * c!1) * 4 * sq(sin(shift!1 / 2)) >= 0") (("1" (ASSERT) NIL NIL) ("2" (DELETE -1 2) (("2" (REWRITE "pos_times_ge") (("2" (FLATTEN 1) (("2" (DELETE 1) (("2" (TYPEPRED "sq(sin(shift!1 / 2))") (("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) $$$sqrt.pvs sqrt : theory begin %-- Variables x,y,z : VAR real n,n1,n2 : VAR nat %% Definition, axioms, and properties of square and square root sq(x): nonneg_real = x*x n0x: VAR nzreal px: VAR posreal positive_square: JUDGEMENT sq(n0x) HAS_TYPE posreal square_product: LEMMA sq(x * y) = sq(x) * sq(y) square_divide: LEMMA sq(y / n0x) = sq(y) / sq(n0x) sq_x_ge_0 : theorem x * x >= 0 sqx_ge_0 : theorem sq(x) >= 0 sq_x_0_IFF_x_0 : lemma FORALL x: x * x = 0 IFF x = 0 sq_eq_IFF_eq : lemma forall (x,y:nonneg_real): sq(y) = sq(x) IFF y=x x_not_0_sq_gt_0 : theorem x /= 0 IFF sq(x) > 0 sqrt_well_defined : AXIOM FORALL (x:nonneg_real): nonempty?({z:nonneg_real | z*z = x}) sqrt(x:nonneg_real) : {z:nonneg_real | z*z = x} sqrt_0_x_0 : lemma FORALL (x: nonneg_real): sqrt(x) = 0 IFF x = 0 sqrt_of_sq: theorem (sqrt(sq(x))) = abs(x) sq_of_sqrt: theorem FORALL (x: nonneg_real): sq(sqrt(x)) = x positive_sqrt: JUDGEMENT sqrt(px) HAS_TYPE posreal sqrt_eq: theorem FORALL (x,y:nonneg_real) : x = y IFF sqrt(x) = sqrt(y) sqrt_equiv: theorem FORALL (x, y: nonneg_real): sqrt(x) = y IFF y*y=x sqrt_product: LEMMA FORALL (x,y:nonneg_real): sqrt(y * x) = sqrt(y) * sqrt(x) sqrt_divide: LEMMA FORALL (y:nonneg_real): sqrt(y / px) = sqrt(y) / sqrt(px) both_sides_expt_non_neg_lt_aux: lemma forall (nnx,nny:nonneg_real): expt(nnx, n+1) < expt(nny, n+1) IFF nnx < nny both_sides_expt_non_neg_le_aux: lemma forall (nnx,nny:nonneg_real): expt(nnx, n+1) <= expt(nny, n+1) IFF nnx <= nny sq_le_IFF_le : lemma forall (x,y:nonneg_real): sq(y) <= sq(x) IFF y <= x sq_of_neg_le_ge : lemma forall (x,y:negreal): sq(y) <= sq(x) IFF y>=x sq_monotone : theorem forall (x,y:nonneg_real): sq(x) <= sq(y) IFF x <= y sqrt_monotone : theorem FORALL (x,y:nonneg_real) : sqrt(x) <= sqrt(y) IFF x <= y sides_smaller_than_hypotenuse1 : lemma sqrt(sq(x) + sq(y)) < z implies x < z and y < z sides_smaller_than_hypotenuse2 : lemma sqrt(sq(x) + sq(y)) < z implies abs(x) < z and abs(y) < z sides_smaller_than_hypotenuse3 : lemma sqrt(sq(x) + sq(y)) <= z implies x <= z and y <= z sides_smaller_than_hypotenuse4 : lemma sqrt(sq(x) + sq(y)) <= z implies abs(x) <= z and abs(y) <= z one_over_sqrt_1 : lemma x > 0 implies (1 / (sqrt(1 + sq(y / x))) = x * (1 / sqrt(x * x + y * y))) one_over_sqrt_2 : lemma x < 0 implies (1 / (sqrt(1 + sq(y / x))) = - x * (1 / sqrt(x * x + y * y))) one_over_sqrt_3 : lemma x > 0 implies (1 / (sqrt(1 + sq(y / x))) = x * (1 / sqrt(sq(x) + sq(y)))) one_over_sqrt_4 : lemma x < 0 implies (1 / (sqrt(1 + sq(y / x))) = - x * (1 / sqrt(sq(x) + sq(y)))) yx_over_sqrt : lemma x > 0 implies (y/x / (sqrt(1 + sq(y / x))) = y * (1 / sqrt(sq(x) + sq(y)))) yx_over_sqrt_1 : lemma x > 0 implies (y/x / (sqrt(1 + sq(y / x))) = y * (1 / sqrt(sq(x) + sq(y)))) yx_over_sqrt_2 : lemma x < 0 implies (y/x / (sqrt(1 + sq(y / x))) = -y * (1 / sqrt(sq(x) + sq(y)))) mag_nz(x:real) : type = {y:real | sq(x) + sq(y) /= 0} sqrt_sides_over_magnitud : theorem forall (y:real,x:mag_nz(y),D:posreal): sqrt(sq(y) + sq(x)) = D implies sqrt(sq(y/D) + sq(x/D)) = 1 x_ge : lemma forall (x1,x2:real) : x2*(-(x1-x2)) >= x1*(-(x1-x2)) inequality_on_x : lemma forall (x1,x2:real) : x1 /= x2 implies x2*(-(x1-x2)) > x1*(-(x1-x2)) sqrt_of_magnitud_not_0 : lemma forall (x,y:real) : x /= 0 implies sqrt(sq(x) + sq(y)) /= 0 %% ---------------------------------------------------- end sqrt $$$sqrt.prf (|sqrt| (|sq_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|positive_square| "" (GRIND) NIL NIL) (|square_product| "" (GRIND) NIL NIL) (|square_divide| "" (GRIND) NIL NIL) (|sq_x_ge_0| "" (SKOSIMP*) (("" (REWRITE "pos_times_ge") (("" (GRIND) NIL NIL)) NIL)) NIL) (|sqx_ge_0| "" (SKOSIMP*) (("" (EXPAND "sq") (("" (REWRITE "sq_x_ge_0") NIL NIL)) NIL)) NIL) (|sq_x_0_IFF_x_0| "" (SKOLEM 1 "x") (("" (LEMMA "zero_times3") (("" (INST?) (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL) (|sq_eq_IFF_eq| "" (SKOSIMP*) (("" (CASE-REPLACE "y!1 = 0") (("1" (EXPAND "sq") (("1" (LEMMA "sq_x_0_IFF_x_0") (("1" (INST?) (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (CASE-REPLACE "x!1 = 0") (("1" (EXPAND "sq") (("1" (REWRITE "sq_x_0_IFF_x_0") NIL NIL)) NIL) ("2" (LEMMA "both_sides_expt2_aux") (("2" (INST -1 "2" "y!1" "x!1") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "sq") (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "x!1") (("2" (GROUND) NIL NIL)) NIL) ("3" (TYPEPRED "y!1") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|x_not_0_sq_gt_0| "" (SKOLEM 1 "x") (("" (EXPAND "sq") (("" (LEMMA "pos_times_gt") (("" (INST?) (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) (|sqrt_TCC1| "" (LEMMA "sqrt_well_defined") (("" (INST 1 "lambda (x:nonneg_real): choose ({z: nonneg_real | z * z = x})") NIL NIL)) NIL) (|sqrt_0_x_0| "" (SKOSIMP*) (("" (TYPEPRED "sqrt(x!1)") (("" (CASE "sqrt(x!1) > 0") (("1" (LEMMA "pos_times_gt") (("1" (INST -1 "sqrt(x!1)" "sqrt(x!1)") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (CASE "sqrt(x!1) = 0") (("1" (REPLACE -1 -3) (("1" (ASSERT) NIL NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) (|sqrt_of_sq| "" (SKOLEM 1 "x") (("" (TYPEPRED "sqrt(sq(x))") (("" (CASE "sqrt(sq(x)) = 0 or sqrt(sq(x)) > 0") (("1" (SPLIT -1) (("1" (REPLACE -1 1) (("1" (REWRITE "sqrt_0_x_0 ") (("1" (EXPAND "sq" -1) (("1" (REWRITE "sq_x_0_IFF_x_0") (("1" (REPLACE -1 1) (("1" (EXPAND "abs") (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "both_sides_expt2_aux") (("2" (INST -1 "2" "sqrt(sq(x))" "abs(x)") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (CASE "abs(x) * abs(x) = x * x") (("1" (REPLACE -1 -2) (("1" (EXPAND "sq" -5 3) (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (CASE "x<0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "abs") (("2" (CASE "x<0") (("1" (ASSERT) NIL NIL) ("2" (ASSERT) (("2" (CASE "x=0") (("1" (REPLACE -1 3) (("1" (EXPAND "sq") (("1" (REWRITE "sqrt_0_x_0") NIL NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) (|sq_of_sqrt| "" (SKOSIMP*) (("" (TYPEPRED "sqrt(x!1)") (("" (EXPAND "sq") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL) (|positive_sqrt| "" (SKOLEM!) (("" (ASSERT) NIL NIL)) NIL) (|sqrt_eq| "" (SKOSIMP*) (("" (TYPEPRED "sqrt(x!1)") (("" (TYPEPRED "sqrt(y!1)") (("" (CASE "y!1 = 0") (("1" (REPLACE -1 1) (("1" (LEMMA "sqrt_0_x_0") (("1" (INST -1 "0") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (CASE "x!1 = 0") (("1" (REPLACE -1 2) (("1" (LEMMA "sqrt_0_x_0") (("1" (INST -1 "0") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "both_sides_expt2_aux") (("2" (INST -1 "2" "sqrt(x!1)" "sqrt(y!1)") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sqrt_equiv| "" (REDUCE) (("" (REPLACE -3 + RL) (("" (REWRITE "sq" :DIR RL) (("" (REWRITE "sqrt_of_sq") (("" (ASSERT) (("" (EXPAND "abs") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sqrt_product| "" (SKOSIMP*) (("" (CASE "sqrt(y!1) = 0 OR sqrt(x!1) = 0") (("1" (GROUND) NIL NIL) ("2" (FLATTEN) (("2" (LEMMA "both_sides_expt2") (("2" (INST -1 "2" "_" "_") (("2" (EXPAND "^") (("2" (EXPAND "expt") (("2" (EXPAND "expt") (("2" (EXPAND "expt") (("2" (INST -1 "sqrt(y!1) * sqrt(x!1)" "sqrt(y!1 * x!1)") (("1" (FLATTEN) (("1" (ASSERT) NIL NIL)) NIL) ("2" (ASSERT) (("2" (CASE-REPLACE "sqrt(y!1 * x!1) = 0") (("1" (LEMMA "sqrt_0_x_0") (("1" (INST -1 "y!1*x!1") (("1" (ASSERT) (("1" (LEMMA "zero_times3") (("1" (INST?) (("1" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "sqrt(y!1 * x!1)") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("3" (CASE-REPLACE "sqrt(y!1) * sqrt(x!1) = 0") (("1" (LEMMA "zero_times3") (("1" (INST?) (("1" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sqrt_divide| "" (SKOLEM!) (("" (ASSERT) (("" (REWRITE "sqrt_equiv") NIL NIL)) NIL)) NIL) (|both_sides_expt_non_neg_lt_aux| "" (SKOSIMP*) (("" (CASE "nnx!1 = 0") (("1" (CASE "nny!1 = 0") (("1" (REPLACE -1) (("1" (REPLACE -2) (("1" (GRIND) NIL NIL)) NIL)) NIL) ("2" (REPLACE -1) (("2" (EXPAND "expt" 2 1) (("2" (LEMMA "zero_times1") (("2" (INST?) (("2" (REPLACE -1 :HIDE? T) (("2" (LEMMA "expt_pos_aux") (("2" (INST?) (("1" (GROUND) NIL NIL) ("2" (TYPEPRED "nny!1") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "nny!1 = 0") (("1" (REPLACE -1) (("1" (EXPAND "expt" 2 2) (("1" (LEMMA "zero_times1") (("1" (INST?) (("1" (REPLACE -1 :HIDE? T) (("1" (LEMMA "expt_pos_aux") (("1" (INST?) (("1" (GROUND) NIL NIL) ("2" (TYPEPRED "nnx!1") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "both_sides_expt_pos_lt_aux") (("2" (INST?) (("1" (TYPEPRED "nny!1") (("1" (GROUND) NIL NIL)) NIL) ("2" (HIDE 4) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|both_sides_expt_non_neg_le_aux| "" (SKOSIMP*) (("" (CASE "nnx!1 = 0") (("1" (CASE "nny!1 = 0") (("1" (REPLACE -1) (("1" (REPLACE -2) (("1" (GRIND) NIL NIL)) NIL)) NIL) ("2" (REPLACE -1) (("2" (EXPAND "expt") (("2" (LEMMA "zero_times1") (("2" (INST?) (("2" (REPLACE -1) (("2" (TYPEPRED "expt(nny!1, n!1)") (("2" (TYPEPRED "nny!1") (("2" (LEMMA "pos_times_le") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "nny!1 = 0") (("1" (REPLACE -1) (("1" (EXPAND "expt") (("1" (LEMMA "zero_times1") (("1" (INST?) (("1" (REPLACE -1) (("1" (LEMMA "neg_times_le") (("1" (LEMMA "expt_pos_aux") (("1" (INST -1 "n!1" "nnx!1") (("1" (INST?) (("1" (GROUND) NIL NIL)) NIL) ("2" (TYPEPRED "nnx!1") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "both_sides_expt_pos_le_aux") (("2" (INST?) (("1" (TYPEPRED "nny!1") (("1" (GROUND) NIL NIL)) NIL) ("2" (TYPEPRED "nnx!1") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sq_le_IFF_le| "" (SKOSIMP*) (("" (LEMMA "both_sides_expt_non_neg_le_aux") (("" (INST -1 "1" "y!1" "x!1") (("" (EXPAND "expt") (("" (EXPAND "expt") (("" (EXPAND "expt") (("" (EXPAND "sq") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sq_of_neg_le_ge| "" (SKOSIMP*) (("" (LEMMA "sq_le_IFF_le") (("" (INST -1 "-x!1" "-y!1") (("" (CASE-REPLACE "sq(-y!1) = sq(y!1)") (("1" (CASE-REPLACE "sq(-x!1) = sq(x!1)") (("1" (GROUND) NIL NIL) ("2" (EXPAND "sq") (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (EXPAND "sq") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sq_monotone| "" (SKOSIMP*) (("" (LEMMA "both_sides_expt_non_neg_le_aux") (("" (INST -1 "1" "x!1" "y!1") (("" (EXPAND "expt") (("" (EXPAND "expt") (("" (EXPAND "expt") (("" (EXPAND "sq") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sqrt_monotone| "" (SKOSIMP*) (("" (LEMMA " both_sides_expt_non_neg_le_aux") (("" (INST -1 "1" "sqrt(x!1)" "sqrt(y!1)") (("" (EXPAND "expt") (("" (EXPAND "expt") (("" (EXPAND "expt") (("" (TYPEPRED "sqrt(x!1)") (("" (TYPEPRED "sqrt(y!1)") (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sides_smaller_than_hypotenuse1| "" (SKOSIMP*) (("" (TYPEPRED "sqrt(sq(x!1) + sq(y!1))") (("" (SPLIT 1) (("1" (LEMMA "both_sides_expt_non_neg_lt_aux") (("1" (INST -1 "1" "sqrt(sq(x!1) + sq(y!1))" "z!1") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (REPLACE -3 -1) (("1" (ASSERT) (("1" (CASE "(sq(x!1) + sq(y!1) < (z!1 * z!1)) implies sq(x!1) < (z!1 * z!1)") (("1" (GROUND) (("1" (LEMMA "both_sides_expt_non_neg_lt_aux") (("1" (INST -1 "1" "x!1" "z!1") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "sq" -2 1) (("1" (TYPEPRED "sq(y!1)") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "sqrt(sq(x!1) + sq(y!1))") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "both_sides_expt_non_neg_lt_aux") (("2" (INST -1 "1" "sqrt(sq(x!1) + sq(y!1))" "z!1") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (REPLACE -3 -1) (("1" (ASSERT) (("1" (CASE "(sq(x!1) + sq(y!1) < (z!1 * z!1)) implies sq(y!1) < (z!1 * z!1)") (("1" (GROUND) (("1" (LEMMA "both_sides_expt_non_neg_lt_aux") (("1" (INST -1 "1" "y!1" "z!1") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "sq" -1) (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "sqrt(sq(x!1) + sq(y!1))") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sides_smaller_than_hypotenuse2| "" (SKOSIMP*) (("" (LEMMA "sides_smaller_than_hypotenuse1") (("" (INST?) (("" (GRIND) NIL NIL)) NIL)) NIL)) NIL) (|sides_smaller_than_hypotenuse3| "" (SKOSIMP*) (("" (TYPEPRED "sqrt(sq(x!1) + sq(y!1))") (("" (SPLIT 1) (("1" (LEMMA "both_sides_expt_non_neg_le_aux") (("1" (INST -1 "1" "sqrt(sq(x!1) + sq(y!1))" "z!1") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (REPLACE -3 -1) (("1" (ASSERT) (("1" (CASE "(sq(x!1) + sq(y!1) <= (z!1 * z!1)) implies sq(x!1) <= (z!1 * z!1)") (("1" (GROUND) (("1" (LEMMA "both_sides_expt_non_neg_le_aux") (("1" (INST -1 "1" "x!1" "z!1") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "sq" -2 1) (("1" (TYPEPRED "sq(y!1)") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "sqrt(sq(x!1) + sq(y!1))") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (LEMMA "both_sides_expt_non_neg_le_aux") (("2" (INST -1 "1" "sqrt(sq(x!1) + sq(y!1))" "z!1") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (REPLACE -3 -1) (("1" (ASSERT) (("1" (CASE "(sq(x!1) + sq(y!1) <= (z!1 * z!1)) implies sq(y!1) <= (z!1 * z!1)") (("1" (GROUND) (("1" (LEMMA "both_sides_expt_non_neg_le_aux") (("1" (INST -1 "1" "y!1" "z!1") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "expt") (("1" (EXPAND "sq" -1) (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (TYPEPRED "sqrt(sq(x!1) + sq(y!1))") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sides_smaller_than_hypotenuse4| "" (SKOSIMP*) (("" (LEMMA "sides_smaller_than_hypotenuse3") (("" (INST?) (("" (GRIND) NIL NIL)) NIL)) NIL)) NIL) (|one_over_sqrt_1_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|one_over_sqrt_1_TCC2| "" (SUBTYPE-TCC) NIL NIL) (|one_over_sqrt_1_TCC3| "" (SUBTYPE-TCC) (("" (LEMMA "sqrt_0_x_0") (("" (INST?) (("" (GROUND) (("" (LEMMA "sq_x_0_IFF_x_0") (("" (INST?) (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|one_over_sqrt_1| "" (SKOLEM 1 ("x" "y")) (("" (SKOSIMP*) (("" (AUTO-REWRITE "square_divide" "sqrt_divide" "sqrt_of_sq" "abs") (("" (ASSERT) (("" (CASE-REPLACE "1 + sq(y) / sq(x) = (sq(x) + sq(y)) / sq(x)") (("1" (REWRITE "sqrt_divide") (("1" (GRIND) NIL NIL) ("2" (CASE "x /= 0 IFF sq(x) > 0") (("1" (ASSERT) NIL NIL) ("2" (DELETE -1 -2 2 3) (("2" (AUTO-REWRITE "sq_x_ge_0" "sqrt_0_x_0") (("2" (REWRITE "x_not_0_sq_gt_0") NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL) ("3" (DELETE 2) (("3" (LEMMA "x_not_0_sq_gt_0") (("3" (INST -1 "x") (("3" (LEMMA "sq_x_ge_0") (("3" (INST?) (("3" (EXPAND "sq") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|one_over_sqrt_2_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|one_over_sqrt_2_TCC2| "" (SUBTYPE-TCC) NIL NIL) (|one_over_sqrt_2_TCC3| "" (SKOSIMP*) (("" (LEMMA "sqrt_0_x_0") (("" (INST?) (("" (LEMMA "sq_x_0_IFF_x_0") (("" (INST?) (("" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|one_over_sqrt_2| "" (SKOLEM 1 ("x" "y")) (("" (SKOSIMP*) (("" (AUTO-REWRITE "square_divide" "sqrt_divide" "sqrt_of_sq" "abs") (("" (ASSERT) (("" (CASE-REPLACE "1 + sq(y) / sq(x) = (sq(x) + sq(y)) / sq(x)") (("1" (REWRITE "sqrt_divide") (("1" (GRIND) NIL NIL) ("2" (DELETE -1 2) (("2" (LEMMA "x_not_0_sq_gt_0") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL) ("3" (DELETE 2) (("3" (LEMMA "sq_x_0_IFF_x_0") (("3" (INST?) (("3" (EXPAND "sq") (("3" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|one_over_sqrt_3_TCC1| "" (SKOSIMP*) (("" (LEMMA "sqrt_0_x_0") (("" (LEMMA "sq_x_0_IFF_x_0") (("" (GRIND) NIL NIL)) NIL)) NIL)) NIL) (|one_over_sqrt_3| "" (SKOLEM 1 ("x" "y")) (("" (EXPAND "sq" 1 2) (("" (EXPAND "sq" 1 2) (("" (REWRITE "one_over_sqrt_1") NIL NIL)) NIL)) NIL)) NIL) (|one_over_sqrt_4_TCC1| "" (SKOSIMP*) (("" (LEMMA "sqrt_0_x_0") (("" (LEMMA "sq_x_0_IFF_x_0") (("" (GRIND) NIL NIL)) NIL)) NIL)) NIL) (|one_over_sqrt_4| "" (SKOLEM 1 ("x" "y")) (("" (EXPAND "sq" 1 2) (("" (EXPAND "sq" 1 2) (("" (REWRITE "one_over_sqrt_2") NIL NIL)) NIL)) NIL)) NIL) (|yx_over_sqrt| "" (SKOSIMP*) (("" (CASE "x!1 > 0") (("1" (CASE-REPLACE "(y!1 / x!1 / (sqrt(1 + sq(y!1 / x!1)))) = ((y!1 / x!1) * (1 / (sqrt(1 + sq(y!1 / x!1)))))") (("1" (REWRITE "one_over_sqrt_3") (("1" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (ASSERT) NIL NIL)) NIL) ("2" (CASE-REPLACE "(y!1 / x!1 / (sqrt(1 + sq(y!1 / x!1)))) = ((y!1 / x!1) * (1 / (sqrt(1 + sq(y!1 / x!1)))))") (("1" (REWRITE "one_over_sqrt_4") (("1" (GROUND) (("1" (POSTPONE) NIL NIL)) NIL)) NIL) ("2" (POSTPONE) NIL NIL) ("3" (POSTPONE) NIL NIL)) NIL)) NIL)) NIL) (|yx_over_sqrt_1| "" (SKOSIMP*) (("" (CASE "x!1 > 0") (("1" (CASE-REPLACE "(y!1 / x!1 / (sqrt(1 + sq(y!1 / x!1)))) = ((y!1 / x!1) * (1 / (sqrt(1 + sq(y!1 / x!1)))))") (("1" (REWRITE "one_over_sqrt_3") (("1" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (ASSERT) NIL NIL)) NIL) ("2" (PROPAX) NIL NIL)) NIL)) NIL) (|yx_over_sqrt_2| "" (SKOSIMP*) (("" (CASE-REPLACE "(y!1 / x!1 / (sqrt(1 + sq(y!1 / x!1)))) = ((y!1 / x!1) * (1 / (sqrt(1 + sq(y!1 / x!1)))))") (("1" (REWRITE "one_over_sqrt_4") (("1" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL) ("3" (GROUND) NIL NIL)) NIL)) NIL) (|sqrt_sides_over_magnitud| "" (SKOSIMP*) (("" (REPLACE -1 1 :DIR RL) (("" (DELETE -1) (("" (REWRITE "square_divide") (("" (REWRITE "square_divide") (("" (REWRITE "sq_of_sqrt") (("" (CASE-REPLACE "sq(y!1) / (sq(x!1) + sq(y!1)) + sq(x!1) / (sq(x!1) + sq(y!1)) = (sq(y!1) + sq(x!1))/ (sq(x!1) + sq(y!1))") (("1" (REWRITE "div_simp") (("1" (TYPEPRED "sqrt(1)") (("1" (REWRITE "sqrt_1") (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|x_ge| "" (SKOLEM 1 ("x1" "x2")) (("" (CASE "x2 > x1") (("1" (CASE-REPLACE "-(x1 - x2) = (x2 - x1)") (("1" (CASE "x2 - x1 > 0") (("1" (REWRITE "both_sides_times_pos_ge1") (("1" (ASSERT) NIL NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (CASE "x2=x1") (("1" (REPLACE -1) (("1" (ASSERT) NIL NIL)) NIL) ("2" (CASE "x1 - x2 > 0") (("1" (REWRITE "both_sides_times_neg_ge1") (("1" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) (|inequality_on_x| "" (SKOLEM 1 ("x1" "x2")) (("" (SKOSIMP*) (("" (CASE "x2 > x1") (("1" (CASE-REPLACE "-(x1 - x2) = (x2 - x1)") (("1" (CASE "x2 - x1 > 0") (("1" (REWRITE "both_sides_times_pos_gt1") NIL NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (CASE "x1 - x2 > 0") (("1" (REWRITE "both_sides_times_neg_gt1") (("1" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) (|sqrt_of_magnitud_not_0| "" (SKOLEM 1 ("x" "y")) (("" (SKOSIMP*) (("" (CASE "sq(x) + sq(y) > 0") (("1" (REWRITE "sqrt_0_x_0") (("1" (ASSERT) NIL NIL)) NIL) ("2" (TYPEPRED "sq(y)") (("2" (LEMMA "x_not_0_sq_gt_0") (("2" (INST -1 "x") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) $$$ails.pvs %---------------------------------------------------------------------------- % AILS Alerting Algorithm in PVS % Victor Carreno (v.a.carreno@larc.nasa.gov) % Cesar Munoz (munoz@icase.edu) % % ICASE - NASA Langley Research Center % % This model is an abstraction of the algorithm written by % % Bill Capron % NASA Langley Research Center % % and decribed by % % Mike Jackson % Honeywell Technology Center % % Assumptions % % * Two dimensional. Coordinate system: % % +-->x --> landing direction % | % v % y % %---------------------------------------------------------------------------- ails : THEORY BEGIN importing sqrt,trigonometry %-- Types bank_func : TYPE = [posnat->Bank] State: type = [# x : real, y : real, v : posreal, heading : degrees, phi : Bank #] %-- Constants intruderSpeed : posreal % feet per second evaderSpeed : posreal % feet per second collisionRange : real = 200 % feet alertTime : real = 19 % seconds alertRange : real = 1400 % feet tstep : real = 1/2 % seconds divtstep(x:real) : real = x*2 maxStep : real = 1 + divtstep(alertTime) g : real = 32+2/10 % feet per second^2 ajyloc : real %= 2500 % feet zero_bank : bank_func = LAMBDA(n:posnat):0 neg_35_bank : bank_func = LAMBDA(n:posnat):-35 pos_35_bank : bank_func = LAMBDA(n:posnat):35 %-- Variables s,s1,s2 : VAR State intruder : VAR {s:State | v(s) = intruderSpeed} evader : VAR {s:State | v(s) = evaderSpeed and heading(s) = 0 and phi(s) = 0} df : VAR bank_func phi,phi1,phi2 : VAR Bank range : VAR real t,t1,t2,tpred : VAR real a,b : VAR real iarc : VAR subrange(0,maxStep) arcrad,trkrate : VAR real n : var nat m,idtrk : VAR posnat %-- Useful functions intruderSpeeddef : AXIOM intruderSpeed = 250 evaderSpeeddef : AXIOM evaderSpeed = 250 % *********** mod(n,m): RECURSIVE nat = IF n < m THEN n ELSE mod(n-m,m) ENDIF MEASURE n distance(s1,s2): nonneg_real = sqrt(sq(x(s1)-x(s2)) + sq(y(s1)-y(s2))) collision(s1,s2): bool = distance(s1,s2) <= collisionRange alerting_distance(s1,s2): bool = distance(s1,s2) <= alertRange trkrate(phi): real = IF phi = 0 then 0 ELSE 1845*tan(phi)/intruderSpeed ENDIF TRKRATE(phi): real = IF phi = 0 then 0 ELSE 1845*TAN(phi)/250 ENDIF dx(intruder,evader,t): real = (x(intruder) + t*intruderSpeed*cos(heading(intruder))) - (x(evader) + t*evaderSpeed) dy(intruder,evader,t): real = (y(intruder) + t*intruderSpeed*sin(heading(intruder))) - y(evader) dxdt(intruder): real = intruderSpeed*cos(heading(intruder)) - evaderSpeed dydt(intruder): real = intruderSpeed*sin(heading(intruder)) R(intruder,evader,t): real = sqrt(sq(dx(intruder,evader,t)) + sq(dy(intruder,evader,t))) div_tau(intruder,evader) : real = sq(dxdt(intruder)) + sq(dydt(intruder)) tau(intruder,evader,t):real = IF div_tau(intruder,evader) = 0 THEN 0 ELSE -(dx(intruder,evader,t) * dxdt(intruder) + dy(intruder,evader,t) * dydt(intruder))/div_tau(intruder,evader) ENDIF %-- Alertitrang algorithm chkrange(range,t): bool = range <= alertRange AND t <= alertTime chktrack(intruder,evader,tpred): bool = LET tau = tau(intruder,evader,0) IN IF tau <= 0 THEN % tracks are diverging (or parallel) chkrange(R(intruder,evader,0),tpred) % check range at prediction time t ELSIF tpred+tau > alertTime THEN % tracks are converging R(intruder,evader,alertTime) % closest approach beyond alert time <= alertRange % check range at alert threshold ELSE % closest approach within alert time. R(intruder,evader,tau) % check range at closest approach. <= alertRange ENDIF arc_loop(intruder,evader,arcrad,trkrate,idtrk,iarc): RECURSIVE bool = IF iarc = maxStep THEN false ELSE LET tpred = iarc*tstep IN LET xloc = x(evader) + evaderSpeed*tpred IN LET yloc = y(evader) + evaderSpeed*tpred IN %% There are two cases trkrate > 0 or trkrate < 0 LET (xtrk,ytrk) = IF trkrate > 0 THEN (x(intruder) + arcrad*(sin(heading(intruder)+trkrate*tpred) - sin(heading(intruder))), y(intruder) + arcrad*(cos(heading(intruder))- cos(heading(intruder)+trkrate*tpred))) ELSE (x(intruder) + arcrad*(sin(heading(intruder)) - sin(heading(intruder))+trkrate*tpred), y(intruder) + arcrad*(cos(heading(intruder)+trkrate*tpred)- cos(heading(intruder)))) ENDIF IN IF NOT mod(iarc,idtrk) = 0 THEN % not time for tangential track LET range = sqrt(sq(xtrk-xloc) + sq(ytrk-yloc)) IN IF chkrange(range,tpred) THEN true ELSE arc_loop(intruder,evader,arcrad,trkrate,idtrk,iarc+1) ENDIF ELSE % tangential track LET tantrk = heading(intruder) + tpred*trkrate IN LET int = intruder WITH [x:=xtrk, y:=ytrk, heading:=tantrk] IN LET eva = evader WITH [x:=xloc, y:=yloc] IN IF chktrack(int,eva,tpred) THEN true ELSE arc_loop(intruder,evader,arcrad,trkrate,idtrk,iarc+1) ENDIF ENDIF ENDIF MEASURE (maxStep - iarc) larcalert(intruder,evader): bool = LET phi = phi(intruder) IN LET trkrate = trkrate(phi) IN IF trkrate = 0 THEN chktrack(intruder,evader,0) ELSE LET arcrad = sq(intruderSpeed)/(g*tan(phi)) IN LET idtrk = IF trkrate >= 3 THEN 1 ELSIF trkrate >= 1 + 1/2 THEN 2 ELSIF trkrate >= 3/4 THEN 4 ELSE 8 ENDIF IN arc_loop(intruder,evader,arcrad,trkrate,idtrk,0) ENDIF %-- Model of trajectories next_state(s,phi): State = s WITH [ x := x(s) + v(s)*tstep*cos(heading(s)), y := y(s) + v(s)*tstep*sin(heading(s)), heading := heading(s) + tstep*trkrate(phi(s)), phi := phi ] trajectory(s,df,n): RECURSIVE State = IF n = 0 THEN s ELSE next_state(trajectory(s, df, n-1),df(n)) ENDIF MEASURE n trajectory_r(s,df,n,(i:subrange(0,n))): RECURSIVE State = IF i = n THEN s ELSE trajectory_r(next_state(s,df(i+1)),df,n,i+1) ENDIF MEASURE (n-i) intruder_inv : LEMMA FORALL(n,(i:upto(n))) : s = trajectory(intruder,df,n-i) IMPLIES trajectory(intruder,df,n) = trajectory_r(s,df,n,n-i) trajectory_to_trajectory_r : LEMMA trajectory(intruder,df,n) = trajectory_r(intruder,df,n,0) evader_trajectory : lemma heading(evader) = 0 implies trajectory(evader,zero_bank,n) = (# x := x(evader) + v(evader) * tstep * n, y := y(evader), v := v(evader), heading := heading(evader), phi := phi(evader) #) h_c(s,df,n) : recursive real = if n = 0 then 0 else if n = 1 then 0 else trkrate(df(n-1)) + h_c(s,df,n-1) endif endif measure n first_step(s,n) : real = if n = 0 then 0 else trkrate(phi(s)) endif trajectory_heading : lemma heading(trajectory(s,df,n)) = (heading(s) + tstep*first_step(s,n)) + tstep*h_c(s,df,n) intruder_speed : lemma v(trajectory(intruder,df,n)) = intruderSpeed evader_speed : lemma v(trajectory(evader,df,n)) = evaderSpeed speed : lemma v(trajectory(s,df,n)) = v(s) collision_scenario(s1,s2,df,n): bool = collision(trajectory(s1,df,n), trajectory(s2,zero_bank,n)) end ails $$$ails.prf (|ails| (|zero_bank_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|neg_35_bank_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|pos_35_bank_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|iarc_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|mod_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|mod_TCC2| "" (TERMINATION-TCC) NIL NIL) (|trkrate_TCC1| "" (LEMMA "cos_of_Bank") (("" (SKOSIMP*) (("" (INST?) (("" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) (|tau_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|arc_loop_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|arc_loop_TCC2| "" (SUBTYPE-TCC) NIL NIL) (|arc_loop_TCC3| "" (SUBTYPE-TCC) NIL NIL) (|arc_loop_TCC4| "" (TERMINATION-TCC) NIL NIL) (|arc_loop_TCC5| "" (SUBTYPE-TCC) NIL NIL) (|arc_loop_TCC6| "" (TERMINATION-TCC) NIL NIL) (|arc_loop_TCC7| "" (TERMINATION-TCC) NIL NIL) (|arc_loop_TCC8| "" (TERMINATION-TCC) NIL NIL) (|larcalert_TCC1| "" (SKOSIMP*) (("" (LEMMA "cos_of_Bank") (("" (INST?) (("" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) (|larcalert_TCC2| "" (SKOSIMP*) (("" (CASE "phi!1 =0") (("1" (EXPAND "trkrate") (("1" (ASSERT) NIL NIL)) NIL) ("2" (LEMMA "sin_decreases_towards_neg_90_lt") (("2" (EXPAND "tan") (("2" (TYPEPRED "phi!1") (("2" (EXPAND "abs") (("2" (CASE "phi!1 < 0") (("1" (INST -3 "phi!1" "0") (("1" (ASSERT) (("1" (LEMMA "sin_of_0_180") (("1" (SKOSIMP*) (("1" (CASE-REPLACE "g = (32 + 2/10)") (("1" (REPLACE -2 -7) (("1" (DELETE -1 -2 -3 -4 -5 -6 -8 -9 1 2) (("1" (LEMMA "div_eq_zero") (("1" (INST -1 "cos(phi!1)" "sin(phi!1)") (("1" (ASSERT) NIL NIL) ("2" (REWRITE "cos_of_Bank ") NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "g") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (INST -2 "0" "phi!1") (("2" (ASSERT) (("2" (LEMMA "sin_of_0_180") (("2" (SKOSIMP*) (("2" (REPLACE -1 -5) (("2" (CASE-REPLACE "g = (32 + 2/10)") (("1" (DELETE -1 -2 -3 -4 -5 -7 -8 1 2 3) (("1" (LEMMA "div_eq_zero") (("1" (INST -1 "cos(phi!1)" "sin(phi!1)") (("1" (ASSERT) NIL NIL) ("2" (REWRITE "cos_of_Bank ") NIL NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "g") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|larcalert_TCC3| "" (SUBTYPE-TCC) NIL NIL) (|trajectory_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|trajectory_TCC2| "" (TERMINATION-TCC) NIL NIL) (|trajectory_TCC3| "" (SUBTYPE-TCC) NIL NIL) (|trajectory_r_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|trajectory_r_TCC2| "" (SUBTYPE-TCC) NIL NIL) (|trajectory_r_TCC3| "" (TERMINATION-TCC) NIL NIL) (|intruder_inv_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|intruder_inv_TCC2| "" (SUBTYPE-TCC) NIL NIL) (|intruder_inv| "" (SKOLEM 1 ("tr" "intruder" _ "N" _)) (("" (INDUCT "i") (("1" (GRIND) NIL NIL) ("2" (SKOLEM 1 "K") (("2" (GROUND) (("2" (TYPEPRED "K") (("2" (SKOLEM 1 "s") (("2" (GROUND) (("2" (CASE "next_state(s,tr(N-K)) = trajectory(intruder,tr,N-K)") (("1" (HIDE -5) (("1" (INST? -4) (("1" (GROUND) (("1" (HIDE -2) (("1" (REPLACE -1 :HIDE? T) (("1" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (HIDE -3 2) (("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|trajectory_to_trajectory_r_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|trajectory_to_trajectory_r| "" (SKOLEM 1 ("tr" "intruder" "n")) (("" (LEMMA "intruder_inv") (("" (GRIND) NIL NIL)) NIL)) NIL) (|evader_trajectory| "" (INDUCT "n") (("1" (GRIND) (("1" (EXTENSIONALITY "State") (("1" (INST?) (("1" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" +) (("2" (INST?) (("2" (ASSERT) (("2" (REPLACE -1 +) (("2" (DELETE -1) (("2" (EXPAND "next_state") (("2" (TYPEPRED "evader!1") (("2" (GRIND) (("1" (LEMMA "sin_of_0_180") (("1" (GROUND) NIL NIL)) NIL) ("2" (LEMMA "cos_of_0") (("2" (INST -1 "0") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|h_c_TCC1| "" (SUBTYPE-TCC) NIL NIL) (|trajectory_heading| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (INST?) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (EXPAND "h_c" 1) (("2" (CASE "j!1=0") (("1" (REPLACE -1 1) (("1" (GROUND) (("1" (GRIND) NIL NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (EXPAND "first_step") (("2" (CASE "tstep * trkrate(phi(trajectory(s!1, df!1, j!1))) = trkrate(df!1(j!1)) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -1 2 3) (("2" (EXPAND "trajectory") (("2" (EXPAND "next_state") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|intruder_speed| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL) (|evader_speed| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (GRIND) NIL NIL)) NIL) (|speed| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (INST?) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) $$$coordinate_transf.pvs coordinate_transf : THEORY BEGIN importing ails %-- Types tr_rg(n:nat) : type = {p:nat | p <= n} %-- Variables s,s1,s2 : var State intruder : var {s:State | v(s) = intruderSpeed} evader : VAR {s:State | v(s) = evaderSpeed and phi(s) = 0} df : VAR bank_func phi,phi1,phi2 : VAR Bank t,t1,t2,tpred : var real m : var posnat n,n1,n2 : var nat trans(s:State,xo,yo:real) : State = s with [x := x(s) - xo, y := y(s) - yo] trans_before_after_traj_eq : lemma forall (xo,yo:real) : trajectory(trans(s,xo,yo),df,n) = trans(trajectory(s,df,n),xo,yo) distance_eq_over_translation : lemma forall (s1,s2:State,xo,yo:real) : distance(trans(s1,xo,yo),trans(s2,xo,yo)) = distance(s1,s2) collision_scenario_equivalent_over_translation : lemma forall (xo,yo:real): collision_scenario(trans(intruder,xo,yo),trans(evader,xo,yo),df,n) = collision_scenario(intruder,evader,df,n) rot(s:{s:State|x(s) /= 0},r:degrees) : State = let rl = if x(s) > 0 then r else r + 180 endif in s with [ x := sqrt(sq(x(s)) + sq(y(s))) * cos(arctan(y(s)/x(s)) - rl), y := sqrt(sq(x(s)) + sq(y(s))) * sin(arctan(y(s)/x(s)) - rl), heading := heading(s) - r] rot_before_after_traj_eq : lemma forall (r:degrees,n:nat) : (forall (n2:tr_rg(n)): x(trajectory(s,df,n2)) /= 0) implies trajectory(rot(s,r),df,n) = rot(trajectory(s,df,n),r) rot_zero : lemma x(s) /= 0 implies rot(s, 0) = s distance_eq_over_rotation : lemma forall (r:degrees): x(s1) /= 0 and x(s2) /= 0 implies distance(rot(s1,r),rot(s2,r)) = distance(s1,s2) collision_eq_over_rotation : lemma forall (r:degrees): x(s1) /= 0 and x(s2) /= 0 implies collision(rot(s1,r),rot(s2,r)) = collision(s1,s2) collision_scenario_equivalent_over_rotation : lemma forall (r:degrees,n:nat): (forall (n2:tr_rg(n)): x(trajectory(intruder,df,n2)) /= 0) and (forall (n2:tr_rg(n)): x(trajectory(evader,zero_bank,n2)) /= 0) implies collision_scenario(rot(intruder,r),rot(evader,r),df,n) = collision_scenario(intruder,evader,df,n) % trajectory periodic over heading sin_cos_eq_trajectory : lemma forall (i:int) : sin(heading(trajectory(s WITH [heading := heading(s) + 360 * i], df, n))) = sin(heading(trajectory(s, df, n))) and cos(heading(trajectory(s WITH [heading := heading(s) + 360 * i], df, n))) = cos(heading(trajectory(s, df, n))) trajectory_periodic_y : lemma forall (i:int) : y(trajectory(s with [heading := heading(s) + 360 * i],df,n)) = y(trajectory(s,df,n)) trajectory_periodic_x : lemma forall (i:int) : x(trajectory(s with [heading := heading(s) + 360 * i],df,n)) = x(trajectory(s,df,n)) END coordinate_transf $$$coordinate_transf.prf (|coordinate_transf| (|trans_before_after_traj_eq| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" +) (("2" (INST?) (("2" (REPLACE*) (("2" (DELETE -1) (("2" (EXPAND "next_state") (("2" (EXPAND "trans") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|distance_eq_over_translation| "" (SKOSIMP*) (("" (EXPAND "trans") (("" (EXPAND "distance") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL) (|collision_scenario_equivalent_over_translation| "" (SKOSIMP*) (("" (EXPAND "collision_scenario") (("" (EXPAND "collision") (("" (REWRITE "trans_before_after_traj_eq") (("" (REWRITE "trans_before_after_traj_eq") (("" (EXPAND "trans") (("" (EXPAND "distance") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|rot_TCC1| "" (GRIND) NIL NIL) (|rot_before_after_traj_eq_TCC1| "" (SKOSIMP*) (("" (INST -1 "0") (("" (EXPAND "trajectory") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL) (|rot_before_after_traj_eq_TCC2| "" (GRIND) NIL NIL) (|rot_before_after_traj_eq| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (EXPAND "trajectory" +) (("2" (INST?) (("2" (CASE-REPLACE "(FORALL (n2: tr_rg(j!1)): x(trajectory(s!1, df!1, n2)) /= 0)") (("1" (ASSERT) (("1" (REPLACE*) (("1" (DELETE -1) (("1" (DELETE -1) (("1" (AUTO-REWRITE "next_state" "rot") (("1" (ASSERT) (("1" (NAME-REPLACE "tr!1" "trajectory(s!1, df!1, j!1)") (("1" (NAME-REPLACE "XIT" "x(tr!1)") (("1" (NAME-REPLACE "YIT" "y(tr!1)") (("1" (NAME-REPLACE "HIT" "heading(tr!1)") (("1" (ASSERT) (("1" (NAME "K" "v(tr!1) * tstep") (("1" (CASE "forall (x:real): x * v(tr!1) * tstep = x * K") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (AUTO-REWRITE "cos_of_sub" "sin_of_sub" "cos_of_arctan" "sin_of_arctan") (("1" (ASSERT) (("1" (NAME-REPLACE "aux!1" "cos(HIT) * K + XIT" :HIDE? NIL) (("1" (NAME-REPLACE "aux!2" "sin(HIT) * K + YIT" :HIDE? NIL) (("1" (CASE-REPLACE "XIT < 0") (("1" (CASE "aux!1 < 0") (("1" (ASSERT) (("1" (AUTO-REWRITE "cos_of_sum" "sin_of_sum") (("1" (ASSERT) (("1" (LEMMA "cos_of_180") (("1" (INST -1 "0") (("1" (ASSERT) (("1" (LEMMA "sin_of_0_180") (("1" (FLATTEN -1) (("1" (REPLACE -2) (("1" (REPLACE -4) (("1" (GROUND) (("1" (CASE "FORALL (x:posreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = z*x") (("1" (CASE "FORALL (x:negreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = -z*x") (("1" (CASE "FORALL (x: nzreal),(y, z: real): z * sqrt(sq(x) + sq(y)) * (y / x / sqrt(1 + sq(y / x))) = (z * (y / x)) * sqrt(sq(x) + sq(y)) * (1 / sqrt(1 + sq(y / x)))") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): z * (y /x) * x = z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): (y /x) * z * x = z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) NIL NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE -) (("2" (DELETE 2) (("2" (SKOSIMP*) (("2" (AUTO-REWRITE "square_divide" "sqrt_divide" "sqrt_of_sq" "abs") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE -) (("2" (DELETE 2) (("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_4") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (DELETE 2) (("2" (DELETE -) (("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_3") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (INST -5 "j!1 + 1") (("2" (EXPAND "trajectory") (("2" (EXPAND "next_state") (("2" (REVEAL -2 -4 -5) (("2" (REPLACE -3) (("2" (CASE "v(tr!1) * cos(heading(tr!1)) * tstep = cos(heading(tr!1)) * K") (("1" (REPLACE -1) (("1" (REPLACE*) (("1" (ASSERT) (("1" (AUTO-REWRITE "cos_of_sum" "sin_of_sum") (("1" (ASSERT) (("1" (LEMMA "cos_of_180") (("1" (INST -1 "0") (("1" (ASSERT) (("1" (LEMMA "sin_of_0_180") (("1" (FLATTEN -1) (("1" (REPLACE -2) (("1" (REPLACE -4) (("1" (GROUND) (("1" (CASE "FORALL (x:posreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = z*x") (("1" (CASE "FORALL (x:negreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = -z*x") (("1" (CASE "FORALL (x: nzreal),(y, z: real): z * sqrt(sq(x) + sq(y)) * (y / x / sqrt(1 + sq(y / x))) = (z * (y / x)) * sqrt(sq(x) + sq(y)) * (1 / sqrt(1 + sq(y / x)))") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): (y /x) * z * x = z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): z * (y /x) * x = z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) NIL NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL) ("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_4") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_3") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (INST -4 "j!1") (("2" (REVEAL -4 -5) (("2" (REPLACE*) (("2" (REPLACE*) (("2" (ASSERT) (("2" (CASE "aux!1 < 0") (("1" (ASSERT) (("1" (AUTO-REWRITE "cos_of_sum" "sin_of_sum") (("1" (ASSERT) (("1" (LEMMA "sin_of_0_180") (("1" (FLATTEN -1) (("1" (LEMMA "cos_of_180") (("1" (INST -1 "0") (("1" (ASSERT) (("1" (REPLACE*) (("1" (GROUND) (("1" (CASE "FORALL (x:posreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = z*x") (("1" (CASE "FORALL (x:negreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = -z*x") (("1" (CASE "FORALL (x: nzreal),(y, z: real): z * sqrt(sq(x) + sq(y)) * (y / x / sqrt(1 + sq(y / x))) = (z * (y / x)) * sqrt(sq(x) + sq(y)) * (1 / sqrt(1 + sq(y / x)))") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): (y /x) * z * x = z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) NIL NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL) ("2" (DELETE -) (("2" (DELETE 2 3 4) (("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_4") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_3") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (REVEAL -1) (("2" (INST -1 "j!1 + 1") (("2" (EXPAND "trajectory" -1) (("2" (EXPAND "next_state") (("2" (REPLACE*) (("2" (REVEAL -2) (("2" (REPLACE -1) (("2" (CASE "FORALL (x: real): v(tr!1) * x * tstep = x * K") (("1" (ASSERT) (("1" (CASE "FORALL (x:posreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = z*x") (("1" (CASE "FORALL (x: nzreal),(y, z: real): z * sqrt(sq(x) + sq(y)) * (y / x / sqrt(1 + sq(y / x))) = (z * (y / x)) * sqrt(sq(x) + sq(y)) * (1 / sqrt(1 + sq(y / x)))") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): (y /x) * z * x = z * y") (("1" (CASE "FORALL (x: nzreal), (y, z: real): z * (y /x) * x = z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) NIL NIL)) NIL) ("2" (SKOSIMP*) (("2" (ASSERT) NIL NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL) ("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_3") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (HIDE 2) (("2" (SKOSIMP*) (("2" (INST -3 "n2!1") (("2" (ASSERT) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("3" (DELETE 2) (("3" (SKOSIMP*) (("3" (INST -1 "n!2") (("3" (ASSERT) NIL NIL)) NIL)) NIL)) NIL) ("4" (DELETE 2) (("4" (SKOSIMP*) (("4" (INST -1 "0") (("4" (EXPAND "trajectory") (("4" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|rot_zero| "" (GRIND) (("1" (REWRITE "cos_of_arctan") (("1" (REWRITE "sin_of_arctan") (("1" (LEMMA "one_over_sqrt_1") (("1" (INST?) (("1" (EXPAND "sq") (("1" (CASE "(y(s!1) / x(s!1) / (sqrt(1 + y(s!1) / x(s!1) * (y(s!1) / x(s!1))))) = (y(s!1) / x(s!1))* (1/ (sqrt(1 + y(s!1) / x(s!1) * (y(s!1) / x(s!1)))))") (("1" (REPLACE -1 2) (("1" (REPLACE -2 2) (("1" (HIDE -1 -2) (("1" (GRIND) NIL NIL)) NIL)) NIL)) NIL) ("2" (HIDE -1 -2 2 3) (("2" (GRIND) NIL NIL)) NIL) ("3" (LEMMA "sqrt_0_x_0") (("3" (INST?) (("1" (LEMMA "sq_x_ge_0") (("1" (INST?) (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (LEMMA "sq_x_ge_0") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("4" (LEMMA "sq_x_ge_0") (("4" (INST?) (("4" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (REWRITE "cos_of_sub") (("2" (REWRITE "sin_of_sub") (("2" (LEMMA "cos_of_180") (("2" (INST -1 "0") (("2" (GROUND) (("2" (REPLACE -1) (("2" (LEMMA "sin_of_0_180") (("2" (SKOSIMP*) (("2" (REPLACE -2) (("2" (GROUND) (("2" (REWRITE "cos_of_arctan") (("2" (REWRITE "sin_of_arctan") (("2" (CASE "(y(s!1) / x(s!1) / (sqrt(1 + y(s!1) / x(s!1) * (y(s!1) / x(s!1))))) = (y(s!1) / x(s!1))* (1/ (sqrt(1 + y(s!1) / x(s!1) * (y(s!1) / x(s!1)))))") (("1" (REPLACE -1 3) (("1" (LEMMA "one_over_sqrt_2") (("1" (INST?) (("1" (ASSERT) (("1" (REPLACE -1 3) (("1" (HIDE -1 -2 -3 -4 -5 -6) (("1" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GRIND) NIL NIL) ("3" (LEMMA "sqrt_0_x_0") (("3" (INST?) (("1" (LEMMA "sq_x_ge_0") (("1" (INST?) (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (LEMMA "sq_x_ge_0") (("2" (INST?) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("4" (LEMMA "sq_x_ge_0") (("4" (INST?) (("4" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|distance_eq_over_rotation| "" (SKOSIMP*) (("" (EXPAND "distance") (("" (EXPAND "rot") (("" (CASE "x(s1!1) > 0") (("1" (CASE "x(s2!1) > 0") (("1" (ASSERT) (("1" (AUTO-REWRITE "sin_of_sub" "cos_of_sub") (("1" (ASSERT) (("1" (AUTO-REWRITE "cos_of_arctan" "sin_of_arctan") (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal),(y, z: real): z * sqrt(sq(x) + sq(y)) * (y / x / sqrt(1 + sq(y / x))) = (z * (y / x)) * sqrt(sq(x) + sq(y)) * (1 / sqrt(1 + sq(y / x)))") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x:posreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = z*x") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): z * x * (y /x) = z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): x * z * (y /x) = z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (EXPAND "sq") (("1" (GROUND) (("1" (CASE "forall (x:real): x * x = sq(x)") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (ASSERT) (("1" (CASE "sq(x(s1!1)) * sq(cos(r!1)) + sq(y(s1!1)) * sq(cos(r!1)) + sq(x(s2!1)) * sq(cos(r!1)) + sq(y(s2!1)) * sq(cos(r!1)) + sq(sin(r!1)) * sq(x(s1!1)) + sq(sin(r!1)) * sq(y(s1!1)) + sq(sin(r!1)) * sq(x(s2!1)) + sq(sin(r!1)) * sq(y(s2!1)) - 2 * (x(s1!1) * x(s2!1) * sq(cos(r!1))) - 2 * (y(s1!1) * y(s2!1) * sq(cos(r!1))) - 2 * (x(s1!1) * x(s2!1) * sin(r!1) * sin(r!1)) - 2 * (y(s1!1) * y(s2!1) * sin(r!1) * sin(r!1)) = sq(x(s1!1)) * (sq(sin(r!1)) + sq(cos(r!1))) + sq(x(s2!1)) * (sq(sin(r!1)) + sq(cos(r!1))) + sq(y(s1!1)) * (sq(sin(r!1)) + sq(cos(r!1))) + sq(y(s2!1)) * (sq(sin(r!1)) + sq(cos(r!1))) - 2 * (x(s1!1) * x(s2!1)) * (sq(sin(r!1)) + sq(cos(r!1))) - 2 * (y(s1!1) * y(s2!1)) * (sq(sin(r!1)) + sq(cos(r!1)))") (("1" (REPLACE -1 +) (("1" (REWRITE "sin_cos_sq_one") (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (HIDE 4) (("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (EXPAND "sq") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_3") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "sin_of_sub") (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "cos_of_sub") (("2" (REWRITE "sin_of_sub") (("2" (LEMMA "cos_of_180") (("2" (INST -1 "0") (("2" (REPLACE -1 +) (("2" (LEMMA "sin_of_0_180") (("2" (FLATTEN -1) (("2" (REPLACE -2 +) (("2" (GROUND) (("2" (AUTO-REWRITE "cos_of_arctan") (("2" (ASSERT) (("2" (AUTO-REWRITE "sin_of_arctan") (("2" (ASSERT) (("2" (CASE "FORALL (x:posreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = z*x") (("1" (CASE "FORALL (x: nzreal),(y, z: real): z * sqrt(sq(x) + sq(y)) * (y / x / sqrt(1 + sq(y / x))) = (z * (y / x)) * sqrt(sq(x) + sq(y)) * (1 / sqrt(1 + sq(y / x)))") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x:negreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = -z*x") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): x * z * (y /x) = z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): x * (y /x) * -z = -z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): z * x * (y /x) = z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (EXPAND "sq") (("1" (GROUND) (("1" (CASE "cos(r!1) * y(s1!1) * x(s2!1) * -sin(r!1) = -cos(r!1) * y(s1!1) * x(s2!1) * sin(r!1)") (("1" (REPLACE -1 +) (("1" (CASE "cos(r!1) * x(s1!1) * y(s2!1) * -sin(r!1) = -cos(r!1) * x(s1!1) * y(s2!1) * sin(r!1)") (("1" (REPLACE -1 +) (("1" (GROUND) (("1" (DELETE -) (("1" (CASE-REPLACE "cos(r!1) * cos(r!1) * x(s1!1) * x(s1!1) + cos(r!1) * cos(r!1) * y(s1!1) * y(s1!1) + 2 * (cos(r!1) * x(s1!1) * x(s2!1) * -cos(r!1)) + 2 * (cos(r!1) * y(s1!1) * y(s2!1) * -cos(r!1)) + x(s1!1) * x(s1!1) * sin(r!1) * sin(r!1) + 2 * (x(s1!1) * x(s2!1) * sin(r!1) * -sin(r!1)) + y(s1!1) * y(s1!1) * sin(r!1) * sin(r!1) + 2 * (y(s1!1) * y(s2!1) * sin(r!1) * -sin(r!1)) + x(s2!1) * x(s2!1) * -cos(r!1) * -cos(r!1) + x(s2!1) * x(s2!1) * -sin(r!1) * -sin(r!1) + y(s2!1) * y(s2!1) * -cos(r!1) * -cos(r!1) + y(s2!1) * y(s2!1) * -sin(r!1) * -sin(r!1) = (sq(sin(r!1)) + sq(cos(r!1))) * x(s1!1) * x(s1!1) + (sq(sin(r!1)) + sq(cos(r!1))) * y(s1!1) * y(s1!1) - 2 * (sq(sin(r!1)) + sq(cos(r!1))) * x(s1!1) * x(s2!1) - 2 * (sq(sin(r!1)) + sq(cos(r!1))) * y(s1!1) * y(s2!1) + (sq(sin(r!1)) + sq(cos(r!1))) * x(s2!1) * x(s2!1) + (sq(sin(r!1)) + sq(cos(r!1))) * y(s2!1) * y(s2!1)") (("1" (REWRITE "sin_cos_sq_one") (("1" (DELETE -1) (("1" (GROUND) NIL NIL)) NIL)) NIL) ("2" (EXPAND "sq") (("2" (HIDE 2 3 4 5) (("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_4") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_3") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (CASE "x(s2!1) > 0") (("1" (ASSERT) (("1" (AUTO-REWRITE "cos_of_sub" "sin_of_sub") (("1" (ASSERT) (("1" (LEMMA "cos_of_180") (("1" (LEMMA "sin_of_0_180") (("1" (INST -2 "0") (("1" (FLATTEN -1) (("1" (REPLACE*) (("1" (AUTO-REWRITE "cos_of_arctan" "sin_of_arctan") (("1" (ASSERT) (("1" (CASE "FORALL (x:negreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = -z*x") (("1" (CASE "FORALL (x: nzreal),(y, z: real): z * sqrt(sq(x) + sq(y)) * (y / x / sqrt(1 + sq(y / x))) = (z * (y / x)) * sqrt(sq(x) + sq(y)) * (1 / sqrt(1 + sq(y / x)))") (("1" (CASE "FORALL (x:posreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = z*x") (("1" (AUTO-REWRITE -2) (("1" (ASSERT) (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x: nzreal), (y, z: real): z * x * (y /x) = z * y") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x:nzreal), (y,z:real): x * (y/x) * -z = y * -z") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE-REPLACE "x(s2!1) * sin(r!1) * (y(s2!1) / x(s2!1)) = sin(r!1) * y(s2!1)") (("1" (DELETE -) (("1" (EXPAND "sq") (("1" (GROUND) (("1" (GROUND) (("1" (CASE-REPLACE "cos(r!1) * x(s1!1) * y(s2!1) * -sin(r!1) = -cos(r!1) * x(s1!1) * y(s2!1) * sin(r!1)") (("1" (CASE-REPLACE "cos(r!1) * y(s1!1) * x(s2!1) * -sin(r!1) = -cos(r!1) * y(s1!1) * x(s2!1) * sin(r!1)") (("1" (GROUND) (("1" (CASE-REPLACE "cos(r!1) * cos(r!1) * x(s2!1) * x(s2!1) + cos(r!1) * cos(r!1) * y(s2!1) * y(s2!1) + 2 * (cos(r!1) * x(s1!1) * x(s2!1) * -cos(r!1)) + 2 * (cos(r!1) * y(s1!1) * y(s2!1) * -cos(r!1)) + x(s1!1) * x(s1!1) * -cos(r!1) * -cos(r!1) + x(s1!1) * x(s1!1) * -sin(r!1) * -sin(r!1) + 2 * (x(s1!1) * x(s2!1) * sin(r!1) * -sin(r!1)) + y(s1!1) * y(s1!1) * -cos(r!1) * -cos(r!1) + y(s1!1) * y(s1!1) * -sin(r!1) * -sin(r!1) + 2 * (y(s1!1) * y(s2!1) * sin(r!1) * -sin(r!1)) + x(s2!1) * x(s2!1) * sin(r!1) * sin(r!1) + y(s2!1) * y(s2!1) * sin(r!1) * sin(r!1) = (sq(sin(r!1)) + sq(cos(r!1))) * x(s2!1) * x(s2!1) + (sq(sin(r!1)) + sq(cos(r!1))) * y(s2!1) * y(s2!1) - 2 * (sq(sin(r!1)) + sq(cos(r!1))) * x(s1!1) * x(s2!1) - 2 * (sq(sin(r!1)) + sq(cos(r!1))) * y(s1!1) * y(s2!1) + (sq(sin(r!1)) + sq(cos(r!1))) * x(s1!1) * x(s1!1) + (sq(sin(r!1)) + sq(cos(r!1))) * y(s1!1) * y(s1!1)") (("1" (REWRITE "sin_cos_sq_one") (("1" (GROUND) NIL NIL)) NIL) ("2" (HIDE -1 -2 5) (("2" (GRIND) (("2" (CASE "forall (x,y,z:real): y* z *-x * -x = y * z * x * x") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) NIL NIL)) NIL) ("2" (SKOSIMP*) (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (HIDE 5) (("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_3") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_4") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (ASSERT) (("2" (AUTO-REWRITE "cos_of_sub" "sin_of_sub") (("2" (ASSERT) (("2" (AUTO-REWRITE "cos_of_arctan" "sin_of_arctan") (("2" (LEMMA "sin_of_0_180") (("2" (LEMMA "cos_of_180") (("2" (INST -1 "0") (("2" (FLATTEN -2) (("2" (REPLACE*) (("2" (ASSERT) (("2" (CASE "FORALL (x: nzreal),(y, z: real): z * sqrt(sq(x) + sq(y)) * (y / x / sqrt(1 + sq(y / x))) = (z * (y / x)) * sqrt(sq(x) + sq(y)) * (1 / sqrt(1 + sq(y / x)))") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x:negreal), (y, z: real): z * sqrt(sq(x)+sq(y)) * (1 / sqrt(1 + sq(y/x))) = -z*x") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE "FORALL (x:nzreal), (y,z:real): x * (y/x) * -z = y * -z") (("1" (AUTO-REWRITE -1) (("1" (ASSERT) (("1" (CASE-REPLACE "y(s2!1) * -cos(r!1) - y(s1!1) * -cos(r!1) - -sin(r!1) * x(s2!1) + -sin(r!1) * x(s1!1) = -y(s2!1) * cos(r!1) + y(s1!1) * cos(r!1) + sin(r!1) * x(s2!1) - sin(r!1) * x(s1!1)") (("1" (CASE-REPLACE "y(s2!1) * -sin(r!1) - y(s1!1) * -sin(r!1) - -cos(r!1) * x(s1!1) + -cos(r!1) * x(s2!1) = -y(s2!1) * sin(r!1) + y(s1!1) * sin(r!1) + cos(r!1) * x(s1!1) - cos(r!1) * x(s2!1)") (("1" (EXPAND "sq") (("1" (GROUND) (("1" (DELETE -) (("1" (CASE-REPLACE "-2 * (cos(r!1) * cos(r!1) * x(s1!1) * x(s2!1)) - 2 * (x(s1!1) * x(s2!1) * sin(r!1) * sin(r!1)) + cos(r!1) * cos(r!1) * x(s1!1) * x(s1!1) + cos(r!1) * cos(r!1) * y(s1!1) * y(s1!1) + 2 * (cos(r!1) * cos(r!1) * y(s1!1) * -y(s2!1)) + cos(r!1) * cos(r!1) * x(s2!1) * x(s2!1) + cos(r!1) * cos(r!1) * -y(s2!1) * -y(s2!1) + x(s1!1) * x(s1!1) * sin(r!1) * sin(r!1) + y(s1!1) * y(s1!1) * sin(r!1) * sin(r!1) + 2 * (y(s1!1) * sin(r!1) * sin(r!1) * -y(s2!1)) + x(s2!1) * x(s2!1) * sin(r!1) * sin(r!1) + sin(r!1) * sin(r!1) * -y(s2!1) * -y(s2!1) = (sq(sin(r!1)) + sq(cos(r!1))) * x(s2!1) * x(s2!1) + (sq(sin(r!1)) + sq(cos(r!1))) * y(s2!1) * y(s2!1) - 2 * (sq(sin(r!1)) + sq(cos(r!1))) * x(s1!1) * x(s2!1) - 2 * (sq(sin(r!1)) + sq(cos(r!1))) * y(s1!1) * y(s2!1) + (sq(sin(r!1)) + sq(cos(r!1))) * x(s1!1) * x(s1!1) + (sq(sin(r!1)) + sq(cos(r!1))) * y(s1!1) * y(s1!1)") (("1" (REWRITE "sin_cos_sq_one") (("1" (GROUND) NIL NIL)) NIL) ("2" (HIDE 2 3 4 5 6) (("2" (GRIND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL) ("2" (SKOSIMP*) (("2" (REWRITE "one_over_sqrt_4") (("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (GROUND) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|collision_eq_over_rotation| "" (SKOSIMP*) (("" (EXPAND "collision") (("" (REWRITE "distance_eq_over_rotation") NIL NIL)) NIL)) NIL) (|collision_scenario_equivalent_over_rotation_TCC1| "" (SKOSIMP*) (("" (INST -1 "0") (("" (EXPAND "trajectory") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL) (|collision_scenario_equivalent_over_rotation_TCC2| "" (SKOSIMP*) (("" (INST -2 "0") (("" (EXPAND "trajectory") (("" (PROPAX) NIL NIL)) NIL)) NIL)) NIL) (|collision_scenario_equivalent_over_rotation| "" (SKOSIMP*) (("" (EXPAND "collision_scenario") (("" (REWRITE "rot_before_after_traj_eq") (("" (REWRITE "rot_before_after_traj_eq") (("" (REWRITE "collision_eq_over_rotation") (("1" (INST -1 "n!1") NIL NIL) ("2" (INST -2 "n!1") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|sin_cos_eq_trajectory| "" (INDUCT "n") (("1" (GRIND) (("1" (REWRITE "cos_equivalence") NIL NIL) ("2" (REWRITE "sin_equivalence") NIL NIL)) NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (INST -1 "df!1") (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (SPLIT 1) (("1" (FLATTEN -1) (("1" (REWRITE "sin_of_sum") (("1" (REWRITE "sin_of_sum") (("1" (REPLACE*) (("1" (NAME-REPLACE A "heading(trajectory(s!1, df!1, j!1))") (("1" (EXPAND "trajectory" 1) (("1" (EXPAND "next_state") (("1" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) ("2" (REWRITE "cos_of_sum") (("2" (REWRITE "cos_of_sum") (("2" (FLATTEN -1) (("2" (REPLACE*) (("2" (NAME-REPLACE A "heading(trajectory(s!1, df!1, j!1))") (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (PROPAX) NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|trajectory_periodic_y| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (INST?) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "v (trajectory(s!1 WITH [heading := heading(s!1) + 360 * i!1], df!1, j!1)) * sin(heading (trajectory(s!1 WITH [heading := heading(s!1) + 360 * i!1], df!1, j!1))) * tstep = v(trajectory(s!1, df!1, j!1)) * sin(heading(trajectory(s!1, df!1, j!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -1 2) (("2" (LEMMA "sin_cos_eq_trajectory") (("2" (INST?) (("2" (FLATTEN -1) (("2" (REPLACE -1) (("2" (NAME-REPLACE A "heading(trajectory(s!1, df!1, j!1))") (("2" (DELETE -1 -2) (("2" (REWRITE "speed") (("2" (REWRITE "speed") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL) (|trajectory_periodic_x| "" (INDUCT "n") (("1" (GRIND) NIL NIL) ("2" (SKOSIMP*) (("2" (INST?) (("2" (INST?) (("2" (EXPAND "trajectory" 1) (("2" (EXPAND "next_state") (("2" (CASE "v (trajectory(s!1 WITH [heading := heading(s!1) + 360 * i!1], df!1, j!1)) * cos(heading (trajectory(s!1 WITH [heading := heading(s!1) + 360 * i!1], df!1, j!1))) * tstep = v(trajectory(s!1, df!1, j!1)) * cos(heading(trajectory(s!1, df!1, j!1))) * tstep") (("1" (GROUND) NIL NIL) ("2" (DELETE -1 2) (("2" (LEMMA "sin_cos_eq_trajectory") (("2" (INST?) (("2" (FLATTEN -1) (("2" (REPLACE*) (("2" (NAME-REPLACE A "heading(trajectory(s!1, df!1, j!1))") (("2" (REWRITE "speed") (("2" (REWRITE "speed") NIL NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL)) NIL))