Exact expanded first-order arithmetic statement
forall k n A B C D u E F G H v Z W. (((forall jt_i_injective_source. (exists jt_gap_injective_sourcesoundindex. jt_gap_injective_sourcesoundindex+S (jt_i_injective_source)=(u)) -> exists jt_b_injective_source jt_c_injective_source. ((((((exists fs_h_jt_injective_sourcesoundcode. fs_h_jt_injective_sourcesoundcode + S (jt_b_injective_source) = S ((S (jt_i_injective_source)) * B)) /\ exists fs_q_jt_injective_sourcesoundcode. A = fs_q_jt_injective_sourcesoundcode * S ((S (jt_i_injective_source)) * B) + (jt_b_injective_source))) /\ (((exists fs_h_jt_injective_sourcesoundscale. fs_h_jt_injective_sourcesoundscale + S (jt_c_injective_source) = S ((S (jt_i_injective_source)) * D)) /\ exists fs_q_jt_injective_sourcesoundscale. C = fs_q_jt_injective_sourcesoundscale * S ((S (jt_i_injective_source)) * D) + (jt_c_injective_source))))) /\ (((forall jt_index_injective_sourcebound. (exists jt_gap_injective_sourceboundindex. jt_gap_injective_sourceboundindex+S (jt_index_injective_sourcebound)=(k)) -> exists jt_value_injective_sourcebound. ((((exists fs_h_jt_injective_sourceboundat. fs_h_jt_injective_sourceboundat + S (jt_value_injective_sourcebound) = S ((S (jt_index_injective_sourcebound)) * jt_c_injective_source)) /\ exists fs_q_jt_injective_sourceboundat. jt_b_injective_source = fs_q_jt_injective_sourceboundat * S ((S (jt_index_injective_sourcebound)) * jt_c_injective_source) + (jt_value_injective_sourcebound))) /\ (exists jt_gap_injective_sourceboundvalue. jt_gap_injective_sourceboundvalue+S (jt_value_injective_sourcebound)=(n)))) /\ (forall jt_divisor_injective_sourceprimitive. (exists jt_factor_injective_sourceprimitivemodulus. (n)=(jt_divisor_injective_sourceprimitive)*jt_factor_injective_sourceprimitivemodulus) -> (forall jt_index_injective_sourceprimitivecoordinates jt_value_injective_sourceprimitivecoordinates. (exists jt_gap_injective_sourceprimitivecoordinatesindex. jt_gap_injective_sourceprimitivecoordinatesindex+S (jt_index_injective_sourceprimitivecoordinates)=(k)) -> (((exists fs_h_jt_injective_sourceprimitivecoordinatesat. fs_h_jt_injective_sourceprimitivecoordinatesat + S (jt_value_injective_sourceprimitivecoordinates) = S ((S (jt_index_injective_sourceprimitivecoordinates)) * jt_c_injective_source)) /\ exists fs_q_jt_injective_sourceprimitivecoordinatesat. jt_b_injective_source = fs_q_jt_injective_sourceprimitivecoordinatesat * S ((S (jt_index_injective_sourceprimitivecoordinates)) * jt_c_injective_source) + (jt_value_injective_sourceprimitivecoordinates))) -> (exists jt_factor_injective_sourceprimitivecoordinatesdivides. (jt_value_injective_sourceprimitivecoordinates)=(jt_divisor_injective_sourceprimitive)*jt_factor_injective_sourceprimitivecoordinatesdivides)) -> jt_divisor_injective_sourceprimitive=1))))) /\ (((forall jt_b_injective_source jt_c_injective_source. (forall jt_index_injective_sourceinputbound. (exists jt_gap_injective_sourceinputboundindex. jt_gap_injective_sourceinputboundindex+S (jt_index_injective_sourceinputbound)=(k)) -> exists jt_value_injective_sourceinputbound. ((((exists fs_h_jt_injective_sourceinputboundat. fs_h_jt_injective_sourceinputboundat + S (jt_value_injective_sourceinputbound) = S ((S (jt_index_injective_sourceinputbound)) * jt_c_injective_source)) /\ exists fs_q_jt_injective_sourceinputboundat. jt_b_injective_source = fs_q_jt_injective_sourceinputboundat * S ((S (jt_index_injective_sourceinputbound)) * jt_c_injective_source) + (jt_value_injective_sourceinputbound))) /\ (exists jt_gap_injective_sourceinputboundvalue. jt_gap_injective_sourceinputboundvalue+S (jt_value_injective_sourceinputbound)=(n)))) -> (forall jt_divisor_injective_sourceinputprimitive. (exists jt_factor_injective_sourceinputprimitivemodulus. (n)=(jt_divisor_injective_sourceinputprimitive)*jt_factor_injective_sourceinputprimitivemodulus) -> (forall jt_index_injective_sourceinputprimitivecoordinates jt_value_injective_sourceinputprimitivecoordinates. (exists jt_gap_injective_sourceinputprimitivecoordinatesindex. jt_gap_injective_sourceinputprimitivecoordinatesindex+S (jt_index_injective_sourceinputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_injective_sourceinputprimitivecoordinatesat. fs_h_jt_injective_sourceinputprimitivecoordinatesat + S (jt_value_injective_sourceinputprimitivecoordinates) = S ((S (jt_index_injective_sourceinputprimitivecoordinates)) * jt_c_injective_source)) /\ exists fs_q_jt_injective_sourceinputprimitivecoordinatesat. jt_b_injective_source = fs_q_jt_injective_sourceinputprimitivecoordinatesat * S ((S (jt_index_injective_sourceinputprimitivecoordinates)) * jt_c_injective_source) + (jt_value_injective_sourceinputprimitivecoordinates))) -> (exists jt_factor_injective_sourceinputprimitivecoordinatesdivides. (jt_value_injective_sourceinputprimitivecoordinates)=(jt_divisor_injective_sourceinputprimitive)*jt_factor_injective_sourceinputprimitivecoordinatesdivides)) -> jt_divisor_injective_sourceinputprimitive=1) -> exists jt_i_injective_source jt_d_injective_source jt_e_injective_source. ((exists jt_gap_injective_sourcecompleteindex. jt_gap_injective_sourcecompleteindex+S (jt_i_injective_source)=(u)) /\ (((((((exists fs_h_jt_injective_sourcecompletecode. fs_h_jt_injective_sourcecompletecode + S (jt_d_injective_source) = S ((S (jt_i_injective_source)) * B)) /\ exists fs_q_jt_injective_sourcecompletecode. A = fs_q_jt_injective_sourcecompletecode * S ((S (jt_i_injective_source)) * B) + (jt_d_injective_source))) /\ (((exists fs_h_jt_injective_sourcecompletescale. fs_h_jt_injective_sourcecompletescale + S (jt_e_injective_source) = S ((S (jt_i_injective_source)) * D)) /\ exists fs_q_jt_injective_sourcecompletescale. C = fs_q_jt_injective_sourcecompletescale * S ((S (jt_i_injective_source)) * D) + (jt_e_injective_source))))) /\ (forall jt_index_injective_sourcerepresented jt_left_injective_sourcerepresented jt_right_injective_sourcerepresented. (exists jt_gap_injective_sourcerepresentedindex. jt_gap_injective_sourcerepresentedindex+S (jt_index_injective_sourcerepresented)=(k)) -> (((exists fs_h_jt_injective_sourcerepresentedleft. fs_h_jt_injective_sourcerepresentedleft + S (jt_left_injective_sourcerepresented) = S ((S (jt_index_injective_sourcerepresented)) * jt_c_injective_source)) /\ exists fs_q_jt_injective_sourcerepresentedleft. jt_b_injective_source = fs_q_jt_injective_sourcerepresentedleft * S ((S (jt_index_injective_sourcerepresented)) * jt_c_injective_source) + (jt_left_injective_sourcerepresented))) -> (((exists fs_h_jt_injective_sourcerepresentedright. fs_h_jt_injective_sourcerepresentedright + S (jt_right_injective_sourcerepresented) = S ((S (jt_index_injective_sourcerepresented)) * jt_e_injective_source)) /\ exists fs_q_jt_injective_sourcerepresentedright. jt_d_injective_source = fs_q_jt_injective_sourcerepresentedright * S ((S (jt_index_injective_sourcerepresented)) * jt_e_injective_source) + (jt_right_injective_sourcerepresented))) -> jt_left_injective_sourcerepresented=jt_right_injective_sourcerepresented))))) /\ (forall jt_i_injective_source jt_h_injective_source jt_b_injective_source jt_c_injective_source jt_d_injective_source jt_e_injective_source. (exists jt_gap_injective_sourcefirstindex. jt_gap_injective_sourcefirstindex+S (jt_i_injective_source)=(u)) -> (exists jt_gap_injective_sourcesecondindex. jt_gap_injective_sourcesecondindex+S (jt_h_injective_source)=(u)) -> (((((exists fs_h_jt_injective_sourcefirstcode. fs_h_jt_injective_sourcefirstcode + S (jt_b_injective_source) = S ((S (jt_i_injective_source)) * B)) /\ exists fs_q_jt_injective_sourcefirstcode. A = fs_q_jt_injective_sourcefirstcode * S ((S (jt_i_injective_source)) * B) + (jt_b_injective_source))) /\ (((exists fs_h_jt_injective_sourcefirstscale. fs_h_jt_injective_sourcefirstscale + S (jt_c_injective_source) = S ((S (jt_i_injective_source)) * D)) /\ exists fs_q_jt_injective_sourcefirstscale. C = fs_q_jt_injective_sourcefirstscale * S ((S (jt_i_injective_source)) * D) + (jt_c_injective_source))))) -> (((((exists fs_h_jt_injective_sourcesecondcode. fs_h_jt_injective_sourcesecondcode + S (jt_d_injective_source) = S ((S (jt_h_injective_source)) * B)) /\ exists fs_q_jt_injective_sourcesecondcode. A = fs_q_jt_injective_sourcesecondcode * S ((S (jt_h_injective_source)) * B) + (jt_d_injective_source))) /\ (((exists fs_h_jt_injective_sourcesecondscale. fs_h_jt_injective_sourcesecondscale + S (jt_e_injective_source) = S ((S (jt_h_injective_source)) * D)) /\ exists fs_q_jt_injective_sourcesecondscale. C = fs_q_jt_injective_sourcesecondscale * S ((S (jt_h_injective_source)) * D) + (jt_e_injective_source))))) -> (forall jt_index_injective_sourcesame jt_left_injective_sourcesame jt_right_injective_sourcesame. (exists jt_gap_injective_sourcesameindex. jt_gap_injective_sourcesameindex+S (jt_index_injective_sourcesame)=(k)) -> (((exists fs_h_jt_injective_sourcesameleft. fs_h_jt_injective_sourcesameleft + S (jt_left_injective_sourcesame) = S ((S (jt_index_injective_sourcesame)) * jt_c_injective_source)) /\ exists fs_q_jt_injective_sourcesameleft. jt_b_injective_source = fs_q_jt_injective_sourcesameleft * S ((S (jt_index_injective_sourcesame)) * jt_c_injective_source) + (jt_left_injective_sourcesame))) -> (((exists fs_h_jt_injective_sourcesameright. fs_h_jt_injective_sourcesameright + S (jt_right_injective_sourcesame) = S ((S (jt_index_injective_sourcesame)) * jt_e_injective_source)) /\ exists fs_q_jt_injective_sourcesameright. jt_d_injective_source = fs_q_jt_injective_sourcesameright * S ((S (jt_index_injective_sourcesame)) * jt_e_injective_source) + (jt_right_injective_sourcesame))) -> jt_left_injective_sourcesame=jt_right_injective_sourcesame) -> jt_i_injective_source=jt_h_injective_source))))) -> (((forall jt_i_injective_target. (exists jt_gap_injective_targetsoundindex. jt_gap_injective_targetsoundindex+S (jt_i_injective_target)=(v)) -> exists jt_b_injective_target jt_c_injective_target. ((((((exists fs_h_jt_injective_targetsoundcode. fs_h_jt_injective_targetsoundcode + S (jt_b_injective_target) = S ((S (jt_i_injective_target)) * F)) /\ exists fs_q_jt_injective_targetsoundcode. E = fs_q_jt_injective_targetsoundcode * S ((S (jt_i_injective_target)) * F) + (jt_b_injective_target))) /\ (((exists fs_h_jt_injective_targetsoundscale. fs_h_jt_injective_targetsoundscale + S (jt_c_injective_target) = S ((S (jt_i_injective_target)) * H)) /\ exists fs_q_jt_injective_targetsoundscale. G = fs_q_jt_injective_targetsoundscale * S ((S (jt_i_injective_target)) * H) + (jt_c_injective_target))))) /\ (((forall jt_index_injective_targetbound. (exists jt_gap_injective_targetboundindex. jt_gap_injective_targetboundindex+S (jt_index_injective_targetbound)=(k)) -> exists jt_value_injective_targetbound. ((((exists fs_h_jt_injective_targetboundat. fs_h_jt_injective_targetboundat + S (jt_value_injective_targetbound) = S ((S (jt_index_injective_targetbound)) * jt_c_injective_target)) /\ exists fs_q_jt_injective_targetboundat. jt_b_injective_target = fs_q_jt_injective_targetboundat * S ((S (jt_index_injective_targetbound)) * jt_c_injective_target) + (jt_value_injective_targetbound))) /\ (exists jt_gap_injective_targetboundvalue. jt_gap_injective_targetboundvalue+S (jt_value_injective_targetbound)=(n)))) /\ (forall jt_divisor_injective_targetprimitive. (exists jt_factor_injective_targetprimitivemodulus. (n)=(jt_divisor_injective_targetprimitive)*jt_factor_injective_targetprimitivemodulus) -> (forall jt_index_injective_targetprimitivecoordinates jt_value_injective_targetprimitivecoordinates. (exists jt_gap_injective_targetprimitivecoordinatesindex. jt_gap_injective_targetprimitivecoordinatesindex+S (jt_index_injective_targetprimitivecoordinates)=(k)) -> (((exists fs_h_jt_injective_targetprimitivecoordinatesat. fs_h_jt_injective_targetprimitivecoordinatesat + S (jt_value_injective_targetprimitivecoordinates) = S ((S (jt_index_injective_targetprimitivecoordinates)) * jt_c_injective_target)) /\ exists fs_q_jt_injective_targetprimitivecoordinatesat. jt_b_injective_target = fs_q_jt_injective_targetprimitivecoordinatesat * S ((S (jt_index_injective_targetprimitivecoordinates)) * jt_c_injective_target) + (jt_value_injective_targetprimitivecoordinates))) -> (exists jt_factor_injective_targetprimitivecoordinatesdivides. (jt_value_injective_targetprimitivecoordinates)=(jt_divisor_injective_targetprimitive)*jt_factor_injective_targetprimitivecoordinatesdivides)) -> jt_divisor_injective_targetprimitive=1))))) /\ (((forall jt_b_injective_target jt_c_injective_target. (forall jt_index_injective_targetinputbound. (exists jt_gap_injective_targetinputboundindex. jt_gap_injective_targetinputboundindex+S (jt_index_injective_targetinputbound)=(k)) -> exists jt_value_injective_targetinputbound. ((((exists fs_h_jt_injective_targetinputboundat. fs_h_jt_injective_targetinputboundat + S (jt_value_injective_targetinputbound) = S ((S (jt_index_injective_targetinputbound)) * jt_c_injective_target)) /\ exists fs_q_jt_injective_targetinputboundat. jt_b_injective_target = fs_q_jt_injective_targetinputboundat * S ((S (jt_index_injective_targetinputbound)) * jt_c_injective_target) + (jt_value_injective_targetinputbound))) /\ (exists jt_gap_injective_targetinputboundvalue. jt_gap_injective_targetinputboundvalue+S (jt_value_injective_targetinputbound)=(n)))) -> (forall jt_divisor_injective_targetinputprimitive. (exists jt_factor_injective_targetinputprimitivemodulus. (n)=(jt_divisor_injective_targetinputprimitive)*jt_factor_injective_targetinputprimitivemodulus) -> (forall jt_index_injective_targetinputprimitivecoordinates jt_value_injective_targetinputprimitivecoordinates. (exists jt_gap_injective_targetinputprimitivecoordinatesindex. jt_gap_injective_targetinputprimitivecoordinatesindex+S (jt_index_injective_targetinputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_injective_targetinputprimitivecoordinatesat. fs_h_jt_injective_targetinputprimitivecoordinatesat + S (jt_value_injective_targetinputprimitivecoordinates) = S ((S (jt_index_injective_targetinputprimitivecoordinates)) * jt_c_injective_target)) /\ exists fs_q_jt_injective_targetinputprimitivecoordinatesat. jt_b_injective_target = fs_q_jt_injective_targetinputprimitivecoordinatesat * S ((S (jt_index_injective_targetinputprimitivecoordinates)) * jt_c_injective_target) + (jt_value_injective_targetinputprimitivecoordinates))) -> (exists jt_factor_injective_targetinputprimitivecoordinatesdivides. (jt_value_injective_targetinputprimitivecoordinates)=(jt_divisor_injective_targetinputprimitive)*jt_factor_injective_targetinputprimitivecoordinatesdivides)) -> jt_divisor_injective_targetinputprimitive=1) -> exists jt_i_injective_target jt_d_injective_target jt_e_injective_target. ((exists jt_gap_injective_targetcompleteindex. jt_gap_injective_targetcompleteindex+S (jt_i_injective_target)=(v)) /\ (((((((exists fs_h_jt_injective_targetcompletecode. fs_h_jt_injective_targetcompletecode + S (jt_d_injective_target) = S ((S (jt_i_injective_target)) * F)) /\ exists fs_q_jt_injective_targetcompletecode. E = fs_q_jt_injective_targetcompletecode * S ((S (jt_i_injective_target)) * F) + (jt_d_injective_target))) /\ (((exists fs_h_jt_injective_targetcompletescale. fs_h_jt_injective_targetcompletescale + S (jt_e_injective_target) = S ((S (jt_i_injective_target)) * H)) /\ exists fs_q_jt_injective_targetcompletescale. G = fs_q_jt_injective_targetcompletescale * S ((S (jt_i_injective_target)) * H) + (jt_e_injective_target))))) /\ (forall jt_index_injective_targetrepresented jt_left_injective_targetrepresented jt_right_injective_targetrepresented. (exists jt_gap_injective_targetrepresentedindex. jt_gap_injective_targetrepresentedindex+S (jt_index_injective_targetrepresented)=(k)) -> (((exists fs_h_jt_injective_targetrepresentedleft. fs_h_jt_injective_targetrepresentedleft + S (jt_left_injective_targetrepresented) = S ((S (jt_index_injective_targetrepresented)) * jt_c_injective_target)) /\ exists fs_q_jt_injective_targetrepresentedleft. jt_b_injective_target = fs_q_jt_injective_targetrepresentedleft * S ((S (jt_index_injective_targetrepresented)) * jt_c_injective_target) + (jt_left_injective_targetrepresented))) -> (((exists fs_h_jt_injective_targetrepresentedright. fs_h_jt_injective_targetrepresentedright + S (jt_right_injective_targetrepresented) = S ((S (jt_index_injective_targetrepresented)) * jt_e_injective_target)) /\ exists fs_q_jt_injective_targetrepresentedright. jt_d_injective_target = fs_q_jt_injective_targetrepresentedright * S ((S (jt_index_injective_targetrepresented)) * jt_e_injective_target) + (jt_right_injective_targetrepresented))) -> jt_left_injective_targetrepresented=jt_right_injective_targetrepresented))))) /\ (forall jt_i_injective_target jt_h_injective_target jt_b_injective_target jt_c_injective_target jt_d_injective_target jt_e_injective_target. (exists jt_gap_injective_targetfirstindex. jt_gap_injective_targetfirstindex+S (jt_i_injective_target)=(v)) -> (exists jt_gap_injective_targetsecondindex. jt_gap_injective_targetsecondindex+S (jt_h_injective_target)=(v)) -> (((((exists fs_h_jt_injective_targetfirstcode. fs_h_jt_injective_targetfirstcode + S (jt_b_injective_target) = S ((S (jt_i_injective_target)) * F)) /\ exists fs_q_jt_injective_targetfirstcode. E = fs_q_jt_injective_targetfirstcode * S ((S (jt_i_injective_target)) * F) + (jt_b_injective_target))) /\ (((exists fs_h_jt_injective_targetfirstscale. fs_h_jt_injective_targetfirstscale + S (jt_c_injective_target) = S ((S (jt_i_injective_target)) * H)) /\ exists fs_q_jt_injective_targetfirstscale. G = fs_q_jt_injective_targetfirstscale * S ((S (jt_i_injective_target)) * H) + (jt_c_injective_target))))) -> (((((exists fs_h_jt_injective_targetsecondcode. fs_h_jt_injective_targetsecondcode + S (jt_d_injective_target) = S ((S (jt_h_injective_target)) * F)) /\ exists fs_q_jt_injective_targetsecondcode. E = fs_q_jt_injective_targetsecondcode * S ((S (jt_h_injective_target)) * F) + (jt_d_injective_target))) /\ (((exists fs_h_jt_injective_targetsecondscale. fs_h_jt_injective_targetsecondscale + S (jt_e_injective_target) = S ((S (jt_h_injective_target)) * H)) /\ exists fs_q_jt_injective_targetsecondscale. G = fs_q_jt_injective_targetsecondscale * S ((S (jt_h_injective_target)) * H) + (jt_e_injective_target))))) -> (forall jt_index_injective_targetsame jt_left_injective_targetsame jt_right_injective_targetsame. (exists jt_gap_injective_targetsameindex. jt_gap_injective_targetsameindex+S (jt_index_injective_targetsame)=(k)) -> (((exists fs_h_jt_injective_targetsameleft. fs_h_jt_injective_targetsameleft + S (jt_left_injective_targetsame) = S ((S (jt_index_injective_targetsame)) * jt_c_injective_target)) /\ exists fs_q_jt_injective_targetsameleft. jt_b_injective_target = fs_q_jt_injective_targetsameleft * S ((S (jt_index_injective_targetsame)) * jt_c_injective_target) + (jt_left_injective_targetsame))) -> (((exists fs_h_jt_injective_targetsameright. fs_h_jt_injective_targetsameright + S (jt_right_injective_targetsame) = S ((S (jt_index_injective_targetsame)) * jt_e_injective_target)) /\ exists fs_q_jt_injective_targetsameright. jt_d_injective_target = fs_q_jt_injective_targetsameright * S ((S (jt_index_injective_targetsame)) * jt_e_injective_target) + (jt_right_injective_targetsame))) -> jt_left_injective_targetsame=jt_right_injective_targetsame) -> jt_i_injective_target=jt_h_injective_target))))) -> (forall jt_index_injective_map. (exists jt_gap_injective_mapindex. jt_gap_injective_mapindex+S (jt_index_injective_map)=(u)) -> exists jt_image_injective_map. ((((exists fs_h_jt_injective_mapat. fs_h_jt_injective_mapat + S (jt_image_injective_map) = S ((S (jt_index_injective_map)) * W)) /\ exists fs_q_jt_injective_mapat. Z = fs_q_jt_injective_mapat * S ((S (jt_index_injective_map)) * W) + (jt_image_injective_map))) /\ (((exists jt_gap_injective_mapbound. jt_gap_injective_mapbound+S (jt_image_injective_map)=(v)) /\ (forall jt_b_injective_mapmatch jt_c_injective_mapmatch jt_d_injective_mapmatch jt_e_injective_mapmatch. (((((exists fs_h_jt_injective_mapmatchleftcode. fs_h_jt_injective_mapmatchleftcode + S (jt_b_injective_mapmatch) = S ((S (jt_index_injective_map)) * B)) /\ exists fs_q_jt_injective_mapmatchleftcode. A = fs_q_jt_injective_mapmatchleftcode * S ((S (jt_index_injective_map)) * B) + (jt_b_injective_mapmatch))) /\ (((exists fs_h_jt_injective_mapmatchleftscale. fs_h_jt_injective_mapmatchleftscale + S (jt_c_injective_mapmatch) = S ((S (jt_index_injective_map)) * D)) /\ exists fs_q_jt_injective_mapmatchleftscale. C = fs_q_jt_injective_mapmatchleftscale * S ((S (jt_index_injective_map)) * D) + (jt_c_injective_mapmatch))))) -> (((((exists fs_h_jt_injective_mapmatchrightcode. fs_h_jt_injective_mapmatchrightcode + S (jt_d_injective_mapmatch) = S ((S (jt_image_injective_map)) * F)) /\ exists fs_q_jt_injective_mapmatchrightcode. E = fs_q_jt_injective_mapmatchrightcode * S ((S (jt_image_injective_map)) * F) + (jt_d_injective_mapmatch))) /\ (((exists fs_h_jt_injective_mapmatchrightscale. fs_h_jt_injective_mapmatchrightscale + S (jt_e_injective_mapmatch) = S ((S (jt_image_injective_map)) * H)) /\ exists fs_q_jt_injective_mapmatchrightscale. G = fs_q_jt_injective_mapmatchrightscale * S ((S (jt_image_injective_map)) * H) + (jt_e_injective_mapmatch))))) -> (forall jt_index_injective_mapmatchequal jt_left_injective_mapmatchequal jt_right_injective_mapmatchequal. (exists jt_gap_injective_mapmatchequalindex. jt_gap_injective_mapmatchequalindex+S (jt_index_injective_mapmatchequal)=(k)) -> (((exists fs_h_jt_injective_mapmatchequalleft. fs_h_jt_injective_mapmatchequalleft + S (jt_left_injective_mapmatchequal) = S ((S (jt_index_injective_mapmatchequal)) * jt_c_injective_mapmatch)) /\ exists fs_q_jt_injective_mapmatchequalleft. jt_b_injective_mapmatch = fs_q_jt_injective_mapmatchequalleft * S ((S (jt_index_injective_mapmatchequal)) * jt_c_injective_mapmatch) + (jt_left_injective_mapmatchequal))) -> (((exists fs_h_jt_injective_mapmatchequalright. fs_h_jt_injective_mapmatchequalright + S (jt_right_injective_mapmatchequal) = S ((S (jt_index_injective_mapmatchequal)) * jt_e_injective_mapmatch)) /\ exists fs_q_jt_injective_mapmatchequalright. jt_d_injective_mapmatch = fs_q_jt_injective_mapmatchequalright * S ((S (jt_index_injective_mapmatchequal)) * jt_e_injective_mapmatch) + (jt_right_injective_mapmatchequal))) -> jt_left_injective_mapmatchequal=jt_right_injective_mapmatchequal)))))) -> (((forall jt_index_injective_bound. (exists jt_gap_injective_boundindex. jt_gap_injective_boundindex+S (jt_index_injective_bound)=(u)) -> exists jt_value_injective_bound. ((((exists fs_h_jt_injective_boundat. fs_h_jt_injective_boundat + S (jt_value_injective_bound) = S ((S (jt_index_injective_bound)) * W)) /\ exists fs_q_jt_injective_boundat. Z = fs_q_jt_injective_boundat * S ((S (jt_index_injective_bound)) * W) + (jt_value_injective_bound))) /\ (exists jt_gap_injective_boundvalue. jt_gap_injective_boundvalue+S (jt_value_injective_bound)=(v)))) /\ (forall fp_i_jordan_injective fp_j_jordan_injective fp_value_jordan_injective. (exists fp_gap_jordan_injective_i. fp_gap_jordan_injective_i + S fp_i_jordan_injective = u) -> (exists fp_gap_jordan_injective_j. fp_gap_jordan_injective_j + S fp_j_jordan_injective = u) -> (((exists ff_h_jordan_injective_left. ff_h_jordan_injective_left + S (fp_value_jordan_injective) = S ((S (fp_i_jordan_injective)) * W)) /\ exists ff_q_jordan_injective_left. Z = ff_q_jordan_injective_left * S ((S (fp_i_jordan_injective)) * W) + (fp_value_jordan_injective))) -> (((exists ff_h_jordan_injective_right. ff_h_jordan_injective_right + S (fp_value_jordan_injective) = S ((S (fp_j_jordan_injective)) * W)) /\ exists ff_q_jordan_injective_right. Z = ff_q_jordan_injective_right * S ((S (fp_j_jordan_injective)) * W) + (fp_value_jordan_injective))) -> fp_i_jordan_injective = fp_j_jordan_injective)))Constructive proof overview
Generated structural guide
Equal decoded map indices force coordinate-equal source tuples and hence equal source positions, not equal raw tuple codes.
The unchanged tactic script uses 4 declared prerequisites and contains 161 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
JT0051 jordan_enumeration_index_map_entry JT0002 jordan_tuple_equal_symm JT0003 jordan_tuple_equal_trans JT003F jordan_enumeration_distinctDirect 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 (4)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–17
03Separate the logical casesL18–18
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
split
04Fix variables and assumptionsL19–20
05Establish hvL21–24
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hm.
06Separate the logical casesL25–27
07Construct an explicit witnessL28–28
Supply the displayed value, then prove that it has the required property.
- L28
exists x
08Separate the logical casesL29–29
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L29
split
09Use earlier factsL30–31
10Fix variables and assumptionsL32–38
11Establish hmiL39–48
Establish this local claim before using it. It is not an additional assumption.
- L39
have hmi : Lt(r,v) ∧ (∀ x. ∀ y. ∀ z. ∀ n. BetaAt(A,B,i,x) ∧ BetaAt(C,D,i,y) → BetaAt(E,F,r,z) ∧ BetaAt(G,H,r,n) → IntegerVectorZero(x,y,z,n,k))Definitions: IntegerVectorZeroLtBetaAt - L40
specialize jordan_enumeration_index_map_entry (k) - L41
specialize jordan_enumeration_index_map_entry (A) - L42
specialize jordan_enumeration_index_map_entry (B) - L43
specialize jordan_enumeration_index_map_entry (C) - L44
specialize jordan_enumeration_index_map_entry (D) - L45
specialize jordan_enumeration_index_map_entry (E) - L46
specialize jordan_enumeration_index_map_entry (F) - L47
specialize jordan_enumeration_index_map_entry (G) - L48
specialize jordan_enumeration_index_map_entry (H)
12Use earlier factsL49–58
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
specialize jordan_enumeration_index_map_entry (Z) - L50
specialize jordan_enumeration_index_map_entry (W) - L51
specialize jordan_enumeration_index_map_entry (u) - L52
specialize jordan_enumeration_index_map_entry (v) - L53
specialize jordan_enumeration_index_map_entry (i) - L54
specialize jordan_enumeration_index_map_entry (r) - L55
apply jordan_enumeration_index_map_entry - L56
exact hm - L57
exact hi - L58
exact hat
13Establish hmjL59–68
Establish this local claim before using it. It is not an additional assumption.
- L59
have hmj : Lt(r,v) ∧ (∀ x. ∀ y. ∀ z. ∀ n. BetaAt(A,B,j,x) ∧ BetaAt(C,D,j,y) → BetaAt(E,F,r,z) ∧ BetaAt(G,H,r,n) → IntegerVectorZero(x,y,z,n,k))Definitions: IntegerVectorZeroLtBetaAt - L60
specialize jordan_enumeration_index_map_entry (k) - L61
specialize jordan_enumeration_index_map_entry (A) - L62
specialize jordan_enumeration_index_map_entry (B) - L63
specialize jordan_enumeration_index_map_entry (C) - L64
specialize jordan_enumeration_index_map_entry (D) - L65
specialize jordan_enumeration_index_map_entry (E) - L66
specialize jordan_enumeration_index_map_entry (F) - L67
specialize jordan_enumeration_index_map_entry (G) - L68
specialize jordan_enumeration_index_map_entry (H)
14Use earlier factsL69–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L69
specialize jordan_enumeration_index_map_entry (Z) - L70
specialize jordan_enumeration_index_map_entry (W) - L71
specialize jordan_enumeration_index_map_entry (u) - L72
specialize jordan_enumeration_index_map_entry (v) - L73
specialize jordan_enumeration_index_map_entry (j) - L74
specialize jordan_enumeration_index_map_entry (r) - L75
apply jordan_enumeration_index_map_entry - L76
exact hm - L77
exact hj - L78
exact hbt
15Separate the logical casesL79–82
16Establish htL83–86
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hr left.
- L83
have ht : ∃ b. ∃ c. BetaAt(E,F,r,b) ∧ BetaAt(G,H,r,c) ∧ (BetaPrefixInto(b,c,k,n) ∧ JordanPrimitiveTuple(n,b,c,k))Definitions: BetaPrefixIntoJordanPrimitiveTupleBetaAt - L84
specialize hr_left (r) - L85
apply hr_left - L86
exact hmi_left
17Separate the logical casesL87–90
18Establish haL91–94
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hl left.
- L91
have ha : ∃ b. ∃ c. BetaAt(A,B,i,b) ∧ BetaAt(C,D,i,c) ∧ (BetaPrefixInto(b,c,k,n) ∧ JordanPrimitiveTuple(n,b,c,k))Definitions: BetaPrefixIntoJordanPrimitiveTupleBetaAt - L92
specialize hl_left (i) - L93
apply hl_left - L94
exact hi
19Separate the logical casesL95–98
20Establish hbL99–102
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hl left.
- L99
have hb : ∃ b. ∃ c. BetaAt(A,B,j,b) ∧ BetaAt(C,D,j,c) ∧ (BetaPrefixInto(b,c,k,n) ∧ JordanPrimitiveTuple(n,b,c,k))Definitions: BetaPrefixIntoJordanPrimitiveTupleBetaAt - L100
specialize hl_left (j) - L101
apply hl_left - L102
exact hj
21Separate the logical casesL103–106
22Establish heaL107–114
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hmi right.
23Establish hebL115–122
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hmj right.
24Establish hrevL123–130
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan tuple equal symm.
- L123
have hrev : IntegerVectorZero(x,x1,x4,x5,k)Definitions: IntegerVectorZero - L124
specialize jordan_tuple_equal_symm (x4) - L125
specialize jordan_tuple_equal_symm (x5) - L126
specialize jordan_tuple_equal_symm (x) - L127
specialize jordan_tuple_equal_symm (x1) - L128
specialize jordan_tuple_equal_symm (k) - L129
apply jordan_tuple_equal_symm - L130
exact heb
25Establish heqL131–140
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan tuple equal trans.
- L131
have heq : IntegerVectorZero(x2,x3,x4,x5,k)Definitions: IntegerVectorZero - L132
specialize jordan_tuple_equal_trans (x2) - L133
specialize jordan_tuple_equal_trans (x3) - L134
specialize jordan_tuple_equal_trans (x) - L135
specialize jordan_tuple_equal_trans (x1) - L136
specialize jordan_tuple_equal_trans (x4) - L137
specialize jordan_tuple_equal_trans (x5) - L138
specialize jordan_tuple_equal_trans (k) - L139
apply jordan_tuple_equal_trans - L140
exact hea
26Use earlier factsL141–150
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L141
exact hrev - L142
specialize jordan_enumeration_distinct (k) - L143
specialize jordan_enumeration_distinct (n) - L144
specialize jordan_enumeration_distinct (A) - L145
specialize jordan_enumeration_distinct (B) - L146
specialize jordan_enumeration_distinct (C) - L147
specialize jordan_enumeration_distinct (D) - L148
specialize jordan_enumeration_distinct (u) - L149
specialize jordan_enumeration_distinct (i) - L150
specialize jordan_enumeration_distinct (j)
27Use earlier factsL151–160
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L151
specialize jordan_enumeration_distinct (x2) - L152
specialize jordan_enumeration_distinct (x3) - L153
specialize jordan_enumeration_distinct (x4) - L154
specialize jordan_enumeration_distinct (x5) - L155
apply jordan_enumeration_distinct - L156
exact hl - L157
exact hi - L158
exact hj - L159
exact ha_witness_witness_left - L160
exact hb_witness_witness_left
28Use earlier factsL161–161
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L161
exact heq
Original exact command ledger · 161 lines
- 0001
intro k - 0002
intro n - 0003
intro A - 0004
intro B - 0005
intro C - 0006
intro D - 0007
intro u - 0008
intro E - 0009
intro F - 0010
intro G - 0011
intro H - 0012
intro v - 0013
intro Z - 0014
intro W - 0015
intro hl - 0016
intro hr - 0017
intro hm - 0018
split - 0019
intro i - 0020
intro hi - 0021
have hv : exists j. ((((exists fs_h_jt_bounded_mapat. fs_h_jt_bounded_mapat + S (j) = S ((S (i)) * W)) /\ exists fs_q_jt_bounded_mapat. Z = fs_q_jt_bounded_mapat * S ((S (i)) * W) + (j))) /\ (((exists jt_gap_bounded_mapbound. jt_gap_bounded_mapbound+S (j)=(v)) /\ (forall jt_b_bounded_mapmatch jt_c_bounded_mapmatch jt_d_bounded_mapmatch jt_e_bounded_mapmatch. (((((exists fs_h_jt_bounded_mapmatchleftcode. fs_h_jt_bounded_mapmatchleftcode + S (jt_b_bounded_mapmatch) = S ((S (i)) * B)) /\ exists fs_q_jt_bounded_mapmatchleftcode. A = fs_q_jt_bounded_mapmatchleftcode * S ((S (i)) * B) + (jt_b_bounded_mapmatch))) /\ (((exists fs_h_jt_bounded_mapmatchleftscale. fs_h_jt_bounded_mapmatchleftscale + S (jt_c_bounded_mapmatch) = S ((S (i)) * D)) /\ exists fs_q_jt_bounded_mapmatchleftscale. C = fs_q_jt_bounded_mapmatchleftscale * S ((S (i)) * D) + (jt_c_bounded_mapmatch))))) -> (((((exists fs_h_jt_bounded_mapmatchrightcode. fs_h_jt_bounded_mapmatchrightcode + S (jt_d_bounded_mapmatch) = S ((S (j)) * F)) /\ exists fs_q_jt_bounded_mapmatchrightcode. E = fs_q_jt_bounded_mapmatchrightcode * S ((S (j)) * F) + (jt_d_bounded_mapmatch))) /\ (((exists fs_h_jt_bounded_mapmatchrightscale. fs_h_jt_bounded_mapmatchrightscale + S (jt_e_bounded_mapmatch) = S ((S (j)) * H)) /\ exists fs_q_jt_bounded_mapmatchrightscale. G = fs_q_jt_bounded_mapmatchrightscale * S ((S (j)) * H) + (jt_e_bounded_mapmatch))))) -> (forall jt_index_bounded_mapmatchequal jt_left_bounded_mapmatchequal jt_right_bounded_mapmatchequal. (exists jt_gap_bounded_mapmatchequalindex. jt_gap_bounded_mapmatchequalindex+S (jt_index_bounded_mapmatchequal)=(k)) -> (((exists fs_h_jt_bounded_mapmatchequalleft. fs_h_jt_bounded_mapmatchequalleft + S (jt_left_bounded_mapmatchequal) = S ((S (jt_index_bounded_mapmatchequal)) * jt_c_bounded_mapmatch)) /\ exists fs_q_jt_bounded_mapmatchequalleft. jt_b_bounded_mapmatch = fs_q_jt_bounded_mapmatchequalleft * S ((S (jt_index_bounded_mapmatchequal)) * jt_c_bounded_mapmatch) + (jt_left_bounded_mapmatchequal))) -> (((exists fs_h_jt_bounded_mapmatchequalright. fs_h_jt_bounded_mapmatchequalright + S (jt_right_bounded_mapmatchequal) = S ((S (jt_index_bounded_mapmatchequal)) * jt_e_bounded_mapmatch)) /\ exists fs_q_jt_bounded_mapmatchequalright. jt_d_bounded_mapmatch = fs_q_jt_bounded_mapmatchequalright * S ((S (jt_index_bounded_mapmatchequal)) * jt_e_bounded_mapmatch) + (jt_right_bounded_mapmatchequal))) -> jt_left_bounded_mapmatchequal=jt_right_bounded_mapmatchequal))))) - 0022
specialize hm (i) - 0023
apply hm - 0024
exact hi - 0025
cases hv - 0026
cases hv_witness - 0027
cases hv_witness_right - 0028
exists x - 0029
split - 0030
exact hv_witness_left - 0031
exact hv_witness_right_left - 0032
intro i - 0033
intro j - 0034
intro r - 0035
intro hi - 0036
intro hj - 0037
intro hat - 0038
intro hbt - 0039
have hmi : ((exists jt_gap_hmibound. jt_gap_hmibound+S (r)=(v)) /\ (forall jt_b_hmimatch jt_c_hmimatch jt_d_hmimatch jt_e_hmimatch. (((((exists fs_h_jt_hmimatchleftcode. fs_h_jt_hmimatchleftcode + S (jt_b_hmimatch) = S ((S (i)) * B)) /\ exists fs_q_jt_hmimatchleftcode. A = fs_q_jt_hmimatchleftcode * S ((S (i)) * B) + (jt_b_hmimatch))) /\ (((exists fs_h_jt_hmimatchleftscale. fs_h_jt_hmimatchleftscale + S (jt_c_hmimatch) = S ((S (i)) * D)) /\ exists fs_q_jt_hmimatchleftscale. C = fs_q_jt_hmimatchleftscale * S ((S (i)) * D) + (jt_c_hmimatch))))) -> (((((exists fs_h_jt_hmimatchrightcode. fs_h_jt_hmimatchrightcode + S (jt_d_hmimatch) = S ((S (r)) * F)) /\ exists fs_q_jt_hmimatchrightcode. E = fs_q_jt_hmimatchrightcode * S ((S (r)) * F) + (jt_d_hmimatch))) /\ (((exists fs_h_jt_hmimatchrightscale. fs_h_jt_hmimatchrightscale + S (jt_e_hmimatch) = S ((S (r)) * H)) /\ exists fs_q_jt_hmimatchrightscale. G = fs_q_jt_hmimatchrightscale * S ((S (r)) * H) + (jt_e_hmimatch))))) -> (forall jt_index_hmimatchequal jt_left_hmimatchequal jt_right_hmimatchequal. (exists jt_gap_hmimatchequalindex. jt_gap_hmimatchequalindex+S (jt_index_hmimatchequal)=(k)) -> (((exists fs_h_jt_hmimatchequalleft. fs_h_jt_hmimatchequalleft + S (jt_left_hmimatchequal) = S ((S (jt_index_hmimatchequal)) * jt_c_hmimatch)) /\ exists fs_q_jt_hmimatchequalleft. jt_b_hmimatch = fs_q_jt_hmimatchequalleft * S ((S (jt_index_hmimatchequal)) * jt_c_hmimatch) + (jt_left_hmimatchequal))) -> (((exists fs_h_jt_hmimatchequalright. fs_h_jt_hmimatchequalright + S (jt_right_hmimatchequal) = S ((S (jt_index_hmimatchequal)) * jt_e_hmimatch)) /\ exists fs_q_jt_hmimatchequalright. jt_d_hmimatch = fs_q_jt_hmimatchequalright * S ((S (jt_index_hmimatchequal)) * jt_e_hmimatch) + (jt_right_hmimatchequal))) -> jt_left_hmimatchequal=jt_right_hmimatchequal))) - 0040
specialize jordan_enumeration_index_map_entry (k) - 0041
specialize jordan_enumeration_index_map_entry (A) - 0042
specialize jordan_enumeration_index_map_entry (B) - 0043
specialize jordan_enumeration_index_map_entry (C) - 0044
specialize jordan_enumeration_index_map_entry (D) - 0045
specialize jordan_enumeration_index_map_entry (E) - 0046
specialize jordan_enumeration_index_map_entry (F) - 0047
specialize jordan_enumeration_index_map_entry (G) - 0048
specialize jordan_enumeration_index_map_entry (H) - 0049
specialize jordan_enumeration_index_map_entry (Z) - 0050
specialize jordan_enumeration_index_map_entry (W) - 0051
specialize jordan_enumeration_index_map_entry (u) - 0052
specialize jordan_enumeration_index_map_entry (v) - 0053
specialize jordan_enumeration_index_map_entry (i) - 0054
specialize jordan_enumeration_index_map_entry (r) - 0055
apply jordan_enumeration_index_map_entry - 0056
exact hm - 0057
exact hi - 0058
exact hat - 0059
have hmj : ((exists jt_gap_hmjbound. jt_gap_hmjbound+S (r)=(v)) /\ (forall jt_b_hmjmatch jt_c_hmjmatch jt_d_hmjmatch jt_e_hmjmatch. (((((exists fs_h_jt_hmjmatchleftcode. fs_h_jt_hmjmatchleftcode + S (jt_b_hmjmatch) = S ((S (j)) * B)) /\ exists fs_q_jt_hmjmatchleftcode. A = fs_q_jt_hmjmatchleftcode * S ((S (j)) * B) + (jt_b_hmjmatch))) /\ (((exists fs_h_jt_hmjmatchleftscale. fs_h_jt_hmjmatchleftscale + S (jt_c_hmjmatch) = S ((S (j)) * D)) /\ exists fs_q_jt_hmjmatchleftscale. C = fs_q_jt_hmjmatchleftscale * S ((S (j)) * D) + (jt_c_hmjmatch))))) -> (((((exists fs_h_jt_hmjmatchrightcode. fs_h_jt_hmjmatchrightcode + S (jt_d_hmjmatch) = S ((S (r)) * F)) /\ exists fs_q_jt_hmjmatchrightcode. E = fs_q_jt_hmjmatchrightcode * S ((S (r)) * F) + (jt_d_hmjmatch))) /\ (((exists fs_h_jt_hmjmatchrightscale. fs_h_jt_hmjmatchrightscale + S (jt_e_hmjmatch) = S ((S (r)) * H)) /\ exists fs_q_jt_hmjmatchrightscale. G = fs_q_jt_hmjmatchrightscale * S ((S (r)) * H) + (jt_e_hmjmatch))))) -> (forall jt_index_hmjmatchequal jt_left_hmjmatchequal jt_right_hmjmatchequal. (exists jt_gap_hmjmatchequalindex. jt_gap_hmjmatchequalindex+S (jt_index_hmjmatchequal)=(k)) -> (((exists fs_h_jt_hmjmatchequalleft. fs_h_jt_hmjmatchequalleft + S (jt_left_hmjmatchequal) = S ((S (jt_index_hmjmatchequal)) * jt_c_hmjmatch)) /\ exists fs_q_jt_hmjmatchequalleft. jt_b_hmjmatch = fs_q_jt_hmjmatchequalleft * S ((S (jt_index_hmjmatchequal)) * jt_c_hmjmatch) + (jt_left_hmjmatchequal))) -> (((exists fs_h_jt_hmjmatchequalright. fs_h_jt_hmjmatchequalright + S (jt_right_hmjmatchequal) = S ((S (jt_index_hmjmatchequal)) * jt_e_hmjmatch)) /\ exists fs_q_jt_hmjmatchequalright. jt_d_hmjmatch = fs_q_jt_hmjmatchequalright * S ((S (jt_index_hmjmatchequal)) * jt_e_hmjmatch) + (jt_right_hmjmatchequal))) -> jt_left_hmjmatchequal=jt_right_hmjmatchequal))) - 0060
specialize jordan_enumeration_index_map_entry (k) - 0061
specialize jordan_enumeration_index_map_entry (A) - 0062
specialize jordan_enumeration_index_map_entry (B) - 0063
specialize jordan_enumeration_index_map_entry (C) - 0064
specialize jordan_enumeration_index_map_entry (D) - 0065
specialize jordan_enumeration_index_map_entry (E) - 0066
specialize jordan_enumeration_index_map_entry (F) - 0067
specialize jordan_enumeration_index_map_entry (G) - 0068
specialize jordan_enumeration_index_map_entry (H) - 0069
specialize jordan_enumeration_index_map_entry (Z) - 0070
specialize jordan_enumeration_index_map_entry (W) - 0071
specialize jordan_enumeration_index_map_entry (u) - 0072
specialize jordan_enumeration_index_map_entry (v) - 0073
specialize jordan_enumeration_index_map_entry (j) - 0074
specialize jordan_enumeration_index_map_entry (r) - 0075
apply jordan_enumeration_index_map_entry - 0076
exact hm - 0077
exact hj - 0078
exact hbt - 0079
cases hmi - 0080
cases hmj - 0081
cases hl - 0082
cases hr - 0083
have ht : exists b c. ((((((exists fs_h_jt_target_tupleentrycode. fs_h_jt_target_tupleentrycode + S (b) = S ((S (r)) * F)) /\ exists fs_q_jt_target_tupleentrycode. E = fs_q_jt_target_tupleentrycode * S ((S (r)) * F) + (b))) /\ (((exists fs_h_jt_target_tupleentryscale. fs_h_jt_target_tupleentryscale + S (c) = S ((S (r)) * H)) /\ exists fs_q_jt_target_tupleentryscale. G = fs_q_jt_target_tupleentryscale * S ((S (r)) * H) + (c))))) /\ (((forall jt_index_target_tuplebound. (exists jt_gap_target_tupleboundindex. jt_gap_target_tupleboundindex+S (jt_index_target_tuplebound)=(k)) -> exists jt_value_target_tuplebound. ((((exists fs_h_jt_target_tupleboundat. fs_h_jt_target_tupleboundat + S (jt_value_target_tuplebound) = S ((S (jt_index_target_tuplebound)) * c)) /\ exists fs_q_jt_target_tupleboundat. b = fs_q_jt_target_tupleboundat * S ((S (jt_index_target_tuplebound)) * c) + (jt_value_target_tuplebound))) /\ (exists jt_gap_target_tupleboundvalue. jt_gap_target_tupleboundvalue+S (jt_value_target_tuplebound)=(n)))) /\ (forall jt_divisor_target_tupleprimitive. (exists jt_factor_target_tupleprimitivemodulus. (n)=(jt_divisor_target_tupleprimitive)*jt_factor_target_tupleprimitivemodulus) -> (forall jt_index_target_tupleprimitivecoordinates jt_value_target_tupleprimitivecoordinates. (exists jt_gap_target_tupleprimitivecoordinatesindex. jt_gap_target_tupleprimitivecoordinatesindex+S (jt_index_target_tupleprimitivecoordinates)=(k)) -> (((exists fs_h_jt_target_tupleprimitivecoordinatesat. fs_h_jt_target_tupleprimitivecoordinatesat + S (jt_value_target_tupleprimitivecoordinates) = S ((S (jt_index_target_tupleprimitivecoordinates)) * c)) /\ exists fs_q_jt_target_tupleprimitivecoordinatesat. b = fs_q_jt_target_tupleprimitivecoordinatesat * S ((S (jt_index_target_tupleprimitivecoordinates)) * c) + (jt_value_target_tupleprimitivecoordinates))) -> (exists jt_factor_target_tupleprimitivecoordinatesdivides. (jt_value_target_tupleprimitivecoordinates)=(jt_divisor_target_tupleprimitive)*jt_factor_target_tupleprimitivecoordinatesdivides)) -> jt_divisor_target_tupleprimitive=1)))) - 0084
specialize hr_left (r) - 0085
apply hr_left - 0086
exact hmi_left - 0087
cases ht - 0088
cases ht_witness - 0089
cases ht_witness_witness - 0090
cases ht_witness_witness_right - 0091
have ha : exists b c. ((((((exists fs_h_jt_first_tupleentrycode. fs_h_jt_first_tupleentrycode + S (b) = S ((S (i)) * B)) /\ exists fs_q_jt_first_tupleentrycode. A = fs_q_jt_first_tupleentrycode * S ((S (i)) * B) + (b))) /\ (((exists fs_h_jt_first_tupleentryscale. fs_h_jt_first_tupleentryscale + S (c) = S ((S (i)) * D)) /\ exists fs_q_jt_first_tupleentryscale. C = fs_q_jt_first_tupleentryscale * S ((S (i)) * D) + (c))))) /\ (((forall jt_index_first_tuplebound. (exists jt_gap_first_tupleboundindex. jt_gap_first_tupleboundindex+S (jt_index_first_tuplebound)=(k)) -> exists jt_value_first_tuplebound. ((((exists fs_h_jt_first_tupleboundat. fs_h_jt_first_tupleboundat + S (jt_value_first_tuplebound) = S ((S (jt_index_first_tuplebound)) * c)) /\ exists fs_q_jt_first_tupleboundat. b = fs_q_jt_first_tupleboundat * S ((S (jt_index_first_tuplebound)) * c) + (jt_value_first_tuplebound))) /\ (exists jt_gap_first_tupleboundvalue. jt_gap_first_tupleboundvalue+S (jt_value_first_tuplebound)=(n)))) /\ (forall jt_divisor_first_tupleprimitive. (exists jt_factor_first_tupleprimitivemodulus. (n)=(jt_divisor_first_tupleprimitive)*jt_factor_first_tupleprimitivemodulus) -> (forall jt_index_first_tupleprimitivecoordinates jt_value_first_tupleprimitivecoordinates. (exists jt_gap_first_tupleprimitivecoordinatesindex. jt_gap_first_tupleprimitivecoordinatesindex+S (jt_index_first_tupleprimitivecoordinates)=(k)) -> (((exists fs_h_jt_first_tupleprimitivecoordinatesat. fs_h_jt_first_tupleprimitivecoordinatesat + S (jt_value_first_tupleprimitivecoordinates) = S ((S (jt_index_first_tupleprimitivecoordinates)) * c)) /\ exists fs_q_jt_first_tupleprimitivecoordinatesat. b = fs_q_jt_first_tupleprimitivecoordinatesat * S ((S (jt_index_first_tupleprimitivecoordinates)) * c) + (jt_value_first_tupleprimitivecoordinates))) -> (exists jt_factor_first_tupleprimitivecoordinatesdivides. (jt_value_first_tupleprimitivecoordinates)=(jt_divisor_first_tupleprimitive)*jt_factor_first_tupleprimitivecoordinatesdivides)) -> jt_divisor_first_tupleprimitive=1)))) - 0092
specialize hl_left (i) - 0093
apply hl_left - 0094
exact hi - 0095
cases ha - 0096
cases ha_witness - 0097
cases ha_witness_witness - 0098
cases ha_witness_witness_right - 0099
have hb : exists b c. ((((((exists fs_h_jt_second_tupleentrycode. fs_h_jt_second_tupleentrycode + S (b) = S ((S (j)) * B)) /\ exists fs_q_jt_second_tupleentrycode. A = fs_q_jt_second_tupleentrycode * S ((S (j)) * B) + (b))) /\ (((exists fs_h_jt_second_tupleentryscale. fs_h_jt_second_tupleentryscale + S (c) = S ((S (j)) * D)) /\ exists fs_q_jt_second_tupleentryscale. C = fs_q_jt_second_tupleentryscale * S ((S (j)) * D) + (c))))) /\ (((forall jt_index_second_tuplebound. (exists jt_gap_second_tupleboundindex. jt_gap_second_tupleboundindex+S (jt_index_second_tuplebound)=(k)) -> exists jt_value_second_tuplebound. ((((exists fs_h_jt_second_tupleboundat. fs_h_jt_second_tupleboundat + S (jt_value_second_tuplebound) = S ((S (jt_index_second_tuplebound)) * c)) /\ exists fs_q_jt_second_tupleboundat. b = fs_q_jt_second_tupleboundat * S ((S (jt_index_second_tuplebound)) * c) + (jt_value_second_tuplebound))) /\ (exists jt_gap_second_tupleboundvalue. jt_gap_second_tupleboundvalue+S (jt_value_second_tuplebound)=(n)))) /\ (forall jt_divisor_second_tupleprimitive. (exists jt_factor_second_tupleprimitivemodulus. (n)=(jt_divisor_second_tupleprimitive)*jt_factor_second_tupleprimitivemodulus) -> (forall jt_index_second_tupleprimitivecoordinates jt_value_second_tupleprimitivecoordinates. (exists jt_gap_second_tupleprimitivecoordinatesindex. jt_gap_second_tupleprimitivecoordinatesindex+S (jt_index_second_tupleprimitivecoordinates)=(k)) -> (((exists fs_h_jt_second_tupleprimitivecoordinatesat. fs_h_jt_second_tupleprimitivecoordinatesat + S (jt_value_second_tupleprimitivecoordinates) = S ((S (jt_index_second_tupleprimitivecoordinates)) * c)) /\ exists fs_q_jt_second_tupleprimitivecoordinatesat. b = fs_q_jt_second_tupleprimitivecoordinatesat * S ((S (jt_index_second_tupleprimitivecoordinates)) * c) + (jt_value_second_tupleprimitivecoordinates))) -> (exists jt_factor_second_tupleprimitivecoordinatesdivides. (jt_value_second_tupleprimitivecoordinates)=(jt_divisor_second_tupleprimitive)*jt_factor_second_tupleprimitivecoordinatesdivides)) -> jt_divisor_second_tupleprimitive=1)))) - 0100
specialize hl_left (j) - 0101
apply hl_left - 0102
exact hj - 0103
cases hb - 0104
cases hb_witness - 0105
cases hb_witness_witness - 0106
cases hb_witness_witness_right - 0107
have hea : forall jt_index_first_equal_target jt_left_first_equal_target jt_right_first_equal_target. (exists jt_gap_first_equal_targetindex. jt_gap_first_equal_targetindex+S (jt_index_first_equal_target)=(k)) -> (((exists fs_h_jt_first_equal_targetleft. fs_h_jt_first_equal_targetleft + S (jt_left_first_equal_target) = S ((S (jt_index_first_equal_target)) * x3)) /\ exists fs_q_jt_first_equal_targetleft. x2 = fs_q_jt_first_equal_targetleft * S ((S (jt_index_first_equal_target)) * x3) + (jt_left_first_equal_target))) -> (((exists fs_h_jt_first_equal_targetright. fs_h_jt_first_equal_targetright + S (jt_right_first_equal_target) = S ((S (jt_index_first_equal_target)) * x1)) /\ exists fs_q_jt_first_equal_targetright. x = fs_q_jt_first_equal_targetright * S ((S (jt_index_first_equal_target)) * x1) + (jt_right_first_equal_target))) -> jt_left_first_equal_target=jt_right_first_equal_target - 0108
specialize hmi_right (x2) - 0109
specialize hmi_right (x3) - 0110
specialize hmi_right (x) - 0111
specialize hmi_right (x1) - 0112
apply hmi_right - 0113
exact ha_witness_witness_left - 0114
exact ht_witness_witness_left - 0115
have heb : forall jt_index_second_equal_target jt_left_second_equal_target jt_right_second_equal_target. (exists jt_gap_second_equal_targetindex. jt_gap_second_equal_targetindex+S (jt_index_second_equal_target)=(k)) -> (((exists fs_h_jt_second_equal_targetleft. fs_h_jt_second_equal_targetleft + S (jt_left_second_equal_target) = S ((S (jt_index_second_equal_target)) * x5)) /\ exists fs_q_jt_second_equal_targetleft. x4 = fs_q_jt_second_equal_targetleft * S ((S (jt_index_second_equal_target)) * x5) + (jt_left_second_equal_target))) -> (((exists fs_h_jt_second_equal_targetright. fs_h_jt_second_equal_targetright + S (jt_right_second_equal_target) = S ((S (jt_index_second_equal_target)) * x1)) /\ exists fs_q_jt_second_equal_targetright. x = fs_q_jt_second_equal_targetright * S ((S (jt_index_second_equal_target)) * x1) + (jt_right_second_equal_target))) -> jt_left_second_equal_target=jt_right_second_equal_target - 0116
specialize hmj_right (x4) - 0117
specialize hmj_right (x5) - 0118
specialize hmj_right (x) - 0119
specialize hmj_right (x1) - 0120
apply hmj_right - 0121
exact hb_witness_witness_left - 0122
exact ht_witness_witness_left - 0123
have hrev : forall jt_index_target_equal_second jt_left_target_equal_second jt_right_target_equal_second. (exists jt_gap_target_equal_secondindex. jt_gap_target_equal_secondindex+S (jt_index_target_equal_second)=(k)) -> (((exists fs_h_jt_target_equal_secondleft. fs_h_jt_target_equal_secondleft + S (jt_left_target_equal_second) = S ((S (jt_index_target_equal_second)) * x1)) /\ exists fs_q_jt_target_equal_secondleft. x = fs_q_jt_target_equal_secondleft * S ((S (jt_index_target_equal_second)) * x1) + (jt_left_target_equal_second))) -> (((exists fs_h_jt_target_equal_secondright. fs_h_jt_target_equal_secondright + S (jt_right_target_equal_second) = S ((S (jt_index_target_equal_second)) * x5)) /\ exists fs_q_jt_target_equal_secondright. x4 = fs_q_jt_target_equal_secondright * S ((S (jt_index_target_equal_second)) * x5) + (jt_right_target_equal_second))) -> jt_left_target_equal_second=jt_right_target_equal_second - 0124
specialize jordan_tuple_equal_symm (x4) - 0125
specialize jordan_tuple_equal_symm (x5) - 0126
specialize jordan_tuple_equal_symm (x) - 0127
specialize jordan_tuple_equal_symm (x1) - 0128
specialize jordan_tuple_equal_symm (k) - 0129
apply jordan_tuple_equal_symm - 0130
exact heb - 0131
have heq : forall jt_index_source_equal_source jt_left_source_equal_source jt_right_source_equal_source. (exists jt_gap_source_equal_sourceindex. jt_gap_source_equal_sourceindex+S (jt_index_source_equal_source)=(k)) -> (((exists fs_h_jt_source_equal_sourceleft. fs_h_jt_source_equal_sourceleft + S (jt_left_source_equal_source) = S ((S (jt_index_source_equal_source)) * x3)) /\ exists fs_q_jt_source_equal_sourceleft. x2 = fs_q_jt_source_equal_sourceleft * S ((S (jt_index_source_equal_source)) * x3) + (jt_left_source_equal_source))) -> (((exists fs_h_jt_source_equal_sourceright. fs_h_jt_source_equal_sourceright + S (jt_right_source_equal_source) = S ((S (jt_index_source_equal_source)) * x5)) /\ exists fs_q_jt_source_equal_sourceright. x4 = fs_q_jt_source_equal_sourceright * S ((S (jt_index_source_equal_source)) * x5) + (jt_right_source_equal_source))) -> jt_left_source_equal_source=jt_right_source_equal_source - 0132
specialize jordan_tuple_equal_trans (x2) - 0133
specialize jordan_tuple_equal_trans (x3) - 0134
specialize jordan_tuple_equal_trans (x) - 0135
specialize jordan_tuple_equal_trans (x1) - 0136
specialize jordan_tuple_equal_trans (x4) - 0137
specialize jordan_tuple_equal_trans (x5) - 0138
specialize jordan_tuple_equal_trans (k) - 0139
apply jordan_tuple_equal_trans - 0140
exact hea - 0141
exact hrev - 0142
specialize jordan_enumeration_distinct (k) - 0143
specialize jordan_enumeration_distinct (n) - 0144
specialize jordan_enumeration_distinct (A) - 0145
specialize jordan_enumeration_distinct (B) - 0146
specialize jordan_enumeration_distinct (C) - 0147
specialize jordan_enumeration_distinct (D) - 0148
specialize jordan_enumeration_distinct (u) - 0149
specialize jordan_enumeration_distinct (i) - 0150
specialize jordan_enumeration_distinct (j) - 0151
specialize jordan_enumeration_distinct (x2) - 0152
specialize jordan_enumeration_distinct (x3) - 0153
specialize jordan_enumeration_distinct (x4) - 0154
specialize jordan_enumeration_distinct (x5) - 0155
apply jordan_enumeration_distinct - 0156
exact hl - 0157
exact hi - 0158
exact hj - 0159
exact ha_witness_witness_left - 0160
exact hb_witness_witness_left - 0161
exact heq