JT0049

jordan_product_enumeration_exists

Alpha v35 independently verified · alpha_closed; checked-use authorized; not Stable

Construct an actual product enumeration; no count-uniqueness or multiplicativity premise is used.

Exact expanded first-order arithmetic statement

forall m n k A B C D u E F G H v. ~(m=0) -> ~(n=0) -> (forall jt_divisor_mulenumcop. (exists jt_factor_mulenumcopa. (m)=(jt_divisor_mulenumcop)*jt_factor_mulenumcopa) -> (exists jt_factor_mulenumcopb. (n)=(jt_divisor_mulenumcop)*jt_factor_mulenumcopb) -> jt_divisor_mulenumcop=1) -> (((forall jt_i_mulenumleft. (exists jt_gap_mulenumleftsoundindex. jt_gap_mulenumleftsoundindex+S (jt_i_mulenumleft)=(u)) -> exists jt_b_mulenumleft jt_c_mulenumleft. ((((((exists fs_h_jt_mulenumleftsoundcode. fs_h_jt_mulenumleftsoundcode + S (jt_b_mulenumleft) = S ((S (jt_i_mulenumleft)) * B)) /\ exists fs_q_jt_mulenumleftsoundcode. A = fs_q_jt_mulenumleftsoundcode * S ((S (jt_i_mulenumleft)) * B) + (jt_b_mulenumleft))) /\ (((exists fs_h_jt_mulenumleftsoundscale. fs_h_jt_mulenumleftsoundscale + S (jt_c_mulenumleft) = S ((S (jt_i_mulenumleft)) * D)) /\ exists fs_q_jt_mulenumleftsoundscale. C = fs_q_jt_mulenumleftsoundscale * S ((S (jt_i_mulenumleft)) * D) + (jt_c_mulenumleft))))) /\ (((forall jt_index_mulenumleftbound. (exists jt_gap_mulenumleftboundindex. jt_gap_mulenumleftboundindex+S (jt_index_mulenumleftbound)=(k)) -> exists jt_value_mulenumleftbound. ((((exists fs_h_jt_mulenumleftboundat. fs_h_jt_mulenumleftboundat + S (jt_value_mulenumleftbound) = S ((S (jt_index_mulenumleftbound)) * jt_c_mulenumleft)) /\ exists fs_q_jt_mulenumleftboundat. jt_b_mulenumleft = fs_q_jt_mulenumleftboundat * S ((S (jt_index_mulenumleftbound)) * jt_c_mulenumleft) + (jt_value_mulenumleftbound))) /\ (exists jt_gap_mulenumleftboundvalue. jt_gap_mulenumleftboundvalue+S (jt_value_mulenumleftbound)=(m)))) /\ (forall jt_divisor_mulenumleftprimitive. (exists jt_factor_mulenumleftprimitivemodulus. (m)=(jt_divisor_mulenumleftprimitive)*jt_factor_mulenumleftprimitivemodulus) -> (forall jt_index_mulenumleftprimitivecoordinates jt_value_mulenumleftprimitivecoordinates. (exists jt_gap_mulenumleftprimitivecoordinatesindex. jt_gap_mulenumleftprimitivecoordinatesindex+S (jt_index_mulenumleftprimitivecoordinates)=(k)) -> (((exists fs_h_jt_mulenumleftprimitivecoordinatesat. fs_h_jt_mulenumleftprimitivecoordinatesat + S (jt_value_mulenumleftprimitivecoordinates) = S ((S (jt_index_mulenumleftprimitivecoordinates)) * jt_c_mulenumleft)) /\ exists fs_q_jt_mulenumleftprimitivecoordinatesat. jt_b_mulenumleft = fs_q_jt_mulenumleftprimitivecoordinatesat * S ((S (jt_index_mulenumleftprimitivecoordinates)) * jt_c_mulenumleft) + (jt_value_mulenumleftprimitivecoordinates))) -> (exists jt_factor_mulenumleftprimitivecoordinatesdivides. (jt_value_mulenumleftprimitivecoordinates)=(jt_divisor_mulenumleftprimitive)*jt_factor_mulenumleftprimitivecoordinatesdivides)) -> jt_divisor_mulenumleftprimitive=1))))) /\ (((forall jt_b_mulenumleft jt_c_mulenumleft. (forall jt_index_mulenumleftinputbound. (exists jt_gap_mulenumleftinputboundindex. jt_gap_mulenumleftinputboundindex+S (jt_index_mulenumleftinputbound)=(k)) -> exists jt_value_mulenumleftinputbound. ((((exists fs_h_jt_mulenumleftinputboundat. fs_h_jt_mulenumleftinputboundat + S (jt_value_mulenumleftinputbound) = S ((S (jt_index_mulenumleftinputbound)) * jt_c_mulenumleft)) /\ exists fs_q_jt_mulenumleftinputboundat. jt_b_mulenumleft = fs_q_jt_mulenumleftinputboundat * S ((S (jt_index_mulenumleftinputbound)) * jt_c_mulenumleft) + (jt_value_mulenumleftinputbound))) /\ (exists jt_gap_mulenumleftinputboundvalue. jt_gap_mulenumleftinputboundvalue+S (jt_value_mulenumleftinputbound)=(m)))) -> (forall jt_divisor_mulenumleftinputprimitive. (exists jt_factor_mulenumleftinputprimitivemodulus. (m)=(jt_divisor_mulenumleftinputprimitive)*jt_factor_mulenumleftinputprimitivemodulus) -> (forall jt_index_mulenumleftinputprimitivecoordinates jt_value_mulenumleftinputprimitivecoordinates. (exists jt_gap_mulenumleftinputprimitivecoordinatesindex. jt_gap_mulenumleftinputprimitivecoordinatesindex+S (jt_index_mulenumleftinputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_mulenumleftinputprimitivecoordinatesat. fs_h_jt_mulenumleftinputprimitivecoordinatesat + S (jt_value_mulenumleftinputprimitivecoordinates) = S ((S (jt_index_mulenumleftinputprimitivecoordinates)) * jt_c_mulenumleft)) /\ exists fs_q_jt_mulenumleftinputprimitivecoordinatesat. jt_b_mulenumleft = fs_q_jt_mulenumleftinputprimitivecoordinatesat * S ((S (jt_index_mulenumleftinputprimitivecoordinates)) * jt_c_mulenumleft) + (jt_value_mulenumleftinputprimitivecoordinates))) -> (exists jt_factor_mulenumleftinputprimitivecoordinatesdivides. (jt_value_mulenumleftinputprimitivecoordinates)=(jt_divisor_mulenumleftinputprimitive)*jt_factor_mulenumleftinputprimitivecoordinatesdivides)) -> jt_divisor_mulenumleftinputprimitive=1) -> exists jt_i_mulenumleft jt_d_mulenumleft jt_e_mulenumleft. ((exists jt_gap_mulenumleftcompleteindex. jt_gap_mulenumleftcompleteindex+S (jt_i_mulenumleft)=(u)) /\ (((((((exists fs_h_jt_mulenumleftcompletecode. fs_h_jt_mulenumleftcompletecode + S (jt_d_mulenumleft) = S ((S (jt_i_mulenumleft)) * B)) /\ exists fs_q_jt_mulenumleftcompletecode. A = fs_q_jt_mulenumleftcompletecode * S ((S (jt_i_mulenumleft)) * B) + (jt_d_mulenumleft))) /\ (((exists fs_h_jt_mulenumleftcompletescale. fs_h_jt_mulenumleftcompletescale + S (jt_e_mulenumleft) = S ((S (jt_i_mulenumleft)) * D)) /\ exists fs_q_jt_mulenumleftcompletescale. C = fs_q_jt_mulenumleftcompletescale * S ((S (jt_i_mulenumleft)) * D) + (jt_e_mulenumleft))))) /\ (forall jt_index_mulenumleftrepresented jt_left_mulenumleftrepresented jt_right_mulenumleftrepresented. (exists jt_gap_mulenumleftrepresentedindex. jt_gap_mulenumleftrepresentedindex+S (jt_index_mulenumleftrepresented)=(k)) -> (((exists fs_h_jt_mulenumleftrepresentedleft. fs_h_jt_mulenumleftrepresentedleft + S (jt_left_mulenumleftrepresented) = S ((S (jt_index_mulenumleftrepresented)) * jt_c_mulenumleft)) /\ exists fs_q_jt_mulenumleftrepresentedleft. jt_b_mulenumleft = fs_q_jt_mulenumleftrepresentedleft * S ((S (jt_index_mulenumleftrepresented)) * jt_c_mulenumleft) + (jt_left_mulenumleftrepresented))) -> (((exists fs_h_jt_mulenumleftrepresentedright. fs_h_jt_mulenumleftrepresentedright + S (jt_right_mulenumleftrepresented) = S ((S (jt_index_mulenumleftrepresented)) * jt_e_mulenumleft)) /\ exists fs_q_jt_mulenumleftrepresentedright. jt_d_mulenumleft = fs_q_jt_mulenumleftrepresentedright * S ((S (jt_index_mulenumleftrepresented)) * jt_e_mulenumleft) + (jt_right_mulenumleftrepresented))) -> jt_left_mulenumleftrepresented=jt_right_mulenumleftrepresented))))) /\ (forall jt_i_mulenumleft jt_h_mulenumleft jt_b_mulenumleft jt_c_mulenumleft jt_d_mulenumleft jt_e_mulenumleft. (exists jt_gap_mulenumleftfirstindex. jt_gap_mulenumleftfirstindex+S (jt_i_mulenumleft)=(u)) -> (exists jt_gap_mulenumleftsecondindex. jt_gap_mulenumleftsecondindex+S (jt_h_mulenumleft)=(u)) -> (((((exists fs_h_jt_mulenumleftfirstcode. fs_h_jt_mulenumleftfirstcode + S (jt_b_mulenumleft) = S ((S (jt_i_mulenumleft)) * B)) /\ exists fs_q_jt_mulenumleftfirstcode. A = fs_q_jt_mulenumleftfirstcode * S ((S (jt_i_mulenumleft)) * B) + (jt_b_mulenumleft))) /\ (((exists fs_h_jt_mulenumleftfirstscale. fs_h_jt_mulenumleftfirstscale + S (jt_c_mulenumleft) = S ((S (jt_i_mulenumleft)) * D)) /\ exists fs_q_jt_mulenumleftfirstscale. C = fs_q_jt_mulenumleftfirstscale * S ((S (jt_i_mulenumleft)) * D) + (jt_c_mulenumleft))))) -> (((((exists fs_h_jt_mulenumleftsecondcode. fs_h_jt_mulenumleftsecondcode + S (jt_d_mulenumleft) = S ((S (jt_h_mulenumleft)) * B)) /\ exists fs_q_jt_mulenumleftsecondcode. A = fs_q_jt_mulenumleftsecondcode * S ((S (jt_h_mulenumleft)) * B) + (jt_d_mulenumleft))) /\ (((exists fs_h_jt_mulenumleftsecondscale. fs_h_jt_mulenumleftsecondscale + S (jt_e_mulenumleft) = S ((S (jt_h_mulenumleft)) * D)) /\ exists fs_q_jt_mulenumleftsecondscale. C = fs_q_jt_mulenumleftsecondscale * S ((S (jt_h_mulenumleft)) * D) + (jt_e_mulenumleft))))) -> (forall jt_index_mulenumleftsame jt_left_mulenumleftsame jt_right_mulenumleftsame. (exists jt_gap_mulenumleftsameindex. jt_gap_mulenumleftsameindex+S (jt_index_mulenumleftsame)=(k)) -> (((exists fs_h_jt_mulenumleftsameleft. fs_h_jt_mulenumleftsameleft + S (jt_left_mulenumleftsame) = S ((S (jt_index_mulenumleftsame)) * jt_c_mulenumleft)) /\ exists fs_q_jt_mulenumleftsameleft. jt_b_mulenumleft = fs_q_jt_mulenumleftsameleft * S ((S (jt_index_mulenumleftsame)) * jt_c_mulenumleft) + (jt_left_mulenumleftsame))) -> (((exists fs_h_jt_mulenumleftsameright. fs_h_jt_mulenumleftsameright + S (jt_right_mulenumleftsame) = S ((S (jt_index_mulenumleftsame)) * jt_e_mulenumleft)) /\ exists fs_q_jt_mulenumleftsameright. jt_d_mulenumleft = fs_q_jt_mulenumleftsameright * S ((S (jt_index_mulenumleftsame)) * jt_e_mulenumleft) + (jt_right_mulenumleftsame))) -> jt_left_mulenumleftsame=jt_right_mulenumleftsame) -> jt_i_mulenumleft=jt_h_mulenumleft))))) -> (((forall jt_i_mulenumright. (exists jt_gap_mulenumrightsoundindex. jt_gap_mulenumrightsoundindex+S (jt_i_mulenumright)=(v)) -> exists jt_b_mulenumright jt_c_mulenumright. ((((((exists fs_h_jt_mulenumrightsoundcode. fs_h_jt_mulenumrightsoundcode + S (jt_b_mulenumright) = S ((S (jt_i_mulenumright)) * F)) /\ exists fs_q_jt_mulenumrightsoundcode. E = fs_q_jt_mulenumrightsoundcode * S ((S (jt_i_mulenumright)) * F) + (jt_b_mulenumright))) /\ (((exists fs_h_jt_mulenumrightsoundscale. fs_h_jt_mulenumrightsoundscale + S (jt_c_mulenumright) = S ((S (jt_i_mulenumright)) * H)) /\ exists fs_q_jt_mulenumrightsoundscale. G = fs_q_jt_mulenumrightsoundscale * S ((S (jt_i_mulenumright)) * H) + (jt_c_mulenumright))))) /\ (((forall jt_index_mulenumrightbound. (exists jt_gap_mulenumrightboundindex. jt_gap_mulenumrightboundindex+S (jt_index_mulenumrightbound)=(k)) -> exists jt_value_mulenumrightbound. ((((exists fs_h_jt_mulenumrightboundat. fs_h_jt_mulenumrightboundat + S (jt_value_mulenumrightbound) = S ((S (jt_index_mulenumrightbound)) * jt_c_mulenumright)) /\ exists fs_q_jt_mulenumrightboundat. jt_b_mulenumright = fs_q_jt_mulenumrightboundat * S ((S (jt_index_mulenumrightbound)) * jt_c_mulenumright) + (jt_value_mulenumrightbound))) /\ (exists jt_gap_mulenumrightboundvalue. jt_gap_mulenumrightboundvalue+S (jt_value_mulenumrightbound)=(n)))) /\ (forall jt_divisor_mulenumrightprimitive. (exists jt_factor_mulenumrightprimitivemodulus. (n)=(jt_divisor_mulenumrightprimitive)*jt_factor_mulenumrightprimitivemodulus) -> (forall jt_index_mulenumrightprimitivecoordinates jt_value_mulenumrightprimitivecoordinates. (exists jt_gap_mulenumrightprimitivecoordinatesindex. jt_gap_mulenumrightprimitivecoordinatesindex+S (jt_index_mulenumrightprimitivecoordinates)=(k)) -> (((exists fs_h_jt_mulenumrightprimitivecoordinatesat. fs_h_jt_mulenumrightprimitivecoordinatesat + S (jt_value_mulenumrightprimitivecoordinates) = S ((S (jt_index_mulenumrightprimitivecoordinates)) * jt_c_mulenumright)) /\ exists fs_q_jt_mulenumrightprimitivecoordinatesat. jt_b_mulenumright = fs_q_jt_mulenumrightprimitivecoordinatesat * S ((S (jt_index_mulenumrightprimitivecoordinates)) * jt_c_mulenumright) + (jt_value_mulenumrightprimitivecoordinates))) -> (exists jt_factor_mulenumrightprimitivecoordinatesdivides. (jt_value_mulenumrightprimitivecoordinates)=(jt_divisor_mulenumrightprimitive)*jt_factor_mulenumrightprimitivecoordinatesdivides)) -> jt_divisor_mulenumrightprimitive=1))))) /\ (((forall jt_b_mulenumright jt_c_mulenumright. (forall jt_index_mulenumrightinputbound. (exists jt_gap_mulenumrightinputboundindex. jt_gap_mulenumrightinputboundindex+S (jt_index_mulenumrightinputbound)=(k)) -> exists jt_value_mulenumrightinputbound. ((((exists fs_h_jt_mulenumrightinputboundat. fs_h_jt_mulenumrightinputboundat + S (jt_value_mulenumrightinputbound) = S ((S (jt_index_mulenumrightinputbound)) * jt_c_mulenumright)) /\ exists fs_q_jt_mulenumrightinputboundat. jt_b_mulenumright = fs_q_jt_mulenumrightinputboundat * S ((S (jt_index_mulenumrightinputbound)) * jt_c_mulenumright) + (jt_value_mulenumrightinputbound))) /\ (exists jt_gap_mulenumrightinputboundvalue. jt_gap_mulenumrightinputboundvalue+S (jt_value_mulenumrightinputbound)=(n)))) -> (forall jt_divisor_mulenumrightinputprimitive. (exists jt_factor_mulenumrightinputprimitivemodulus. (n)=(jt_divisor_mulenumrightinputprimitive)*jt_factor_mulenumrightinputprimitivemodulus) -> (forall jt_index_mulenumrightinputprimitivecoordinates jt_value_mulenumrightinputprimitivecoordinates. (exists jt_gap_mulenumrightinputprimitivecoordinatesindex. jt_gap_mulenumrightinputprimitivecoordinatesindex+S (jt_index_mulenumrightinputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_mulenumrightinputprimitivecoordinatesat. fs_h_jt_mulenumrightinputprimitivecoordinatesat + S (jt_value_mulenumrightinputprimitivecoordinates) = S ((S (jt_index_mulenumrightinputprimitivecoordinates)) * jt_c_mulenumright)) /\ exists fs_q_jt_mulenumrightinputprimitivecoordinatesat. jt_b_mulenumright = fs_q_jt_mulenumrightinputprimitivecoordinatesat * S ((S (jt_index_mulenumrightinputprimitivecoordinates)) * jt_c_mulenumright) + (jt_value_mulenumrightinputprimitivecoordinates))) -> (exists jt_factor_mulenumrightinputprimitivecoordinatesdivides. (jt_value_mulenumrightinputprimitivecoordinates)=(jt_divisor_mulenumrightinputprimitive)*jt_factor_mulenumrightinputprimitivecoordinatesdivides)) -> jt_divisor_mulenumrightinputprimitive=1) -> exists jt_i_mulenumright jt_d_mulenumright jt_e_mulenumright. ((exists jt_gap_mulenumrightcompleteindex. jt_gap_mulenumrightcompleteindex+S (jt_i_mulenumright)=(v)) /\ (((((((exists fs_h_jt_mulenumrightcompletecode. fs_h_jt_mulenumrightcompletecode + S (jt_d_mulenumright) = S ((S (jt_i_mulenumright)) * F)) /\ exists fs_q_jt_mulenumrightcompletecode. E = fs_q_jt_mulenumrightcompletecode * S ((S (jt_i_mulenumright)) * F) + (jt_d_mulenumright))) /\ (((exists fs_h_jt_mulenumrightcompletescale. fs_h_jt_mulenumrightcompletescale + S (jt_e_mulenumright) = S ((S (jt_i_mulenumright)) * H)) /\ exists fs_q_jt_mulenumrightcompletescale. G = fs_q_jt_mulenumrightcompletescale * S ((S (jt_i_mulenumright)) * H) + (jt_e_mulenumright))))) /\ (forall jt_index_mulenumrightrepresented jt_left_mulenumrightrepresented jt_right_mulenumrightrepresented. (exists jt_gap_mulenumrightrepresentedindex. jt_gap_mulenumrightrepresentedindex+S (jt_index_mulenumrightrepresented)=(k)) -> (((exists fs_h_jt_mulenumrightrepresentedleft. fs_h_jt_mulenumrightrepresentedleft + S (jt_left_mulenumrightrepresented) = S ((S (jt_index_mulenumrightrepresented)) * jt_c_mulenumright)) /\ exists fs_q_jt_mulenumrightrepresentedleft. jt_b_mulenumright = fs_q_jt_mulenumrightrepresentedleft * S ((S (jt_index_mulenumrightrepresented)) * jt_c_mulenumright) + (jt_left_mulenumrightrepresented))) -> (((exists fs_h_jt_mulenumrightrepresentedright. fs_h_jt_mulenumrightrepresentedright + S (jt_right_mulenumrightrepresented) = S ((S (jt_index_mulenumrightrepresented)) * jt_e_mulenumright)) /\ exists fs_q_jt_mulenumrightrepresentedright. jt_d_mulenumright = fs_q_jt_mulenumrightrepresentedright * S ((S (jt_index_mulenumrightrepresented)) * jt_e_mulenumright) + (jt_right_mulenumrightrepresented))) -> jt_left_mulenumrightrepresented=jt_right_mulenumrightrepresented))))) /\ (forall jt_i_mulenumright jt_h_mulenumright jt_b_mulenumright jt_c_mulenumright jt_d_mulenumright jt_e_mulenumright. (exists jt_gap_mulenumrightfirstindex. jt_gap_mulenumrightfirstindex+S (jt_i_mulenumright)=(v)) -> (exists jt_gap_mulenumrightsecondindex. jt_gap_mulenumrightsecondindex+S (jt_h_mulenumright)=(v)) -> (((((exists fs_h_jt_mulenumrightfirstcode. fs_h_jt_mulenumrightfirstcode + S (jt_b_mulenumright) = S ((S (jt_i_mulenumright)) * F)) /\ exists fs_q_jt_mulenumrightfirstcode. E = fs_q_jt_mulenumrightfirstcode * S ((S (jt_i_mulenumright)) * F) + (jt_b_mulenumright))) /\ (((exists fs_h_jt_mulenumrightfirstscale. fs_h_jt_mulenumrightfirstscale + S (jt_c_mulenumright) = S ((S (jt_i_mulenumright)) * H)) /\ exists fs_q_jt_mulenumrightfirstscale. G = fs_q_jt_mulenumrightfirstscale * S ((S (jt_i_mulenumright)) * H) + (jt_c_mulenumright))))) -> (((((exists fs_h_jt_mulenumrightsecondcode. fs_h_jt_mulenumrightsecondcode + S (jt_d_mulenumright) = S ((S (jt_h_mulenumright)) * F)) /\ exists fs_q_jt_mulenumrightsecondcode. E = fs_q_jt_mulenumrightsecondcode * S ((S (jt_h_mulenumright)) * F) + (jt_d_mulenumright))) /\ (((exists fs_h_jt_mulenumrightsecondscale. fs_h_jt_mulenumrightsecondscale + S (jt_e_mulenumright) = S ((S (jt_h_mulenumright)) * H)) /\ exists fs_q_jt_mulenumrightsecondscale. G = fs_q_jt_mulenumrightsecondscale * S ((S (jt_h_mulenumright)) * H) + (jt_e_mulenumright))))) -> (forall jt_index_mulenumrightsame jt_left_mulenumrightsame jt_right_mulenumrightsame. (exists jt_gap_mulenumrightsameindex. jt_gap_mulenumrightsameindex+S (jt_index_mulenumrightsame)=(k)) -> (((exists fs_h_jt_mulenumrightsameleft. fs_h_jt_mulenumrightsameleft + S (jt_left_mulenumrightsame) = S ((S (jt_index_mulenumrightsame)) * jt_c_mulenumright)) /\ exists fs_q_jt_mulenumrightsameleft. jt_b_mulenumright = fs_q_jt_mulenumrightsameleft * S ((S (jt_index_mulenumrightsame)) * jt_c_mulenumright) + (jt_left_mulenumrightsame))) -> (((exists fs_h_jt_mulenumrightsameright. fs_h_jt_mulenumrightsameright + S (jt_right_mulenumrightsame) = S ((S (jt_index_mulenumrightsame)) * jt_e_mulenumright)) /\ exists fs_q_jt_mulenumrightsameright. jt_d_mulenumright = fs_q_jt_mulenumrightsameright * S ((S (jt_index_mulenumrightsame)) * jt_e_mulenumright) + (jt_right_mulenumrightsame))) -> jt_left_mulenumrightsame=jt_right_mulenumrightsame) -> jt_i_mulenumright=jt_h_mulenumright))))) -> exists P Q R T. ((forall jt_i_mulenumoutput. (exists jt_gap_mulenumoutputsoundindex. jt_gap_mulenumoutputsoundindex+S (jt_i_mulenumoutput)=(u*v)) -> exists jt_b_mulenumoutput jt_c_mulenumoutput. ((((((exists fs_h_jt_mulenumoutputsoundcode. fs_h_jt_mulenumoutputsoundcode + S (jt_b_mulenumoutput) = S ((S (jt_i_mulenumoutput)) * Q)) /\ exists fs_q_jt_mulenumoutputsoundcode. P = fs_q_jt_mulenumoutputsoundcode * S ((S (jt_i_mulenumoutput)) * Q) + (jt_b_mulenumoutput))) /\ (((exists fs_h_jt_mulenumoutputsoundscale. fs_h_jt_mulenumoutputsoundscale + S (jt_c_mulenumoutput) = S ((S (jt_i_mulenumoutput)) * T)) /\ exists fs_q_jt_mulenumoutputsoundscale. R = fs_q_jt_mulenumoutputsoundscale * S ((S (jt_i_mulenumoutput)) * T) + (jt_c_mulenumoutput))))) /\ (((forall jt_index_mulenumoutputbound. (exists jt_gap_mulenumoutputboundindex. jt_gap_mulenumoutputboundindex+S (jt_index_mulenumoutputbound)=(k)) -> exists jt_value_mulenumoutputbound. ((((exists fs_h_jt_mulenumoutputboundat. fs_h_jt_mulenumoutputboundat + S (jt_value_mulenumoutputbound) = S ((S (jt_index_mulenumoutputbound)) * jt_c_mulenumoutput)) /\ exists fs_q_jt_mulenumoutputboundat. jt_b_mulenumoutput = fs_q_jt_mulenumoutputboundat * S ((S (jt_index_mulenumoutputbound)) * jt_c_mulenumoutput) + (jt_value_mulenumoutputbound))) /\ (exists jt_gap_mulenumoutputboundvalue. jt_gap_mulenumoutputboundvalue+S (jt_value_mulenumoutputbound)=(m*n)))) /\ (forall jt_divisor_mulenumoutputprimitive. (exists jt_factor_mulenumoutputprimitivemodulus. (m*n)=(jt_divisor_mulenumoutputprimitive)*jt_factor_mulenumoutputprimitivemodulus) -> (forall jt_index_mulenumoutputprimitivecoordinates jt_value_mulenumoutputprimitivecoordinates. (exists jt_gap_mulenumoutputprimitivecoordinatesindex. jt_gap_mulenumoutputprimitivecoordinatesindex+S (jt_index_mulenumoutputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_mulenumoutputprimitivecoordinatesat. fs_h_jt_mulenumoutputprimitivecoordinatesat + S (jt_value_mulenumoutputprimitivecoordinates) = S ((S (jt_index_mulenumoutputprimitivecoordinates)) * jt_c_mulenumoutput)) /\ exists fs_q_jt_mulenumoutputprimitivecoordinatesat. jt_b_mulenumoutput = fs_q_jt_mulenumoutputprimitivecoordinatesat * S ((S (jt_index_mulenumoutputprimitivecoordinates)) * jt_c_mulenumoutput) + (jt_value_mulenumoutputprimitivecoordinates))) -> (exists jt_factor_mulenumoutputprimitivecoordinatesdivides. (jt_value_mulenumoutputprimitivecoordinates)=(jt_divisor_mulenumoutputprimitive)*jt_factor_mulenumoutputprimitivecoordinatesdivides)) -> jt_divisor_mulenumoutputprimitive=1))))) /\ (((forall jt_b_mulenumoutput jt_c_mulenumoutput. (forall jt_index_mulenumoutputinputbound. (exists jt_gap_mulenumoutputinputboundindex. jt_gap_mulenumoutputinputboundindex+S (jt_index_mulenumoutputinputbound)=(k)) -> exists jt_value_mulenumoutputinputbound. ((((exists fs_h_jt_mulenumoutputinputboundat. fs_h_jt_mulenumoutputinputboundat + S (jt_value_mulenumoutputinputbound) = S ((S (jt_index_mulenumoutputinputbound)) * jt_c_mulenumoutput)) /\ exists fs_q_jt_mulenumoutputinputboundat. jt_b_mulenumoutput = fs_q_jt_mulenumoutputinputboundat * S ((S (jt_index_mulenumoutputinputbound)) * jt_c_mulenumoutput) + (jt_value_mulenumoutputinputbound))) /\ (exists jt_gap_mulenumoutputinputboundvalue. jt_gap_mulenumoutputinputboundvalue+S (jt_value_mulenumoutputinputbound)=(m*n)))) -> (forall jt_divisor_mulenumoutputinputprimitive. (exists jt_factor_mulenumoutputinputprimitivemodulus. (m*n)=(jt_divisor_mulenumoutputinputprimitive)*jt_factor_mulenumoutputinputprimitivemodulus) -> (forall jt_index_mulenumoutputinputprimitivecoordinates jt_value_mulenumoutputinputprimitivecoordinates. (exists jt_gap_mulenumoutputinputprimitivecoordinatesindex. jt_gap_mulenumoutputinputprimitivecoordinatesindex+S (jt_index_mulenumoutputinputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_mulenumoutputinputprimitivecoordinatesat. fs_h_jt_mulenumoutputinputprimitivecoordinatesat + S (jt_value_mulenumoutputinputprimitivecoordinates) = S ((S (jt_index_mulenumoutputinputprimitivecoordinates)) * jt_c_mulenumoutput)) /\ exists fs_q_jt_mulenumoutputinputprimitivecoordinatesat. jt_b_mulenumoutput = fs_q_jt_mulenumoutputinputprimitivecoordinatesat * S ((S (jt_index_mulenumoutputinputprimitivecoordinates)) * jt_c_mulenumoutput) + (jt_value_mulenumoutputinputprimitivecoordinates))) -> (exists jt_factor_mulenumoutputinputprimitivecoordinatesdivides. (jt_value_mulenumoutputinputprimitivecoordinates)=(jt_divisor_mulenumoutputinputprimitive)*jt_factor_mulenumoutputinputprimitivecoordinatesdivides)) -> jt_divisor_mulenumoutputinputprimitive=1) -> exists jt_i_mulenumoutput jt_d_mulenumoutput jt_e_mulenumoutput. ((exists jt_gap_mulenumoutputcompleteindex. jt_gap_mulenumoutputcompleteindex+S (jt_i_mulenumoutput)=(u*v)) /\ (((((((exists fs_h_jt_mulenumoutputcompletecode. fs_h_jt_mulenumoutputcompletecode + S (jt_d_mulenumoutput) = S ((S (jt_i_mulenumoutput)) * Q)) /\ exists fs_q_jt_mulenumoutputcompletecode. P = fs_q_jt_mulenumoutputcompletecode * S ((S (jt_i_mulenumoutput)) * Q) + (jt_d_mulenumoutput))) /\ (((exists fs_h_jt_mulenumoutputcompletescale. fs_h_jt_mulenumoutputcompletescale + S (jt_e_mulenumoutput) = S ((S (jt_i_mulenumoutput)) * T)) /\ exists fs_q_jt_mulenumoutputcompletescale. R = fs_q_jt_mulenumoutputcompletescale * S ((S (jt_i_mulenumoutput)) * T) + (jt_e_mulenumoutput))))) /\ (forall jt_index_mulenumoutputrepresented jt_left_mulenumoutputrepresented jt_right_mulenumoutputrepresented. (exists jt_gap_mulenumoutputrepresentedindex. jt_gap_mulenumoutputrepresentedindex+S (jt_index_mulenumoutputrepresented)=(k)) -> (((exists fs_h_jt_mulenumoutputrepresentedleft. fs_h_jt_mulenumoutputrepresentedleft + S (jt_left_mulenumoutputrepresented) = S ((S (jt_index_mulenumoutputrepresented)) * jt_c_mulenumoutput)) /\ exists fs_q_jt_mulenumoutputrepresentedleft. jt_b_mulenumoutput = fs_q_jt_mulenumoutputrepresentedleft * S ((S (jt_index_mulenumoutputrepresented)) * jt_c_mulenumoutput) + (jt_left_mulenumoutputrepresented))) -> (((exists fs_h_jt_mulenumoutputrepresentedright. fs_h_jt_mulenumoutputrepresentedright + S (jt_right_mulenumoutputrepresented) = S ((S (jt_index_mulenumoutputrepresented)) * jt_e_mulenumoutput)) /\ exists fs_q_jt_mulenumoutputrepresentedright. jt_d_mulenumoutput = fs_q_jt_mulenumoutputrepresentedright * S ((S (jt_index_mulenumoutputrepresented)) * jt_e_mulenumoutput) + (jt_right_mulenumoutputrepresented))) -> jt_left_mulenumoutputrepresented=jt_right_mulenumoutputrepresented))))) /\ (forall jt_i_mulenumoutput jt_h_mulenumoutput jt_b_mulenumoutput jt_c_mulenumoutput jt_d_mulenumoutput jt_e_mulenumoutput. (exists jt_gap_mulenumoutputfirstindex. jt_gap_mulenumoutputfirstindex+S (jt_i_mulenumoutput)=(u*v)) -> (exists jt_gap_mulenumoutputsecondindex. jt_gap_mulenumoutputsecondindex+S (jt_h_mulenumoutput)=(u*v)) -> (((((exists fs_h_jt_mulenumoutputfirstcode. fs_h_jt_mulenumoutputfirstcode + S (jt_b_mulenumoutput) = S ((S (jt_i_mulenumoutput)) * Q)) /\ exists fs_q_jt_mulenumoutputfirstcode. P = fs_q_jt_mulenumoutputfirstcode * S ((S (jt_i_mulenumoutput)) * Q) + (jt_b_mulenumoutput))) /\ (((exists fs_h_jt_mulenumoutputfirstscale. fs_h_jt_mulenumoutputfirstscale + S (jt_c_mulenumoutput) = S ((S (jt_i_mulenumoutput)) * T)) /\ exists fs_q_jt_mulenumoutputfirstscale. R = fs_q_jt_mulenumoutputfirstscale * S ((S (jt_i_mulenumoutput)) * T) + (jt_c_mulenumoutput))))) -> (((((exists fs_h_jt_mulenumoutputsecondcode. fs_h_jt_mulenumoutputsecondcode + S (jt_d_mulenumoutput) = S ((S (jt_h_mulenumoutput)) * Q)) /\ exists fs_q_jt_mulenumoutputsecondcode. P = fs_q_jt_mulenumoutputsecondcode * S ((S (jt_h_mulenumoutput)) * Q) + (jt_d_mulenumoutput))) /\ (((exists fs_h_jt_mulenumoutputsecondscale. fs_h_jt_mulenumoutputsecondscale + S (jt_e_mulenumoutput) = S ((S (jt_h_mulenumoutput)) * T)) /\ exists fs_q_jt_mulenumoutputsecondscale. R = fs_q_jt_mulenumoutputsecondscale * S ((S (jt_h_mulenumoutput)) * T) + (jt_e_mulenumoutput))))) -> (forall jt_index_mulenumoutputsame jt_left_mulenumoutputsame jt_right_mulenumoutputsame. (exists jt_gap_mulenumoutputsameindex. jt_gap_mulenumoutputsameindex+S (jt_index_mulenumoutputsame)=(k)) -> (((exists fs_h_jt_mulenumoutputsameleft. fs_h_jt_mulenumoutputsameleft + S (jt_left_mulenumoutputsame) = S ((S (jt_index_mulenumoutputsame)) * jt_c_mulenumoutput)) /\ exists fs_q_jt_mulenumoutputsameleft. jt_b_mulenumoutput = fs_q_jt_mulenumoutputsameleft * S ((S (jt_index_mulenumoutputsame)) * jt_c_mulenumoutput) + (jt_left_mulenumoutputsame))) -> (((exists fs_h_jt_mulenumoutputsameright. fs_h_jt_mulenumoutputsameright + S (jt_right_mulenumoutputsame) = S ((S (jt_index_mulenumoutputsame)) * jt_e_mulenumoutput)) /\ exists fs_q_jt_mulenumoutputsameright. jt_d_mulenumoutput = fs_q_jt_mulenumoutputsameright * S ((S (jt_index_mulenumoutputsame)) * jt_e_mulenumoutput) + (jt_right_mulenumoutputsame))) -> jt_left_mulenumoutputsame=jt_right_mulenumoutputsame) -> jt_i_mulenumoutput=jt_h_mulenumoutput))))

Constructive proof overview

Generated structural guide

Construct an actual product enumeration; no count-uniqueness or multiplicativity premise is used.

The unchanged tactic script uses 3 declared prerequisites and contains 75 exact native proof lines.

Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

Direct 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

75 script commands · 10 reading checkpoints · 2 local claims

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 (2)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–10

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro m
  2. L2
    intro n
  3. L3
    intro k
  4. L4
    intro A
  5. L5
    intro B
  6. L6
    intro C
  7. L7
    intro D
  8. L8
    intro u
  9. L9
    intro E
  10. L10
    intro F
02Fix variables and assumptionsL11–18

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro G
  2. L12
    intro H
  3. L13
    intro v
  4. L14
    intro hm
  5. L15
    intro hn
  6. L16
    intro hcop
  7. L17
    intro hl
  8. L18
    intro hh
03Establish htL19–28

Establish this local claim before using it. It is not an additional assumption.

  1. L19
    have ht : ∀ q. Le(q,u · v) → ∃ x. ∃ y. ∃ z. ∃ i. JordanRectangleCRT(m,n,k,A,B,C,D,u,E,F,G,H,v,x,y,z,i,q)Definitions: JordanRectangleCRTLe
  2. L20
    specialize jordan_rectangle_crt_exists (m)
  3. L21
    specialize jordan_rectangle_crt_exists (n)
  4. L22
    specialize jordan_rectangle_crt_exists (k)
  5. L23
    specialize jordan_rectangle_crt_exists (A)
  6. L24
    specialize jordan_rectangle_crt_exists (B)
  7. L25
    specialize jordan_rectangle_crt_exists (C)
  8. L26
    specialize jordan_rectangle_crt_exists (D)
  9. L27
    specialize jordan_rectangle_crt_exists (u)
  10. L28
    specialize jordan_rectangle_crt_exists (E)
04Use earlier factsL29–38

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L29
    specialize jordan_rectangle_crt_exists (F)
  2. L30
    specialize jordan_rectangle_crt_exists (G)
  3. L31
    specialize jordan_rectangle_crt_exists (H)
  4. L32
    specialize jordan_rectangle_crt_exists (v)
  5. L33
    apply jordan_rectangle_crt_exists
  6. L34
    exact hm
  7. L35
    exact hn
  8. L36
    exact hcop
  9. L37
    exact hl
  10. L38
    exact hh
05Establish hvL39–43

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply ht.

  1. L39
    have hv : ∃ P. ∃ Q. ∃ R. ∃ T. JordanRectangleCRT(m,n,k,A,B,C,D,u,E,F,G,H,v,P,Q,R,T,u · v)Definitions: JordanRectangleCRT
  2. L40
    specialize ht (u*v)
  3. L41
    apply ht
  4. L42
    specialize le_refl (u*v)
  5. L43
    apply le_refl
06Separate the logical casesL44–47

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L44
    cases hv
  2. L45
    cases hv_witness
  3. L46
    cases hv_witness_witness
  4. L47
    cases hv_witness_witness_witness
07Construct an explicit witnessL48–51

Supply the displayed value, then prove that it has the required property.

  1. L48
    exists x
  2. L49
    exists x1
  3. L50
    exists x2
  4. L51
    exists x3
08Use earlier factsL52–61

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L52
    specialize jordan_rectangle_crt_enumeration (m)
  2. L53
    specialize jordan_rectangle_crt_enumeration (n)
  3. L54
    specialize jordan_rectangle_crt_enumeration (k)
  4. L55
    specialize jordan_rectangle_crt_enumeration (A)
  5. L56
    specialize jordan_rectangle_crt_enumeration (B)
  6. L57
    specialize jordan_rectangle_crt_enumeration (C)
  7. L58
    specialize jordan_rectangle_crt_enumeration (D)
  8. L59
    specialize jordan_rectangle_crt_enumeration (u)
  9. L60
    specialize jordan_rectangle_crt_enumeration (E)
  10. L61
    specialize jordan_rectangle_crt_enumeration (F)
09Use earlier factsL62–71

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L62
    specialize jordan_rectangle_crt_enumeration (G)
  2. L63
    specialize jordan_rectangle_crt_enumeration (H)
  3. L64
    specialize jordan_rectangle_crt_enumeration (v)
  4. L65
    specialize jordan_rectangle_crt_enumeration (x)
  5. L66
    specialize jordan_rectangle_crt_enumeration (x1)
  6. L67
    specialize jordan_rectangle_crt_enumeration (x2)
  7. L68
    specialize jordan_rectangle_crt_enumeration (x3)
  8. L69
    apply jordan_rectangle_crt_enumeration
  9. L70
    exact hm
  10. L71
    exact hn
10Use earlier factsL72–75

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L72
    exact hcop
  2. L73
    exact hl
  3. L74
    exact hh
  4. L75
    exact hv_witness_witness_witness_witness

Library-wide reading audit

Original exact command ledger · 75 lines
  1. 0001intro m
  2. 0002intro n
  3. 0003intro k
  4. 0004intro A
  5. 0005intro B
  6. 0006intro C
  7. 0007intro D
  8. 0008intro u
  9. 0009intro E
  10. 0010intro F
  11. 0011intro G
  12. 0012intro H
  13. 0013intro v
  14. 0014intro hm
  15. 0015intro hn
  16. 0016intro hcop
  17. 0017intro hl
  18. 0018intro hh
  19. 0019have ht : forall q. (exists jt_gap_multablebound. jt_gap_multablebound+(q)=(u*v)) -> exists P Q R T. forall jt_index_multableprefix. (exists jt_gap_multableprefixindex. jt_gap_multableprefixindex+S (jt_index_multableprefix)=(q)) -> exists jt_row_multableprefix jt_column_multableprefix jt_b_multableprefix jt_c_multableprefix jt_d_multableprefix jt_e_multableprefix jt_f_multableprefix jt_g_multableprefix. ((exists jt_gap_multableprefixrow. jt_gap_multableprefixrow+S (jt_row_multableprefix)=(u)) /\ (((exists jt_gap_multableprefixcolumn. jt_gap_multableprefixcolumn+S (jt_column_multableprefix)=(v)) /\ (((jt_index_multableprefix=(v)*jt_row_multableprefix+jt_column_multableprefix) /\ (((((((exists fs_h_jt_multableprefixleftcode. fs_h_jt_multableprefixleftcode + S (jt_b_multableprefix) = S ((S (jt_row_multableprefix)) * B)) /\ exists fs_q_jt_multableprefixleftcode. A = fs_q_jt_multableprefixleftcode * S ((S (jt_row_multableprefix)) * B) + (jt_b_multableprefix))) /\ (((exists fs_h_jt_multableprefixleftscale. fs_h_jt_multableprefixleftscale + S (jt_c_multableprefix) = S ((S (jt_row_multableprefix)) * D)) /\ exists fs_q_jt_multableprefixleftscale. C = fs_q_jt_multableprefixleftscale * S ((S (jt_row_multableprefix)) * D) + (jt_c_multableprefix))))) /\ (((((((exists fs_h_jt_multableprefixrightcode. fs_h_jt_multableprefixrightcode + S (jt_d_multableprefix) = S ((S (jt_column_multableprefix)) * F)) /\ exists fs_q_jt_multableprefixrightcode. E = fs_q_jt_multableprefixrightcode * S ((S (jt_column_multableprefix)) * F) + (jt_d_multableprefix))) /\ (((exists fs_h_jt_multableprefixrightscale. fs_h_jt_multableprefixrightscale + S (jt_e_multableprefix) = S ((S (jt_column_multableprefix)) * H)) /\ exists fs_q_jt_multableprefixrightscale. G = fs_q_jt_multableprefixrightscale * S ((S (jt_column_multableprefix)) * H) + (jt_e_multableprefix))))) /\ (((((((exists fs_h_jt_multableprefixoutputcode. fs_h_jt_multableprefixoutputcode + S (jt_f_multableprefix) = S ((S (jt_index_multableprefix)) * Q)) /\ exists fs_q_jt_multableprefixoutputcode. P = fs_q_jt_multableprefixoutputcode * S ((S (jt_index_multableprefix)) * Q) + (jt_f_multableprefix))) /\ (((exists fs_h_jt_multableprefixoutputscale. fs_h_jt_multableprefixoutputscale + S (jt_g_multableprefix) = S ((S (jt_index_multableprefix)) * T)) /\ exists fs_q_jt_multableprefixoutputscale. R = fs_q_jt_multableprefixoutputscale * S ((S (jt_index_multableprefix)) * T) + (jt_g_multableprefix))))) /\ (((((forall jt_index_multableprefixcrtbound. (exists jt_gap_multableprefixcrtboundindex. jt_gap_multableprefixcrtboundindex+S (jt_index_multableprefixcrtbound)=(k)) -> exists jt_value_multableprefixcrtbound. ((((exists fs_h_jt_multableprefixcrtboundat. fs_h_jt_multableprefixcrtboundat + S (jt_value_multableprefixcrtbound) = S ((S (jt_index_multableprefixcrtbound)) * jt_g_multableprefix)) /\ exists fs_q_jt_multableprefixcrtboundat. jt_f_multableprefix = fs_q_jt_multableprefixcrtboundat * S ((S (jt_index_multableprefixcrtbound)) * jt_g_multableprefix) + (jt_value_multableprefixcrtbound))) /\ (exists jt_gap_multableprefixcrtboundvalue. jt_gap_multableprefixcrtboundvalue+S (jt_value_multableprefixcrtbound)=(m*n)))) /\ (((forall jt_index_multableprefixcrtleft jt_left_multableprefixcrtleft jt_right_multableprefixcrtleft. (exists jt_gap_multableprefixcrtleftindex. jt_gap_multableprefixcrtleftindex+S (jt_index_multableprefixcrtleft)=(k)) -> (((exists fs_h_jt_multableprefixcrtleftleft. fs_h_jt_multableprefixcrtleftleft + S (jt_left_multableprefixcrtleft) = S ((S (jt_index_multableprefixcrtleft)) * jt_g_multableprefix)) /\ exists fs_q_jt_multableprefixcrtleftleft. jt_f_multableprefix = fs_q_jt_multableprefixcrtleftleft * S ((S (jt_index_multableprefixcrtleft)) * jt_g_multableprefix) + (jt_left_multableprefixcrtleft))) -> (((exists fs_h_jt_multableprefixcrtleftright. fs_h_jt_multableprefixcrtleftright + S (jt_right_multableprefixcrtleft) = S ((S (jt_index_multableprefixcrtleft)) * jt_c_multableprefix)) /\ exists fs_q_jt_multableprefixcrtleftright. jt_b_multableprefix = fs_q_jt_multableprefixcrtleftright * S ((S (jt_index_multableprefixcrtleft)) * jt_c_multableprefix) + (jt_right_multableprefixcrtleft))) -> (exists jt_left_multableprefixcrtleftmod jt_right_multableprefixcrtleftmod. (jt_left_multableprefixcrtleft)+(m)*jt_left_multableprefixcrtleftmod=(jt_right_multableprefixcrtleft)+(m)*jt_right_multableprefixcrtleftmod)) /\ (forall jt_index_multableprefixcrtright jt_left_multableprefixcrtright jt_right_multableprefixcrtright. (exists jt_gap_multableprefixcrtrightindex. jt_gap_multableprefixcrtrightindex+S (jt_index_multableprefixcrtright)=(k)) -> (((exists fs_h_jt_multableprefixcrtrightleft. fs_h_jt_multableprefixcrtrightleft + S (jt_left_multableprefixcrtright) = S ((S (jt_index_multableprefixcrtright)) * jt_g_multableprefix)) /\ exists fs_q_jt_multableprefixcrtrightleft. jt_f_multableprefix = fs_q_jt_multableprefixcrtrightleft * S ((S (jt_index_multableprefixcrtright)) * jt_g_multableprefix) + (jt_left_multableprefixcrtright))) -> (((exists fs_h_jt_multableprefixcrtrightright. fs_h_jt_multableprefixcrtrightright + S (jt_right_multableprefixcrtright) = S ((S (jt_index_multableprefixcrtright)) * jt_e_multableprefix)) /\ exists fs_q_jt_multableprefixcrtrightright. jt_d_multableprefix = fs_q_jt_multableprefixcrtrightright * S ((S (jt_index_multableprefixcrtright)) * jt_e_multableprefix) + (jt_right_multableprefixcrtright))) -> (exists jt_left_multableprefixcrtrightmod jt_right_multableprefixcrtrightmod. (jt_left_multableprefixcrtright)+(n)*jt_left_multableprefixcrtrightmod=(jt_right_multableprefixcrtright)+(n)*jt_right_multableprefixcrtrightmod)))))) /\ (forall jt_divisor_multableprefixprimitive. (exists jt_factor_multableprefixprimitivemodulus. (m*n)=(jt_divisor_multableprefixprimitive)*jt_factor_multableprefixprimitivemodulus) -> (forall jt_index_multableprefixprimitivecoordinates jt_value_multableprefixprimitivecoordinates. (exists jt_gap_multableprefixprimitivecoordinatesindex. jt_gap_multableprefixprimitivecoordinatesindex+S (jt_index_multableprefixprimitivecoordinates)=(k)) -> (((exists fs_h_jt_multableprefixprimitivecoordinatesat. fs_h_jt_multableprefixprimitivecoordinatesat + S (jt_value_multableprefixprimitivecoordinates) = S ((S (jt_index_multableprefixprimitivecoordinates)) * jt_g_multableprefix)) /\ exists fs_q_jt_multableprefixprimitivecoordinatesat. jt_f_multableprefix = fs_q_jt_multableprefixprimitivecoordinatesat * S ((S (jt_index_multableprefixprimitivecoordinates)) * jt_g_multableprefix) + (jt_value_multableprefixprimitivecoordinates))) -> (exists jt_factor_multableprefixprimitivecoordinatesdivides. (jt_value_multableprefixprimitivecoordinates)=(jt_divisor_multableprefixprimitive)*jt_factor_multableprefixprimitivecoordinatesdivides)) -> jt_divisor_multableprefixprimitive=1))))))))))))))
  20. 0020specialize jordan_rectangle_crt_exists (m)
  21. 0021specialize jordan_rectangle_crt_exists (n)
  22. 0022specialize jordan_rectangle_crt_exists (k)
  23. 0023specialize jordan_rectangle_crt_exists (A)
  24. 0024specialize jordan_rectangle_crt_exists (B)
  25. 0025specialize jordan_rectangle_crt_exists (C)
  26. 0026specialize jordan_rectangle_crt_exists (D)
  27. 0027specialize jordan_rectangle_crt_exists (u)
  28. 0028specialize jordan_rectangle_crt_exists (E)
  29. 0029specialize jordan_rectangle_crt_exists (F)
  30. 0030specialize jordan_rectangle_crt_exists (G)
  31. 0031specialize jordan_rectangle_crt_exists (H)
  32. 0032specialize jordan_rectangle_crt_exists (v)
  33. 0033apply jordan_rectangle_crt_exists
  34. 0034exact hm
  35. 0035exact hn
  36. 0036exact hcop
  37. 0037exact hl
  38. 0038exact hh
  39. 0039have hv : exists P Q R T. forall jt_index_mulenumtable. (exists jt_gap_mulenumtableindex. jt_gap_mulenumtableindex+S (jt_index_mulenumtable)=(u*v)) -> exists jt_row_mulenumtable jt_column_mulenumtable jt_b_mulenumtable jt_c_mulenumtable jt_d_mulenumtable jt_e_mulenumtable jt_f_mulenumtable jt_g_mulenumtable. ((exists jt_gap_mulenumtablerow. jt_gap_mulenumtablerow+S (jt_row_mulenumtable)=(u)) /\ (((exists jt_gap_mulenumtablecolumn. jt_gap_mulenumtablecolumn+S (jt_column_mulenumtable)=(v)) /\ (((jt_index_mulenumtable=(v)*jt_row_mulenumtable+jt_column_mulenumtable) /\ (((((((exists fs_h_jt_mulenumtableleftcode. fs_h_jt_mulenumtableleftcode + S (jt_b_mulenumtable) = S ((S (jt_row_mulenumtable)) * B)) /\ exists fs_q_jt_mulenumtableleftcode. A = fs_q_jt_mulenumtableleftcode * S ((S (jt_row_mulenumtable)) * B) + (jt_b_mulenumtable))) /\ (((exists fs_h_jt_mulenumtableleftscale. fs_h_jt_mulenumtableleftscale + S (jt_c_mulenumtable) = S ((S (jt_row_mulenumtable)) * D)) /\ exists fs_q_jt_mulenumtableleftscale. C = fs_q_jt_mulenumtableleftscale * S ((S (jt_row_mulenumtable)) * D) + (jt_c_mulenumtable))))) /\ (((((((exists fs_h_jt_mulenumtablerightcode. fs_h_jt_mulenumtablerightcode + S (jt_d_mulenumtable) = S ((S (jt_column_mulenumtable)) * F)) /\ exists fs_q_jt_mulenumtablerightcode. E = fs_q_jt_mulenumtablerightcode * S ((S (jt_column_mulenumtable)) * F) + (jt_d_mulenumtable))) /\ (((exists fs_h_jt_mulenumtablerightscale. fs_h_jt_mulenumtablerightscale + S (jt_e_mulenumtable) = S ((S (jt_column_mulenumtable)) * H)) /\ exists fs_q_jt_mulenumtablerightscale. G = fs_q_jt_mulenumtablerightscale * S ((S (jt_column_mulenumtable)) * H) + (jt_e_mulenumtable))))) /\ (((((((exists fs_h_jt_mulenumtableoutputcode. fs_h_jt_mulenumtableoutputcode + S (jt_f_mulenumtable) = S ((S (jt_index_mulenumtable)) * Q)) /\ exists fs_q_jt_mulenumtableoutputcode. P = fs_q_jt_mulenumtableoutputcode * S ((S (jt_index_mulenumtable)) * Q) + (jt_f_mulenumtable))) /\ (((exists fs_h_jt_mulenumtableoutputscale. fs_h_jt_mulenumtableoutputscale + S (jt_g_mulenumtable) = S ((S (jt_index_mulenumtable)) * T)) /\ exists fs_q_jt_mulenumtableoutputscale. R = fs_q_jt_mulenumtableoutputscale * S ((S (jt_index_mulenumtable)) * T) + (jt_g_mulenumtable))))) /\ (((((forall jt_index_mulenumtablecrtbound. (exists jt_gap_mulenumtablecrtboundindex. jt_gap_mulenumtablecrtboundindex+S (jt_index_mulenumtablecrtbound)=(k)) -> exists jt_value_mulenumtablecrtbound. ((((exists fs_h_jt_mulenumtablecrtboundat. fs_h_jt_mulenumtablecrtboundat + S (jt_value_mulenumtablecrtbound) = S ((S (jt_index_mulenumtablecrtbound)) * jt_g_mulenumtable)) /\ exists fs_q_jt_mulenumtablecrtboundat. jt_f_mulenumtable = fs_q_jt_mulenumtablecrtboundat * S ((S (jt_index_mulenumtablecrtbound)) * jt_g_mulenumtable) + (jt_value_mulenumtablecrtbound))) /\ (exists jt_gap_mulenumtablecrtboundvalue. jt_gap_mulenumtablecrtboundvalue+S (jt_value_mulenumtablecrtbound)=(m*n)))) /\ (((forall jt_index_mulenumtablecrtleft jt_left_mulenumtablecrtleft jt_right_mulenumtablecrtleft. (exists jt_gap_mulenumtablecrtleftindex. jt_gap_mulenumtablecrtleftindex+S (jt_index_mulenumtablecrtleft)=(k)) -> (((exists fs_h_jt_mulenumtablecrtleftleft. fs_h_jt_mulenumtablecrtleftleft + S (jt_left_mulenumtablecrtleft) = S ((S (jt_index_mulenumtablecrtleft)) * jt_g_mulenumtable)) /\ exists fs_q_jt_mulenumtablecrtleftleft. jt_f_mulenumtable = fs_q_jt_mulenumtablecrtleftleft * S ((S (jt_index_mulenumtablecrtleft)) * jt_g_mulenumtable) + (jt_left_mulenumtablecrtleft))) -> (((exists fs_h_jt_mulenumtablecrtleftright. fs_h_jt_mulenumtablecrtleftright + S (jt_right_mulenumtablecrtleft) = S ((S (jt_index_mulenumtablecrtleft)) * jt_c_mulenumtable)) /\ exists fs_q_jt_mulenumtablecrtleftright. jt_b_mulenumtable = fs_q_jt_mulenumtablecrtleftright * S ((S (jt_index_mulenumtablecrtleft)) * jt_c_mulenumtable) + (jt_right_mulenumtablecrtleft))) -> (exists jt_left_mulenumtablecrtleftmod jt_right_mulenumtablecrtleftmod. (jt_left_mulenumtablecrtleft)+(m)*jt_left_mulenumtablecrtleftmod=(jt_right_mulenumtablecrtleft)+(m)*jt_right_mulenumtablecrtleftmod)) /\ (forall jt_index_mulenumtablecrtright jt_left_mulenumtablecrtright jt_right_mulenumtablecrtright. (exists jt_gap_mulenumtablecrtrightindex. jt_gap_mulenumtablecrtrightindex+S (jt_index_mulenumtablecrtright)=(k)) -> (((exists fs_h_jt_mulenumtablecrtrightleft. fs_h_jt_mulenumtablecrtrightleft + S (jt_left_mulenumtablecrtright) = S ((S (jt_index_mulenumtablecrtright)) * jt_g_mulenumtable)) /\ exists fs_q_jt_mulenumtablecrtrightleft. jt_f_mulenumtable = fs_q_jt_mulenumtablecrtrightleft * S ((S (jt_index_mulenumtablecrtright)) * jt_g_mulenumtable) + (jt_left_mulenumtablecrtright))) -> (((exists fs_h_jt_mulenumtablecrtrightright. fs_h_jt_mulenumtablecrtrightright + S (jt_right_mulenumtablecrtright) = S ((S (jt_index_mulenumtablecrtright)) * jt_e_mulenumtable)) /\ exists fs_q_jt_mulenumtablecrtrightright. jt_d_mulenumtable = fs_q_jt_mulenumtablecrtrightright * S ((S (jt_index_mulenumtablecrtright)) * jt_e_mulenumtable) + (jt_right_mulenumtablecrtright))) -> (exists jt_left_mulenumtablecrtrightmod jt_right_mulenumtablecrtrightmod. (jt_left_mulenumtablecrtright)+(n)*jt_left_mulenumtablecrtrightmod=(jt_right_mulenumtablecrtright)+(n)*jt_right_mulenumtablecrtrightmod)))))) /\ (forall jt_divisor_mulenumtableprimitive. (exists jt_factor_mulenumtableprimitivemodulus. (m*n)=(jt_divisor_mulenumtableprimitive)*jt_factor_mulenumtableprimitivemodulus) -> (forall jt_index_mulenumtableprimitivecoordinates jt_value_mulenumtableprimitivecoordinates. (exists jt_gap_mulenumtableprimitivecoordinatesindex. jt_gap_mulenumtableprimitivecoordinatesindex+S (jt_index_mulenumtableprimitivecoordinates)=(k)) -> (((exists fs_h_jt_mulenumtableprimitivecoordinatesat. fs_h_jt_mulenumtableprimitivecoordinatesat + S (jt_value_mulenumtableprimitivecoordinates) = S ((S (jt_index_mulenumtableprimitivecoordinates)) * jt_g_mulenumtable)) /\ exists fs_q_jt_mulenumtableprimitivecoordinatesat. jt_f_mulenumtable = fs_q_jt_mulenumtableprimitivecoordinatesat * S ((S (jt_index_mulenumtableprimitivecoordinates)) * jt_g_mulenumtable) + (jt_value_mulenumtableprimitivecoordinates))) -> (exists jt_factor_mulenumtableprimitivecoordinatesdivides. (jt_value_mulenumtableprimitivecoordinates)=(jt_divisor_mulenumtableprimitive)*jt_factor_mulenumtableprimitivecoordinatesdivides)) -> jt_divisor_mulenumtableprimitive=1))))))))))))))
  40. 0040specialize ht (u*v)
  41. 0041apply ht
  42. 0042specialize le_refl (u*v)
  43. 0043apply le_refl
  44. 0044cases hv
  45. 0045cases hv_witness
  46. 0046cases hv_witness_witness
  47. 0047cases hv_witness_witness_witness
  48. 0048exists x
  49. 0049exists x1
  50. 0050exists x2
  51. 0051exists x3
  52. 0052specialize jordan_rectangle_crt_enumeration (m)
  53. 0053specialize jordan_rectangle_crt_enumeration (n)
  54. 0054specialize jordan_rectangle_crt_enumeration (k)
  55. 0055specialize jordan_rectangle_crt_enumeration (A)
  56. 0056specialize jordan_rectangle_crt_enumeration (B)
  57. 0057specialize jordan_rectangle_crt_enumeration (C)
  58. 0058specialize jordan_rectangle_crt_enumeration (D)
  59. 0059specialize jordan_rectangle_crt_enumeration (u)
  60. 0060specialize jordan_rectangle_crt_enumeration (E)
  61. 0061specialize jordan_rectangle_crt_enumeration (F)
  62. 0062specialize jordan_rectangle_crt_enumeration (G)
  63. 0063specialize jordan_rectangle_crt_enumeration (H)
  64. 0064specialize jordan_rectangle_crt_enumeration (v)
  65. 0065specialize jordan_rectangle_crt_enumeration (x)
  66. 0066specialize jordan_rectangle_crt_enumeration (x1)
  67. 0067specialize jordan_rectangle_crt_enumeration (x2)
  68. 0068specialize jordan_rectangle_crt_enumeration (x3)
  69. 0069apply jordan_rectangle_crt_enumeration
  70. 0070exact hm
  71. 0071exact hn
  72. 0072exact hcop
  73. 0073exact hl
  74. 0074exact hh
  75. 0075exact hv_witness_witness_witness_witness