Exact expanded first-order arithmetic statement
forall m n k A B C D u E F G H v P Q R T i j b c d e. (forall jt_index_pairrect. (exists jt_gap_pairrectindex. jt_gap_pairrectindex+S (jt_index_pairrect)=(u*v)) -> exists jt_row_pairrect jt_column_pairrect jt_b_pairrect jt_c_pairrect jt_d_pairrect jt_e_pairrect jt_f_pairrect jt_g_pairrect. ((exists jt_gap_pairrectrow. jt_gap_pairrectrow+S (jt_row_pairrect)=(u)) /\ (((exists jt_gap_pairrectcolumn. jt_gap_pairrectcolumn+S (jt_column_pairrect)=(v)) /\ (((jt_index_pairrect=(v)*jt_row_pairrect+jt_column_pairrect) /\ (((((((exists fs_h_jt_pairrectleftcode. fs_h_jt_pairrectleftcode + S (jt_b_pairrect) = S ((S (jt_row_pairrect)) * B)) /\ exists fs_q_jt_pairrectleftcode. A = fs_q_jt_pairrectleftcode * S ((S (jt_row_pairrect)) * B) + (jt_b_pairrect))) /\ (((exists fs_h_jt_pairrectleftscale. fs_h_jt_pairrectleftscale + S (jt_c_pairrect) = S ((S (jt_row_pairrect)) * D)) /\ exists fs_q_jt_pairrectleftscale. C = fs_q_jt_pairrectleftscale * S ((S (jt_row_pairrect)) * D) + (jt_c_pairrect))))) /\ (((((((exists fs_h_jt_pairrectrightcode. fs_h_jt_pairrectrightcode + S (jt_d_pairrect) = S ((S (jt_column_pairrect)) * F)) /\ exists fs_q_jt_pairrectrightcode. E = fs_q_jt_pairrectrightcode * S ((S (jt_column_pairrect)) * F) + (jt_d_pairrect))) /\ (((exists fs_h_jt_pairrectrightscale. fs_h_jt_pairrectrightscale + S (jt_e_pairrect) = S ((S (jt_column_pairrect)) * H)) /\ exists fs_q_jt_pairrectrightscale. G = fs_q_jt_pairrectrightscale * S ((S (jt_column_pairrect)) * H) + (jt_e_pairrect))))) /\ (((((((exists fs_h_jt_pairrectoutputcode. fs_h_jt_pairrectoutputcode + S (jt_f_pairrect) = S ((S (jt_index_pairrect)) * Q)) /\ exists fs_q_jt_pairrectoutputcode. P = fs_q_jt_pairrectoutputcode * S ((S (jt_index_pairrect)) * Q) + (jt_f_pairrect))) /\ (((exists fs_h_jt_pairrectoutputscale. fs_h_jt_pairrectoutputscale + S (jt_g_pairrect) = S ((S (jt_index_pairrect)) * T)) /\ exists fs_q_jt_pairrectoutputscale. R = fs_q_jt_pairrectoutputscale * S ((S (jt_index_pairrect)) * T) + (jt_g_pairrect))))) /\ (((((forall jt_index_pairrectcrtbound. (exists jt_gap_pairrectcrtboundindex. jt_gap_pairrectcrtboundindex+S (jt_index_pairrectcrtbound)=(k)) -> exists jt_value_pairrectcrtbound. ((((exists fs_h_jt_pairrectcrtboundat. fs_h_jt_pairrectcrtboundat + S (jt_value_pairrectcrtbound) = S ((S (jt_index_pairrectcrtbound)) * jt_g_pairrect)) /\ exists fs_q_jt_pairrectcrtboundat. jt_f_pairrect = fs_q_jt_pairrectcrtboundat * S ((S (jt_index_pairrectcrtbound)) * jt_g_pairrect) + (jt_value_pairrectcrtbound))) /\ (exists jt_gap_pairrectcrtboundvalue. jt_gap_pairrectcrtboundvalue+S (jt_value_pairrectcrtbound)=(m*n)))) /\ (((forall jt_index_pairrectcrtleft jt_left_pairrectcrtleft jt_right_pairrectcrtleft. (exists jt_gap_pairrectcrtleftindex. jt_gap_pairrectcrtleftindex+S (jt_index_pairrectcrtleft)=(k)) -> (((exists fs_h_jt_pairrectcrtleftleft. fs_h_jt_pairrectcrtleftleft + S (jt_left_pairrectcrtleft) = S ((S (jt_index_pairrectcrtleft)) * jt_g_pairrect)) /\ exists fs_q_jt_pairrectcrtleftleft. jt_f_pairrect = fs_q_jt_pairrectcrtleftleft * S ((S (jt_index_pairrectcrtleft)) * jt_g_pairrect) + (jt_left_pairrectcrtleft))) -> (((exists fs_h_jt_pairrectcrtleftright. fs_h_jt_pairrectcrtleftright + S (jt_right_pairrectcrtleft) = S ((S (jt_index_pairrectcrtleft)) * jt_c_pairrect)) /\ exists fs_q_jt_pairrectcrtleftright. jt_b_pairrect = fs_q_jt_pairrectcrtleftright * S ((S (jt_index_pairrectcrtleft)) * jt_c_pairrect) + (jt_right_pairrectcrtleft))) -> (exists jt_left_pairrectcrtleftmod jt_right_pairrectcrtleftmod. (jt_left_pairrectcrtleft)+(m)*jt_left_pairrectcrtleftmod=(jt_right_pairrectcrtleft)+(m)*jt_right_pairrectcrtleftmod)) /\ (forall jt_index_pairrectcrtright jt_left_pairrectcrtright jt_right_pairrectcrtright. (exists jt_gap_pairrectcrtrightindex. jt_gap_pairrectcrtrightindex+S (jt_index_pairrectcrtright)=(k)) -> (((exists fs_h_jt_pairrectcrtrightleft. fs_h_jt_pairrectcrtrightleft + S (jt_left_pairrectcrtright) = S ((S (jt_index_pairrectcrtright)) * jt_g_pairrect)) /\ exists fs_q_jt_pairrectcrtrightleft. jt_f_pairrect = fs_q_jt_pairrectcrtrightleft * S ((S (jt_index_pairrectcrtright)) * jt_g_pairrect) + (jt_left_pairrectcrtright))) -> (((exists fs_h_jt_pairrectcrtrightright. fs_h_jt_pairrectcrtrightright + S (jt_right_pairrectcrtright) = S ((S (jt_index_pairrectcrtright)) * jt_e_pairrect)) /\ exists fs_q_jt_pairrectcrtrightright. jt_d_pairrect = fs_q_jt_pairrectcrtrightright * S ((S (jt_index_pairrectcrtright)) * jt_e_pairrect) + (jt_right_pairrectcrtright))) -> (exists jt_left_pairrectcrtrightmod jt_right_pairrectcrtrightmod. (jt_left_pairrectcrtright)+(n)*jt_left_pairrectcrtrightmod=(jt_right_pairrectcrtright)+(n)*jt_right_pairrectcrtrightmod)))))) /\ (forall jt_divisor_pairrectprimitive. (exists jt_factor_pairrectprimitivemodulus. (m*n)=(jt_divisor_pairrectprimitive)*jt_factor_pairrectprimitivemodulus) -> (forall jt_index_pairrectprimitivecoordinates jt_value_pairrectprimitivecoordinates. (exists jt_gap_pairrectprimitivecoordinatesindex. jt_gap_pairrectprimitivecoordinatesindex+S (jt_index_pairrectprimitivecoordinates)=(k)) -> (((exists fs_h_jt_pairrectprimitivecoordinatesat. fs_h_jt_pairrectprimitivecoordinatesat + S (jt_value_pairrectprimitivecoordinates) = S ((S (jt_index_pairrectprimitivecoordinates)) * jt_g_pairrect)) /\ exists fs_q_jt_pairrectprimitivecoordinatesat. jt_f_pairrect = fs_q_jt_pairrectprimitivecoordinatesat * S ((S (jt_index_pairrectprimitivecoordinates)) * jt_g_pairrect) + (jt_value_pairrectprimitivecoordinates))) -> (exists jt_factor_pairrectprimitivecoordinatesdivides. (jt_value_pairrectprimitivecoordinates)=(jt_divisor_pairrectprimitive)*jt_factor_pairrectprimitivecoordinatesdivides)) -> jt_divisor_pairrectprimitive=1))))))))))))))) -> (exists jt_gap_pairrow. jt_gap_pairrow+S (i)=(u)) -> (exists jt_gap_paircol. jt_gap_paircol+S (j)=(v)) -> (((((exists fs_h_jt_pairleftcode. fs_h_jt_pairleftcode + S (b) = S ((S (i)) * B)) /\ exists fs_q_jt_pairleftcode. A = fs_q_jt_pairleftcode * S ((S (i)) * B) + (b))) /\ (((exists fs_h_jt_pairleftscale. fs_h_jt_pairleftscale + S (c) = S ((S (i)) * D)) /\ exists fs_q_jt_pairleftscale. C = fs_q_jt_pairleftscale * S ((S (i)) * D) + (c))))) -> (((((exists fs_h_jt_pairrightcode. fs_h_jt_pairrightcode + S (d) = S ((S (j)) * F)) /\ exists fs_q_jt_pairrightcode. E = fs_q_jt_pairrightcode * S ((S (j)) * F) + (d))) /\ (((exists fs_h_jt_pairrightscale. fs_h_jt_pairrightscale + S (e) = S ((S (j)) * H)) /\ exists fs_q_jt_pairrightscale. G = fs_q_jt_pairrightscale * S ((S (j)) * H) + (e))))) -> exists f g. ((((((exists fs_h_jt_pairoutputcode. fs_h_jt_pairoutputcode + S (f) = S ((S (v*i+j)) * Q)) /\ exists fs_q_jt_pairoutputcode. P = fs_q_jt_pairoutputcode * S ((S (v*i+j)) * Q) + (f))) /\ (((exists fs_h_jt_pairoutputscale. fs_h_jt_pairoutputscale + S (g) = S ((S (v*i+j)) * T)) /\ exists fs_q_jt_pairoutputscale. R = fs_q_jt_pairoutputscale * S ((S (v*i+j)) * T) + (g))))) /\ (((((forall jt_index_paircrtbound. (exists jt_gap_paircrtboundindex. jt_gap_paircrtboundindex+S (jt_index_paircrtbound)=(k)) -> exists jt_value_paircrtbound. ((((exists fs_h_jt_paircrtboundat. fs_h_jt_paircrtboundat + S (jt_value_paircrtbound) = S ((S (jt_index_paircrtbound)) * g)) /\ exists fs_q_jt_paircrtboundat. f = fs_q_jt_paircrtboundat * S ((S (jt_index_paircrtbound)) * g) + (jt_value_paircrtbound))) /\ (exists jt_gap_paircrtboundvalue. jt_gap_paircrtboundvalue+S (jt_value_paircrtbound)=(m*n)))) /\ (((forall jt_index_paircrtleft jt_left_paircrtleft jt_right_paircrtleft. (exists jt_gap_paircrtleftindex. jt_gap_paircrtleftindex+S (jt_index_paircrtleft)=(k)) -> (((exists fs_h_jt_paircrtleftleft. fs_h_jt_paircrtleftleft + S (jt_left_paircrtleft) = S ((S (jt_index_paircrtleft)) * g)) /\ exists fs_q_jt_paircrtleftleft. f = fs_q_jt_paircrtleftleft * S ((S (jt_index_paircrtleft)) * g) + (jt_left_paircrtleft))) -> (((exists fs_h_jt_paircrtleftright. fs_h_jt_paircrtleftright + S (jt_right_paircrtleft) = S ((S (jt_index_paircrtleft)) * c)) /\ exists fs_q_jt_paircrtleftright. b = fs_q_jt_paircrtleftright * S ((S (jt_index_paircrtleft)) * c) + (jt_right_paircrtleft))) -> (exists jt_left_paircrtleftmod jt_right_paircrtleftmod. (jt_left_paircrtleft)+(m)*jt_left_paircrtleftmod=(jt_right_paircrtleft)+(m)*jt_right_paircrtleftmod)) /\ (forall jt_index_paircrtright jt_left_paircrtright jt_right_paircrtright. (exists jt_gap_paircrtrightindex. jt_gap_paircrtrightindex+S (jt_index_paircrtright)=(k)) -> (((exists fs_h_jt_paircrtrightleft. fs_h_jt_paircrtrightleft + S (jt_left_paircrtright) = S ((S (jt_index_paircrtright)) * g)) /\ exists fs_q_jt_paircrtrightleft. f = fs_q_jt_paircrtrightleft * S ((S (jt_index_paircrtright)) * g) + (jt_left_paircrtright))) -> (((exists fs_h_jt_paircrtrightright. fs_h_jt_paircrtrightright + S (jt_right_paircrtright) = S ((S (jt_index_paircrtright)) * e)) /\ exists fs_q_jt_paircrtrightright. d = fs_q_jt_paircrtrightright * S ((S (jt_index_paircrtright)) * e) + (jt_right_paircrtright))) -> (exists jt_left_paircrtrightmod jt_right_paircrtrightmod. (jt_left_paircrtright)+(n)*jt_left_paircrtrightmod=(jt_right_paircrtright)+(n)*jt_right_paircrtrightmod)))))) /\ (forall jt_divisor_pairprimitive. (exists jt_factor_pairprimitivemodulus. (m*n)=(jt_divisor_pairprimitive)*jt_factor_pairprimitivemodulus) -> (forall jt_index_pairprimitivecoordinates jt_value_pairprimitivecoordinates. (exists jt_gap_pairprimitivecoordinatesindex. jt_gap_pairprimitivecoordinatesindex+S (jt_index_pairprimitivecoordinates)=(k)) -> (((exists fs_h_jt_pairprimitivecoordinatesat. fs_h_jt_pairprimitivecoordinatesat + S (jt_value_pairprimitivecoordinates) = S ((S (jt_index_pairprimitivecoordinates)) * g)) /\ exists fs_q_jt_pairprimitivecoordinatesat. f = fs_q_jt_pairprimitivecoordinatesat * S ((S (jt_index_pairprimitivecoordinates)) * g) + (jt_value_pairprimitivecoordinates))) -> (exists jt_factor_pairprimitivecoordinatesdivides. (jt_value_pairprimitivecoordinates)=(jt_divisor_pairprimitive)*jt_factor_pairprimitivecoordinatesdivides)) -> jt_divisor_pairprimitive=1))))Constructive proof overview
Generated structural guide
The actual rectangular table realizes every prescribed pair of source entries at its unique flat index.
The unchanged tactic script uses 3 declared prerequisites and contains 127 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
JT0036 jordan_rectangle_flat_bound JT0037 jordan_rectangle_pair_unique beta_at_unique 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 (2)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–28
04Establish hpL29–36
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan rectangle flat bound.
- L29
have hp : exists jt_gap_pairbound. jt_gap_pairbound+S (v*i+j)=(u*v) - L30
specialize jordan_rectangle_flat_bound (u) - L31
specialize jordan_rectangle_flat_bound (v) - L32
specialize jordan_rectangle_flat_bound (i) - L33
specialize jordan_rectangle_flat_bound (j) - L34
apply jordan_rectangle_flat_bound - L35
exact hi - L36
exact hj
05Establish hvL37–40
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hr.
- L37
have hv : ∃ ri. ∃ rj. ∃ rb. ∃ rc. ∃ rd. ∃ re. ∃ rf. ∃ rg. Lt(ri,u) ∧ (Lt(rj,v) ∧ (v · i + j = v · ri + rj ∧ (BetaAt(A,B,ri,rb) ∧ BetaAt(C,D,ri,rc) ∧ (BetaAt(E,F,rj,rd) ∧ BetaAt(G,H,rj,re) ∧ (MatrixAt(P,Q,i,v,j,rf) ∧ MatrixAt(R,T,i,v,j,rg) ∧ (JordanCanonicalTupleCRT(m,n,rb,rc,rd,re,rf,rg,k) ∧ JordanPrimitiveTuple(m · n,rf,rg,k)))))))Definitions: MatrixAtJordanPrimitiveTupleJordanCanonicalTupleCRTLtBetaAt - L38
specialize hr (v*i+j) - L39
apply hr - L40
exact hp
06Separate the logical casesL41–50
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
cases hv - L42
cases hv_witness - L43
cases hv_witness_witness - L44
cases hv_witness_witness_witness - L45
cases hv_witness_witness_witness_witness - L46
cases hv_witness_witness_witness_witness_witness - L47
cases hv_witness_witness_witness_witness_witness_witness - L48
cases hv_witness_witness_witness_witness_witness_witness_witness - L49
cases hv_witness_witness_witness_witness_witness_witness_witness_witness - L50
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right
07Separate the logical casesL51–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L51
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right - L52
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right - L53
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right - L54
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_right - L55
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right
08Establish hijL56–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan rectangle pair unique.
- L56
have hij : i=x /\ j=x1 - L57
specialize jordan_rectangle_pair_unique (v) - L58
specialize jordan_rectangle_pair_unique (i) - L59
specialize jordan_rectangle_pair_unique (j) - L60
specialize jordan_rectangle_pair_unique (x) - L61
specialize jordan_rectangle_pair_unique (x1) - L62
apply jordan_rectangle_pair_unique - L63
exact hj - L64
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_left - L65
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left
09Separate the logical casesL66–70
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
10Establish hbL71–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
11Use earlier factsL81–81
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L81
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left_left
12Establish hcL82–91
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
13Use earlier factsL92–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left_right
14Establish hdL93–102
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
15Use earlier factsL103–103
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L103
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_left_left
16Establish heL104–113
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
17Use earlier factsL114–114
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L114
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_left_right
18Construct an explicit witnessL115–116
19Separate the logical casesL117–117
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L117
split
20Use earlier factsL118–118
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L118
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_right_left
21Separate the logical casesL119–119
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L119
split
22Calculate and transport equalitiesL120–125
23Use earlier factsL126–127
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 127 lines
- 0001
intro m - 0002
intro n - 0003
intro k - 0004
intro A - 0005
intro B - 0006
intro C - 0007
intro D - 0008
intro u - 0009
intro E - 0010
intro F - 0011
intro G - 0012
intro H - 0013
intro v - 0014
intro P - 0015
intro Q - 0016
intro R - 0017
intro T - 0018
intro i - 0019
intro j - 0020
intro b - 0021
intro c - 0022
intro d - 0023
intro e - 0024
intro hr - 0025
intro hi - 0026
intro hj - 0027
intro hl - 0028
intro hh - 0029
have hp : exists jt_gap_pairbound. jt_gap_pairbound+S (v*i+j)=(u*v) - 0030
specialize jordan_rectangle_flat_bound (u) - 0031
specialize jordan_rectangle_flat_bound (v) - 0032
specialize jordan_rectangle_flat_bound (i) - 0033
specialize jordan_rectangle_flat_bound (j) - 0034
apply jordan_rectangle_flat_bound - 0035
exact hi - 0036
exact hj - 0037
have hv : exists ri rj rb rc rd re rf rg. ((exists jt_gap_pairvaluerow. jt_gap_pairvaluerow+S (ri)=(u)) /\ (((exists jt_gap_pairvaluecolumn. jt_gap_pairvaluecolumn+S (rj)=(v)) /\ (((v*i+j=(v)*(ri)+(rj)) /\ (((((((exists fs_h_jt_pairvalueleftcode. fs_h_jt_pairvalueleftcode + S (rb) = S ((S (ri)) * B)) /\ exists fs_q_jt_pairvalueleftcode. A = fs_q_jt_pairvalueleftcode * S ((S (ri)) * B) + (rb))) /\ (((exists fs_h_jt_pairvalueleftscale. fs_h_jt_pairvalueleftscale + S (rc) = S ((S (ri)) * D)) /\ exists fs_q_jt_pairvalueleftscale. C = fs_q_jt_pairvalueleftscale * S ((S (ri)) * D) + (rc))))) /\ (((((((exists fs_h_jt_pairvaluerightcode. fs_h_jt_pairvaluerightcode + S (rd) = S ((S (rj)) * F)) /\ exists fs_q_jt_pairvaluerightcode. E = fs_q_jt_pairvaluerightcode * S ((S (rj)) * F) + (rd))) /\ (((exists fs_h_jt_pairvaluerightscale. fs_h_jt_pairvaluerightscale + S (re) = S ((S (rj)) * H)) /\ exists fs_q_jt_pairvaluerightscale. G = fs_q_jt_pairvaluerightscale * S ((S (rj)) * H) + (re))))) /\ (((((((exists fs_h_jt_pairvalueoutputcode. fs_h_jt_pairvalueoutputcode + S (rf) = S ((S (v*i+j)) * Q)) /\ exists fs_q_jt_pairvalueoutputcode. P = fs_q_jt_pairvalueoutputcode * S ((S (v*i+j)) * Q) + (rf))) /\ (((exists fs_h_jt_pairvalueoutputscale. fs_h_jt_pairvalueoutputscale + S (rg) = S ((S (v*i+j)) * T)) /\ exists fs_q_jt_pairvalueoutputscale. R = fs_q_jt_pairvalueoutputscale * S ((S (v*i+j)) * T) + (rg))))) /\ (((((forall jt_index_pairvaluecrtbound. (exists jt_gap_pairvaluecrtboundindex. jt_gap_pairvaluecrtboundindex+S (jt_index_pairvaluecrtbound)=(k)) -> exists jt_value_pairvaluecrtbound. ((((exists fs_h_jt_pairvaluecrtboundat. fs_h_jt_pairvaluecrtboundat + S (jt_value_pairvaluecrtbound) = S ((S (jt_index_pairvaluecrtbound)) * rg)) /\ exists fs_q_jt_pairvaluecrtboundat. rf = fs_q_jt_pairvaluecrtboundat * S ((S (jt_index_pairvaluecrtbound)) * rg) + (jt_value_pairvaluecrtbound))) /\ (exists jt_gap_pairvaluecrtboundvalue. jt_gap_pairvaluecrtboundvalue+S (jt_value_pairvaluecrtbound)=(m*n)))) /\ (((forall jt_index_pairvaluecrtleft jt_left_pairvaluecrtleft jt_right_pairvaluecrtleft. (exists jt_gap_pairvaluecrtleftindex. jt_gap_pairvaluecrtleftindex+S (jt_index_pairvaluecrtleft)=(k)) -> (((exists fs_h_jt_pairvaluecrtleftleft. fs_h_jt_pairvaluecrtleftleft + S (jt_left_pairvaluecrtleft) = S ((S (jt_index_pairvaluecrtleft)) * rg)) /\ exists fs_q_jt_pairvaluecrtleftleft. rf = fs_q_jt_pairvaluecrtleftleft * S ((S (jt_index_pairvaluecrtleft)) * rg) + (jt_left_pairvaluecrtleft))) -> (((exists fs_h_jt_pairvaluecrtleftright. fs_h_jt_pairvaluecrtleftright + S (jt_right_pairvaluecrtleft) = S ((S (jt_index_pairvaluecrtleft)) * rc)) /\ exists fs_q_jt_pairvaluecrtleftright. rb = fs_q_jt_pairvaluecrtleftright * S ((S (jt_index_pairvaluecrtleft)) * rc) + (jt_right_pairvaluecrtleft))) -> (exists jt_left_pairvaluecrtleftmod jt_right_pairvaluecrtleftmod. (jt_left_pairvaluecrtleft)+(m)*jt_left_pairvaluecrtleftmod=(jt_right_pairvaluecrtleft)+(m)*jt_right_pairvaluecrtleftmod)) /\ (forall jt_index_pairvaluecrtright jt_left_pairvaluecrtright jt_right_pairvaluecrtright. (exists jt_gap_pairvaluecrtrightindex. jt_gap_pairvaluecrtrightindex+S (jt_index_pairvaluecrtright)=(k)) -> (((exists fs_h_jt_pairvaluecrtrightleft. fs_h_jt_pairvaluecrtrightleft + S (jt_left_pairvaluecrtright) = S ((S (jt_index_pairvaluecrtright)) * rg)) /\ exists fs_q_jt_pairvaluecrtrightleft. rf = fs_q_jt_pairvaluecrtrightleft * S ((S (jt_index_pairvaluecrtright)) * rg) + (jt_left_pairvaluecrtright))) -> (((exists fs_h_jt_pairvaluecrtrightright. fs_h_jt_pairvaluecrtrightright + S (jt_right_pairvaluecrtright) = S ((S (jt_index_pairvaluecrtright)) * re)) /\ exists fs_q_jt_pairvaluecrtrightright. rd = fs_q_jt_pairvaluecrtrightright * S ((S (jt_index_pairvaluecrtright)) * re) + (jt_right_pairvaluecrtright))) -> (exists jt_left_pairvaluecrtrightmod jt_right_pairvaluecrtrightmod. (jt_left_pairvaluecrtright)+(n)*jt_left_pairvaluecrtrightmod=(jt_right_pairvaluecrtright)+(n)*jt_right_pairvaluecrtrightmod)))))) /\ (forall jt_divisor_pairvalueprimitive. (exists jt_factor_pairvalueprimitivemodulus. (m*n)=(jt_divisor_pairvalueprimitive)*jt_factor_pairvalueprimitivemodulus) -> (forall jt_index_pairvalueprimitivecoordinates jt_value_pairvalueprimitivecoordinates. (exists jt_gap_pairvalueprimitivecoordinatesindex. jt_gap_pairvalueprimitivecoordinatesindex+S (jt_index_pairvalueprimitivecoordinates)=(k)) -> (((exists fs_h_jt_pairvalueprimitivecoordinatesat. fs_h_jt_pairvalueprimitivecoordinatesat + S (jt_value_pairvalueprimitivecoordinates) = S ((S (jt_index_pairvalueprimitivecoordinates)) * rg)) /\ exists fs_q_jt_pairvalueprimitivecoordinatesat. rf = fs_q_jt_pairvalueprimitivecoordinatesat * S ((S (jt_index_pairvalueprimitivecoordinates)) * rg) + (jt_value_pairvalueprimitivecoordinates))) -> (exists jt_factor_pairvalueprimitivecoordinatesdivides. (jt_value_pairvalueprimitivecoordinates)=(jt_divisor_pairvalueprimitive)*jt_factor_pairvalueprimitivecoordinatesdivides)) -> jt_divisor_pairvalueprimitive=1)))))))))))))) - 0038
specialize hr (v*i+j) - 0039
apply hr - 0040
exact hp - 0041
cases hv - 0042
cases hv_witness - 0043
cases hv_witness_witness - 0044
cases hv_witness_witness_witness - 0045
cases hv_witness_witness_witness_witness - 0046
cases hv_witness_witness_witness_witness_witness - 0047
cases hv_witness_witness_witness_witness_witness_witness - 0048
cases hv_witness_witness_witness_witness_witness_witness_witness - 0049
cases hv_witness_witness_witness_witness_witness_witness_witness_witness - 0050
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right - 0051
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right - 0052
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right - 0053
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right - 0054
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_right - 0055
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right - 0056
have hij : i=x /\ j=x1 - 0057
specialize jordan_rectangle_pair_unique (v) - 0058
specialize jordan_rectangle_pair_unique (i) - 0059
specialize jordan_rectangle_pair_unique (j) - 0060
specialize jordan_rectangle_pair_unique (x) - 0061
specialize jordan_rectangle_pair_unique (x1) - 0062
apply jordan_rectangle_pair_unique - 0063
exact hj - 0064
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_left - 0065
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_left - 0066
cases hij - 0067
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left - 0068
cases hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_left - 0069
cases hl - 0070
cases hh - 0071
have hb : b=x2 - 0072
specialize beta_at_unique (A) - 0073
specialize beta_at_unique (B) - 0074
specialize beta_at_unique (x) - 0075
specialize beta_at_unique (b) - 0076
specialize beta_at_unique (x2) - 0077
apply beta_at_unique - 0078
rewrite hij_left at hl_left - 0079
rewrite hij_left at hl_left - 0080
exact hl_left - 0081
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left_left - 0082
have hc : c=x3 - 0083
specialize beta_at_unique (C) - 0084
specialize beta_at_unique (D) - 0085
specialize beta_at_unique (x) - 0086
specialize beta_at_unique (c) - 0087
specialize beta_at_unique (x3) - 0088
apply beta_at_unique - 0089
rewrite hij_left at hl_right - 0090
rewrite hij_left at hl_right - 0091
exact hl_right - 0092
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_left_right - 0093
have hd : d=x4 - 0094
specialize beta_at_unique (E) - 0095
specialize beta_at_unique (F) - 0096
specialize beta_at_unique (x1) - 0097
specialize beta_at_unique (d) - 0098
specialize beta_at_unique (x4) - 0099
apply beta_at_unique - 0100
rewrite hij_right at hh_left - 0101
rewrite hij_right at hh_left - 0102
exact hh_left - 0103
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_left_left - 0104
have he : e=x5 - 0105
specialize beta_at_unique (G) - 0106
specialize beta_at_unique (H) - 0107
specialize beta_at_unique (x1) - 0108
specialize beta_at_unique (e) - 0109
specialize beta_at_unique (x5) - 0110
apply beta_at_unique - 0111
rewrite hij_right at hh_right - 0112
rewrite hij_right at hh_right - 0113
exact hh_right - 0114
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_left_right - 0115
exists x6 - 0116
exists x7 - 0117
split - 0118
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_right_left - 0119
split - 0120
rewrite hb - 0121
rewrite hc - 0122
rewrite hc - 0123
rewrite hd - 0124
rewrite he - 0125
rewrite he - 0126
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right_left - 0127
exact hv_witness_witness_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right_right