JT0053

jordan_enumeration_cardinality_le

A genuinely constructed bounded injection implies the source count is at most the target count, including empty lists.

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. JordanTupleEnumeration(k,n,A,B,C,D,u) → JordanTupleEnumeration(k,n,E,F,G,H,v) → Le(u,v)

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. (((forall jt_i_cardinality_left. (exists jt_gap_cardinality_leftsoundindex. jt_gap_cardinality_leftsoundindex+S (jt_i_cardinality_left)=(u)) -> exists jt_b_cardinality_left jt_c_cardinality_left. ((((((exists fs_h_jt_cardinality_leftsoundcode. fs_h_jt_cardinality_leftsoundcode + S (jt_b_cardinality_left) = S ((S (jt_i_cardinality_left)) * B)) /\ exists fs_q_jt_cardinality_leftsoundcode. A = fs_q_jt_cardinality_leftsoundcode * S ((S (jt_i_cardinality_left)) * B) + (jt_b_cardinality_left))) /\ (((exists fs_h_jt_cardinality_leftsoundscale. fs_h_jt_cardinality_leftsoundscale + S (jt_c_cardinality_left) = S ((S (jt_i_cardinality_left)) * D)) /\ exists fs_q_jt_cardinality_leftsoundscale. C = fs_q_jt_cardinality_leftsoundscale * S ((S (jt_i_cardinality_left)) * D) + (jt_c_cardinality_left))))) /\ (((forall jt_index_cardinality_leftbound. (exists jt_gap_cardinality_leftboundindex. jt_gap_cardinality_leftboundindex+S (jt_index_cardinality_leftbound)=(k)) -> exists jt_value_cardinality_leftbound. ((((exists fs_h_jt_cardinality_leftboundat. fs_h_jt_cardinality_leftboundat + S (jt_value_cardinality_leftbound) = S ((S (jt_index_cardinality_leftbound)) * jt_c_cardinality_left)) /\ exists fs_q_jt_cardinality_leftboundat. jt_b_cardinality_left = fs_q_jt_cardinality_leftboundat * S ((S (jt_index_cardinality_leftbound)) * jt_c_cardinality_left) + (jt_value_cardinality_leftbound))) /\ (exists jt_gap_cardinality_leftboundvalue. jt_gap_cardinality_leftboundvalue+S (jt_value_cardinality_leftbound)=(n)))) /\ (forall jt_divisor_cardinality_leftprimitive. (exists jt_factor_cardinality_leftprimitivemodulus. (n)=(jt_divisor_cardinality_leftprimitive)*jt_factor_cardinality_leftprimitivemodulus) -> (forall jt_index_cardinality_leftprimitivecoordinates jt_value_cardinality_leftprimitivecoordinates. (exists jt_gap_cardinality_leftprimitivecoordinatesindex. jt_gap_cardinality_leftprimitivecoordinatesindex+S (jt_index_cardinality_leftprimitivecoordinates)=(k)) -> (((exists fs_h_jt_cardinality_leftprimitivecoordinatesat. fs_h_jt_cardinality_leftprimitivecoordinatesat + S (jt_value_cardinality_leftprimitivecoordinates) = S ((S (jt_index_cardinality_leftprimitivecoordinates)) * jt_c_cardinality_left)) /\ exists fs_q_jt_cardinality_leftprimitivecoordinatesat. jt_b_cardinality_left = fs_q_jt_cardinality_leftprimitivecoordinatesat * S ((S (jt_index_cardinality_leftprimitivecoordinates)) * jt_c_cardinality_left) + (jt_value_cardinality_leftprimitivecoordinates))) -> (exists jt_factor_cardinality_leftprimitivecoordinatesdivides. (jt_value_cardinality_leftprimitivecoordinates)=(jt_divisor_cardinality_leftprimitive)*jt_factor_cardinality_leftprimitivecoordinatesdivides)) -> jt_divisor_cardinality_leftprimitive=1))))) /\ (((forall jt_b_cardinality_left jt_c_cardinality_left. (forall jt_index_cardinality_leftinputbound. (exists jt_gap_cardinality_leftinputboundindex. jt_gap_cardinality_leftinputboundindex+S (jt_index_cardinality_leftinputbound)=(k)) -> exists jt_value_cardinality_leftinputbound. ((((exists fs_h_jt_cardinality_leftinputboundat. fs_h_jt_cardinality_leftinputboundat + S (jt_value_cardinality_leftinputbound) = S ((S (jt_index_cardinality_leftinputbound)) * jt_c_cardinality_left)) /\ exists fs_q_jt_cardinality_leftinputboundat. jt_b_cardinality_left = fs_q_jt_cardinality_leftinputboundat * S ((S (jt_index_cardinality_leftinputbound)) * jt_c_cardinality_left) + (jt_value_cardinality_leftinputbound))) /\ (exists jt_gap_cardinality_leftinputboundvalue. jt_gap_cardinality_leftinputboundvalue+S (jt_value_cardinality_leftinputbound)=(n)))) -> (forall jt_divisor_cardinality_leftinputprimitive. (exists jt_factor_cardinality_leftinputprimitivemodulus. (n)=(jt_divisor_cardinality_leftinputprimitive)*jt_factor_cardinality_leftinputprimitivemodulus) -> (forall jt_index_cardinality_leftinputprimitivecoordinates jt_value_cardinality_leftinputprimitivecoordinates. (exists jt_gap_cardinality_leftinputprimitivecoordinatesindex. jt_gap_cardinality_leftinputprimitivecoordinatesindex+S (jt_index_cardinality_leftinputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_cardinality_leftinputprimitivecoordinatesat. fs_h_jt_cardinality_leftinputprimitivecoordinatesat + S (jt_value_cardinality_leftinputprimitivecoordinates) = S ((S (jt_index_cardinality_leftinputprimitivecoordinates)) * jt_c_cardinality_left)) /\ exists fs_q_jt_cardinality_leftinputprimitivecoordinatesat. jt_b_cardinality_left = fs_q_jt_cardinality_leftinputprimitivecoordinatesat * S ((S (jt_index_cardinality_leftinputprimitivecoordinates)) * jt_c_cardinality_left) + (jt_value_cardinality_leftinputprimitivecoordinates))) -> (exists jt_factor_cardinality_leftinputprimitivecoordinatesdivides. (jt_value_cardinality_leftinputprimitivecoordinates)=(jt_divisor_cardinality_leftinputprimitive)*jt_factor_cardinality_leftinputprimitivecoordinatesdivides)) -> jt_divisor_cardinality_leftinputprimitive=1) -> exists jt_i_cardinality_left jt_d_cardinality_left jt_e_cardinality_left. ((exists jt_gap_cardinality_leftcompleteindex. jt_gap_cardinality_leftcompleteindex+S (jt_i_cardinality_left)=(u)) /\ (((((((exists fs_h_jt_cardinality_leftcompletecode. fs_h_jt_cardinality_leftcompletecode + S (jt_d_cardinality_left) = S ((S (jt_i_cardinality_left)) * B)) /\ exists fs_q_jt_cardinality_leftcompletecode. A = fs_q_jt_cardinality_leftcompletecode * S ((S (jt_i_cardinality_left)) * B) + (jt_d_cardinality_left))) /\ (((exists fs_h_jt_cardinality_leftcompletescale. fs_h_jt_cardinality_leftcompletescale + S (jt_e_cardinality_left) = S ((S (jt_i_cardinality_left)) * D)) /\ exists fs_q_jt_cardinality_leftcompletescale. C = fs_q_jt_cardinality_leftcompletescale * S ((S (jt_i_cardinality_left)) * D) + (jt_e_cardinality_left))))) /\ (forall jt_index_cardinality_leftrepresented jt_left_cardinality_leftrepresented jt_right_cardinality_leftrepresented. (exists jt_gap_cardinality_leftrepresentedindex. jt_gap_cardinality_leftrepresentedindex+S (jt_index_cardinality_leftrepresented)=(k)) -> (((exists fs_h_jt_cardinality_leftrepresentedleft. fs_h_jt_cardinality_leftrepresentedleft + S (jt_left_cardinality_leftrepresented) = S ((S (jt_index_cardinality_leftrepresented)) * jt_c_cardinality_left)) /\ exists fs_q_jt_cardinality_leftrepresentedleft. jt_b_cardinality_left = fs_q_jt_cardinality_leftrepresentedleft * S ((S (jt_index_cardinality_leftrepresented)) * jt_c_cardinality_left) + (jt_left_cardinality_leftrepresented))) -> (((exists fs_h_jt_cardinality_leftrepresentedright. fs_h_jt_cardinality_leftrepresentedright + S (jt_right_cardinality_leftrepresented) = S ((S (jt_index_cardinality_leftrepresented)) * jt_e_cardinality_left)) /\ exists fs_q_jt_cardinality_leftrepresentedright. jt_d_cardinality_left = fs_q_jt_cardinality_leftrepresentedright * S ((S (jt_index_cardinality_leftrepresented)) * jt_e_cardinality_left) + (jt_right_cardinality_leftrepresented))) -> jt_left_cardinality_leftrepresented=jt_right_cardinality_leftrepresented))))) /\ (forall jt_i_cardinality_left jt_h_cardinality_left jt_b_cardinality_left jt_c_cardinality_left jt_d_cardinality_left jt_e_cardinality_left. (exists jt_gap_cardinality_leftfirstindex. jt_gap_cardinality_leftfirstindex+S (jt_i_cardinality_left)=(u)) -> (exists jt_gap_cardinality_leftsecondindex. jt_gap_cardinality_leftsecondindex+S (jt_h_cardinality_left)=(u)) -> (((((exists fs_h_jt_cardinality_leftfirstcode. fs_h_jt_cardinality_leftfirstcode + S (jt_b_cardinality_left) = S ((S (jt_i_cardinality_left)) * B)) /\ exists fs_q_jt_cardinality_leftfirstcode. A = fs_q_jt_cardinality_leftfirstcode * S ((S (jt_i_cardinality_left)) * B) + (jt_b_cardinality_left))) /\ (((exists fs_h_jt_cardinality_leftfirstscale. fs_h_jt_cardinality_leftfirstscale + S (jt_c_cardinality_left) = S ((S (jt_i_cardinality_left)) * D)) /\ exists fs_q_jt_cardinality_leftfirstscale. C = fs_q_jt_cardinality_leftfirstscale * S ((S (jt_i_cardinality_left)) * D) + (jt_c_cardinality_left))))) -> (((((exists fs_h_jt_cardinality_leftsecondcode. fs_h_jt_cardinality_leftsecondcode + S (jt_d_cardinality_left) = S ((S (jt_h_cardinality_left)) * B)) /\ exists fs_q_jt_cardinality_leftsecondcode. A = fs_q_jt_cardinality_leftsecondcode * S ((S (jt_h_cardinality_left)) * B) + (jt_d_cardinality_left))) /\ (((exists fs_h_jt_cardinality_leftsecondscale. fs_h_jt_cardinality_leftsecondscale + S (jt_e_cardinality_left) = S ((S (jt_h_cardinality_left)) * D)) /\ exists fs_q_jt_cardinality_leftsecondscale. C = fs_q_jt_cardinality_leftsecondscale * S ((S (jt_h_cardinality_left)) * D) + (jt_e_cardinality_left))))) -> (forall jt_index_cardinality_leftsame jt_left_cardinality_leftsame jt_right_cardinality_leftsame. (exists jt_gap_cardinality_leftsameindex. jt_gap_cardinality_leftsameindex+S (jt_index_cardinality_leftsame)=(k)) -> (((exists fs_h_jt_cardinality_leftsameleft. fs_h_jt_cardinality_leftsameleft + S (jt_left_cardinality_leftsame) = S ((S (jt_index_cardinality_leftsame)) * jt_c_cardinality_left)) /\ exists fs_q_jt_cardinality_leftsameleft. jt_b_cardinality_left = fs_q_jt_cardinality_leftsameleft * S ((S (jt_index_cardinality_leftsame)) * jt_c_cardinality_left) + (jt_left_cardinality_leftsame))) -> (((exists fs_h_jt_cardinality_leftsameright. fs_h_jt_cardinality_leftsameright + S (jt_right_cardinality_leftsame) = S ((S (jt_index_cardinality_leftsame)) * jt_e_cardinality_left)) /\ exists fs_q_jt_cardinality_leftsameright. jt_d_cardinality_left = fs_q_jt_cardinality_leftsameright * S ((S (jt_index_cardinality_leftsame)) * jt_e_cardinality_left) + (jt_right_cardinality_leftsame))) -> jt_left_cardinality_leftsame=jt_right_cardinality_leftsame) -> jt_i_cardinality_left=jt_h_cardinality_left))))) -> (((forall jt_i_cardinality_right. (exists jt_gap_cardinality_rightsoundindex. jt_gap_cardinality_rightsoundindex+S (jt_i_cardinality_right)=(v)) -> exists jt_b_cardinality_right jt_c_cardinality_right. ((((((exists fs_h_jt_cardinality_rightsoundcode. fs_h_jt_cardinality_rightsoundcode + S (jt_b_cardinality_right) = S ((S (jt_i_cardinality_right)) * F)) /\ exists fs_q_jt_cardinality_rightsoundcode. E = fs_q_jt_cardinality_rightsoundcode * S ((S (jt_i_cardinality_right)) * F) + (jt_b_cardinality_right))) /\ (((exists fs_h_jt_cardinality_rightsoundscale. fs_h_jt_cardinality_rightsoundscale + S (jt_c_cardinality_right) = S ((S (jt_i_cardinality_right)) * H)) /\ exists fs_q_jt_cardinality_rightsoundscale. G = fs_q_jt_cardinality_rightsoundscale * S ((S (jt_i_cardinality_right)) * H) + (jt_c_cardinality_right))))) /\ (((forall jt_index_cardinality_rightbound. (exists jt_gap_cardinality_rightboundindex. jt_gap_cardinality_rightboundindex+S (jt_index_cardinality_rightbound)=(k)) -> exists jt_value_cardinality_rightbound. ((((exists fs_h_jt_cardinality_rightboundat. fs_h_jt_cardinality_rightboundat + S (jt_value_cardinality_rightbound) = S ((S (jt_index_cardinality_rightbound)) * jt_c_cardinality_right)) /\ exists fs_q_jt_cardinality_rightboundat. jt_b_cardinality_right = fs_q_jt_cardinality_rightboundat * S ((S (jt_index_cardinality_rightbound)) * jt_c_cardinality_right) + (jt_value_cardinality_rightbound))) /\ (exists jt_gap_cardinality_rightboundvalue. jt_gap_cardinality_rightboundvalue+S (jt_value_cardinality_rightbound)=(n)))) /\ (forall jt_divisor_cardinality_rightprimitive. (exists jt_factor_cardinality_rightprimitivemodulus. (n)=(jt_divisor_cardinality_rightprimitive)*jt_factor_cardinality_rightprimitivemodulus) -> (forall jt_index_cardinality_rightprimitivecoordinates jt_value_cardinality_rightprimitivecoordinates. (exists jt_gap_cardinality_rightprimitivecoordinatesindex. jt_gap_cardinality_rightprimitivecoordinatesindex+S (jt_index_cardinality_rightprimitivecoordinates)=(k)) -> (((exists fs_h_jt_cardinality_rightprimitivecoordinatesat. fs_h_jt_cardinality_rightprimitivecoordinatesat + S (jt_value_cardinality_rightprimitivecoordinates) = S ((S (jt_index_cardinality_rightprimitivecoordinates)) * jt_c_cardinality_right)) /\ exists fs_q_jt_cardinality_rightprimitivecoordinatesat. jt_b_cardinality_right = fs_q_jt_cardinality_rightprimitivecoordinatesat * S ((S (jt_index_cardinality_rightprimitivecoordinates)) * jt_c_cardinality_right) + (jt_value_cardinality_rightprimitivecoordinates))) -> (exists jt_factor_cardinality_rightprimitivecoordinatesdivides. (jt_value_cardinality_rightprimitivecoordinates)=(jt_divisor_cardinality_rightprimitive)*jt_factor_cardinality_rightprimitivecoordinatesdivides)) -> jt_divisor_cardinality_rightprimitive=1))))) /\ (((forall jt_b_cardinality_right jt_c_cardinality_right. (forall jt_index_cardinality_rightinputbound. (exists jt_gap_cardinality_rightinputboundindex. jt_gap_cardinality_rightinputboundindex+S (jt_index_cardinality_rightinputbound)=(k)) -> exists jt_value_cardinality_rightinputbound. ((((exists fs_h_jt_cardinality_rightinputboundat. fs_h_jt_cardinality_rightinputboundat + S (jt_value_cardinality_rightinputbound) = S ((S (jt_index_cardinality_rightinputbound)) * jt_c_cardinality_right)) /\ exists fs_q_jt_cardinality_rightinputboundat. jt_b_cardinality_right = fs_q_jt_cardinality_rightinputboundat * S ((S (jt_index_cardinality_rightinputbound)) * jt_c_cardinality_right) + (jt_value_cardinality_rightinputbound))) /\ (exists jt_gap_cardinality_rightinputboundvalue. jt_gap_cardinality_rightinputboundvalue+S (jt_value_cardinality_rightinputbound)=(n)))) -> (forall jt_divisor_cardinality_rightinputprimitive. (exists jt_factor_cardinality_rightinputprimitivemodulus. (n)=(jt_divisor_cardinality_rightinputprimitive)*jt_factor_cardinality_rightinputprimitivemodulus) -> (forall jt_index_cardinality_rightinputprimitivecoordinates jt_value_cardinality_rightinputprimitivecoordinates. (exists jt_gap_cardinality_rightinputprimitivecoordinatesindex. jt_gap_cardinality_rightinputprimitivecoordinatesindex+S (jt_index_cardinality_rightinputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_cardinality_rightinputprimitivecoordinatesat. fs_h_jt_cardinality_rightinputprimitivecoordinatesat + S (jt_value_cardinality_rightinputprimitivecoordinates) = S ((S (jt_index_cardinality_rightinputprimitivecoordinates)) * jt_c_cardinality_right)) /\ exists fs_q_jt_cardinality_rightinputprimitivecoordinatesat. jt_b_cardinality_right = fs_q_jt_cardinality_rightinputprimitivecoordinatesat * S ((S (jt_index_cardinality_rightinputprimitivecoordinates)) * jt_c_cardinality_right) + (jt_value_cardinality_rightinputprimitivecoordinates))) -> (exists jt_factor_cardinality_rightinputprimitivecoordinatesdivides. (jt_value_cardinality_rightinputprimitivecoordinates)=(jt_divisor_cardinality_rightinputprimitive)*jt_factor_cardinality_rightinputprimitivecoordinatesdivides)) -> jt_divisor_cardinality_rightinputprimitive=1) -> exists jt_i_cardinality_right jt_d_cardinality_right jt_e_cardinality_right. ((exists jt_gap_cardinality_rightcompleteindex. jt_gap_cardinality_rightcompleteindex+S (jt_i_cardinality_right)=(v)) /\ (((((((exists fs_h_jt_cardinality_rightcompletecode. fs_h_jt_cardinality_rightcompletecode + S (jt_d_cardinality_right) = S ((S (jt_i_cardinality_right)) * F)) /\ exists fs_q_jt_cardinality_rightcompletecode. E = fs_q_jt_cardinality_rightcompletecode * S ((S (jt_i_cardinality_right)) * F) + (jt_d_cardinality_right))) /\ (((exists fs_h_jt_cardinality_rightcompletescale. fs_h_jt_cardinality_rightcompletescale + S (jt_e_cardinality_right) = S ((S (jt_i_cardinality_right)) * H)) /\ exists fs_q_jt_cardinality_rightcompletescale. G = fs_q_jt_cardinality_rightcompletescale * S ((S (jt_i_cardinality_right)) * H) + (jt_e_cardinality_right))))) /\ (forall jt_index_cardinality_rightrepresented jt_left_cardinality_rightrepresented jt_right_cardinality_rightrepresented. (exists jt_gap_cardinality_rightrepresentedindex. jt_gap_cardinality_rightrepresentedindex+S (jt_index_cardinality_rightrepresented)=(k)) -> (((exists fs_h_jt_cardinality_rightrepresentedleft. fs_h_jt_cardinality_rightrepresentedleft + S (jt_left_cardinality_rightrepresented) = S ((S (jt_index_cardinality_rightrepresented)) * jt_c_cardinality_right)) /\ exists fs_q_jt_cardinality_rightrepresentedleft. jt_b_cardinality_right = fs_q_jt_cardinality_rightrepresentedleft * S ((S (jt_index_cardinality_rightrepresented)) * jt_c_cardinality_right) + (jt_left_cardinality_rightrepresented))) -> (((exists fs_h_jt_cardinality_rightrepresentedright. fs_h_jt_cardinality_rightrepresentedright + S (jt_right_cardinality_rightrepresented) = S ((S (jt_index_cardinality_rightrepresented)) * jt_e_cardinality_right)) /\ exists fs_q_jt_cardinality_rightrepresentedright. jt_d_cardinality_right = fs_q_jt_cardinality_rightrepresentedright * S ((S (jt_index_cardinality_rightrepresented)) * jt_e_cardinality_right) + (jt_right_cardinality_rightrepresented))) -> jt_left_cardinality_rightrepresented=jt_right_cardinality_rightrepresented))))) /\ (forall jt_i_cardinality_right jt_h_cardinality_right jt_b_cardinality_right jt_c_cardinality_right jt_d_cardinality_right jt_e_cardinality_right. (exists jt_gap_cardinality_rightfirstindex. jt_gap_cardinality_rightfirstindex+S (jt_i_cardinality_right)=(v)) -> (exists jt_gap_cardinality_rightsecondindex. jt_gap_cardinality_rightsecondindex+S (jt_h_cardinality_right)=(v)) -> (((((exists fs_h_jt_cardinality_rightfirstcode. fs_h_jt_cardinality_rightfirstcode + S (jt_b_cardinality_right) = S ((S (jt_i_cardinality_right)) * F)) /\ exists fs_q_jt_cardinality_rightfirstcode. E = fs_q_jt_cardinality_rightfirstcode * S ((S (jt_i_cardinality_right)) * F) + (jt_b_cardinality_right))) /\ (((exists fs_h_jt_cardinality_rightfirstscale. fs_h_jt_cardinality_rightfirstscale + S (jt_c_cardinality_right) = S ((S (jt_i_cardinality_right)) * H)) /\ exists fs_q_jt_cardinality_rightfirstscale. G = fs_q_jt_cardinality_rightfirstscale * S ((S (jt_i_cardinality_right)) * H) + (jt_c_cardinality_right))))) -> (((((exists fs_h_jt_cardinality_rightsecondcode. fs_h_jt_cardinality_rightsecondcode + S (jt_d_cardinality_right) = S ((S (jt_h_cardinality_right)) * F)) /\ exists fs_q_jt_cardinality_rightsecondcode. E = fs_q_jt_cardinality_rightsecondcode * S ((S (jt_h_cardinality_right)) * F) + (jt_d_cardinality_right))) /\ (((exists fs_h_jt_cardinality_rightsecondscale. fs_h_jt_cardinality_rightsecondscale + S (jt_e_cardinality_right) = S ((S (jt_h_cardinality_right)) * H)) /\ exists fs_q_jt_cardinality_rightsecondscale. G = fs_q_jt_cardinality_rightsecondscale * S ((S (jt_h_cardinality_right)) * H) + (jt_e_cardinality_right))))) -> (forall jt_index_cardinality_rightsame jt_left_cardinality_rightsame jt_right_cardinality_rightsame. (exists jt_gap_cardinality_rightsameindex. jt_gap_cardinality_rightsameindex+S (jt_index_cardinality_rightsame)=(k)) -> (((exists fs_h_jt_cardinality_rightsameleft. fs_h_jt_cardinality_rightsameleft + S (jt_left_cardinality_rightsame) = S ((S (jt_index_cardinality_rightsame)) * jt_c_cardinality_right)) /\ exists fs_q_jt_cardinality_rightsameleft. jt_b_cardinality_right = fs_q_jt_cardinality_rightsameleft * S ((S (jt_index_cardinality_rightsame)) * jt_c_cardinality_right) + (jt_left_cardinality_rightsame))) -> (((exists fs_h_jt_cardinality_rightsameright. fs_h_jt_cardinality_rightsameright + S (jt_right_cardinality_rightsame) = S ((S (jt_index_cardinality_rightsame)) * jt_e_cardinality_right)) /\ exists fs_q_jt_cardinality_rightsameright. jt_d_cardinality_right = fs_q_jt_cardinality_rightsameright * S ((S (jt_index_cardinality_rightsame)) * jt_e_cardinality_right) + (jt_right_cardinality_rightsame))) -> jt_left_cardinality_rightsame=jt_right_cardinality_rightsame) -> jt_i_cardinality_right=jt_h_cardinality_right))))) -> (exists jt_gap_cardinality_result. jt_gap_cardinality_result+(u)=(v))

Complete tactic proof in conservative notation

All 70 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

70 script commands · 13 reading checkpoints · 3 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–14

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

  1. L11
    intro H
  2. L12
    intro v
  3. L13
    intro hl
  4. L14
    intro hr
03Establish hmL15–24

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

  1. L15
    have hm : ∃ Z. ∃ W. ∀ jt_index_cardinality_map. Lt(jt_index_cardinality_map,u) → ∃ x. BetaAt(Z,W,jt_index_cardinality_map,x) ∧ (Lt(x,v) ∧ (∀ y. ∀ z. ∀ n. ∀ m. BetaAt(A,B,jt_index_cardinality_map,y) ∧ BetaAt(C,D,jt_index_cardinality_map,z) → BetaAt(E,F,x,n) ∧ BetaAt(G,H,x,m) → IntegerVectorZero(y,z,n,m,k)))Definitions: Lt(jt_index_cardinality_map,u)BetaAt(Z,W,jt_index_cardinality_map,x)Lt(x,v)BetaAt(A,B,jt_index_cardinality_map,y)BetaAt(C,D,jt_index_cardinality_map,z)BetaAt(E,F,x,n)BetaAt(G,H,x,m)IntegerVectorZero(y,z,n,m,k)Original native command in the exact edition
  2. L16
    specialize jordan_enumeration_index_map_exists (u)
  3. L17
    specialize jordan_enumeration_index_map_exists (k)
  4. L18
    specialize jordan_enumeration_index_map_exists (n)
  5. L19
    specialize jordan_enumeration_index_map_exists (A)
  6. L20
    specialize jordan_enumeration_index_map_exists (B)
  7. L21
    specialize jordan_enumeration_index_map_exists (C)
  8. L22
    specialize jordan_enumeration_index_map_exists (D)
  9. L23
    specialize jordan_enumeration_index_map_exists (u)
  10. L24
    specialize jordan_enumeration_index_map_exists (E)
04Use earlier factsL25–33

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

  1. L25
    specialize jordan_enumeration_index_map_exists (F)
  2. L26
    specialize jordan_enumeration_index_map_exists (G)
  3. L27
    specialize jordan_enumeration_index_map_exists (H)
  4. L28
    specialize jordan_enumeration_index_map_exists (v)
  5. L29
    apply jordan_enumeration_index_map_exists
  6. L30
    exact hl
  7. L31
    exact hr
  8. L32
    specialize le_refl (u)
  9. L33
    apply le_refl
05Separate the logical casesL34–35

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

  1. L34
    cases hm
  2. L35
    cases hm_witness
06Establish hinjL36–45

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

  1. L36
    have hinj : FiniteMatrixSelector(x,x1,u,v)Definitions: FiniteMatrixSelector(x,x1,u,v)Original native command in the exact edition
  2. L37
    specialize jordan_enumeration_index_map_bounded_injective (k)
  3. L38
    specialize jordan_enumeration_index_map_bounded_injective (n)
  4. L39
    specialize jordan_enumeration_index_map_bounded_injective (A)
  5. L40
    specialize jordan_enumeration_index_map_bounded_injective (B)
  6. L41
    specialize jordan_enumeration_index_map_bounded_injective (C)
  7. L42
    specialize jordan_enumeration_index_map_bounded_injective (D)
  8. L43
    specialize jordan_enumeration_index_map_bounded_injective (u)
  9. L44
    specialize jordan_enumeration_index_map_bounded_injective (E)
  10. L45
    specialize jordan_enumeration_index_map_bounded_injective (F)
07Use earlier factsL46–54

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

  1. L46
    specialize jordan_enumeration_index_map_bounded_injective (G)
  2. L47
    specialize jordan_enumeration_index_map_bounded_injective (H)
  3. L48
    specialize jordan_enumeration_index_map_bounded_injective (v)
  4. L49
    specialize jordan_enumeration_index_map_bounded_injective (x)
  5. L50
    specialize jordan_enumeration_index_map_bounded_injective (x1)
  6. L51
    apply jordan_enumeration_index_map_bounded_injective
  7. L52
    exact hl
  8. L53
    exact hr
  9. L54
    exact hm_witness_witness
08Separate the logical casesL55–55

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

  1. L55
    cases hinj
09Establish hcL56–59

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

  1. L56
    have hc : Le(u,v) ∨ Lt(v,u)Definitions: Le(u,v)Lt(v,u)Original native command in the exact edition
  2. L57
    specialize le_or_lt (u)
  3. L58
    specialize le_or_lt (v)
  4. L59
    apply le_or_lt
10Separate the logical casesL60–60

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

  1. L60
    cases hc
11Use earlier factsL61–61

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

  1. L61
    exact hc_left
12Separate the logical casesL62–62

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

  1. L62
    exfalso
13Use earlier factsL63–70

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

  1. L63
    specialize finite_bounded_into_oversized_not_injective (x)
  2. L64
    specialize finite_bounded_into_oversized_not_injective (x1)
  3. L65
    specialize finite_bounded_into_oversized_not_injective (u)
  4. L66
    specialize finite_bounded_into_oversized_not_injective (v)
  5. L67
    apply finite_bounded_into_oversized_not_injective
  6. L68
    exact hinj_left
  7. L69
    exact hc_right
  8. L70
    exact hinj_right

Library-wide reading audit

Original defined command ledger · 70 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 hl
  14. 0014intro hr
  15. 0015have hm : ∃ Z. ∃ W. ∀ jt_index_cardinality_map. Lt(jt_index_cardinality_map,u) → ∃ x. BetaAt(Z,W,jt_index_cardinality_map,x) ∧ (Lt(x,v) ∧ (∀ y. ∀ z. ∀ n. ∀ m. BetaAt(A,B,jt_index_cardinality_map,y) ∧ BetaAt(C,D,jt_index_cardinality_map,z) → BetaAt(E,F,x,n) ∧ BetaAt(G,H,x,m) → IntegerVectorZero(y,z,n,m,k)))
  16. 0016specialize jordan_enumeration_index_map_exists (u)
  17. 0017specialize jordan_enumeration_index_map_exists (k)
  18. 0018specialize jordan_enumeration_index_map_exists (n)
  19. 0019specialize jordan_enumeration_index_map_exists (A)
  20. 0020specialize jordan_enumeration_index_map_exists (B)
  21. 0021specialize jordan_enumeration_index_map_exists (C)
  22. 0022specialize jordan_enumeration_index_map_exists (D)
  23. 0023specialize jordan_enumeration_index_map_exists (u)
  24. 0024specialize jordan_enumeration_index_map_exists (E)
  25. 0025specialize jordan_enumeration_index_map_exists (F)
  26. 0026specialize jordan_enumeration_index_map_exists (G)
  27. 0027specialize jordan_enumeration_index_map_exists (H)
  28. 0028specialize jordan_enumeration_index_map_exists (v)
  29. 0029apply jordan_enumeration_index_map_exists
  30. 0030exact hl
  31. 0031exact hr
  32. 0032specialize le_refl (u)
  33. 0033apply le_refl
  34. 0034cases hm
  35. 0035cases hm_witness
  36. 0036have hinj : FiniteMatrixSelector(x,x1,u,v)
  37. 0037specialize jordan_enumeration_index_map_bounded_injective (k)
  38. 0038specialize jordan_enumeration_index_map_bounded_injective (n)
  39. 0039specialize jordan_enumeration_index_map_bounded_injective (A)
  40. 0040specialize jordan_enumeration_index_map_bounded_injective (B)
  41. 0041specialize jordan_enumeration_index_map_bounded_injective (C)
  42. 0042specialize jordan_enumeration_index_map_bounded_injective (D)
  43. 0043specialize jordan_enumeration_index_map_bounded_injective (u)
  44. 0044specialize jordan_enumeration_index_map_bounded_injective (E)
  45. 0045specialize jordan_enumeration_index_map_bounded_injective (F)
  46. 0046specialize jordan_enumeration_index_map_bounded_injective (G)
  47. 0047specialize jordan_enumeration_index_map_bounded_injective (H)
  48. 0048specialize jordan_enumeration_index_map_bounded_injective (v)
  49. 0049specialize jordan_enumeration_index_map_bounded_injective (x)
  50. 0050specialize jordan_enumeration_index_map_bounded_injective (x1)
  51. 0051apply jordan_enumeration_index_map_bounded_injective
  52. 0052exact hl
  53. 0053exact hr
  54. 0054exact hm_witness_witness
  55. 0055cases hinj
  56. 0056have hc : Le(u,v) ∨ Lt(v,u)
  57. 0057specialize le_or_lt (u)
  58. 0058specialize le_or_lt (v)
  59. 0059apply le_or_lt
  60. 0060cases hc
  61. 0061exact hc_left
  62. 0062exfalso
  63. 0063specialize finite_bounded_into_oversized_not_injective (x)
  64. 0064specialize finite_bounded_into_oversized_not_injective (x1)
  65. 0065specialize finite_bounded_into_oversized_not_injective (u)
  66. 0066specialize finite_bounded_into_oversized_not_injective (v)
  67. 0067apply finite_bounded_into_oversized_not_injective
  68. 0068exact hinj_left
  69. 0069exact hc_right
  70. 0070exact hinj_right