Exact expanded first-order arithmetic statement
forall p h n b c k. (~((p) = 1) /\ forall pvs_left_jordan_base pvs_right_jordan_base. (p) = pvs_left_jordan_base * pvs_right_jordan_base -> pvs_left_jordan_base = 1 \/ pvs_right_jordan_base = 1) -> (exists pa_b_pvs_jordan_positive_power pa_c_pvs_jordan_positive_power. ((forall pa_i_pvs_jordan_positive_power_repeat. (exists pa_lt_pvs_jordan_positive_power_repeat_bound. pa_lt_pvs_jordan_positive_power_repeat_bound + S pa_i_pvs_jordan_positive_power_repeat = S h) -> (((exists pa_h_pvs_jordan_positive_power_repeat_decoded. pa_h_pvs_jordan_positive_power_repeat_decoded + S (p) = S ((S (pa_i_pvs_jordan_positive_power_repeat)) * pa_c_pvs_jordan_positive_power)) /\ exists pa_q_pvs_jordan_positive_power_repeat_decoded. pa_b_pvs_jordan_positive_power = pa_q_pvs_jordan_positive_power_repeat_decoded * S ((S (pa_i_pvs_jordan_positive_power_repeat)) * pa_c_pvs_jordan_positive_power) + (p)))) /\ (exists pa_u_pvs_jordan_positive_power_product pa_v_pvs_jordan_positive_power_product. ((((exists pa_h_pvs_jordan_positive_power_product_start. pa_h_pvs_jordan_positive_power_product_start + S (1) = S ((S (0)) * pa_v_pvs_jordan_positive_power_product)) /\ exists pa_q_pvs_jordan_positive_power_product_start. pa_u_pvs_jordan_positive_power_product = pa_q_pvs_jordan_positive_power_product_start * S ((S (0)) * pa_v_pvs_jordan_positive_power_product) + (1))) /\ ((((exists pa_h_pvs_jordan_positive_power_product_terminal. pa_h_pvs_jordan_positive_power_product_terminal + S (n) = S ((S (S h)) * pa_v_pvs_jordan_positive_power_product)) /\ exists pa_q_pvs_jordan_positive_power_product_terminal. pa_u_pvs_jordan_positive_power_product = pa_q_pvs_jordan_positive_power_product_terminal * S ((S (S h)) * pa_v_pvs_jordan_positive_power_product) + (n))) /\ forall pa_i_pvs_jordan_positive_power_product. (exists pa_lt_pvs_jordan_positive_power_product_bound. pa_lt_pvs_jordan_positive_power_product_bound + S pa_i_pvs_jordan_positive_power_product = S h) -> exists pa_p_pvs_jordan_positive_power_product pa_r_pvs_jordan_positive_power_product pa_s_pvs_jordan_positive_power_product. ((((exists pa_h_pvs_jordan_positive_power_product_factor. pa_h_pvs_jordan_positive_power_product_factor + S (pa_p_pvs_jordan_positive_power_product) = S ((S (pa_i_pvs_jordan_positive_power_product)) * pa_c_pvs_jordan_positive_power)) /\ exists pa_q_pvs_jordan_positive_power_product_factor. pa_b_pvs_jordan_positive_power = pa_q_pvs_jordan_positive_power_product_factor * S ((S (pa_i_pvs_jordan_positive_power_product)) * pa_c_pvs_jordan_positive_power) + (pa_p_pvs_jordan_positive_power_product))) /\ ((((exists pa_h_pvs_jordan_positive_power_product_partial. pa_h_pvs_jordan_positive_power_product_partial + S (pa_r_pvs_jordan_positive_power_product) = S ((S (pa_i_pvs_jordan_positive_power_product)) * pa_v_pvs_jordan_positive_power_product)) /\ exists pa_q_pvs_jordan_positive_power_product_partial. pa_u_pvs_jordan_positive_power_product = pa_q_pvs_jordan_positive_power_product_partial * S ((S (pa_i_pvs_jordan_positive_power_product)) * pa_v_pvs_jordan_positive_power_product) + (pa_r_pvs_jordan_positive_power_product))) /\ ((((exists pa_h_pvs_jordan_positive_power_product_successor. pa_h_pvs_jordan_positive_power_product_successor + S (pa_s_pvs_jordan_positive_power_product) = S ((S (S pa_i_pvs_jordan_positive_power_product)) * pa_v_pvs_jordan_positive_power_product)) /\ exists pa_q_pvs_jordan_positive_power_product_successor. pa_u_pvs_jordan_positive_power_product = pa_q_pvs_jordan_positive_power_product_successor * S ((S (S pa_i_pvs_jordan_positive_power_product)) * pa_v_pvs_jordan_positive_power_product) + (pa_s_pvs_jordan_positive_power_product))) /\ pa_s_pvs_jordan_positive_power_product = pa_r_pvs_jordan_positive_power_product * pa_p_pvs_jordan_positive_power_product)))))))) -> (((forall jt_divisor_power_primitive. (exists jt_factor_power_primitivemodulus. (n)=(jt_divisor_power_primitive)*jt_factor_power_primitivemodulus) -> (forall jt_index_power_primitivecoordinates jt_value_power_primitivecoordinates. (exists jt_gap_power_primitivecoordinatesindex. jt_gap_power_primitivecoordinatesindex+S (jt_index_power_primitivecoordinates)=(k)) -> (((exists fs_h_jt_power_primitivecoordinatesat. fs_h_jt_power_primitivecoordinatesat + S (jt_value_power_primitivecoordinates) = S ((S (jt_index_power_primitivecoordinates)) * c)) /\ exists fs_q_jt_power_primitivecoordinatesat. b = fs_q_jt_power_primitivecoordinatesat * S ((S (jt_index_power_primitivecoordinates)) * c) + (jt_value_power_primitivecoordinates))) -> (exists jt_factor_power_primitivecoordinatesdivides. (jt_value_power_primitivecoordinates)=(jt_divisor_power_primitive)*jt_factor_power_primitivecoordinatesdivides)) -> jt_divisor_power_primitive=1) -> (~(forall jt_index_power_all_divisible jt_value_power_all_divisible. (exists jt_gap_power_all_divisibleindex. jt_gap_power_all_divisibleindex+S (jt_index_power_all_divisible)=(k)) -> (((exists fs_h_jt_power_all_divisibleat. fs_h_jt_power_all_divisibleat + S (jt_value_power_all_divisible) = S ((S (jt_index_power_all_divisible)) * c)) /\ exists fs_q_jt_power_all_divisibleat. b = fs_q_jt_power_all_divisibleat * S ((S (jt_index_power_all_divisible)) * c) + (jt_value_power_all_divisible))) -> (exists jt_factor_power_all_divisibledivides. (jt_value_power_all_divisible)=(p)*jt_factor_power_all_divisibledivides)))) /\ ((~(forall jt_index_power_all_divisible jt_value_power_all_divisible. (exists jt_gap_power_all_divisibleindex. jt_gap_power_all_divisibleindex+S (jt_index_power_all_divisible)=(k)) -> (((exists fs_h_jt_power_all_divisibleat. fs_h_jt_power_all_divisibleat + S (jt_value_power_all_divisible) = S ((S (jt_index_power_all_divisible)) * c)) /\ exists fs_q_jt_power_all_divisibleat. b = fs_q_jt_power_all_divisibleat * S ((S (jt_index_power_all_divisible)) * c) + (jt_value_power_all_divisible))) -> (exists jt_factor_power_all_divisibledivides. (jt_value_power_all_divisible)=(p)*jt_factor_power_all_divisibledivides))) -> (forall jt_divisor_power_primitive. (exists jt_factor_power_primitivemodulus. (n)=(jt_divisor_power_primitive)*jt_factor_power_primitivemodulus) -> (forall jt_index_power_primitivecoordinates jt_value_power_primitivecoordinates. (exists jt_gap_power_primitivecoordinatesindex. jt_gap_power_primitivecoordinatesindex+S (jt_index_power_primitivecoordinates)=(k)) -> (((exists fs_h_jt_power_primitivecoordinatesat. fs_h_jt_power_primitivecoordinatesat + S (jt_value_power_primitivecoordinates) = S ((S (jt_index_power_primitivecoordinates)) * c)) /\ exists fs_q_jt_power_primitivecoordinatesat. b = fs_q_jt_power_primitivecoordinatesat * S ((S (jt_index_power_primitivecoordinates)) * c) + (jt_value_power_primitivecoordinates))) -> (exists jt_factor_power_primitivecoordinatesdivides. (jt_value_power_primitivecoordinates)=(jt_divisor_power_primitive)*jt_factor_power_primitivecoordinatesdivides)) -> jt_divisor_power_primitive=1)))Constructive proof overview
Generated structural guide
Over every positive power of a prime, a tuple is primitive exactly when p does not divide all its coordinates.
The unchanged tactic script uses 4 declared prerequisites and contains 40 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
JT005D jordan_primitive_tuple_avoids_prime_common_divisor pow_positive_exponent_base_divides Alpha theorem; checked-use authorized succ_ne_zero Alpha theorem; checked-use authorized JT005E jordan_prime_power_tuple_primitive_of_not_all_divisibleDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (2)
01Fix variables and assumptionsL1–8
02Separate the logical casesL9–9
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L9
split
03Fix variables and assumptionsL10–11
04Use earlier factsL12–21
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L12
specialize jordan_primitive_tuple_avoids_prime_common_divisor (p) - L13
specialize jordan_primitive_tuple_avoids_prime_common_divisor (n) - L14
specialize jordan_primitive_tuple_avoids_prime_common_divisor (b) - L15
specialize jordan_primitive_tuple_avoids_prime_common_divisor (c) - L16
specialize jordan_primitive_tuple_avoids_prime_common_divisor (k) - L17
apply jordan_primitive_tuple_avoids_prime_common_divisor - L18
exact hp - L19
specialize pow_positive_exponent_base_divides (p) - L20
specialize pow_positive_exponent_base_divides (S h) - L21
specialize pow_positive_exponent_base_divides (n)
05Use earlier factsL22–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L22
apply pow_positive_exponent_base_divides
06Fix variables and assumptionsL23–23
Work with arbitrary variables or the premises of the current implication.
- L23
intro hszero
07Use earlier factsL24–29
08Fix variables and assumptionsL30–30
Work with arbitrary variables or the premises of the current implication.
- L30
intro hnot
09Use earlier factsL31–40
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (p) - L32
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (S h) - L33
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (n) - L34
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (b) - L35
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (c) - L36
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (k) - L37
apply jordan_prime_power_tuple_primitive_of_not_all_divisible - L38
exact hp - L39
exact hpow - L40
exact hnot
Original exact command ledger · 40 lines
- 0001
intro p - 0002
intro h - 0003
intro n - 0004
intro b - 0005
intro c - 0006
intro k - 0007
intro hp - 0008
intro hpow - 0009
split - 0010
intro hprimitive - 0011
intro hall - 0012
specialize jordan_primitive_tuple_avoids_prime_common_divisor (p) - 0013
specialize jordan_primitive_tuple_avoids_prime_common_divisor (n) - 0014
specialize jordan_primitive_tuple_avoids_prime_common_divisor (b) - 0015
specialize jordan_primitive_tuple_avoids_prime_common_divisor (c) - 0016
specialize jordan_primitive_tuple_avoids_prime_common_divisor (k) - 0017
apply jordan_primitive_tuple_avoids_prime_common_divisor - 0018
exact hp - 0019
specialize pow_positive_exponent_base_divides (p) - 0020
specialize pow_positive_exponent_base_divides (S h) - 0021
specialize pow_positive_exponent_base_divides (n) - 0022
apply pow_positive_exponent_base_divides - 0023
intro hszero - 0024
specialize succ_ne_zero (h) - 0025
apply succ_ne_zero - 0026
exact hszero - 0027
exact hpow - 0028
exact hprimitive - 0029
exact hall - 0030
intro hnot - 0031
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (p) - 0032
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (S h) - 0033
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (n) - 0034
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (b) - 0035
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (c) - 0036
specialize jordan_prime_power_tuple_primitive_of_not_all_divisible (k) - 0037
apply jordan_prime_power_tuple_primitive_of_not_all_divisible - 0038
exact hp - 0039
exact hpow - 0040
exact hnot