Exact expanded first-order arithmetic statement
forall k. (((forall jt_i_unit_enumeration. (exists jt_gap_unit_enumerationsoundindex. jt_gap_unit_enumerationsoundindex+S (jt_i_unit_enumeration)=(1)) -> exists jt_b_unit_enumeration jt_c_unit_enumeration. ((((((exists fs_h_jt_unit_enumerationsoundcode. fs_h_jt_unit_enumerationsoundcode + S (jt_b_unit_enumeration) = S ((S (jt_i_unit_enumeration)) * 0)) /\ exists fs_q_jt_unit_enumerationsoundcode. 0 = fs_q_jt_unit_enumerationsoundcode * S ((S (jt_i_unit_enumeration)) * 0) + (jt_b_unit_enumeration))) /\ (((exists fs_h_jt_unit_enumerationsoundscale. fs_h_jt_unit_enumerationsoundscale + S (jt_c_unit_enumeration) = S ((S (jt_i_unit_enumeration)) * 0)) /\ exists fs_q_jt_unit_enumerationsoundscale. 0 = fs_q_jt_unit_enumerationsoundscale * S ((S (jt_i_unit_enumeration)) * 0) + (jt_c_unit_enumeration))))) /\ (((forall jt_index_unit_enumerationbound. (exists jt_gap_unit_enumerationboundindex. jt_gap_unit_enumerationboundindex+S (jt_index_unit_enumerationbound)=(k)) -> exists jt_value_unit_enumerationbound. ((((exists fs_h_jt_unit_enumerationboundat. fs_h_jt_unit_enumerationboundat + S (jt_value_unit_enumerationbound) = S ((S (jt_index_unit_enumerationbound)) * jt_c_unit_enumeration)) /\ exists fs_q_jt_unit_enumerationboundat. jt_b_unit_enumeration = fs_q_jt_unit_enumerationboundat * S ((S (jt_index_unit_enumerationbound)) * jt_c_unit_enumeration) + (jt_value_unit_enumerationbound))) /\ (exists jt_gap_unit_enumerationboundvalue. jt_gap_unit_enumerationboundvalue+S (jt_value_unit_enumerationbound)=(1)))) /\ (forall jt_divisor_unit_enumerationprimitive. (exists jt_factor_unit_enumerationprimitivemodulus. (1)=(jt_divisor_unit_enumerationprimitive)*jt_factor_unit_enumerationprimitivemodulus) -> (forall jt_index_unit_enumerationprimitivecoordinates jt_value_unit_enumerationprimitivecoordinates. (exists jt_gap_unit_enumerationprimitivecoordinatesindex. jt_gap_unit_enumerationprimitivecoordinatesindex+S (jt_index_unit_enumerationprimitivecoordinates)=(k)) -> (((exists fs_h_jt_unit_enumerationprimitivecoordinatesat. fs_h_jt_unit_enumerationprimitivecoordinatesat + S (jt_value_unit_enumerationprimitivecoordinates) = S ((S (jt_index_unit_enumerationprimitivecoordinates)) * jt_c_unit_enumeration)) /\ exists fs_q_jt_unit_enumerationprimitivecoordinatesat. jt_b_unit_enumeration = fs_q_jt_unit_enumerationprimitivecoordinatesat * S ((S (jt_index_unit_enumerationprimitivecoordinates)) * jt_c_unit_enumeration) + (jt_value_unit_enumerationprimitivecoordinates))) -> (exists jt_factor_unit_enumerationprimitivecoordinatesdivides. (jt_value_unit_enumerationprimitivecoordinates)=(jt_divisor_unit_enumerationprimitive)*jt_factor_unit_enumerationprimitivecoordinatesdivides)) -> jt_divisor_unit_enumerationprimitive=1))))) /\ (((forall jt_b_unit_enumeration jt_c_unit_enumeration. (forall jt_index_unit_enumerationinputbound. (exists jt_gap_unit_enumerationinputboundindex. jt_gap_unit_enumerationinputboundindex+S (jt_index_unit_enumerationinputbound)=(k)) -> exists jt_value_unit_enumerationinputbound. ((((exists fs_h_jt_unit_enumerationinputboundat. fs_h_jt_unit_enumerationinputboundat + S (jt_value_unit_enumerationinputbound) = S ((S (jt_index_unit_enumerationinputbound)) * jt_c_unit_enumeration)) /\ exists fs_q_jt_unit_enumerationinputboundat. jt_b_unit_enumeration = fs_q_jt_unit_enumerationinputboundat * S ((S (jt_index_unit_enumerationinputbound)) * jt_c_unit_enumeration) + (jt_value_unit_enumerationinputbound))) /\ (exists jt_gap_unit_enumerationinputboundvalue. jt_gap_unit_enumerationinputboundvalue+S (jt_value_unit_enumerationinputbound)=(1)))) -> (forall jt_divisor_unit_enumerationinputprimitive. (exists jt_factor_unit_enumerationinputprimitivemodulus. (1)=(jt_divisor_unit_enumerationinputprimitive)*jt_factor_unit_enumerationinputprimitivemodulus) -> (forall jt_index_unit_enumerationinputprimitivecoordinates jt_value_unit_enumerationinputprimitivecoordinates. (exists jt_gap_unit_enumerationinputprimitivecoordinatesindex. jt_gap_unit_enumerationinputprimitivecoordinatesindex+S (jt_index_unit_enumerationinputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_unit_enumerationinputprimitivecoordinatesat. fs_h_jt_unit_enumerationinputprimitivecoordinatesat + S (jt_value_unit_enumerationinputprimitivecoordinates) = S ((S (jt_index_unit_enumerationinputprimitivecoordinates)) * jt_c_unit_enumeration)) /\ exists fs_q_jt_unit_enumerationinputprimitivecoordinatesat. jt_b_unit_enumeration = fs_q_jt_unit_enumerationinputprimitivecoordinatesat * S ((S (jt_index_unit_enumerationinputprimitivecoordinates)) * jt_c_unit_enumeration) + (jt_value_unit_enumerationinputprimitivecoordinates))) -> (exists jt_factor_unit_enumerationinputprimitivecoordinatesdivides. (jt_value_unit_enumerationinputprimitivecoordinates)=(jt_divisor_unit_enumerationinputprimitive)*jt_factor_unit_enumerationinputprimitivecoordinatesdivides)) -> jt_divisor_unit_enumerationinputprimitive=1) -> exists jt_i_unit_enumeration jt_d_unit_enumeration jt_e_unit_enumeration. ((exists jt_gap_unit_enumerationcompleteindex. jt_gap_unit_enumerationcompleteindex+S (jt_i_unit_enumeration)=(1)) /\ (((((((exists fs_h_jt_unit_enumerationcompletecode. fs_h_jt_unit_enumerationcompletecode + S (jt_d_unit_enumeration) = S ((S (jt_i_unit_enumeration)) * 0)) /\ exists fs_q_jt_unit_enumerationcompletecode. 0 = fs_q_jt_unit_enumerationcompletecode * S ((S (jt_i_unit_enumeration)) * 0) + (jt_d_unit_enumeration))) /\ (((exists fs_h_jt_unit_enumerationcompletescale. fs_h_jt_unit_enumerationcompletescale + S (jt_e_unit_enumeration) = S ((S (jt_i_unit_enumeration)) * 0)) /\ exists fs_q_jt_unit_enumerationcompletescale. 0 = fs_q_jt_unit_enumerationcompletescale * S ((S (jt_i_unit_enumeration)) * 0) + (jt_e_unit_enumeration))))) /\ (forall jt_index_unit_enumerationrepresented jt_left_unit_enumerationrepresented jt_right_unit_enumerationrepresented. (exists jt_gap_unit_enumerationrepresentedindex. jt_gap_unit_enumerationrepresentedindex+S (jt_index_unit_enumerationrepresented)=(k)) -> (((exists fs_h_jt_unit_enumerationrepresentedleft. fs_h_jt_unit_enumerationrepresentedleft + S (jt_left_unit_enumerationrepresented) = S ((S (jt_index_unit_enumerationrepresented)) * jt_c_unit_enumeration)) /\ exists fs_q_jt_unit_enumerationrepresentedleft. jt_b_unit_enumeration = fs_q_jt_unit_enumerationrepresentedleft * S ((S (jt_index_unit_enumerationrepresented)) * jt_c_unit_enumeration) + (jt_left_unit_enumerationrepresented))) -> (((exists fs_h_jt_unit_enumerationrepresentedright. fs_h_jt_unit_enumerationrepresentedright + S (jt_right_unit_enumerationrepresented) = S ((S (jt_index_unit_enumerationrepresented)) * jt_e_unit_enumeration)) /\ exists fs_q_jt_unit_enumerationrepresentedright. jt_d_unit_enumeration = fs_q_jt_unit_enumerationrepresentedright * S ((S (jt_index_unit_enumerationrepresented)) * jt_e_unit_enumeration) + (jt_right_unit_enumerationrepresented))) -> jt_left_unit_enumerationrepresented=jt_right_unit_enumerationrepresented))))) /\ (forall jt_i_unit_enumeration jt_h_unit_enumeration jt_b_unit_enumeration jt_c_unit_enumeration jt_d_unit_enumeration jt_e_unit_enumeration. (exists jt_gap_unit_enumerationfirstindex. jt_gap_unit_enumerationfirstindex+S (jt_i_unit_enumeration)=(1)) -> (exists jt_gap_unit_enumerationsecondindex. jt_gap_unit_enumerationsecondindex+S (jt_h_unit_enumeration)=(1)) -> (((((exists fs_h_jt_unit_enumerationfirstcode. fs_h_jt_unit_enumerationfirstcode + S (jt_b_unit_enumeration) = S ((S (jt_i_unit_enumeration)) * 0)) /\ exists fs_q_jt_unit_enumerationfirstcode. 0 = fs_q_jt_unit_enumerationfirstcode * S ((S (jt_i_unit_enumeration)) * 0) + (jt_b_unit_enumeration))) /\ (((exists fs_h_jt_unit_enumerationfirstscale. fs_h_jt_unit_enumerationfirstscale + S (jt_c_unit_enumeration) = S ((S (jt_i_unit_enumeration)) * 0)) /\ exists fs_q_jt_unit_enumerationfirstscale. 0 = fs_q_jt_unit_enumerationfirstscale * S ((S (jt_i_unit_enumeration)) * 0) + (jt_c_unit_enumeration))))) -> (((((exists fs_h_jt_unit_enumerationsecondcode. fs_h_jt_unit_enumerationsecondcode + S (jt_d_unit_enumeration) = S ((S (jt_h_unit_enumeration)) * 0)) /\ exists fs_q_jt_unit_enumerationsecondcode. 0 = fs_q_jt_unit_enumerationsecondcode * S ((S (jt_h_unit_enumeration)) * 0) + (jt_d_unit_enumeration))) /\ (((exists fs_h_jt_unit_enumerationsecondscale. fs_h_jt_unit_enumerationsecondscale + S (jt_e_unit_enumeration) = S ((S (jt_h_unit_enumeration)) * 0)) /\ exists fs_q_jt_unit_enumerationsecondscale. 0 = fs_q_jt_unit_enumerationsecondscale * S ((S (jt_h_unit_enumeration)) * 0) + (jt_e_unit_enumeration))))) -> (forall jt_index_unit_enumerationsame jt_left_unit_enumerationsame jt_right_unit_enumerationsame. (exists jt_gap_unit_enumerationsameindex. jt_gap_unit_enumerationsameindex+S (jt_index_unit_enumerationsame)=(k)) -> (((exists fs_h_jt_unit_enumerationsameleft. fs_h_jt_unit_enumerationsameleft + S (jt_left_unit_enumerationsame) = S ((S (jt_index_unit_enumerationsame)) * jt_c_unit_enumeration)) /\ exists fs_q_jt_unit_enumerationsameleft. jt_b_unit_enumeration = fs_q_jt_unit_enumerationsameleft * S ((S (jt_index_unit_enumerationsame)) * jt_c_unit_enumeration) + (jt_left_unit_enumerationsame))) -> (((exists fs_h_jt_unit_enumerationsameright. fs_h_jt_unit_enumerationsameright + S (jt_right_unit_enumerationsame) = S ((S (jt_index_unit_enumerationsame)) * jt_e_unit_enumeration)) /\ exists fs_q_jt_unit_enumerationsameright. jt_d_unit_enumeration = fs_q_jt_unit_enumerationsameright * S ((S (jt_index_unit_enumerationsame)) * jt_e_unit_enumeration) + (jt_right_unit_enumerationsame))) -> jt_left_unit_enumerationsame=jt_right_unit_enumerationsame) -> jt_i_unit_enumeration=jt_h_unit_enumeration)))))Constructive proof overview
Generated structural guide
An actual one-position beta list is sound, complete and duplicate-free for primitive tuples modulo one.
The unchanged tactic script uses 6 declared prerequisites and contains 64 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
finite_beta_zero_code Alpha theorem; checked-use authorized JT0058 jordan_zero_tuple_bounded_one JT0008 jordan_primitive_tuple_modulus_one JT0059 jordan_tuples_bounded_one_equal le_zero Alpha theorem; checked-use authorized le_of_succ_le_succ 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 (3)
01Fix variables and assumptionsL1–1
Work with arbitrary variables or the premises of the current implication.
- L1
intro k
02Separate the logical casesL2–2
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L2
split
03Fix variables and assumptionsL3–4
04Construct an explicit witnessL5–6
05Separate the logical casesL7–8
06Use earlier factsL9–12
07Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
split
08Use earlier factsL14–19
Instantiate or apply named facts and discharge the corresponding proof obligations.
09Separate the logical casesL20–20
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L20
split
10Fix variables and assumptionsL21–24
11Construct an explicit witnessL25–27
12Separate the logical casesL28–28
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L28
split
13Construct an explicit witnessL29–29
Supply the displayed value, then prove that it has the required property.
- L29
exists 0
14Calculate and transport equalitiesL30–30
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L30
simp
15Separate the logical casesL31–32
16Use earlier factsL33–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
specialize finite_beta_zero_code (0) - L34
apply finite_beta_zero_code - L35
specialize finite_beta_zero_code (0) - L36
apply finite_beta_zero_code - L37
specialize jordan_tuples_bounded_one_equal (b) - L38
specialize jordan_tuples_bounded_one_equal (c) - L39
specialize jordan_tuples_bounded_one_equal (0) - L40
specialize jordan_tuples_bounded_one_equal (0) - L41
specialize jordan_tuples_bounded_one_equal (k) - L42
apply jordan_tuples_bounded_one_equal
17Use earlier factsL43–45
18Fix variables and assumptionsL46–55
19Fix variables and assumptionsL56–56
Work with arbitrary variables or the premises of the current implication.
- L56
intro hEqual
20Calculate and transport equalitiesL57–57
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L57
trans 0
21Use earlier factsL58–60
22Calculate and transport equalitiesL61–61
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L61
symm
Original exact command ledger · 64 lines
- 0001
intro k - 0002
split - 0003
intro i - 0004
intro hi - 0005
exists 0 - 0006
exists 0 - 0007
split - 0008
split - 0009
specialize finite_beta_zero_code (i) - 0010
apply finite_beta_zero_code - 0011
specialize finite_beta_zero_code (i) - 0012
apply finite_beta_zero_code - 0013
split - 0014
specialize jordan_zero_tuple_bounded_one (k) - 0015
apply jordan_zero_tuple_bounded_one - 0016
specialize jordan_primitive_tuple_modulus_one (0) - 0017
specialize jordan_primitive_tuple_modulus_one (0) - 0018
specialize jordan_primitive_tuple_modulus_one (k) - 0019
apply jordan_primitive_tuple_modulus_one - 0020
split - 0021
intro b - 0022
intro c - 0023
intro hBound - 0024
intro hPrimitive - 0025
exists 0 - 0026
exists 0 - 0027
exists 0 - 0028
split - 0029
exists 0 - 0030
simp - 0031
split - 0032
split - 0033
specialize finite_beta_zero_code (0) - 0034
apply finite_beta_zero_code - 0035
specialize finite_beta_zero_code (0) - 0036
apply finite_beta_zero_code - 0037
specialize jordan_tuples_bounded_one_equal (b) - 0038
specialize jordan_tuples_bounded_one_equal (c) - 0039
specialize jordan_tuples_bounded_one_equal (0) - 0040
specialize jordan_tuples_bounded_one_equal (0) - 0041
specialize jordan_tuples_bounded_one_equal (k) - 0042
apply jordan_tuples_bounded_one_equal - 0043
exact hBound - 0044
specialize jordan_zero_tuple_bounded_one (k) - 0045
apply jordan_zero_tuple_bounded_one - 0046
intro i - 0047
intro h - 0048
intro b - 0049
intro c - 0050
intro d - 0051
intro e - 0052
intro hi - 0053
intro hh - 0054
intro hFirst - 0055
intro hSecond - 0056
intro hEqual - 0057
trans 0 - 0058
apply le_zero - 0059
apply le_of_succ_le_succ - 0060
exact hi - 0061
symm - 0062
apply le_zero - 0063
apply le_of_succ_le_succ - 0064
exact hh