Exact expanded first-order arithmetic statement
forall n b c k. ~(n=0) -> (forall jt_divisor_decprimitiveyes. (exists jt_factor_decprimitiveyesmodulus. (n)=(jt_divisor_decprimitiveyes)*jt_factor_decprimitiveyesmodulus) -> (forall jt_index_decprimitiveyescoordinates jt_value_decprimitiveyescoordinates. (exists jt_gap_decprimitiveyescoordinatesindex. jt_gap_decprimitiveyescoordinatesindex+S (jt_index_decprimitiveyescoordinates)=(k)) -> (((exists fs_h_jt_decprimitiveyescoordinatesat. fs_h_jt_decprimitiveyescoordinatesat + S (jt_value_decprimitiveyescoordinates) = S ((S (jt_index_decprimitiveyescoordinates)) * c)) /\ exists fs_q_jt_decprimitiveyescoordinatesat. b = fs_q_jt_decprimitiveyescoordinatesat * S ((S (jt_index_decprimitiveyescoordinates)) * c) + (jt_value_decprimitiveyescoordinates))) -> (exists jt_factor_decprimitiveyescoordinatesdivides. (jt_value_decprimitiveyescoordinates)=(jt_divisor_decprimitiveyes)*jt_factor_decprimitiveyescoordinatesdivides)) -> jt_divisor_decprimitiveyes=1) \/ ~(forall jt_divisor_decprimitiveno. (exists jt_factor_decprimitivenomodulus. (n)=(jt_divisor_decprimitiveno)*jt_factor_decprimitivenomodulus) -> (forall jt_index_decprimitivenocoordinates jt_value_decprimitivenocoordinates. (exists jt_gap_decprimitivenocoordinatesindex. jt_gap_decprimitivenocoordinatesindex+S (jt_index_decprimitivenocoordinates)=(k)) -> (((exists fs_h_jt_decprimitivenocoordinatesat. fs_h_jt_decprimitivenocoordinatesat + S (jt_value_decprimitivenocoordinates) = S ((S (jt_index_decprimitivenocoordinates)) * c)) /\ exists fs_q_jt_decprimitivenocoordinatesat. b = fs_q_jt_decprimitivenocoordinatesat * S ((S (jt_index_decprimitivenocoordinates)) * c) + (jt_value_decprimitivenocoordinates))) -> (exists jt_factor_decprimitivenocoordinatesdivides. (jt_value_decprimitivenocoordinates)=(jt_divisor_decprimitiveno)*jt_factor_decprimitivenocoordinatesdivides)) -> jt_divisor_decprimitiveno=1)Constructive proof overview
Generated structural guide
At positive modulus every possible common divisor lies below S n, giving genuine tuple-predicate decidability.
The unchanged tactic script uses 2 declared prerequisites and contains 45 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
JT0014 jordan_tuple_primitive_bounded_decidable divisor_le_nonzero 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–5
02Establish hdL6–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan tuple primitive bounded decidable.
- L6
have hd : (∀ x. Lt(x,S n) → Dvd(x,n) → JordanTupleAllDivisible(x,b,c,k) → x = 1) ∨ ¬(∀ x. Lt(x,S n) → Dvd(x,n) → JordanTupleAllDivisible(x,b,c,k) → x = 1)Definitions: JordanTupleAllDivisibleLtDvd - L7
specialize jordan_tuple_primitive_bounded_decidable (n) - L8
specialize jordan_tuple_primitive_bounded_decidable (b) - L9
specialize jordan_tuple_primitive_bounded_decidable (c) - L10
specialize jordan_tuple_primitive_bounded_decidable (k) - L11
specialize jordan_tuple_primitive_bounded_decidable (S n) - L12
apply jordan_tuple_primitive_bounded_decidable
03Separate the logical casesL13–14
04Fix variables and assumptionsL15–17
05Use earlier factsL18–19
06Establish hbL20–25
07Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
cases hb
08Construct an explicit witnessL27–27
Supply the displayed value, then prove that it has the required property.
- L27
exists x
09Calculate and transport equalitiesL28–31
10Use earlier factsL32–34
11Separate the logical casesL35–35
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L35
right
12Fix variables and assumptionsL36–36
Work with arbitrary variables or the premises of the current implication.
- L36
intro hp
13Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
apply hd_right
14Fix variables and assumptionsL38–41
Original exact command ledger · 45 lines
- 0001
intro n - 0002
intro b - 0003
intro c - 0004
intro k - 0005
intro hn - 0006
have hd : (forall jt_divisor_primitiveyes. (exists jt_gap_primitiveyesbound. jt_gap_primitiveyesbound+S (jt_divisor_primitiveyes)=(S n)) -> ((exists jt_factor_primitiveyestestmodulus. (n)=(jt_divisor_primitiveyes)*jt_factor_primitiveyestestmodulus) -> (forall jt_index_primitiveyestestcoordinates jt_value_primitiveyestestcoordinates. (exists jt_gap_primitiveyestestcoordinatesindex. jt_gap_primitiveyestestcoordinatesindex+S (jt_index_primitiveyestestcoordinates)=(k)) -> (((exists fs_h_jt_primitiveyestestcoordinatesat. fs_h_jt_primitiveyestestcoordinatesat + S (jt_value_primitiveyestestcoordinates) = S ((S (jt_index_primitiveyestestcoordinates)) * c)) /\ exists fs_q_jt_primitiveyestestcoordinatesat. b = fs_q_jt_primitiveyestestcoordinatesat * S ((S (jt_index_primitiveyestestcoordinates)) * c) + (jt_value_primitiveyestestcoordinates))) -> (exists jt_factor_primitiveyestestcoordinatesdivides. (jt_value_primitiveyestestcoordinates)=(jt_divisor_primitiveyes)*jt_factor_primitiveyestestcoordinatesdivides)) -> (jt_divisor_primitiveyes)=1)) \/ ~(forall jt_divisor_primitiveno. (exists jt_gap_primitivenobound. jt_gap_primitivenobound+S (jt_divisor_primitiveno)=(S n)) -> ((exists jt_factor_primitivenotestmodulus. (n)=(jt_divisor_primitiveno)*jt_factor_primitivenotestmodulus) -> (forall jt_index_primitivenotestcoordinates jt_value_primitivenotestcoordinates. (exists jt_gap_primitivenotestcoordinatesindex. jt_gap_primitivenotestcoordinatesindex+S (jt_index_primitivenotestcoordinates)=(k)) -> (((exists fs_h_jt_primitivenotestcoordinatesat. fs_h_jt_primitivenotestcoordinatesat + S (jt_value_primitivenotestcoordinates) = S ((S (jt_index_primitivenotestcoordinates)) * c)) /\ exists fs_q_jt_primitivenotestcoordinatesat. b = fs_q_jt_primitivenotestcoordinatesat * S ((S (jt_index_primitivenotestcoordinates)) * c) + (jt_value_primitivenotestcoordinates))) -> (exists jt_factor_primitivenotestcoordinatesdivides. (jt_value_primitivenotestcoordinates)=(jt_divisor_primitiveno)*jt_factor_primitivenotestcoordinatesdivides)) -> (jt_divisor_primitiveno)=1)) - 0007
specialize jordan_tuple_primitive_bounded_decidable (n) - 0008
specialize jordan_tuple_primitive_bounded_decidable (b) - 0009
specialize jordan_tuple_primitive_bounded_decidable (c) - 0010
specialize jordan_tuple_primitive_bounded_decidable (k) - 0011
specialize jordan_tuple_primitive_bounded_decidable (S n) - 0012
apply jordan_tuple_primitive_bounded_decidable - 0013
cases hd - 0014
left - 0015
intro d - 0016
intro hdiv - 0017
intro hall - 0018
specialize hd_left (d) - 0019
apply hd_left - 0020
have hb : exists g. g+d=n - 0021
specialize divisor_le_nonzero (d) - 0022
specialize divisor_le_nonzero (n) - 0023
apply divisor_le_nonzero - 0024
exact hn - 0025
exact hdiv - 0026
cases hb - 0027
exists x - 0028
trans S (x+d) - 0029
rewrite PA4 - 0030
refl - 0031
congr - 0032
exact hb_witness - 0033
exact hdiv - 0034
exact hall - 0035
right - 0036
intro hp - 0037
apply hd_right - 0038
intro d - 0039
intro hbound - 0040
intro hdiv - 0041
intro hall - 0042
specialize hp (d) - 0043
apply hp - 0044
exact hdiv - 0045
exact hall