Exact expanded first-order arithmetic statement
forall k n c t B C D E j. (((forall jt_i_appendinvariant. (exists jt_gap_appendinvariantsoundindex. jt_gap_appendinvariantsoundindex+S (jt_i_appendinvariant)=(j)) -> exists jt_b_appendinvariant jt_e_appendinvariant. ((((((exists fs_h_jt_appendinvariantsoundcode. fs_h_jt_appendinvariantsoundcode + S (jt_b_appendinvariant) = S ((S (jt_i_appendinvariant)) * C)) /\ exists fs_q_jt_appendinvariantsoundcode. B = fs_q_jt_appendinvariantsoundcode * S ((S (jt_i_appendinvariant)) * C) + (jt_b_appendinvariant))) /\ (((exists fs_h_jt_appendinvariantsoundscale. fs_h_jt_appendinvariantsoundscale + S (jt_e_appendinvariant) = S ((S (jt_i_appendinvariant)) * E)) /\ exists fs_q_jt_appendinvariantsoundscale. D = fs_q_jt_appendinvariantsoundscale * S ((S (jt_i_appendinvariant)) * E) + (jt_e_appendinvariant))))) /\ (((forall jt_index_appendinvariantbound. (exists jt_gap_appendinvariantboundindex. jt_gap_appendinvariantboundindex+S (jt_index_appendinvariantbound)=(k)) -> exists jt_value_appendinvariantbound. ((((exists fs_h_jt_appendinvariantboundat. fs_h_jt_appendinvariantboundat + S (jt_value_appendinvariantbound) = S ((S (jt_index_appendinvariantbound)) * jt_e_appendinvariant)) /\ exists fs_q_jt_appendinvariantboundat. jt_b_appendinvariant = fs_q_jt_appendinvariantboundat * S ((S (jt_index_appendinvariantbound)) * jt_e_appendinvariant) + (jt_value_appendinvariantbound))) /\ (exists jt_gap_appendinvariantboundvalue. jt_gap_appendinvariantboundvalue+S (jt_value_appendinvariantbound)=(n)))) /\ (forall jt_divisor_appendinvariantprimitive. (exists jt_factor_appendinvariantprimitivemodulus. (n)=(jt_divisor_appendinvariantprimitive)*jt_factor_appendinvariantprimitivemodulus) -> (forall jt_index_appendinvariantprimitivecoordinates jt_value_appendinvariantprimitivecoordinates. (exists jt_gap_appendinvariantprimitivecoordinatesindex. jt_gap_appendinvariantprimitivecoordinatesindex+S (jt_index_appendinvariantprimitivecoordinates)=(k)) -> (((exists fs_h_jt_appendinvariantprimitivecoordinatesat. fs_h_jt_appendinvariantprimitivecoordinatesat + S (jt_value_appendinvariantprimitivecoordinates) = S ((S (jt_index_appendinvariantprimitivecoordinates)) * jt_e_appendinvariant)) /\ exists fs_q_jt_appendinvariantprimitivecoordinatesat. jt_b_appendinvariant = fs_q_jt_appendinvariantprimitivecoordinatesat * S ((S (jt_index_appendinvariantprimitivecoordinates)) * jt_e_appendinvariant) + (jt_value_appendinvariantprimitivecoordinates))) -> (exists jt_factor_appendinvariantprimitivecoordinatesdivides. (jt_value_appendinvariantprimitivecoordinates)=(jt_divisor_appendinvariantprimitive)*jt_factor_appendinvariantprimitivecoordinatesdivides)) -> jt_divisor_appendinvariantprimitive=1))))) /\ (((forall jt_i_appendinvariant jt_h_appendinvariant jt_b_appendinvariant jt_e_appendinvariant jt_d_appendinvariant jt_f_appendinvariant. (exists jt_gap_appendinvariantfirstindex. jt_gap_appendinvariantfirstindex+S (jt_i_appendinvariant)=(j)) -> (exists jt_gap_appendinvariantsecondindex. jt_gap_appendinvariantsecondindex+S (jt_h_appendinvariant)=(j)) -> (((((exists fs_h_jt_appendinvariantfirstcode. fs_h_jt_appendinvariantfirstcode + S (jt_b_appendinvariant) = S ((S (jt_i_appendinvariant)) * C)) /\ exists fs_q_jt_appendinvariantfirstcode. B = fs_q_jt_appendinvariantfirstcode * S ((S (jt_i_appendinvariant)) * C) + (jt_b_appendinvariant))) /\ (((exists fs_h_jt_appendinvariantfirstscale. fs_h_jt_appendinvariantfirstscale + S (jt_e_appendinvariant) = S ((S (jt_i_appendinvariant)) * E)) /\ exists fs_q_jt_appendinvariantfirstscale. D = fs_q_jt_appendinvariantfirstscale * S ((S (jt_i_appendinvariant)) * E) + (jt_e_appendinvariant))))) -> (((((exists fs_h_jt_appendinvariantsecondcode. fs_h_jt_appendinvariantsecondcode + S (jt_d_appendinvariant) = S ((S (jt_h_appendinvariant)) * C)) /\ exists fs_q_jt_appendinvariantsecondcode. B = fs_q_jt_appendinvariantsecondcode * S ((S (jt_h_appendinvariant)) * C) + (jt_d_appendinvariant))) /\ (((exists fs_h_jt_appendinvariantsecondscale. fs_h_jt_appendinvariantsecondscale + S (jt_f_appendinvariant) = S ((S (jt_h_appendinvariant)) * E)) /\ exists fs_q_jt_appendinvariantsecondscale. D = fs_q_jt_appendinvariantsecondscale * S ((S (jt_h_appendinvariant)) * E) + (jt_f_appendinvariant))))) -> (forall jt_index_appendinvariantsame jt_left_appendinvariantsame jt_right_appendinvariantsame. (exists jt_gap_appendinvariantsameindex. jt_gap_appendinvariantsameindex+S (jt_index_appendinvariantsame)=(k)) -> (((exists fs_h_jt_appendinvariantsameleft. fs_h_jt_appendinvariantsameleft + S (jt_left_appendinvariantsame) = S ((S (jt_index_appendinvariantsame)) * jt_e_appendinvariant)) /\ exists fs_q_jt_appendinvariantsameleft. jt_b_appendinvariant = fs_q_jt_appendinvariantsameleft * S ((S (jt_index_appendinvariantsame)) * jt_e_appendinvariant) + (jt_left_appendinvariantsame))) -> (((exists fs_h_jt_appendinvariantsameright. fs_h_jt_appendinvariantsameright + S (jt_right_appendinvariantsame) = S ((S (jt_index_appendinvariantsame)) * jt_f_appendinvariant)) /\ exists fs_q_jt_appendinvariantsameright. jt_d_appendinvariant = fs_q_jt_appendinvariantsameright * S ((S (jt_index_appendinvariantsame)) * jt_f_appendinvariant) + (jt_right_appendinvariantsame))) -> jt_left_appendinvariantsame=jt_right_appendinvariantsame) -> jt_i_appendinvariant=jt_h_appendinvariant) /\ (forall jt_z_appendinvariant. (exists jt_gap_appendinvariantcodeindex. jt_gap_appendinvariantcodeindex+S (jt_z_appendinvariant)=(t)) -> (forall jt_index_appendinvariantinputbound. (exists jt_gap_appendinvariantinputboundindex. jt_gap_appendinvariantinputboundindex+S (jt_index_appendinvariantinputbound)=(k)) -> exists jt_value_appendinvariantinputbound. ((((exists fs_h_jt_appendinvariantinputboundat. fs_h_jt_appendinvariantinputboundat + S (jt_value_appendinvariantinputbound) = S ((S (jt_index_appendinvariantinputbound)) * c)) /\ exists fs_q_jt_appendinvariantinputboundat. jt_z_appendinvariant = fs_q_jt_appendinvariantinputboundat * S ((S (jt_index_appendinvariantinputbound)) * c) + (jt_value_appendinvariantinputbound))) /\ (exists jt_gap_appendinvariantinputboundvalue. jt_gap_appendinvariantinputboundvalue+S (jt_value_appendinvariantinputbound)=(n)))) -> (forall jt_divisor_appendinvariantinputprimitive. (exists jt_factor_appendinvariantinputprimitivemodulus. (n)=(jt_divisor_appendinvariantinputprimitive)*jt_factor_appendinvariantinputprimitivemodulus) -> (forall jt_index_appendinvariantinputprimitivecoordinates jt_value_appendinvariantinputprimitivecoordinates. (exists jt_gap_appendinvariantinputprimitivecoordinatesindex. jt_gap_appendinvariantinputprimitivecoordinatesindex+S (jt_index_appendinvariantinputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_appendinvariantinputprimitivecoordinatesat. fs_h_jt_appendinvariantinputprimitivecoordinatesat + S (jt_value_appendinvariantinputprimitivecoordinates) = S ((S (jt_index_appendinvariantinputprimitivecoordinates)) * c)) /\ exists fs_q_jt_appendinvariantinputprimitivecoordinatesat. jt_z_appendinvariant = fs_q_jt_appendinvariantinputprimitivecoordinatesat * S ((S (jt_index_appendinvariantinputprimitivecoordinates)) * c) + (jt_value_appendinvariantinputprimitivecoordinates))) -> (exists jt_factor_appendinvariantinputprimitivecoordinatesdivides. (jt_value_appendinvariantinputprimitivecoordinates)=(jt_divisor_appendinvariantinputprimitive)*jt_factor_appendinvariantinputprimitivecoordinatesdivides)) -> jt_divisor_appendinvariantinputprimitive=1) -> (exists jt_index_appendinvariantlisted jt_code_appendinvariantlisted jt_scale_appendinvariantlisted. ((exists jt_gap_appendinvariantlistedindex. jt_gap_appendinvariantlistedindex+S (jt_index_appendinvariantlisted)=(j)) /\ (((((((exists fs_h_jt_appendinvariantlistedcode. fs_h_jt_appendinvariantlistedcode + S (jt_code_appendinvariantlisted) = S ((S (jt_index_appendinvariantlisted)) * C)) /\ exists fs_q_jt_appendinvariantlistedcode. B = fs_q_jt_appendinvariantlistedcode * S ((S (jt_index_appendinvariantlisted)) * C) + (jt_code_appendinvariantlisted))) /\ (((exists fs_h_jt_appendinvariantlistedscale. fs_h_jt_appendinvariantlistedscale + S (jt_scale_appendinvariantlisted) = S ((S (jt_index_appendinvariantlisted)) * E)) /\ exists fs_q_jt_appendinvariantlistedscale. D = fs_q_jt_appendinvariantlistedscale * S ((S (jt_index_appendinvariantlisted)) * E) + (jt_scale_appendinvariantlisted))))) /\ (forall jt_index_appendinvariantlistedequal jt_left_appendinvariantlistedequal jt_right_appendinvariantlistedequal. (exists jt_gap_appendinvariantlistedequalindex. jt_gap_appendinvariantlistedequalindex+S (jt_index_appendinvariantlistedequal)=(k)) -> (((exists fs_h_jt_appendinvariantlistedequalleft. fs_h_jt_appendinvariantlistedequalleft + S (jt_left_appendinvariantlistedequal) = S ((S (jt_index_appendinvariantlistedequal)) * c)) /\ exists fs_q_jt_appendinvariantlistedequalleft. jt_z_appendinvariant = fs_q_jt_appendinvariantlistedequalleft * S ((S (jt_index_appendinvariantlistedequal)) * c) + (jt_left_appendinvariantlistedequal))) -> (((exists fs_h_jt_appendinvariantlistedequalright. fs_h_jt_appendinvariantlistedequalright + S (jt_right_appendinvariantlistedequal) = S ((S (jt_index_appendinvariantlistedequal)) * jt_scale_appendinvariantlisted)) /\ exists fs_q_jt_appendinvariantlistedequalright. jt_code_appendinvariantlisted = fs_q_jt_appendinvariantlistedequalright * S ((S (jt_index_appendinvariantlistedequal)) * jt_scale_appendinvariantlisted) + (jt_right_appendinvariantlistedequal))) -> jt_left_appendinvariantlistedequal=jt_right_appendinvariantlistedequal)))))))))) -> (forall jt_index_appendbound. (exists jt_gap_appendboundindex. jt_gap_appendboundindex+S (jt_index_appendbound)=(k)) -> exists jt_value_appendbound. ((((exists fs_h_jt_appendboundat. fs_h_jt_appendboundat + S (jt_value_appendbound) = S ((S (jt_index_appendbound)) * c)) /\ exists fs_q_jt_appendboundat. t = fs_q_jt_appendboundat * S ((S (jt_index_appendbound)) * c) + (jt_value_appendbound))) /\ (exists jt_gap_appendboundvalue. jt_gap_appendboundvalue+S (jt_value_appendbound)=(n)))) -> (forall jt_divisor_appendprimitive. (exists jt_factor_appendprimitivemodulus. (n)=(jt_divisor_appendprimitive)*jt_factor_appendprimitivemodulus) -> (forall jt_index_appendprimitivecoordinates jt_value_appendprimitivecoordinates. (exists jt_gap_appendprimitivecoordinatesindex. jt_gap_appendprimitivecoordinatesindex+S (jt_index_appendprimitivecoordinates)=(k)) -> (((exists fs_h_jt_appendprimitivecoordinatesat. fs_h_jt_appendprimitivecoordinatesat + S (jt_value_appendprimitivecoordinates) = S ((S (jt_index_appendprimitivecoordinates)) * c)) /\ exists fs_q_jt_appendprimitivecoordinatesat. t = fs_q_jt_appendprimitivecoordinatesat * S ((S (jt_index_appendprimitivecoordinates)) * c) + (jt_value_appendprimitivecoordinates))) -> (exists jt_factor_appendprimitivecoordinatesdivides. (jt_value_appendprimitivecoordinates)=(jt_divisor_appendprimitive)*jt_factor_appendprimitivecoordinatesdivides)) -> jt_divisor_appendprimitive=1) -> ~(exists jt_index_appendfresh jt_code_appendfresh jt_scale_appendfresh. ((exists jt_gap_appendfreshindex. jt_gap_appendfreshindex+S (jt_index_appendfresh)=(j)) /\ (((((((exists fs_h_jt_appendfreshcode. fs_h_jt_appendfreshcode + S (jt_code_appendfresh) = S ((S (jt_index_appendfresh)) * C)) /\ exists fs_q_jt_appendfreshcode. B = fs_q_jt_appendfreshcode * S ((S (jt_index_appendfresh)) * C) + (jt_code_appendfresh))) /\ (((exists fs_h_jt_appendfreshscale. fs_h_jt_appendfreshscale + S (jt_scale_appendfresh) = S ((S (jt_index_appendfresh)) * E)) /\ exists fs_q_jt_appendfreshscale. D = fs_q_jt_appendfreshscale * S ((S (jt_index_appendfresh)) * E) + (jt_scale_appendfresh))))) /\ (forall jt_index_appendfreshequal jt_left_appendfreshequal jt_right_appendfreshequal. (exists jt_gap_appendfreshequalindex. jt_gap_appendfreshequalindex+S (jt_index_appendfreshequal)=(k)) -> (((exists fs_h_jt_appendfreshequalleft. fs_h_jt_appendfreshequalleft + S (jt_left_appendfreshequal) = S ((S (jt_index_appendfreshequal)) * c)) /\ exists fs_q_jt_appendfreshequalleft. t = fs_q_jt_appendfreshequalleft * S ((S (jt_index_appendfreshequal)) * c) + (jt_left_appendfreshequal))) -> (((exists fs_h_jt_appendfreshequalright. fs_h_jt_appendfreshequalright + S (jt_right_appendfreshequal) = S ((S (jt_index_appendfreshequal)) * jt_scale_appendfresh)) /\ exists fs_q_jt_appendfreshequalright. jt_code_appendfresh = fs_q_jt_appendfreshequalright * S ((S (jt_index_appendfreshequal)) * jt_scale_appendfresh) + (jt_right_appendfreshequal))) -> jt_left_appendfreshequal=jt_right_appendfreshequal))))) -> exists U V W X. ((forall jt_i_appendresult. (exists jt_gap_appendresultsoundindex. jt_gap_appendresultsoundindex+S (jt_i_appendresult)=(S j)) -> exists jt_b_appendresult jt_e_appendresult. ((((((exists fs_h_jt_appendresultsoundcode. fs_h_jt_appendresultsoundcode + S (jt_b_appendresult) = S ((S (jt_i_appendresult)) * V)) /\ exists fs_q_jt_appendresultsoundcode. U = fs_q_jt_appendresultsoundcode * S ((S (jt_i_appendresult)) * V) + (jt_b_appendresult))) /\ (((exists fs_h_jt_appendresultsoundscale. fs_h_jt_appendresultsoundscale + S (jt_e_appendresult) = S ((S (jt_i_appendresult)) * X)) /\ exists fs_q_jt_appendresultsoundscale. W = fs_q_jt_appendresultsoundscale * S ((S (jt_i_appendresult)) * X) + (jt_e_appendresult))))) /\ (((forall jt_index_appendresultbound. (exists jt_gap_appendresultboundindex. jt_gap_appendresultboundindex+S (jt_index_appendresultbound)=(k)) -> exists jt_value_appendresultbound. ((((exists fs_h_jt_appendresultboundat. fs_h_jt_appendresultboundat + S (jt_value_appendresultbound) = S ((S (jt_index_appendresultbound)) * jt_e_appendresult)) /\ exists fs_q_jt_appendresultboundat. jt_b_appendresult = fs_q_jt_appendresultboundat * S ((S (jt_index_appendresultbound)) * jt_e_appendresult) + (jt_value_appendresultbound))) /\ (exists jt_gap_appendresultboundvalue. jt_gap_appendresultboundvalue+S (jt_value_appendresultbound)=(n)))) /\ (forall jt_divisor_appendresultprimitive. (exists jt_factor_appendresultprimitivemodulus. (n)=(jt_divisor_appendresultprimitive)*jt_factor_appendresultprimitivemodulus) -> (forall jt_index_appendresultprimitivecoordinates jt_value_appendresultprimitivecoordinates. (exists jt_gap_appendresultprimitivecoordinatesindex. jt_gap_appendresultprimitivecoordinatesindex+S (jt_index_appendresultprimitivecoordinates)=(k)) -> (((exists fs_h_jt_appendresultprimitivecoordinatesat. fs_h_jt_appendresultprimitivecoordinatesat + S (jt_value_appendresultprimitivecoordinates) = S ((S (jt_index_appendresultprimitivecoordinates)) * jt_e_appendresult)) /\ exists fs_q_jt_appendresultprimitivecoordinatesat. jt_b_appendresult = fs_q_jt_appendresultprimitivecoordinatesat * S ((S (jt_index_appendresultprimitivecoordinates)) * jt_e_appendresult) + (jt_value_appendresultprimitivecoordinates))) -> (exists jt_factor_appendresultprimitivecoordinatesdivides. (jt_value_appendresultprimitivecoordinates)=(jt_divisor_appendresultprimitive)*jt_factor_appendresultprimitivecoordinatesdivides)) -> jt_divisor_appendresultprimitive=1))))) /\ (((forall jt_i_appendresult jt_h_appendresult jt_b_appendresult jt_e_appendresult jt_d_appendresult jt_f_appendresult. (exists jt_gap_appendresultfirstindex. jt_gap_appendresultfirstindex+S (jt_i_appendresult)=(S j)) -> (exists jt_gap_appendresultsecondindex. jt_gap_appendresultsecondindex+S (jt_h_appendresult)=(S j)) -> (((((exists fs_h_jt_appendresultfirstcode. fs_h_jt_appendresultfirstcode + S (jt_b_appendresult) = S ((S (jt_i_appendresult)) * V)) /\ exists fs_q_jt_appendresultfirstcode. U = fs_q_jt_appendresultfirstcode * S ((S (jt_i_appendresult)) * V) + (jt_b_appendresult))) /\ (((exists fs_h_jt_appendresultfirstscale. fs_h_jt_appendresultfirstscale + S (jt_e_appendresult) = S ((S (jt_i_appendresult)) * X)) /\ exists fs_q_jt_appendresultfirstscale. W = fs_q_jt_appendresultfirstscale * S ((S (jt_i_appendresult)) * X) + (jt_e_appendresult))))) -> (((((exists fs_h_jt_appendresultsecondcode. fs_h_jt_appendresultsecondcode + S (jt_d_appendresult) = S ((S (jt_h_appendresult)) * V)) /\ exists fs_q_jt_appendresultsecondcode. U = fs_q_jt_appendresultsecondcode * S ((S (jt_h_appendresult)) * V) + (jt_d_appendresult))) /\ (((exists fs_h_jt_appendresultsecondscale. fs_h_jt_appendresultsecondscale + S (jt_f_appendresult) = S ((S (jt_h_appendresult)) * X)) /\ exists fs_q_jt_appendresultsecondscale. W = fs_q_jt_appendresultsecondscale * S ((S (jt_h_appendresult)) * X) + (jt_f_appendresult))))) -> (forall jt_index_appendresultsame jt_left_appendresultsame jt_right_appendresultsame. (exists jt_gap_appendresultsameindex. jt_gap_appendresultsameindex+S (jt_index_appendresultsame)=(k)) -> (((exists fs_h_jt_appendresultsameleft. fs_h_jt_appendresultsameleft + S (jt_left_appendresultsame) = S ((S (jt_index_appendresultsame)) * jt_e_appendresult)) /\ exists fs_q_jt_appendresultsameleft. jt_b_appendresult = fs_q_jt_appendresultsameleft * S ((S (jt_index_appendresultsame)) * jt_e_appendresult) + (jt_left_appendresultsame))) -> (((exists fs_h_jt_appendresultsameright. fs_h_jt_appendresultsameright + S (jt_right_appendresultsame) = S ((S (jt_index_appendresultsame)) * jt_f_appendresult)) /\ exists fs_q_jt_appendresultsameright. jt_d_appendresult = fs_q_jt_appendresultsameright * S ((S (jt_index_appendresultsame)) * jt_f_appendresult) + (jt_right_appendresultsame))) -> jt_left_appendresultsame=jt_right_appendresultsame) -> jt_i_appendresult=jt_h_appendresult) /\ (forall jt_z_appendresult. (exists jt_gap_appendresultcodeindex. jt_gap_appendresultcodeindex+S (jt_z_appendresult)=(S t)) -> (forall jt_index_appendresultinputbound. (exists jt_gap_appendresultinputboundindex. jt_gap_appendresultinputboundindex+S (jt_index_appendresultinputbound)=(k)) -> exists jt_value_appendresultinputbound. ((((exists fs_h_jt_appendresultinputboundat. fs_h_jt_appendresultinputboundat + S (jt_value_appendresultinputbound) = S ((S (jt_index_appendresultinputbound)) * c)) /\ exists fs_q_jt_appendresultinputboundat. jt_z_appendresult = fs_q_jt_appendresultinputboundat * S ((S (jt_index_appendresultinputbound)) * c) + (jt_value_appendresultinputbound))) /\ (exists jt_gap_appendresultinputboundvalue. jt_gap_appendresultinputboundvalue+S (jt_value_appendresultinputbound)=(n)))) -> (forall jt_divisor_appendresultinputprimitive. (exists jt_factor_appendresultinputprimitivemodulus. (n)=(jt_divisor_appendresultinputprimitive)*jt_factor_appendresultinputprimitivemodulus) -> (forall jt_index_appendresultinputprimitivecoordinates jt_value_appendresultinputprimitivecoordinates. (exists jt_gap_appendresultinputprimitivecoordinatesindex. jt_gap_appendresultinputprimitivecoordinatesindex+S (jt_index_appendresultinputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_appendresultinputprimitivecoordinatesat. fs_h_jt_appendresultinputprimitivecoordinatesat + S (jt_value_appendresultinputprimitivecoordinates) = S ((S (jt_index_appendresultinputprimitivecoordinates)) * c)) /\ exists fs_q_jt_appendresultinputprimitivecoordinatesat. jt_z_appendresult = fs_q_jt_appendresultinputprimitivecoordinatesat * S ((S (jt_index_appendresultinputprimitivecoordinates)) * c) + (jt_value_appendresultinputprimitivecoordinates))) -> (exists jt_factor_appendresultinputprimitivecoordinatesdivides. (jt_value_appendresultinputprimitivecoordinates)=(jt_divisor_appendresultinputprimitive)*jt_factor_appendresultinputprimitivecoordinatesdivides)) -> jt_divisor_appendresultinputprimitive=1) -> (exists jt_index_appendresultlisted jt_code_appendresultlisted jt_scale_appendresultlisted. ((exists jt_gap_appendresultlistedindex. jt_gap_appendresultlistedindex+S (jt_index_appendresultlisted)=(S j)) /\ (((((((exists fs_h_jt_appendresultlistedcode. fs_h_jt_appendresultlistedcode + S (jt_code_appendresultlisted) = S ((S (jt_index_appendresultlisted)) * V)) /\ exists fs_q_jt_appendresultlistedcode. U = fs_q_jt_appendresultlistedcode * S ((S (jt_index_appendresultlisted)) * V) + (jt_code_appendresultlisted))) /\ (((exists fs_h_jt_appendresultlistedscale. fs_h_jt_appendresultlistedscale + S (jt_scale_appendresultlisted) = S ((S (jt_index_appendresultlisted)) * X)) /\ exists fs_q_jt_appendresultlistedscale. W = fs_q_jt_appendresultlistedscale * S ((S (jt_index_appendresultlisted)) * X) + (jt_scale_appendresultlisted))))) /\ (forall jt_index_appendresultlistedequal jt_left_appendresultlistedequal jt_right_appendresultlistedequal. (exists jt_gap_appendresultlistedequalindex. jt_gap_appendresultlistedequalindex+S (jt_index_appendresultlistedequal)=(k)) -> (((exists fs_h_jt_appendresultlistedequalleft. fs_h_jt_appendresultlistedequalleft + S (jt_left_appendresultlistedequal) = S ((S (jt_index_appendresultlistedequal)) * c)) /\ exists fs_q_jt_appendresultlistedequalleft. jt_z_appendresult = fs_q_jt_appendresultlistedequalleft * S ((S (jt_index_appendresultlistedequal)) * c) + (jt_left_appendresultlistedequal))) -> (((exists fs_h_jt_appendresultlistedequalright. fs_h_jt_appendresultlistedequalright + S (jt_right_appendresultlistedequal) = S ((S (jt_index_appendresultlistedequal)) * jt_scale_appendresultlisted)) /\ exists fs_q_jt_appendresultlistedequalright. jt_code_appendresultlisted = fs_q_jt_appendresultlistedequalright * S ((S (jt_index_appendresultlistedequal)) * jt_scale_appendresultlisted) + (jt_right_appendresultlistedequal))) -> jt_left_appendresultlistedequal=jt_right_appendresultlistedequal)))))))))Constructive proof overview
Generated structural guide
Append an actually absent primitive tuple and prove full soundness, distinctness and prefix coverage.
The unchanged tactic script uses 8 declared prerequisites and contains 388 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
JT0021 jordan_tuple_outer_append_exists JT0002 jordan_tuple_equal_symm finite_lt_succ_eq_or_lt Alpha theorem; checked-use authorized JT001F jordan_tuple_equal_entry beta_at_unique Alpha theorem; checked-use authorized le_refl Alpha theorem; checked-use authorized jordan_tuple_equal_refl Alpha theorem; checked-use authorized le_succ Alpha theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–13
03Establish hextL14–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan tuple outer append exists.
- L14
have hext : ∃ U. ∃ V. ∃ W. ∃ X. IntegerVectorZero(B,C,U,V,j) ∧ (IntegerVectorZero(D,E,W,X,j) ∧ (BetaAt(U,V,j,t) ∧ BetaAt(W,X,j,c)))Definitions: IntegerVectorZeroBetaAt - L15
specialize jordan_tuple_outer_append_exists (B) - L16
specialize jordan_tuple_outer_append_exists (C) - L17
specialize jordan_tuple_outer_append_exists (D) - L18
specialize jordan_tuple_outer_append_exists (E) - L19
specialize jordan_tuple_outer_append_exists (j) - L20
specialize jordan_tuple_outer_append_exists (t) - L21
specialize jordan_tuple_outer_append_exists (c) - L22
apply jordan_tuple_outer_append_exists
04Separate the logical casesL23–31
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
05Establish hcodesbackL32–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan tuple equal symm.
- L32
have hcodesback : IntegerVectorZero(x,x1,B,C,j)Definitions: IntegerVectorZero - L33
specialize jordan_tuple_equal_symm (B) - L34
specialize jordan_tuple_equal_symm (C) - L35
specialize jordan_tuple_equal_symm (x) - L36
specialize jordan_tuple_equal_symm (x1) - L37
specialize jordan_tuple_equal_symm (j) - L38
apply jordan_tuple_equal_symm - L39
exact hext_witness_witness_witness_witness_left
06Establish hscalesbackL40–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan tuple equal symm.
- L40
have hscalesback : IntegerVectorZero(x2,x3,D,E,j)Definitions: IntegerVectorZero - L41
specialize jordan_tuple_equal_symm (D) - L42
specialize jordan_tuple_equal_symm (E) - L43
specialize jordan_tuple_equal_symm (x2) - L44
specialize jordan_tuple_equal_symm (x3) - L45
specialize jordan_tuple_equal_symm (j) - L46
apply jordan_tuple_equal_symm - L47
exact hext_witness_witness_witness_witness_right_left
07Construct an explicit witnessL48–51
08Separate the logical casesL52–52
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L52
split
09Fix variables and assumptionsL53–54
10Establish hicL55–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
11Separate the logical casesL60–60
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
cases hic
12Construct an explicit witnessL61–62
13Separate the logical casesL63–64
14Calculate and transport equalitiesL65–66
15Use earlier factsL67–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L67
exact hext_witness_witness_witness_witness_right_right_left
16Calculate and transport equalitiesL68–69
17Use earlier factsL70–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L70
exact hext_witness_witness_witness_witness_right_right_right
18Separate the logical casesL71–71
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L71
split
19Use earlier factsL72–73
20Establish hvalueL74–77
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hscan left.
- L74
have hvalue : ∃ b. ∃ e. BetaAt(B,C,i,b) ∧ BetaAt(D,E,i,e) ∧ (BetaPrefixInto(b,e,k,n) ∧ JordanPrimitiveTuple(n,b,e,k))Definitions: BetaPrefixIntoJordanPrimitiveTupleBetaAt - L75
specialize hscan_left (i) - L76
apply hscan_left - L77
exact hic_right
21Separate the logical casesL78–82
22Construct an explicit witnessL83–84
23Separate the logical casesL85–86
24Use earlier factsL87–96
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L87
specialize jordan_tuple_equal_entry (B) - L88
specialize jordan_tuple_equal_entry (C) - L89
specialize jordan_tuple_equal_entry (x) - L90
specialize jordan_tuple_equal_entry (x1) - L91
specialize jordan_tuple_equal_entry (j) - L92
specialize jordan_tuple_equal_entry (i) - L93
specialize jordan_tuple_equal_entry (x4) - L94
apply jordan_tuple_equal_entry - L95
exact hext_witness_witness_witness_witness_left - L96
exact hic_right
25Use earlier factsL97–106
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L97
exact hvalue_witness_witness_left_left - L98
specialize jordan_tuple_equal_entry (D) - L99
specialize jordan_tuple_equal_entry (E) - L100
specialize jordan_tuple_equal_entry (x2) - L101
specialize jordan_tuple_equal_entry (x3) - L102
specialize jordan_tuple_equal_entry (j) - L103
specialize jordan_tuple_equal_entry (i) - L104
specialize jordan_tuple_equal_entry (x5) - L105
apply jordan_tuple_equal_entry - L106
exact hext_witness_witness_witness_witness_right_left
26Use earlier factsL107–108
27Separate the logical casesL109–109
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L109
split
28Use earlier factsL110–111
29Separate the logical casesL112–112
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L112
split
30Fix variables and assumptionsL113–122
31Fix variables and assumptionsL123–123
Work with arbitrary variables or the premises of the current implication.
- L123
intro heq
32Separate the logical casesL124–125
33Establish hicL126–130
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
34Establish hhcL131–135
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
35Separate the logical casesL136–137
36Calculate and transport equalitiesL138–138
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L138
trans j
37Use earlier factsL139–139
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L139
exact hic_left
38Calculate and transport equalitiesL140–140
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L140
symm
39Use earlier factsL141–141
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L141
exact hhc_left
40Establish hbvalL142–151
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L142
have hbval : b=t - L143
specialize beta_at_unique (x) - L144
specialize beta_at_unique (x1) - L145
specialize beta_at_unique (j) - L146
specialize beta_at_unique (b) - L147
specialize beta_at_unique (t) - L148
apply beta_at_unique - L149
rewrite hic_left at hfirst_left - L150
rewrite hic_left at hfirst_left - L151
exact hfirst_left
41Use earlier factsL152–152
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L152
exact hext_witness_witness_witness_witness_right_right_left
42Establish hevalL153–162
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L153
have heval : e=c - L154
specialize beta_at_unique (x2) - L155
specialize beta_at_unique (x3) - L156
specialize beta_at_unique (j) - L157
specialize beta_at_unique (e) - L158
specialize beta_at_unique (c) - L159
apply beta_at_unique - L160
rewrite hic_left at hfirst_right - L161
rewrite hic_left at hfirst_right - L162
exact hfirst_right
43Use earlier factsL163–163
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L163
exact hext_witness_witness_witness_witness_right_right_right
44Separate the logical casesL164–164
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L164
exfalso
45Use earlier factsL165–165
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L165
apply hfresh
46Construct an explicit witnessL166–168
47Separate the logical casesL169–169
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L169
split
48Use earlier factsL170–170
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L170
exact hhc_right
49Separate the logical casesL171–172
50Use earlier factsL173–182
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L173
specialize jordan_tuple_equal_entry (x) - L174
specialize jordan_tuple_equal_entry (x1) - L175
specialize jordan_tuple_equal_entry (B) - L176
specialize jordan_tuple_equal_entry (C) - L177
specialize jordan_tuple_equal_entry (j) - L178
specialize jordan_tuple_equal_entry (h) - L179
specialize jordan_tuple_equal_entry (d) - L180
apply jordan_tuple_equal_entry - L181
exact hcodesback - L182
exact hhc_right
51Use earlier factsL183–192
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L183
exact hsecond_left - L184
specialize jordan_tuple_equal_entry (x2) - L185
specialize jordan_tuple_equal_entry (x3) - L186
specialize jordan_tuple_equal_entry (D) - L187
specialize jordan_tuple_equal_entry (E) - L188
specialize jordan_tuple_equal_entry (j) - L189
specialize jordan_tuple_equal_entry (h) - L190
specialize jordan_tuple_equal_entry (f) - L191
apply jordan_tuple_equal_entry - L192
exact hscalesback
52Use earlier factsL193–194
53Calculate and transport equalitiesL195–197
54Use earlier factsL198–198
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L198
exact heq
55Separate the logical casesL199–199
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L199
cases hhc
56Establish hdvalL200–209
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L200
have hdval : d=t - L201
specialize beta_at_unique (x) - L202
specialize beta_at_unique (x1) - L203
specialize beta_at_unique (j) - L204
specialize beta_at_unique (d) - L205
specialize beta_at_unique (t) - L206
apply beta_at_unique - L207
rewrite hhc_left at hsecond_left - L208
rewrite hhc_left at hsecond_left - L209
exact hsecond_left
57Use earlier factsL210–210
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L210
exact hext_witness_witness_witness_witness_right_right_left
58Establish hfvalL211–220
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L211
have hfval : f=c - L212
specialize beta_at_unique (x2) - L213
specialize beta_at_unique (x3) - L214
specialize beta_at_unique (j) - L215
specialize beta_at_unique (f) - L216
specialize beta_at_unique (c) - L217
apply beta_at_unique - L218
rewrite hhc_left at hsecond_right - L219
rewrite hhc_left at hsecond_right - L220
exact hsecond_right
59Use earlier factsL221–221
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L221
exact hext_witness_witness_witness_witness_right_right_right
60Separate the logical casesL222–222
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L222
exfalso
61Use earlier factsL223–223
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L223
apply hfresh
62Construct an explicit witnessL224–226
63Separate the logical casesL227–227
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L227
split
64Use earlier factsL228–228
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L228
exact hic_right
65Separate the logical casesL229–230
66Use earlier factsL231–240
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L231
specialize jordan_tuple_equal_entry (x) - L232
specialize jordan_tuple_equal_entry (x1) - L233
specialize jordan_tuple_equal_entry (B) - L234
specialize jordan_tuple_equal_entry (C) - L235
specialize jordan_tuple_equal_entry (j) - L236
specialize jordan_tuple_equal_entry (i) - L237
specialize jordan_tuple_equal_entry (b) - L238
apply jordan_tuple_equal_entry - L239
exact hcodesback - L240
exact hic_right
67Use earlier factsL241–250
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L241
exact hfirst_left - L242
specialize jordan_tuple_equal_entry (x2) - L243
specialize jordan_tuple_equal_entry (x3) - L244
specialize jordan_tuple_equal_entry (D) - L245
specialize jordan_tuple_equal_entry (E) - L246
specialize jordan_tuple_equal_entry (j) - L247
specialize jordan_tuple_equal_entry (i) - L248
specialize jordan_tuple_equal_entry (e) - L249
apply jordan_tuple_equal_entry - L250
exact hscalesback
68Use earlier factsL251–258
Instantiate or apply named facts and discharge the corresponding proof obligations.
69Calculate and transport equalitiesL259–261
70Use earlier factsL262–271
Instantiate or apply named facts and discharge the corresponding proof obligations.
71Separate the logical casesL272–272
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L272
split
72Use earlier factsL273–282
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L273
specialize jordan_tuple_equal_entry (x) - L274
specialize jordan_tuple_equal_entry (x1) - L275
specialize jordan_tuple_equal_entry (B) - L276
specialize jordan_tuple_equal_entry (C) - L277
specialize jordan_tuple_equal_entry (j) - L278
specialize jordan_tuple_equal_entry (i) - L279
specialize jordan_tuple_equal_entry (b) - L280
apply jordan_tuple_equal_entry - L281
exact hcodesback - L282
exact hic_right
73Use earlier factsL283–292
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L283
exact hfirst_left - L284
specialize jordan_tuple_equal_entry (x2) - L285
specialize jordan_tuple_equal_entry (x3) - L286
specialize jordan_tuple_equal_entry (D) - L287
specialize jordan_tuple_equal_entry (E) - L288
specialize jordan_tuple_equal_entry (j) - L289
specialize jordan_tuple_equal_entry (i) - L290
specialize jordan_tuple_equal_entry (e) - L291
apply jordan_tuple_equal_entry - L292
exact hscalesback
74Use earlier factsL293–294
75Separate the logical casesL295–295
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L295
split
76Use earlier factsL296–305
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L296
specialize jordan_tuple_equal_entry (x) - L297
specialize jordan_tuple_equal_entry (x1) - L298
specialize jordan_tuple_equal_entry (B) - L299
specialize jordan_tuple_equal_entry (C) - L300
specialize jordan_tuple_equal_entry (j) - L301
specialize jordan_tuple_equal_entry (h) - L302
specialize jordan_tuple_equal_entry (d) - L303
apply jordan_tuple_equal_entry - L304
exact hcodesback - L305
exact hhc_right
77Use earlier factsL306–315
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L306
exact hsecond_left - L307
specialize jordan_tuple_equal_entry (x2) - L308
specialize jordan_tuple_equal_entry (x3) - L309
specialize jordan_tuple_equal_entry (D) - L310
specialize jordan_tuple_equal_entry (E) - L311
specialize jordan_tuple_equal_entry (j) - L312
specialize jordan_tuple_equal_entry (h) - L313
specialize jordan_tuple_equal_entry (f) - L314
apply jordan_tuple_equal_entry - L315
exact hscalesback
78Use earlier factsL316–318
79Fix variables and assumptionsL319–322
80Establish hzcL323–327
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
81Separate the logical casesL328–328
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L328
cases hzc
82Calculate and transport equalitiesL329–329
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L329
rewrite hzc_left
83Construct an explicit witnessL330–332
84Separate the logical casesL333–333
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L333
split
85Use earlier factsL334–335
86Separate the logical casesL336–337
87Use earlier factsL338–343
Instantiate or apply named facts and discharge the corresponding proof obligations.
88Establish holdL344–349
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hscan right right.
89Separate the logical casesL350–355
90Construct an explicit witnessL356–358
91Separate the logical casesL359–359
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L359
split
92Use earlier factsL360–363
93Separate the logical casesL364–365
94Use earlier factsL366–375
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L366
specialize jordan_tuple_equal_entry (B) - L367
specialize jordan_tuple_equal_entry (C) - L368
specialize jordan_tuple_equal_entry (x) - L369
specialize jordan_tuple_equal_entry (x1) - L370
specialize jordan_tuple_equal_entry (j) - L371
specialize jordan_tuple_equal_entry (x4) - L372
specialize jordan_tuple_equal_entry (x5) - L373
apply jordan_tuple_equal_entry - L374
exact hext_witness_witness_witness_witness_left - L375
exact hold_witness_witness_witness_left
95Use earlier factsL376–385
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L376
exact hold_witness_witness_witness_right_left_left - L377
specialize jordan_tuple_equal_entry (D) - L378
specialize jordan_tuple_equal_entry (E) - L379
specialize jordan_tuple_equal_entry (x2) - L380
specialize jordan_tuple_equal_entry (x3) - L381
specialize jordan_tuple_equal_entry (j) - L382
specialize jordan_tuple_equal_entry (x4) - L383
specialize jordan_tuple_equal_entry (x6) - L384
apply jordan_tuple_equal_entry - L385
exact hext_witness_witness_witness_witness_right_left
Original exact command ledger · 388 lines
- 0001
intro k - 0002
intro n - 0003
intro c - 0004
intro t - 0005
intro B - 0006
intro C - 0007
intro D - 0008
intro E - 0009
intro j - 0010
intro hscan - 0011
intro hb - 0012
intro hp - 0013
intro hfresh - 0014
have hext : exists U V W X. ((forall jt_index_scanappendcodes jt_left_scanappendcodes jt_right_scanappendcodes. (exists jt_gap_scanappendcodesindex. jt_gap_scanappendcodesindex+S (jt_index_scanappendcodes)=(j)) -> (((exists fs_h_jt_scanappendcodesleft. fs_h_jt_scanappendcodesleft + S (jt_left_scanappendcodes) = S ((S (jt_index_scanappendcodes)) * C)) /\ exists fs_q_jt_scanappendcodesleft. B = fs_q_jt_scanappendcodesleft * S ((S (jt_index_scanappendcodes)) * C) + (jt_left_scanappendcodes))) -> (((exists fs_h_jt_scanappendcodesright. fs_h_jt_scanappendcodesright + S (jt_right_scanappendcodes) = S ((S (jt_index_scanappendcodes)) * V)) /\ exists fs_q_jt_scanappendcodesright. U = fs_q_jt_scanappendcodesright * S ((S (jt_index_scanappendcodes)) * V) + (jt_right_scanappendcodes))) -> jt_left_scanappendcodes=jt_right_scanappendcodes) /\ (((forall jt_index_scanappendscales jt_left_scanappendscales jt_right_scanappendscales. (exists jt_gap_scanappendscalesindex. jt_gap_scanappendscalesindex+S (jt_index_scanappendscales)=(j)) -> (((exists fs_h_jt_scanappendscalesleft. fs_h_jt_scanappendscalesleft + S (jt_left_scanappendscales) = S ((S (jt_index_scanappendscales)) * E)) /\ exists fs_q_jt_scanappendscalesleft. D = fs_q_jt_scanappendscalesleft * S ((S (jt_index_scanappendscales)) * E) + (jt_left_scanappendscales))) -> (((exists fs_h_jt_scanappendscalesright. fs_h_jt_scanappendscalesright + S (jt_right_scanappendscales) = S ((S (jt_index_scanappendscales)) * X)) /\ exists fs_q_jt_scanappendscalesright. W = fs_q_jt_scanappendscalesright * S ((S (jt_index_scanappendscales)) * X) + (jt_right_scanappendscales))) -> jt_left_scanappendscales=jt_right_scanappendscales) /\ (((((exists fs_h_jt_scanappendlastcode. fs_h_jt_scanappendlastcode + S (t) = S ((S (j)) * V)) /\ exists fs_q_jt_scanappendlastcode. U = fs_q_jt_scanappendlastcode * S ((S (j)) * V) + (t))) /\ (((exists fs_h_jt_scanappendlastscale. fs_h_jt_scanappendlastscale + S (c) = S ((S (j)) * X)) /\ exists fs_q_jt_scanappendlastscale. W = fs_q_jt_scanappendlastscale * S ((S (j)) * X) + (c)))))))) - 0015
specialize jordan_tuple_outer_append_exists (B) - 0016
specialize jordan_tuple_outer_append_exists (C) - 0017
specialize jordan_tuple_outer_append_exists (D) - 0018
specialize jordan_tuple_outer_append_exists (E) - 0019
specialize jordan_tuple_outer_append_exists (j) - 0020
specialize jordan_tuple_outer_append_exists (t) - 0021
specialize jordan_tuple_outer_append_exists (c) - 0022
apply jordan_tuple_outer_append_exists - 0023
cases hext - 0024
cases hext_witness - 0025
cases hext_witness_witness - 0026
cases hext_witness_witness_witness - 0027
cases hext_witness_witness_witness_witness - 0028
cases hext_witness_witness_witness_witness_right - 0029
cases hext_witness_witness_witness_witness_right_right - 0030
cases hscan - 0031
cases hscan_right - 0032
have hcodesback : forall jt_index_scanappendcodesback jt_left_scanappendcodesback jt_right_scanappendcodesback. (exists jt_gap_scanappendcodesbackindex. jt_gap_scanappendcodesbackindex+S (jt_index_scanappendcodesback)=(j)) -> (((exists fs_h_jt_scanappendcodesbackleft. fs_h_jt_scanappendcodesbackleft + S (jt_left_scanappendcodesback) = S ((S (jt_index_scanappendcodesback)) * x1)) /\ exists fs_q_jt_scanappendcodesbackleft. x = fs_q_jt_scanappendcodesbackleft * S ((S (jt_index_scanappendcodesback)) * x1) + (jt_left_scanappendcodesback))) -> (((exists fs_h_jt_scanappendcodesbackright. fs_h_jt_scanappendcodesbackright + S (jt_right_scanappendcodesback) = S ((S (jt_index_scanappendcodesback)) * C)) /\ exists fs_q_jt_scanappendcodesbackright. B = fs_q_jt_scanappendcodesbackright * S ((S (jt_index_scanappendcodesback)) * C) + (jt_right_scanappendcodesback))) -> jt_left_scanappendcodesback=jt_right_scanappendcodesback - 0033
specialize jordan_tuple_equal_symm (B) - 0034
specialize jordan_tuple_equal_symm (C) - 0035
specialize jordan_tuple_equal_symm (x) - 0036
specialize jordan_tuple_equal_symm (x1) - 0037
specialize jordan_tuple_equal_symm (j) - 0038
apply jordan_tuple_equal_symm - 0039
exact hext_witness_witness_witness_witness_left - 0040
have hscalesback : forall jt_index_scanappendscalesback jt_left_scanappendscalesback jt_right_scanappendscalesback. (exists jt_gap_scanappendscalesbackindex. jt_gap_scanappendscalesbackindex+S (jt_index_scanappendscalesback)=(j)) -> (((exists fs_h_jt_scanappendscalesbackleft. fs_h_jt_scanappendscalesbackleft + S (jt_left_scanappendscalesback) = S ((S (jt_index_scanappendscalesback)) * x3)) /\ exists fs_q_jt_scanappendscalesbackleft. x2 = fs_q_jt_scanappendscalesbackleft * S ((S (jt_index_scanappendscalesback)) * x3) + (jt_left_scanappendscalesback))) -> (((exists fs_h_jt_scanappendscalesbackright. fs_h_jt_scanappendscalesbackright + S (jt_right_scanappendscalesback) = S ((S (jt_index_scanappendscalesback)) * E)) /\ exists fs_q_jt_scanappendscalesbackright. D = fs_q_jt_scanappendscalesbackright * S ((S (jt_index_scanappendscalesback)) * E) + (jt_right_scanappendscalesback))) -> jt_left_scanappendscalesback=jt_right_scanappendscalesback - 0041
specialize jordan_tuple_equal_symm (D) - 0042
specialize jordan_tuple_equal_symm (E) - 0043
specialize jordan_tuple_equal_symm (x2) - 0044
specialize jordan_tuple_equal_symm (x3) - 0045
specialize jordan_tuple_equal_symm (j) - 0046
apply jordan_tuple_equal_symm - 0047
exact hext_witness_witness_witness_witness_right_left - 0048
exists x - 0049
exists x1 - 0050
exists x2 - 0051
exists x3 - 0052
split - 0053
intro i - 0054
intro hi - 0055
have hic : i=j \/ (exists jt_gap_appendindex. jt_gap_appendindex+S (i)=(j)) - 0056
specialize finite_lt_succ_eq_or_lt (j) - 0057
specialize finite_lt_succ_eq_or_lt (i) - 0058
apply finite_lt_succ_eq_or_lt - 0059
exact hi - 0060
cases hic - 0061
exists t - 0062
exists c - 0063
split - 0064
split - 0065
rewrite hic_left - 0066
rewrite hic_left - 0067
exact hext_witness_witness_witness_witness_right_right_left - 0068
rewrite hic_left - 0069
rewrite hic_left - 0070
exact hext_witness_witness_witness_witness_right_right_right - 0071
split - 0072
exact hb - 0073
exact hp - 0074
have hvalue : exists b e. ((((((exists fs_h_jt_appendoldcode. fs_h_jt_appendoldcode + S (b) = S ((S (i)) * C)) /\ exists fs_q_jt_appendoldcode. B = fs_q_jt_appendoldcode * S ((S (i)) * C) + (b))) /\ (((exists fs_h_jt_appendoldscale. fs_h_jt_appendoldscale + S (e) = S ((S (i)) * E)) /\ exists fs_q_jt_appendoldscale. D = fs_q_jt_appendoldscale * S ((S (i)) * E) + (e))))) /\ (((forall jt_index_appendoldbound. (exists jt_gap_appendoldboundindex. jt_gap_appendoldboundindex+S (jt_index_appendoldbound)=(k)) -> exists jt_value_appendoldbound. ((((exists fs_h_jt_appendoldboundat. fs_h_jt_appendoldboundat + S (jt_value_appendoldbound) = S ((S (jt_index_appendoldbound)) * e)) /\ exists fs_q_jt_appendoldboundat. b = fs_q_jt_appendoldboundat * S ((S (jt_index_appendoldbound)) * e) + (jt_value_appendoldbound))) /\ (exists jt_gap_appendoldboundvalue. jt_gap_appendoldboundvalue+S (jt_value_appendoldbound)=(n)))) /\ (forall jt_divisor_appendoldprimitive. (exists jt_factor_appendoldprimitivemodulus. (n)=(jt_divisor_appendoldprimitive)*jt_factor_appendoldprimitivemodulus) -> (forall jt_index_appendoldprimitivecoordinates jt_value_appendoldprimitivecoordinates. (exists jt_gap_appendoldprimitivecoordinatesindex. jt_gap_appendoldprimitivecoordinatesindex+S (jt_index_appendoldprimitivecoordinates)=(k)) -> (((exists fs_h_jt_appendoldprimitivecoordinatesat. fs_h_jt_appendoldprimitivecoordinatesat + S (jt_value_appendoldprimitivecoordinates) = S ((S (jt_index_appendoldprimitivecoordinates)) * e)) /\ exists fs_q_jt_appendoldprimitivecoordinatesat. b = fs_q_jt_appendoldprimitivecoordinatesat * S ((S (jt_index_appendoldprimitivecoordinates)) * e) + (jt_value_appendoldprimitivecoordinates))) -> (exists jt_factor_appendoldprimitivecoordinatesdivides. (jt_value_appendoldprimitivecoordinates)=(jt_divisor_appendoldprimitive)*jt_factor_appendoldprimitivecoordinatesdivides)) -> jt_divisor_appendoldprimitive=1)))) - 0075
specialize hscan_left (i) - 0076
apply hscan_left - 0077
exact hic_right - 0078
cases hvalue - 0079
cases hvalue_witness - 0080
cases hvalue_witness_witness - 0081
cases hvalue_witness_witness_right - 0082
cases hvalue_witness_witness_left - 0083
exists x4 - 0084
exists x5 - 0085
split - 0086
split - 0087
specialize jordan_tuple_equal_entry (B) - 0088
specialize jordan_tuple_equal_entry (C) - 0089
specialize jordan_tuple_equal_entry (x) - 0090
specialize jordan_tuple_equal_entry (x1) - 0091
specialize jordan_tuple_equal_entry (j) - 0092
specialize jordan_tuple_equal_entry (i) - 0093
specialize jordan_tuple_equal_entry (x4) - 0094
apply jordan_tuple_equal_entry - 0095
exact hext_witness_witness_witness_witness_left - 0096
exact hic_right - 0097
exact hvalue_witness_witness_left_left - 0098
specialize jordan_tuple_equal_entry (D) - 0099
specialize jordan_tuple_equal_entry (E) - 0100
specialize jordan_tuple_equal_entry (x2) - 0101
specialize jordan_tuple_equal_entry (x3) - 0102
specialize jordan_tuple_equal_entry (j) - 0103
specialize jordan_tuple_equal_entry (i) - 0104
specialize jordan_tuple_equal_entry (x5) - 0105
apply jordan_tuple_equal_entry - 0106
exact hext_witness_witness_witness_witness_right_left - 0107
exact hic_right - 0108
exact hvalue_witness_witness_left_right - 0109
split - 0110
exact hvalue_witness_witness_right_left - 0111
exact hvalue_witness_witness_right_right - 0112
split - 0113
intro i - 0114
intro h - 0115
intro b - 0116
intro e - 0117
intro d - 0118
intro f - 0119
intro hi - 0120
intro hh - 0121
intro hfirst - 0122
intro hsecond - 0123
intro heq - 0124
cases hfirst - 0125
cases hsecond - 0126
have hic : i=j \/ (exists jt_gap_appendfirstcase. jt_gap_appendfirstcase+S (i)=(j)) - 0127
specialize finite_lt_succ_eq_or_lt (j) - 0128
specialize finite_lt_succ_eq_or_lt (i) - 0129
apply finite_lt_succ_eq_or_lt - 0130
exact hi - 0131
have hhc : h=j \/ (exists jt_gap_appendsecondcase. jt_gap_appendsecondcase+S (h)=(j)) - 0132
specialize finite_lt_succ_eq_or_lt (j) - 0133
specialize finite_lt_succ_eq_or_lt (h) - 0134
apply finite_lt_succ_eq_or_lt - 0135
exact hh - 0136
cases hic - 0137
cases hhc - 0138
trans j - 0139
exact hic_left - 0140
symm - 0141
exact hhc_left - 0142
have hbval : b=t - 0143
specialize beta_at_unique (x) - 0144
specialize beta_at_unique (x1) - 0145
specialize beta_at_unique (j) - 0146
specialize beta_at_unique (b) - 0147
specialize beta_at_unique (t) - 0148
apply beta_at_unique - 0149
rewrite hic_left at hfirst_left - 0150
rewrite hic_left at hfirst_left - 0151
exact hfirst_left - 0152
exact hext_witness_witness_witness_witness_right_right_left - 0153
have heval : e=c - 0154
specialize beta_at_unique (x2) - 0155
specialize beta_at_unique (x3) - 0156
specialize beta_at_unique (j) - 0157
specialize beta_at_unique (e) - 0158
specialize beta_at_unique (c) - 0159
apply beta_at_unique - 0160
rewrite hic_left at hfirst_right - 0161
rewrite hic_left at hfirst_right - 0162
exact hfirst_right - 0163
exact hext_witness_witness_witness_witness_right_right_right - 0164
exfalso - 0165
apply hfresh - 0166
exists h - 0167
exists d - 0168
exists f - 0169
split - 0170
exact hhc_right - 0171
split - 0172
split - 0173
specialize jordan_tuple_equal_entry (x) - 0174
specialize jordan_tuple_equal_entry (x1) - 0175
specialize jordan_tuple_equal_entry (B) - 0176
specialize jordan_tuple_equal_entry (C) - 0177
specialize jordan_tuple_equal_entry (j) - 0178
specialize jordan_tuple_equal_entry (h) - 0179
specialize jordan_tuple_equal_entry (d) - 0180
apply jordan_tuple_equal_entry - 0181
exact hcodesback - 0182
exact hhc_right - 0183
exact hsecond_left - 0184
specialize jordan_tuple_equal_entry (x2) - 0185
specialize jordan_tuple_equal_entry (x3) - 0186
specialize jordan_tuple_equal_entry (D) - 0187
specialize jordan_tuple_equal_entry (E) - 0188
specialize jordan_tuple_equal_entry (j) - 0189
specialize jordan_tuple_equal_entry (h) - 0190
specialize jordan_tuple_equal_entry (f) - 0191
apply jordan_tuple_equal_entry - 0192
exact hscalesback - 0193
exact hhc_right - 0194
exact hsecond_right - 0195
rewrite hbval at heq - 0196
rewrite heval at heq - 0197
rewrite heval at heq - 0198
exact heq - 0199
cases hhc - 0200
have hdval : d=t - 0201
specialize beta_at_unique (x) - 0202
specialize beta_at_unique (x1) - 0203
specialize beta_at_unique (j) - 0204
specialize beta_at_unique (d) - 0205
specialize beta_at_unique (t) - 0206
apply beta_at_unique - 0207
rewrite hhc_left at hsecond_left - 0208
rewrite hhc_left at hsecond_left - 0209
exact hsecond_left - 0210
exact hext_witness_witness_witness_witness_right_right_left - 0211
have hfval : f=c - 0212
specialize beta_at_unique (x2) - 0213
specialize beta_at_unique (x3) - 0214
specialize beta_at_unique (j) - 0215
specialize beta_at_unique (f) - 0216
specialize beta_at_unique (c) - 0217
apply beta_at_unique - 0218
rewrite hhc_left at hsecond_right - 0219
rewrite hhc_left at hsecond_right - 0220
exact hsecond_right - 0221
exact hext_witness_witness_witness_witness_right_right_right - 0222
exfalso - 0223
apply hfresh - 0224
exists i - 0225
exists b - 0226
exists e - 0227
split - 0228
exact hic_right - 0229
split - 0230
split - 0231
specialize jordan_tuple_equal_entry (x) - 0232
specialize jordan_tuple_equal_entry (x1) - 0233
specialize jordan_tuple_equal_entry (B) - 0234
specialize jordan_tuple_equal_entry (C) - 0235
specialize jordan_tuple_equal_entry (j) - 0236
specialize jordan_tuple_equal_entry (i) - 0237
specialize jordan_tuple_equal_entry (b) - 0238
apply jordan_tuple_equal_entry - 0239
exact hcodesback - 0240
exact hic_right - 0241
exact hfirst_left - 0242
specialize jordan_tuple_equal_entry (x2) - 0243
specialize jordan_tuple_equal_entry (x3) - 0244
specialize jordan_tuple_equal_entry (D) - 0245
specialize jordan_tuple_equal_entry (E) - 0246
specialize jordan_tuple_equal_entry (j) - 0247
specialize jordan_tuple_equal_entry (i) - 0248
specialize jordan_tuple_equal_entry (e) - 0249
apply jordan_tuple_equal_entry - 0250
exact hscalesback - 0251
exact hic_right - 0252
exact hfirst_right - 0253
specialize jordan_tuple_equal_symm (b) - 0254
specialize jordan_tuple_equal_symm (e) - 0255
specialize jordan_tuple_equal_symm (t) - 0256
specialize jordan_tuple_equal_symm (c) - 0257
specialize jordan_tuple_equal_symm (k) - 0258
apply jordan_tuple_equal_symm - 0259
rewrite hdval at heq - 0260
rewrite hfval at heq - 0261
rewrite hfval at heq - 0262
exact heq - 0263
specialize hscan_right_left (i) - 0264
specialize hscan_right_left (h) - 0265
specialize hscan_right_left (b) - 0266
specialize hscan_right_left (e) - 0267
specialize hscan_right_left (d) - 0268
specialize hscan_right_left (f) - 0269
apply hscan_right_left - 0270
exact hic_right - 0271
exact hhc_right - 0272
split - 0273
specialize jordan_tuple_equal_entry (x) - 0274
specialize jordan_tuple_equal_entry (x1) - 0275
specialize jordan_tuple_equal_entry (B) - 0276
specialize jordan_tuple_equal_entry (C) - 0277
specialize jordan_tuple_equal_entry (j) - 0278
specialize jordan_tuple_equal_entry (i) - 0279
specialize jordan_tuple_equal_entry (b) - 0280
apply jordan_tuple_equal_entry - 0281
exact hcodesback - 0282
exact hic_right - 0283
exact hfirst_left - 0284
specialize jordan_tuple_equal_entry (x2) - 0285
specialize jordan_tuple_equal_entry (x3) - 0286
specialize jordan_tuple_equal_entry (D) - 0287
specialize jordan_tuple_equal_entry (E) - 0288
specialize jordan_tuple_equal_entry (j) - 0289
specialize jordan_tuple_equal_entry (i) - 0290
specialize jordan_tuple_equal_entry (e) - 0291
apply jordan_tuple_equal_entry - 0292
exact hscalesback - 0293
exact hic_right - 0294
exact hfirst_right - 0295
split - 0296
specialize jordan_tuple_equal_entry (x) - 0297
specialize jordan_tuple_equal_entry (x1) - 0298
specialize jordan_tuple_equal_entry (B) - 0299
specialize jordan_tuple_equal_entry (C) - 0300
specialize jordan_tuple_equal_entry (j) - 0301
specialize jordan_tuple_equal_entry (h) - 0302
specialize jordan_tuple_equal_entry (d) - 0303
apply jordan_tuple_equal_entry - 0304
exact hcodesback - 0305
exact hhc_right - 0306
exact hsecond_left - 0307
specialize jordan_tuple_equal_entry (x2) - 0308
specialize jordan_tuple_equal_entry (x3) - 0309
specialize jordan_tuple_equal_entry (D) - 0310
specialize jordan_tuple_equal_entry (E) - 0311
specialize jordan_tuple_equal_entry (j) - 0312
specialize jordan_tuple_equal_entry (h) - 0313
specialize jordan_tuple_equal_entry (f) - 0314
apply jordan_tuple_equal_entry - 0315
exact hscalesback - 0316
exact hhc_right - 0317
exact hsecond_right - 0318
exact heq - 0319
intro z - 0320
intro hz - 0321
intro hzb - 0322
intro hzp - 0323
have hzc : z=t \/ (exists jt_gap_appendcovercase. jt_gap_appendcovercase+S (z)=(t)) - 0324
specialize finite_lt_succ_eq_or_lt (t) - 0325
specialize finite_lt_succ_eq_or_lt (z) - 0326
apply finite_lt_succ_eq_or_lt - 0327
exact hz - 0328
cases hzc - 0329
rewrite hzc_left - 0330
exists j - 0331
exists t - 0332
exists c - 0333
split - 0334
specialize le_refl (S j) - 0335
apply le_refl - 0336
split - 0337
split - 0338
exact hext_witness_witness_witness_witness_right_right_left - 0339
exact hext_witness_witness_witness_witness_right_right_right - 0340
specialize jordan_tuple_equal_refl (t) - 0341
specialize jordan_tuple_equal_refl (c) - 0342
specialize jordan_tuple_equal_refl (k) - 0343
apply jordan_tuple_equal_refl - 0344
have hold : exists jt_index_appendoldlisted jt_code_appendoldlisted jt_scale_appendoldlisted. ((exists jt_gap_appendoldlistedindex. jt_gap_appendoldlistedindex+S (jt_index_appendoldlisted)=(j)) /\ (((((((exists fs_h_jt_appendoldlistedcode. fs_h_jt_appendoldlistedcode + S (jt_code_appendoldlisted) = S ((S (jt_index_appendoldlisted)) * C)) /\ exists fs_q_jt_appendoldlistedcode. B = fs_q_jt_appendoldlistedcode * S ((S (jt_index_appendoldlisted)) * C) + (jt_code_appendoldlisted))) /\ (((exists fs_h_jt_appendoldlistedscale. fs_h_jt_appendoldlistedscale + S (jt_scale_appendoldlisted) = S ((S (jt_index_appendoldlisted)) * E)) /\ exists fs_q_jt_appendoldlistedscale. D = fs_q_jt_appendoldlistedscale * S ((S (jt_index_appendoldlisted)) * E) + (jt_scale_appendoldlisted))))) /\ (forall jt_index_appendoldlistedequal jt_left_appendoldlistedequal jt_right_appendoldlistedequal. (exists jt_gap_appendoldlistedequalindex. jt_gap_appendoldlistedequalindex+S (jt_index_appendoldlistedequal)=(k)) -> (((exists fs_h_jt_appendoldlistedequalleft. fs_h_jt_appendoldlistedequalleft + S (jt_left_appendoldlistedequal) = S ((S (jt_index_appendoldlistedequal)) * c)) /\ exists fs_q_jt_appendoldlistedequalleft. z = fs_q_jt_appendoldlistedequalleft * S ((S (jt_index_appendoldlistedequal)) * c) + (jt_left_appendoldlistedequal))) -> (((exists fs_h_jt_appendoldlistedequalright. fs_h_jt_appendoldlistedequalright + S (jt_right_appendoldlistedequal) = S ((S (jt_index_appendoldlistedequal)) * jt_scale_appendoldlisted)) /\ exists fs_q_jt_appendoldlistedequalright. jt_code_appendoldlisted = fs_q_jt_appendoldlistedequalright * S ((S (jt_index_appendoldlistedequal)) * jt_scale_appendoldlisted) + (jt_right_appendoldlistedequal))) -> jt_left_appendoldlistedequal=jt_right_appendoldlistedequal)))) - 0345
specialize hscan_right_right (z) - 0346
apply hscan_right_right - 0347
exact hzc_right - 0348
exact hzb - 0349
exact hzp - 0350
cases hold - 0351
cases hold_witness - 0352
cases hold_witness_witness - 0353
cases hold_witness_witness_witness - 0354
cases hold_witness_witness_witness_right - 0355
cases hold_witness_witness_witness_right_left - 0356
exists x4 - 0357
exists x5 - 0358
exists x6 - 0359
split - 0360
specialize le_succ (S x4) - 0361
specialize le_succ (j) - 0362
apply le_succ - 0363
exact hold_witness_witness_witness_left - 0364
split - 0365
split - 0366
specialize jordan_tuple_equal_entry (B) - 0367
specialize jordan_tuple_equal_entry (C) - 0368
specialize jordan_tuple_equal_entry (x) - 0369
specialize jordan_tuple_equal_entry (x1) - 0370
specialize jordan_tuple_equal_entry (j) - 0371
specialize jordan_tuple_equal_entry (x4) - 0372
specialize jordan_tuple_equal_entry (x5) - 0373
apply jordan_tuple_equal_entry - 0374
exact hext_witness_witness_witness_witness_left - 0375
exact hold_witness_witness_witness_left - 0376
exact hold_witness_witness_witness_right_left_left - 0377
specialize jordan_tuple_equal_entry (D) - 0378
specialize jordan_tuple_equal_entry (E) - 0379
specialize jordan_tuple_equal_entry (x2) - 0380
specialize jordan_tuple_equal_entry (x3) - 0381
specialize jordan_tuple_equal_entry (j) - 0382
specialize jordan_tuple_equal_entry (x4) - 0383
specialize jordan_tuple_equal_entry (x6) - 0384
apply jordan_tuple_equal_entry - 0385
exact hext_witness_witness_witness_witness_right_left - 0386
exact hold_witness_witness_witness_left - 0387
exact hold_witness_witness_witness_right_left_right - 0388
exact hold_witness_witness_witness_right_right