JT004D

jordan_enumeration_position_match_exists

Every actual source position has a bounded target position representing precisely the same coordinate tuple.

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

95 new Alpha admissions come from 96 source lemmas: tuple equality reflexivity reuses an already-admitted theorem and is not counted twice. All counts use actual finite beta-coded enumerations. G008 multiplicativity is proved; the general prime-power count and distinct-prime product formula are further goals. General prime-power fields (G091) remain open. Stable is unchanged.

Exact theorem in conservative defined notation

∀ k. ∀ n. ∀ A. ∀ B. ∀ C. ∀ D. ∀ u. ∀ E. ∀ F. ∀ G. ∀ H. ∀ v. ∀ i. JordanTupleEnumeration(k,n,A,B,C,D,u) → JordanTupleEnumeration(k,n,E,F,G,H,v) → Lt(i,u) → ∃ x. Lt(x,v) ∧ (∀ y. ∀ z. ∀ m. ∀ j. BetaAt(A,B,i,y) ∧ BetaAt(C,D,i,z) → BetaAt(E,F,x,m) ∧ BetaAt(G,H,x,j) → IntegerVectorZero(y,z,m,j,k))

Every linked abbreviation expands hygienically to the identical original native formula.

Definition DAG

Actual proof prerequisites

Original expanded first-order statement
forall k n A B C D u E F G H v i. (((forall jt_i_source_enum. (exists jt_gap_source_enumsoundindex. jt_gap_source_enumsoundindex+S (jt_i_source_enum)=(u)) -> exists jt_b_source_enum jt_c_source_enum. ((((((exists fs_h_jt_source_enumsoundcode. fs_h_jt_source_enumsoundcode + S (jt_b_source_enum) = S ((S (jt_i_source_enum)) * B)) /\ exists fs_q_jt_source_enumsoundcode. A = fs_q_jt_source_enumsoundcode * S ((S (jt_i_source_enum)) * B) + (jt_b_source_enum))) /\ (((exists fs_h_jt_source_enumsoundscale. fs_h_jt_source_enumsoundscale + S (jt_c_source_enum) = S ((S (jt_i_source_enum)) * D)) /\ exists fs_q_jt_source_enumsoundscale. C = fs_q_jt_source_enumsoundscale * S ((S (jt_i_source_enum)) * D) + (jt_c_source_enum))))) /\ (((forall jt_index_source_enumbound. (exists jt_gap_source_enumboundindex. jt_gap_source_enumboundindex+S (jt_index_source_enumbound)=(k)) -> exists jt_value_source_enumbound. ((((exists fs_h_jt_source_enumboundat. fs_h_jt_source_enumboundat + S (jt_value_source_enumbound) = S ((S (jt_index_source_enumbound)) * jt_c_source_enum)) /\ exists fs_q_jt_source_enumboundat. jt_b_source_enum = fs_q_jt_source_enumboundat * S ((S (jt_index_source_enumbound)) * jt_c_source_enum) + (jt_value_source_enumbound))) /\ (exists jt_gap_source_enumboundvalue. jt_gap_source_enumboundvalue+S (jt_value_source_enumbound)=(n)))) /\ (forall jt_divisor_source_enumprimitive. (exists jt_factor_source_enumprimitivemodulus. (n)=(jt_divisor_source_enumprimitive)*jt_factor_source_enumprimitivemodulus) -> (forall jt_index_source_enumprimitivecoordinates jt_value_source_enumprimitivecoordinates. (exists jt_gap_source_enumprimitivecoordinatesindex. jt_gap_source_enumprimitivecoordinatesindex+S (jt_index_source_enumprimitivecoordinates)=(k)) -> (((exists fs_h_jt_source_enumprimitivecoordinatesat. fs_h_jt_source_enumprimitivecoordinatesat + S (jt_value_source_enumprimitivecoordinates) = S ((S (jt_index_source_enumprimitivecoordinates)) * jt_c_source_enum)) /\ exists fs_q_jt_source_enumprimitivecoordinatesat. jt_b_source_enum = fs_q_jt_source_enumprimitivecoordinatesat * S ((S (jt_index_source_enumprimitivecoordinates)) * jt_c_source_enum) + (jt_value_source_enumprimitivecoordinates))) -> (exists jt_factor_source_enumprimitivecoordinatesdivides. (jt_value_source_enumprimitivecoordinates)=(jt_divisor_source_enumprimitive)*jt_factor_source_enumprimitivecoordinatesdivides)) -> jt_divisor_source_enumprimitive=1))))) /\ (((forall jt_b_source_enum jt_c_source_enum. (forall jt_index_source_enuminputbound. (exists jt_gap_source_enuminputboundindex. jt_gap_source_enuminputboundindex+S (jt_index_source_enuminputbound)=(k)) -> exists jt_value_source_enuminputbound. ((((exists fs_h_jt_source_enuminputboundat. fs_h_jt_source_enuminputboundat + S (jt_value_source_enuminputbound) = S ((S (jt_index_source_enuminputbound)) * jt_c_source_enum)) /\ exists fs_q_jt_source_enuminputboundat. jt_b_source_enum = fs_q_jt_source_enuminputboundat * S ((S (jt_index_source_enuminputbound)) * jt_c_source_enum) + (jt_value_source_enuminputbound))) /\ (exists jt_gap_source_enuminputboundvalue. jt_gap_source_enuminputboundvalue+S (jt_value_source_enuminputbound)=(n)))) -> (forall jt_divisor_source_enuminputprimitive. (exists jt_factor_source_enuminputprimitivemodulus. (n)=(jt_divisor_source_enuminputprimitive)*jt_factor_source_enuminputprimitivemodulus) -> (forall jt_index_source_enuminputprimitivecoordinates jt_value_source_enuminputprimitivecoordinates. (exists jt_gap_source_enuminputprimitivecoordinatesindex. jt_gap_source_enuminputprimitivecoordinatesindex+S (jt_index_source_enuminputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_source_enuminputprimitivecoordinatesat. fs_h_jt_source_enuminputprimitivecoordinatesat + S (jt_value_source_enuminputprimitivecoordinates) = S ((S (jt_index_source_enuminputprimitivecoordinates)) * jt_c_source_enum)) /\ exists fs_q_jt_source_enuminputprimitivecoordinatesat. jt_b_source_enum = fs_q_jt_source_enuminputprimitivecoordinatesat * S ((S (jt_index_source_enuminputprimitivecoordinates)) * jt_c_source_enum) + (jt_value_source_enuminputprimitivecoordinates))) -> (exists jt_factor_source_enuminputprimitivecoordinatesdivides. (jt_value_source_enuminputprimitivecoordinates)=(jt_divisor_source_enuminputprimitive)*jt_factor_source_enuminputprimitivecoordinatesdivides)) -> jt_divisor_source_enuminputprimitive=1) -> exists jt_i_source_enum jt_d_source_enum jt_e_source_enum. ((exists jt_gap_source_enumcompleteindex. jt_gap_source_enumcompleteindex+S (jt_i_source_enum)=(u)) /\ (((((((exists fs_h_jt_source_enumcompletecode. fs_h_jt_source_enumcompletecode + S (jt_d_source_enum) = S ((S (jt_i_source_enum)) * B)) /\ exists fs_q_jt_source_enumcompletecode. A = fs_q_jt_source_enumcompletecode * S ((S (jt_i_source_enum)) * B) + (jt_d_source_enum))) /\ (((exists fs_h_jt_source_enumcompletescale. fs_h_jt_source_enumcompletescale + S (jt_e_source_enum) = S ((S (jt_i_source_enum)) * D)) /\ exists fs_q_jt_source_enumcompletescale. C = fs_q_jt_source_enumcompletescale * S ((S (jt_i_source_enum)) * D) + (jt_e_source_enum))))) /\ (forall jt_index_source_enumrepresented jt_left_source_enumrepresented jt_right_source_enumrepresented. (exists jt_gap_source_enumrepresentedindex. jt_gap_source_enumrepresentedindex+S (jt_index_source_enumrepresented)=(k)) -> (((exists fs_h_jt_source_enumrepresentedleft. fs_h_jt_source_enumrepresentedleft + S (jt_left_source_enumrepresented) = S ((S (jt_index_source_enumrepresented)) * jt_c_source_enum)) /\ exists fs_q_jt_source_enumrepresentedleft. jt_b_source_enum = fs_q_jt_source_enumrepresentedleft * S ((S (jt_index_source_enumrepresented)) * jt_c_source_enum) + (jt_left_source_enumrepresented))) -> (((exists fs_h_jt_source_enumrepresentedright. fs_h_jt_source_enumrepresentedright + S (jt_right_source_enumrepresented) = S ((S (jt_index_source_enumrepresented)) * jt_e_source_enum)) /\ exists fs_q_jt_source_enumrepresentedright. jt_d_source_enum = fs_q_jt_source_enumrepresentedright * S ((S (jt_index_source_enumrepresented)) * jt_e_source_enum) + (jt_right_source_enumrepresented))) -> jt_left_source_enumrepresented=jt_right_source_enumrepresented))))) /\ (forall jt_i_source_enum jt_h_source_enum jt_b_source_enum jt_c_source_enum jt_d_source_enum jt_e_source_enum. (exists jt_gap_source_enumfirstindex. jt_gap_source_enumfirstindex+S (jt_i_source_enum)=(u)) -> (exists jt_gap_source_enumsecondindex. jt_gap_source_enumsecondindex+S (jt_h_source_enum)=(u)) -> (((((exists fs_h_jt_source_enumfirstcode. fs_h_jt_source_enumfirstcode + S (jt_b_source_enum) = S ((S (jt_i_source_enum)) * B)) /\ exists fs_q_jt_source_enumfirstcode. A = fs_q_jt_source_enumfirstcode * S ((S (jt_i_source_enum)) * B) + (jt_b_source_enum))) /\ (((exists fs_h_jt_source_enumfirstscale. fs_h_jt_source_enumfirstscale + S (jt_c_source_enum) = S ((S (jt_i_source_enum)) * D)) /\ exists fs_q_jt_source_enumfirstscale. C = fs_q_jt_source_enumfirstscale * S ((S (jt_i_source_enum)) * D) + (jt_c_source_enum))))) -> (((((exists fs_h_jt_source_enumsecondcode. fs_h_jt_source_enumsecondcode + S (jt_d_source_enum) = S ((S (jt_h_source_enum)) * B)) /\ exists fs_q_jt_source_enumsecondcode. A = fs_q_jt_source_enumsecondcode * S ((S (jt_h_source_enum)) * B) + (jt_d_source_enum))) /\ (((exists fs_h_jt_source_enumsecondscale. fs_h_jt_source_enumsecondscale + S (jt_e_source_enum) = S ((S (jt_h_source_enum)) * D)) /\ exists fs_q_jt_source_enumsecondscale. C = fs_q_jt_source_enumsecondscale * S ((S (jt_h_source_enum)) * D) + (jt_e_source_enum))))) -> (forall jt_index_source_enumsame jt_left_source_enumsame jt_right_source_enumsame. (exists jt_gap_source_enumsameindex. jt_gap_source_enumsameindex+S (jt_index_source_enumsame)=(k)) -> (((exists fs_h_jt_source_enumsameleft. fs_h_jt_source_enumsameleft + S (jt_left_source_enumsame) = S ((S (jt_index_source_enumsame)) * jt_c_source_enum)) /\ exists fs_q_jt_source_enumsameleft. jt_b_source_enum = fs_q_jt_source_enumsameleft * S ((S (jt_index_source_enumsame)) * jt_c_source_enum) + (jt_left_source_enumsame))) -> (((exists fs_h_jt_source_enumsameright. fs_h_jt_source_enumsameright + S (jt_right_source_enumsame) = S ((S (jt_index_source_enumsame)) * jt_e_source_enum)) /\ exists fs_q_jt_source_enumsameright. jt_d_source_enum = fs_q_jt_source_enumsameright * S ((S (jt_index_source_enumsame)) * jt_e_source_enum) + (jt_right_source_enumsame))) -> jt_left_source_enumsame=jt_right_source_enumsame) -> jt_i_source_enum=jt_h_source_enum))))) -> (((forall jt_i_target_enum. (exists jt_gap_target_enumsoundindex. jt_gap_target_enumsoundindex+S (jt_i_target_enum)=(v)) -> exists jt_b_target_enum jt_c_target_enum. ((((((exists fs_h_jt_target_enumsoundcode. fs_h_jt_target_enumsoundcode + S (jt_b_target_enum) = S ((S (jt_i_target_enum)) * F)) /\ exists fs_q_jt_target_enumsoundcode. E = fs_q_jt_target_enumsoundcode * S ((S (jt_i_target_enum)) * F) + (jt_b_target_enum))) /\ (((exists fs_h_jt_target_enumsoundscale. fs_h_jt_target_enumsoundscale + S (jt_c_target_enum) = S ((S (jt_i_target_enum)) * H)) /\ exists fs_q_jt_target_enumsoundscale. G = fs_q_jt_target_enumsoundscale * S ((S (jt_i_target_enum)) * H) + (jt_c_target_enum))))) /\ (((forall jt_index_target_enumbound. (exists jt_gap_target_enumboundindex. jt_gap_target_enumboundindex+S (jt_index_target_enumbound)=(k)) -> exists jt_value_target_enumbound. ((((exists fs_h_jt_target_enumboundat. fs_h_jt_target_enumboundat + S (jt_value_target_enumbound) = S ((S (jt_index_target_enumbound)) * jt_c_target_enum)) /\ exists fs_q_jt_target_enumboundat. jt_b_target_enum = fs_q_jt_target_enumboundat * S ((S (jt_index_target_enumbound)) * jt_c_target_enum) + (jt_value_target_enumbound))) /\ (exists jt_gap_target_enumboundvalue. jt_gap_target_enumboundvalue+S (jt_value_target_enumbound)=(n)))) /\ (forall jt_divisor_target_enumprimitive. (exists jt_factor_target_enumprimitivemodulus. (n)=(jt_divisor_target_enumprimitive)*jt_factor_target_enumprimitivemodulus) -> (forall jt_index_target_enumprimitivecoordinates jt_value_target_enumprimitivecoordinates. (exists jt_gap_target_enumprimitivecoordinatesindex. jt_gap_target_enumprimitivecoordinatesindex+S (jt_index_target_enumprimitivecoordinates)=(k)) -> (((exists fs_h_jt_target_enumprimitivecoordinatesat. fs_h_jt_target_enumprimitivecoordinatesat + S (jt_value_target_enumprimitivecoordinates) = S ((S (jt_index_target_enumprimitivecoordinates)) * jt_c_target_enum)) /\ exists fs_q_jt_target_enumprimitivecoordinatesat. jt_b_target_enum = fs_q_jt_target_enumprimitivecoordinatesat * S ((S (jt_index_target_enumprimitivecoordinates)) * jt_c_target_enum) + (jt_value_target_enumprimitivecoordinates))) -> (exists jt_factor_target_enumprimitivecoordinatesdivides. (jt_value_target_enumprimitivecoordinates)=(jt_divisor_target_enumprimitive)*jt_factor_target_enumprimitivecoordinatesdivides)) -> jt_divisor_target_enumprimitive=1))))) /\ (((forall jt_b_target_enum jt_c_target_enum. (forall jt_index_target_enuminputbound. (exists jt_gap_target_enuminputboundindex. jt_gap_target_enuminputboundindex+S (jt_index_target_enuminputbound)=(k)) -> exists jt_value_target_enuminputbound. ((((exists fs_h_jt_target_enuminputboundat. fs_h_jt_target_enuminputboundat + S (jt_value_target_enuminputbound) = S ((S (jt_index_target_enuminputbound)) * jt_c_target_enum)) /\ exists fs_q_jt_target_enuminputboundat. jt_b_target_enum = fs_q_jt_target_enuminputboundat * S ((S (jt_index_target_enuminputbound)) * jt_c_target_enum) + (jt_value_target_enuminputbound))) /\ (exists jt_gap_target_enuminputboundvalue. jt_gap_target_enuminputboundvalue+S (jt_value_target_enuminputbound)=(n)))) -> (forall jt_divisor_target_enuminputprimitive. (exists jt_factor_target_enuminputprimitivemodulus. (n)=(jt_divisor_target_enuminputprimitive)*jt_factor_target_enuminputprimitivemodulus) -> (forall jt_index_target_enuminputprimitivecoordinates jt_value_target_enuminputprimitivecoordinates. (exists jt_gap_target_enuminputprimitivecoordinatesindex. jt_gap_target_enuminputprimitivecoordinatesindex+S (jt_index_target_enuminputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_target_enuminputprimitivecoordinatesat. fs_h_jt_target_enuminputprimitivecoordinatesat + S (jt_value_target_enuminputprimitivecoordinates) = S ((S (jt_index_target_enuminputprimitivecoordinates)) * jt_c_target_enum)) /\ exists fs_q_jt_target_enuminputprimitivecoordinatesat. jt_b_target_enum = fs_q_jt_target_enuminputprimitivecoordinatesat * S ((S (jt_index_target_enuminputprimitivecoordinates)) * jt_c_target_enum) + (jt_value_target_enuminputprimitivecoordinates))) -> (exists jt_factor_target_enuminputprimitivecoordinatesdivides. (jt_value_target_enuminputprimitivecoordinates)=(jt_divisor_target_enuminputprimitive)*jt_factor_target_enuminputprimitivecoordinatesdivides)) -> jt_divisor_target_enuminputprimitive=1) -> exists jt_i_target_enum jt_d_target_enum jt_e_target_enum. ((exists jt_gap_target_enumcompleteindex. jt_gap_target_enumcompleteindex+S (jt_i_target_enum)=(v)) /\ (((((((exists fs_h_jt_target_enumcompletecode. fs_h_jt_target_enumcompletecode + S (jt_d_target_enum) = S ((S (jt_i_target_enum)) * F)) /\ exists fs_q_jt_target_enumcompletecode. E = fs_q_jt_target_enumcompletecode * S ((S (jt_i_target_enum)) * F) + (jt_d_target_enum))) /\ (((exists fs_h_jt_target_enumcompletescale. fs_h_jt_target_enumcompletescale + S (jt_e_target_enum) = S ((S (jt_i_target_enum)) * H)) /\ exists fs_q_jt_target_enumcompletescale. G = fs_q_jt_target_enumcompletescale * S ((S (jt_i_target_enum)) * H) + (jt_e_target_enum))))) /\ (forall jt_index_target_enumrepresented jt_left_target_enumrepresented jt_right_target_enumrepresented. (exists jt_gap_target_enumrepresentedindex. jt_gap_target_enumrepresentedindex+S (jt_index_target_enumrepresented)=(k)) -> (((exists fs_h_jt_target_enumrepresentedleft. fs_h_jt_target_enumrepresentedleft + S (jt_left_target_enumrepresented) = S ((S (jt_index_target_enumrepresented)) * jt_c_target_enum)) /\ exists fs_q_jt_target_enumrepresentedleft. jt_b_target_enum = fs_q_jt_target_enumrepresentedleft * S ((S (jt_index_target_enumrepresented)) * jt_c_target_enum) + (jt_left_target_enumrepresented))) -> (((exists fs_h_jt_target_enumrepresentedright. fs_h_jt_target_enumrepresentedright + S (jt_right_target_enumrepresented) = S ((S (jt_index_target_enumrepresented)) * jt_e_target_enum)) /\ exists fs_q_jt_target_enumrepresentedright. jt_d_target_enum = fs_q_jt_target_enumrepresentedright * S ((S (jt_index_target_enumrepresented)) * jt_e_target_enum) + (jt_right_target_enumrepresented))) -> jt_left_target_enumrepresented=jt_right_target_enumrepresented))))) /\ (forall jt_i_target_enum jt_h_target_enum jt_b_target_enum jt_c_target_enum jt_d_target_enum jt_e_target_enum. (exists jt_gap_target_enumfirstindex. jt_gap_target_enumfirstindex+S (jt_i_target_enum)=(v)) -> (exists jt_gap_target_enumsecondindex. jt_gap_target_enumsecondindex+S (jt_h_target_enum)=(v)) -> (((((exists fs_h_jt_target_enumfirstcode. fs_h_jt_target_enumfirstcode + S (jt_b_target_enum) = S ((S (jt_i_target_enum)) * F)) /\ exists fs_q_jt_target_enumfirstcode. E = fs_q_jt_target_enumfirstcode * S ((S (jt_i_target_enum)) * F) + (jt_b_target_enum))) /\ (((exists fs_h_jt_target_enumfirstscale. fs_h_jt_target_enumfirstscale + S (jt_c_target_enum) = S ((S (jt_i_target_enum)) * H)) /\ exists fs_q_jt_target_enumfirstscale. G = fs_q_jt_target_enumfirstscale * S ((S (jt_i_target_enum)) * H) + (jt_c_target_enum))))) -> (((((exists fs_h_jt_target_enumsecondcode. fs_h_jt_target_enumsecondcode + S (jt_d_target_enum) = S ((S (jt_h_target_enum)) * F)) /\ exists fs_q_jt_target_enumsecondcode. E = fs_q_jt_target_enumsecondcode * S ((S (jt_h_target_enum)) * F) + (jt_d_target_enum))) /\ (((exists fs_h_jt_target_enumsecondscale. fs_h_jt_target_enumsecondscale + S (jt_e_target_enum) = S ((S (jt_h_target_enum)) * H)) /\ exists fs_q_jt_target_enumsecondscale. G = fs_q_jt_target_enumsecondscale * S ((S (jt_h_target_enum)) * H) + (jt_e_target_enum))))) -> (forall jt_index_target_enumsame jt_left_target_enumsame jt_right_target_enumsame. (exists jt_gap_target_enumsameindex. jt_gap_target_enumsameindex+S (jt_index_target_enumsame)=(k)) -> (((exists fs_h_jt_target_enumsameleft. fs_h_jt_target_enumsameleft + S (jt_left_target_enumsame) = S ((S (jt_index_target_enumsame)) * jt_c_target_enum)) /\ exists fs_q_jt_target_enumsameleft. jt_b_target_enum = fs_q_jt_target_enumsameleft * S ((S (jt_index_target_enumsame)) * jt_c_target_enum) + (jt_left_target_enumsame))) -> (((exists fs_h_jt_target_enumsameright. fs_h_jt_target_enumsameright + S (jt_right_target_enumsame) = S ((S (jt_index_target_enumsame)) * jt_e_target_enum)) /\ exists fs_q_jt_target_enumsameright. jt_d_target_enum = fs_q_jt_target_enumsameright * S ((S (jt_index_target_enumsame)) * jt_e_target_enum) + (jt_right_target_enumsame))) -> jt_left_target_enumsame=jt_right_target_enumsame) -> jt_i_target_enum=jt_h_target_enum))))) -> (exists jt_gap_source_index. jt_gap_source_index+S (i)=(u)) -> (exists j. ((exists jt_gap_chosen_image_bound. jt_gap_chosen_image_bound+S (j)=(v)) /\ (forall jt_b_chosen_image_match jt_c_chosen_image_match jt_d_chosen_image_match jt_e_chosen_image_match. (((((exists fs_h_jt_chosen_image_matchleftcode. fs_h_jt_chosen_image_matchleftcode + S (jt_b_chosen_image_match) = S ((S (i)) * B)) /\ exists fs_q_jt_chosen_image_matchleftcode. A = fs_q_jt_chosen_image_matchleftcode * S ((S (i)) * B) + (jt_b_chosen_image_match))) /\ (((exists fs_h_jt_chosen_image_matchleftscale. fs_h_jt_chosen_image_matchleftscale + S (jt_c_chosen_image_match) = S ((S (i)) * D)) /\ exists fs_q_jt_chosen_image_matchleftscale. C = fs_q_jt_chosen_image_matchleftscale * S ((S (i)) * D) + (jt_c_chosen_image_match))))) -> (((((exists fs_h_jt_chosen_image_matchrightcode. fs_h_jt_chosen_image_matchrightcode + S (jt_d_chosen_image_match) = S ((S (j)) * F)) /\ exists fs_q_jt_chosen_image_matchrightcode. E = fs_q_jt_chosen_image_matchrightcode * S ((S (j)) * F) + (jt_d_chosen_image_match))) /\ (((exists fs_h_jt_chosen_image_matchrightscale. fs_h_jt_chosen_image_matchrightscale + S (jt_e_chosen_image_match) = S ((S (j)) * H)) /\ exists fs_q_jt_chosen_image_matchrightscale. G = fs_q_jt_chosen_image_matchrightscale * S ((S (j)) * H) + (jt_e_chosen_image_match))))) -> (forall jt_index_chosen_image_matchequal jt_left_chosen_image_matchequal jt_right_chosen_image_matchequal. (exists jt_gap_chosen_image_matchequalindex. jt_gap_chosen_image_matchequalindex+S (jt_index_chosen_image_matchequal)=(k)) -> (((exists fs_h_jt_chosen_image_matchequalleft. fs_h_jt_chosen_image_matchequalleft + S (jt_left_chosen_image_matchequal) = S ((S (jt_index_chosen_image_matchequal)) * jt_c_chosen_image_match)) /\ exists fs_q_jt_chosen_image_matchequalleft. jt_b_chosen_image_match = fs_q_jt_chosen_image_matchequalleft * S ((S (jt_index_chosen_image_matchequal)) * jt_c_chosen_image_match) + (jt_left_chosen_image_matchequal))) -> (((exists fs_h_jt_chosen_image_matchequalright. fs_h_jt_chosen_image_matchequalright + S (jt_right_chosen_image_matchequal) = S ((S (jt_index_chosen_image_matchequal)) * jt_e_chosen_image_match)) /\ exists fs_q_jt_chosen_image_matchequalright. jt_d_chosen_image_match = fs_q_jt_chosen_image_matchequalright * S ((S (jt_index_chosen_image_matchequal)) * jt_e_chosen_image_match) + (jt_right_chosen_image_matchequal))) -> jt_left_chosen_image_matchequal=jt_right_chosen_image_matchequal))))

Complete tactic proof in conservative notation

All 66 original proof lines are preserved. Only local proposition formulas are abbreviated; every abbreviation has an exact binder-safe expansion check. The linked exact edition contains the unchanged replay script.

Read the argument

Proof checkpoints

66 script commands · 12 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.

Definition notation is shown below. Open the paired exact edition for the original native formulas. Source pairing is not a new equivalence certificate.

Named ingredients (2)
01Fix variables and assumptionsL1–10

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

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

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

  1. L11
    intro H
  2. L12
    intro v
  3. L13
    intro i
  4. L14
    intro hl
  5. L15
    intro hr
  6. L16
    intro hi
03Separate the logical casesL17–17

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

  1. L17
    cases hl
04Establish hvL18–21

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

  1. L18
    have hv : ∃ b. ∃ c. BetaAt(A,B,i,b) ∧ BetaAt(C,D,i,c) ∧ (BetaPrefixInto(b,c,k,n) ∧ JordanPrimitiveTuple(n,b,c,k))Definitions: BetaAt(A,B,i,b)BetaAt(C,D,i,c)BetaPrefixInto(b,c,k,n)JordanPrimitiveTuple(n,b,c,k)Original native command in the exact edition
  2. L19
    specialize hl_left (i)
  3. L20
    apply hl_left
  4. L21
    exact hi
05Separate the logical casesL22–25

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

  1. L22
    cases hv
  2. L23
    cases hv_witness
  3. L24
    cases hv_witness_witness
  4. L25
    cases hv_witness_witness_right
06Establish hwL26–35

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

  1. L26
    have hw : JordanTupleListed(x,x1,k,E,F,G,H,v)Definitions: JordanTupleListed(x,x1,k,E,F,G,H,v)Original native command in the exact edition
  2. L27
    specialize jordan_enumeration_complete (k)
  3. L28
    specialize jordan_enumeration_complete (n)
  4. L29
    specialize jordan_enumeration_complete (E)
  5. L30
    specialize jordan_enumeration_complete (F)
  6. L31
    specialize jordan_enumeration_complete (G)
  7. L32
    specialize jordan_enumeration_complete (H)
  8. L33
    specialize jordan_enumeration_complete (v)
  9. L34
    specialize jordan_enumeration_complete (x)
  10. L35
    specialize jordan_enumeration_complete (x1)
07Use earlier factsL36–39

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

  1. L36
    apply jordan_enumeration_complete
  2. L37
    exact hr
  3. L38
    exact hv_witness_witness_right_left
  4. L39
    exact hv_witness_witness_right_right
08Separate the logical casesL40–44

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

  1. L40
    cases hw
  2. L41
    cases hw_witness
  3. L42
    cases hw_witness_witness
  4. L43
    cases hw_witness_witness_witness
  5. L44
    cases hw_witness_witness_witness_right
09Construct an explicit witnessL45–45

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

  1. L45
    exists x2
10Separate the logical casesL46–46

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

  1. L46
    split
11Use earlier factsL47–56

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

  1. L47
    exact hw_witness_witness_witness_left
  2. L48
    specialize jordan_enumeration_position_match_from_entries (k)
  3. L49
    specialize jordan_enumeration_position_match_from_entries (A)
  4. L50
    specialize jordan_enumeration_position_match_from_entries (B)
  5. L51
    specialize jordan_enumeration_position_match_from_entries (C)
  6. L52
    specialize jordan_enumeration_position_match_from_entries (D)
  7. L53
    specialize jordan_enumeration_position_match_from_entries (E)
  8. L54
    specialize jordan_enumeration_position_match_from_entries (F)
  9. L55
    specialize jordan_enumeration_position_match_from_entries (G)
  10. L56
    specialize jordan_enumeration_position_match_from_entries (H)
12Use earlier factsL57–66

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

  1. L57
    specialize jordan_enumeration_position_match_from_entries (i)
  2. L58
    specialize jordan_enumeration_position_match_from_entries (x2)
  3. L59
    specialize jordan_enumeration_position_match_from_entries (x)
  4. L60
    specialize jordan_enumeration_position_match_from_entries (x1)
  5. L61
    specialize jordan_enumeration_position_match_from_entries (x3)
  6. L62
    specialize jordan_enumeration_position_match_from_entries (x4)
  7. L63
    apply jordan_enumeration_position_match_from_entries
  8. L64
    exact hv_witness_witness_left
  9. L65
    exact hw_witness_witness_witness_right_left
  10. L66
    exact hw_witness_witness_witness_right_right

Library-wide reading audit

Original defined command ledger · 66 lines
  1. 0001intro k
  2. 0002intro n
  3. 0003intro A
  4. 0004intro B
  5. 0005intro C
  6. 0006intro D
  7. 0007intro u
  8. 0008intro E
  9. 0009intro F
  10. 0010intro G
  11. 0011intro H
  12. 0012intro v
  13. 0013intro i
  14. 0014intro hl
  15. 0015intro hr
  16. 0016intro hi
  17. 0017cases hl
  18. 0018have hv : ∃ b. ∃ c. BetaAt(A,B,i,b) ∧ BetaAt(C,D,i,c) ∧ (BetaPrefixInto(b,c,k,n) ∧ JordanPrimitiveTuple(n,b,c,k))
  19. 0019specialize hl_left (i)
  20. 0020apply hl_left
  21. 0021exact hi
  22. 0022cases hv
  23. 0023cases hv_witness
  24. 0024cases hv_witness_witness
  25. 0025cases hv_witness_witness_right
  26. 0026have hw : JordanTupleListed(x,x1,k,E,F,G,H,v)
  27. 0027specialize jordan_enumeration_complete (k)
  28. 0028specialize jordan_enumeration_complete (n)
  29. 0029specialize jordan_enumeration_complete (E)
  30. 0030specialize jordan_enumeration_complete (F)
  31. 0031specialize jordan_enumeration_complete (G)
  32. 0032specialize jordan_enumeration_complete (H)
  33. 0033specialize jordan_enumeration_complete (v)
  34. 0034specialize jordan_enumeration_complete (x)
  35. 0035specialize jordan_enumeration_complete (x1)
  36. 0036apply jordan_enumeration_complete
  37. 0037exact hr
  38. 0038exact hv_witness_witness_right_left
  39. 0039exact hv_witness_witness_right_right
  40. 0040cases hw
  41. 0041cases hw_witness
  42. 0042cases hw_witness_witness
  43. 0043cases hw_witness_witness_witness
  44. 0044cases hw_witness_witness_witness_right
  45. 0045exists x2
  46. 0046split
  47. 0047exact hw_witness_witness_witness_left
  48. 0048specialize jordan_enumeration_position_match_from_entries (k)
  49. 0049specialize jordan_enumeration_position_match_from_entries (A)
  50. 0050specialize jordan_enumeration_position_match_from_entries (B)
  51. 0051specialize jordan_enumeration_position_match_from_entries (C)
  52. 0052specialize jordan_enumeration_position_match_from_entries (D)
  53. 0053specialize jordan_enumeration_position_match_from_entries (E)
  54. 0054specialize jordan_enumeration_position_match_from_entries (F)
  55. 0055specialize jordan_enumeration_position_match_from_entries (G)
  56. 0056specialize jordan_enumeration_position_match_from_entries (H)
  57. 0057specialize jordan_enumeration_position_match_from_entries (i)
  58. 0058specialize jordan_enumeration_position_match_from_entries (x2)
  59. 0059specialize jordan_enumeration_position_match_from_entries (x)
  60. 0060specialize jordan_enumeration_position_match_from_entries (x1)
  61. 0061specialize jordan_enumeration_position_match_from_entries (x3)
  62. 0062specialize jordan_enumeration_position_match_from_entries (x4)
  63. 0063apply jordan_enumeration_position_match_from_entries
  64. 0064exact hv_witness_witness_left
  65. 0065exact hw_witness_witness_witness_right_left
  66. 0066exact hw_witness_witness_witness_right_right