Exact expanded first-order arithmetic statement
forall a b B C k. (forall jt_divisor_componentab. (exists jt_factor_componentabmodulus. (a*b)=(jt_divisor_componentab)*jt_factor_componentabmodulus) -> (forall jt_index_componentabcoordinates jt_value_componentabcoordinates. (exists jt_gap_componentabcoordinatesindex. jt_gap_componentabcoordinatesindex+S (jt_index_componentabcoordinates)=(k)) -> (((exists fs_h_jt_componentabcoordinatesat. fs_h_jt_componentabcoordinatesat + S (jt_value_componentabcoordinates) = S ((S (jt_index_componentabcoordinates)) * C)) /\ exists fs_q_jt_componentabcoordinatesat. B = fs_q_jt_componentabcoordinatesat * S ((S (jt_index_componentabcoordinates)) * C) + (jt_value_componentabcoordinates))) -> (exists jt_factor_componentabcoordinatesdivides. (jt_value_componentabcoordinates)=(jt_divisor_componentab)*jt_factor_componentabcoordinatesdivides)) -> jt_divisor_componentab=1) -> ((forall jt_divisor_componenta. (exists jt_factor_componentamodulus. (a)=(jt_divisor_componenta)*jt_factor_componentamodulus) -> (forall jt_index_componentacoordinates jt_value_componentacoordinates. (exists jt_gap_componentacoordinatesindex. jt_gap_componentacoordinatesindex+S (jt_index_componentacoordinates)=(k)) -> (((exists fs_h_jt_componentacoordinatesat. fs_h_jt_componentacoordinatesat + S (jt_value_componentacoordinates) = S ((S (jt_index_componentacoordinates)) * C)) /\ exists fs_q_jt_componentacoordinatesat. B = fs_q_jt_componentacoordinatesat * S ((S (jt_index_componentacoordinates)) * C) + (jt_value_componentacoordinates))) -> (exists jt_factor_componentacoordinatesdivides. (jt_value_componentacoordinates)=(jt_divisor_componenta)*jt_factor_componentacoordinatesdivides)) -> jt_divisor_componenta=1) /\ (forall jt_divisor_componentb. (exists jt_factor_componentbmodulus. (b)=(jt_divisor_componentb)*jt_factor_componentbmodulus) -> (forall jt_index_componentbcoordinates jt_value_componentbcoordinates. (exists jt_gap_componentbcoordinatesindex. jt_gap_componentbcoordinatesindex+S (jt_index_componentbcoordinates)=(k)) -> (((exists fs_h_jt_componentbcoordinatesat. fs_h_jt_componentbcoordinatesat + S (jt_value_componentbcoordinates) = S ((S (jt_index_componentbcoordinates)) * C)) /\ exists fs_q_jt_componentbcoordinatesat. B = fs_q_jt_componentbcoordinatesat * S ((S (jt_index_componentbcoordinates)) * C) + (jt_value_componentbcoordinates))) -> (exists jt_factor_componentbcoordinatesdivides. (jt_value_componentbcoordinates)=(jt_divisor_componentb)*jt_factor_componentbcoordinatesdivides)) -> jt_divisor_componentb=1))Constructive proof overview
Generated structural guide
Both primitive projections follow even without coprimality of the moduli.
The unchanged tactic script uses 2 declared prerequisites and contains 27 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
JT0006 jordan_primitive_tuple_divisor_modulus mul_comm Alpha theorem; checked-use authorizedDirect 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 (1)
01Fix variables and assumptionsL1–6
02Separate the logical casesL7–7
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L7
split
03Use earlier factsL8–13
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L8
specialize jordan_primitive_tuple_divisor_modulus (a) - L9
specialize jordan_primitive_tuple_divisor_modulus (a*b) - L10
specialize jordan_primitive_tuple_divisor_modulus (B) - L11
specialize jordan_primitive_tuple_divisor_modulus (C) - L12
specialize jordan_primitive_tuple_divisor_modulus (k) - L13
apply jordan_primitive_tuple_divisor_modulus
04Construct an explicit witnessL14–14
Supply the displayed value, then prove that it has the required property.
- L14
exists b
05Calculate and transport equalitiesL15–15
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L15
refl
06Use earlier factsL16–22
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
exact h - L17
specialize jordan_primitive_tuple_divisor_modulus (b) - L18
specialize jordan_primitive_tuple_divisor_modulus (a*b) - L19
specialize jordan_primitive_tuple_divisor_modulus (B) - L20
specialize jordan_primitive_tuple_divisor_modulus (C) - L21
specialize jordan_primitive_tuple_divisor_modulus (k) - L22
apply jordan_primitive_tuple_divisor_modulus
07Construct an explicit witnessL23–23
Supply the displayed value, then prove that it has the required property.
- L23
exists a
Original exact command ledger · 27 lines
- 0001
intro a - 0002
intro b - 0003
intro B - 0004
intro C - 0005
intro k - 0006
intro h - 0007
split - 0008
specialize jordan_primitive_tuple_divisor_modulus (a) - 0009
specialize jordan_primitive_tuple_divisor_modulus (a*b) - 0010
specialize jordan_primitive_tuple_divisor_modulus (B) - 0011
specialize jordan_primitive_tuple_divisor_modulus (C) - 0012
specialize jordan_primitive_tuple_divisor_modulus (k) - 0013
apply jordan_primitive_tuple_divisor_modulus - 0014
exists b - 0015
refl - 0016
exact h - 0017
specialize jordan_primitive_tuple_divisor_modulus (b) - 0018
specialize jordan_primitive_tuple_divisor_modulus (a*b) - 0019
specialize jordan_primitive_tuple_divisor_modulus (B) - 0020
specialize jordan_primitive_tuple_divisor_modulus (C) - 0021
specialize jordan_primitive_tuple_divisor_modulus (k) - 0022
apply jordan_primitive_tuple_divisor_modulus - 0023
exists a - 0024
specialize mul_comm (a) - 0025
specialize mul_comm (b) - 0026
apply mul_comm - 0027
exact h