Exact expanded first-order arithmetic statement
forall n k A B C D j b c. ~(n=0) -> (((forall jt_i_reduceenum. (exists jt_gap_reduceenumsoundindex. jt_gap_reduceenumsoundindex+S (jt_i_reduceenum)=(j)) -> exists jt_b_reduceenum jt_c_reduceenum. ((((((exists fs_h_jt_reduceenumsoundcode. fs_h_jt_reduceenumsoundcode + S (jt_b_reduceenum) = S ((S (jt_i_reduceenum)) * B)) /\ exists fs_q_jt_reduceenumsoundcode. A = fs_q_jt_reduceenumsoundcode * S ((S (jt_i_reduceenum)) * B) + (jt_b_reduceenum))) /\ (((exists fs_h_jt_reduceenumsoundscale. fs_h_jt_reduceenumsoundscale + S (jt_c_reduceenum) = S ((S (jt_i_reduceenum)) * D)) /\ exists fs_q_jt_reduceenumsoundscale. C = fs_q_jt_reduceenumsoundscale * S ((S (jt_i_reduceenum)) * D) + (jt_c_reduceenum))))) /\ (((forall jt_index_reduceenumbound. (exists jt_gap_reduceenumboundindex. jt_gap_reduceenumboundindex+S (jt_index_reduceenumbound)=(k)) -> exists jt_value_reduceenumbound. ((((exists fs_h_jt_reduceenumboundat. fs_h_jt_reduceenumboundat + S (jt_value_reduceenumbound) = S ((S (jt_index_reduceenumbound)) * jt_c_reduceenum)) /\ exists fs_q_jt_reduceenumboundat. jt_b_reduceenum = fs_q_jt_reduceenumboundat * S ((S (jt_index_reduceenumbound)) * jt_c_reduceenum) + (jt_value_reduceenumbound))) /\ (exists jt_gap_reduceenumboundvalue. jt_gap_reduceenumboundvalue+S (jt_value_reduceenumbound)=(n)))) /\ (forall jt_divisor_reduceenumprimitive. (exists jt_factor_reduceenumprimitivemodulus. (n)=(jt_divisor_reduceenumprimitive)*jt_factor_reduceenumprimitivemodulus) -> (forall jt_index_reduceenumprimitivecoordinates jt_value_reduceenumprimitivecoordinates. (exists jt_gap_reduceenumprimitivecoordinatesindex. jt_gap_reduceenumprimitivecoordinatesindex+S (jt_index_reduceenumprimitivecoordinates)=(k)) -> (((exists fs_h_jt_reduceenumprimitivecoordinatesat. fs_h_jt_reduceenumprimitivecoordinatesat + S (jt_value_reduceenumprimitivecoordinates) = S ((S (jt_index_reduceenumprimitivecoordinates)) * jt_c_reduceenum)) /\ exists fs_q_jt_reduceenumprimitivecoordinatesat. jt_b_reduceenum = fs_q_jt_reduceenumprimitivecoordinatesat * S ((S (jt_index_reduceenumprimitivecoordinates)) * jt_c_reduceenum) + (jt_value_reduceenumprimitivecoordinates))) -> (exists jt_factor_reduceenumprimitivecoordinatesdivides. (jt_value_reduceenumprimitivecoordinates)=(jt_divisor_reduceenumprimitive)*jt_factor_reduceenumprimitivecoordinatesdivides)) -> jt_divisor_reduceenumprimitive=1))))) /\ (((forall jt_b_reduceenum jt_c_reduceenum. (forall jt_index_reduceenuminputbound. (exists jt_gap_reduceenuminputboundindex. jt_gap_reduceenuminputboundindex+S (jt_index_reduceenuminputbound)=(k)) -> exists jt_value_reduceenuminputbound. ((((exists fs_h_jt_reduceenuminputboundat. fs_h_jt_reduceenuminputboundat + S (jt_value_reduceenuminputbound) = S ((S (jt_index_reduceenuminputbound)) * jt_c_reduceenum)) /\ exists fs_q_jt_reduceenuminputboundat. jt_b_reduceenum = fs_q_jt_reduceenuminputboundat * S ((S (jt_index_reduceenuminputbound)) * jt_c_reduceenum) + (jt_value_reduceenuminputbound))) /\ (exists jt_gap_reduceenuminputboundvalue. jt_gap_reduceenuminputboundvalue+S (jt_value_reduceenuminputbound)=(n)))) -> (forall jt_divisor_reduceenuminputprimitive. (exists jt_factor_reduceenuminputprimitivemodulus. (n)=(jt_divisor_reduceenuminputprimitive)*jt_factor_reduceenuminputprimitivemodulus) -> (forall jt_index_reduceenuminputprimitivecoordinates jt_value_reduceenuminputprimitivecoordinates. (exists jt_gap_reduceenuminputprimitivecoordinatesindex. jt_gap_reduceenuminputprimitivecoordinatesindex+S (jt_index_reduceenuminputprimitivecoordinates)=(k)) -> (((exists fs_h_jt_reduceenuminputprimitivecoordinatesat. fs_h_jt_reduceenuminputprimitivecoordinatesat + S (jt_value_reduceenuminputprimitivecoordinates) = S ((S (jt_index_reduceenuminputprimitivecoordinates)) * jt_c_reduceenum)) /\ exists fs_q_jt_reduceenuminputprimitivecoordinatesat. jt_b_reduceenum = fs_q_jt_reduceenuminputprimitivecoordinatesat * S ((S (jt_index_reduceenuminputprimitivecoordinates)) * jt_c_reduceenum) + (jt_value_reduceenuminputprimitivecoordinates))) -> (exists jt_factor_reduceenuminputprimitivecoordinatesdivides. (jt_value_reduceenuminputprimitivecoordinates)=(jt_divisor_reduceenuminputprimitive)*jt_factor_reduceenuminputprimitivecoordinatesdivides)) -> jt_divisor_reduceenuminputprimitive=1) -> exists jt_i_reduceenum jt_d_reduceenum jt_e_reduceenum. ((exists jt_gap_reduceenumcompleteindex. jt_gap_reduceenumcompleteindex+S (jt_i_reduceenum)=(j)) /\ (((((((exists fs_h_jt_reduceenumcompletecode. fs_h_jt_reduceenumcompletecode + S (jt_d_reduceenum) = S ((S (jt_i_reduceenum)) * B)) /\ exists fs_q_jt_reduceenumcompletecode. A = fs_q_jt_reduceenumcompletecode * S ((S (jt_i_reduceenum)) * B) + (jt_d_reduceenum))) /\ (((exists fs_h_jt_reduceenumcompletescale. fs_h_jt_reduceenumcompletescale + S (jt_e_reduceenum) = S ((S (jt_i_reduceenum)) * D)) /\ exists fs_q_jt_reduceenumcompletescale. C = fs_q_jt_reduceenumcompletescale * S ((S (jt_i_reduceenum)) * D) + (jt_e_reduceenum))))) /\ (forall jt_index_reduceenumrepresented jt_left_reduceenumrepresented jt_right_reduceenumrepresented. (exists jt_gap_reduceenumrepresentedindex. jt_gap_reduceenumrepresentedindex+S (jt_index_reduceenumrepresented)=(k)) -> (((exists fs_h_jt_reduceenumrepresentedleft. fs_h_jt_reduceenumrepresentedleft + S (jt_left_reduceenumrepresented) = S ((S (jt_index_reduceenumrepresented)) * jt_c_reduceenum)) /\ exists fs_q_jt_reduceenumrepresentedleft. jt_b_reduceenum = fs_q_jt_reduceenumrepresentedleft * S ((S (jt_index_reduceenumrepresented)) * jt_c_reduceenum) + (jt_left_reduceenumrepresented))) -> (((exists fs_h_jt_reduceenumrepresentedright. fs_h_jt_reduceenumrepresentedright + S (jt_right_reduceenumrepresented) = S ((S (jt_index_reduceenumrepresented)) * jt_e_reduceenum)) /\ exists fs_q_jt_reduceenumrepresentedright. jt_d_reduceenum = fs_q_jt_reduceenumrepresentedright * S ((S (jt_index_reduceenumrepresented)) * jt_e_reduceenum) + (jt_right_reduceenumrepresented))) -> jt_left_reduceenumrepresented=jt_right_reduceenumrepresented))))) /\ (forall jt_i_reduceenum jt_h_reduceenum jt_b_reduceenum jt_c_reduceenum jt_d_reduceenum jt_e_reduceenum. (exists jt_gap_reduceenumfirstindex. jt_gap_reduceenumfirstindex+S (jt_i_reduceenum)=(j)) -> (exists jt_gap_reduceenumsecondindex. jt_gap_reduceenumsecondindex+S (jt_h_reduceenum)=(j)) -> (((((exists fs_h_jt_reduceenumfirstcode. fs_h_jt_reduceenumfirstcode + S (jt_b_reduceenum) = S ((S (jt_i_reduceenum)) * B)) /\ exists fs_q_jt_reduceenumfirstcode. A = fs_q_jt_reduceenumfirstcode * S ((S (jt_i_reduceenum)) * B) + (jt_b_reduceenum))) /\ (((exists fs_h_jt_reduceenumfirstscale. fs_h_jt_reduceenumfirstscale + S (jt_c_reduceenum) = S ((S (jt_i_reduceenum)) * D)) /\ exists fs_q_jt_reduceenumfirstscale. C = fs_q_jt_reduceenumfirstscale * S ((S (jt_i_reduceenum)) * D) + (jt_c_reduceenum))))) -> (((((exists fs_h_jt_reduceenumsecondcode. fs_h_jt_reduceenumsecondcode + S (jt_d_reduceenum) = S ((S (jt_h_reduceenum)) * B)) /\ exists fs_q_jt_reduceenumsecondcode. A = fs_q_jt_reduceenumsecondcode * S ((S (jt_h_reduceenum)) * B) + (jt_d_reduceenum))) /\ (((exists fs_h_jt_reduceenumsecondscale. fs_h_jt_reduceenumsecondscale + S (jt_e_reduceenum) = S ((S (jt_h_reduceenum)) * D)) /\ exists fs_q_jt_reduceenumsecondscale. C = fs_q_jt_reduceenumsecondscale * S ((S (jt_h_reduceenum)) * D) + (jt_e_reduceenum))))) -> (forall jt_index_reduceenumsame jt_left_reduceenumsame jt_right_reduceenumsame. (exists jt_gap_reduceenumsameindex. jt_gap_reduceenumsameindex+S (jt_index_reduceenumsame)=(k)) -> (((exists fs_h_jt_reduceenumsameleft. fs_h_jt_reduceenumsameleft + S (jt_left_reduceenumsame) = S ((S (jt_index_reduceenumsame)) * jt_c_reduceenum)) /\ exists fs_q_jt_reduceenumsameleft. jt_b_reduceenum = fs_q_jt_reduceenumsameleft * S ((S (jt_index_reduceenumsame)) * jt_c_reduceenum) + (jt_left_reduceenumsame))) -> (((exists fs_h_jt_reduceenumsameright. fs_h_jt_reduceenumsameright + S (jt_right_reduceenumsame) = S ((S (jt_index_reduceenumsame)) * jt_e_reduceenum)) /\ exists fs_q_jt_reduceenumsameright. jt_d_reduceenum = fs_q_jt_reduceenumsameright * S ((S (jt_index_reduceenumsame)) * jt_e_reduceenum) + (jt_right_reduceenumsame))) -> jt_left_reduceenumsame=jt_right_reduceenumsame) -> jt_i_reduceenum=jt_h_reduceenum))))) -> (forall jt_divisor_reduceinput. (exists jt_factor_reduceinputmodulus. (n)=(jt_divisor_reduceinput)*jt_factor_reduceinputmodulus) -> (forall jt_index_reduceinputcoordinates jt_value_reduceinputcoordinates. (exists jt_gap_reduceinputcoordinatesindex. jt_gap_reduceinputcoordinatesindex+S (jt_index_reduceinputcoordinates)=(k)) -> (((exists fs_h_jt_reduceinputcoordinatesat. fs_h_jt_reduceinputcoordinatesat + S (jt_value_reduceinputcoordinates) = S ((S (jt_index_reduceinputcoordinates)) * c)) /\ exists fs_q_jt_reduceinputcoordinatesat. b = fs_q_jt_reduceinputcoordinatesat * S ((S (jt_index_reduceinputcoordinates)) * c) + (jt_value_reduceinputcoordinates))) -> (exists jt_factor_reduceinputcoordinatesdivides. (jt_value_reduceinputcoordinates)=(jt_divisor_reduceinput)*jt_factor_reduceinputcoordinatesdivides)) -> jt_divisor_reduceinput=1) -> exists i d e. ((exists jt_gap_reduceindex. jt_gap_reduceindex+S (i)=(j)) /\ (((((((exists fs_h_jt_reduceentrycode. fs_h_jt_reduceentrycode + S (d) = S ((S (i)) * B)) /\ exists fs_q_jt_reduceentrycode. A = fs_q_jt_reduceentrycode * S ((S (i)) * B) + (d))) /\ (((exists fs_h_jt_reduceentryscale. fs_h_jt_reduceentryscale + S (e) = S ((S (i)) * D)) /\ exists fs_q_jt_reduceentryscale. C = fs_q_jt_reduceentryscale * S ((S (i)) * D) + (e))))) /\ (forall jt_index_reduceresult jt_left_reduceresult jt_right_reduceresult. (exists jt_gap_reduceresultindex. jt_gap_reduceresultindex+S (jt_index_reduceresult)=(k)) -> (((exists fs_h_jt_reduceresultleft. fs_h_jt_reduceresultleft + S (jt_left_reduceresult) = S ((S (jt_index_reduceresult)) * c)) /\ exists fs_q_jt_reduceresultleft. b = fs_q_jt_reduceresultleft * S ((S (jt_index_reduceresult)) * c) + (jt_left_reduceresult))) -> (((exists fs_h_jt_reduceresultright. fs_h_jt_reduceresultright + S (jt_right_reduceresult) = S ((S (jt_index_reduceresult)) * e)) /\ exists fs_q_jt_reduceresultright. d = fs_q_jt_reduceresultright * S ((S (jt_index_reduceresult)) * e) + (jt_right_reduceresult))) -> (exists jt_left_reduceresultmod jt_right_reduceresultmod. (jt_left_reduceresult)+(n)*jt_left_reduceresultmod=(jt_right_reduceresult)+(n)*jt_right_reduceresultmod)))))Constructive proof overview
Generated structural guide
Reduce any primitive tuple to an actual canonical enumeration entry, retaining coordinate congruences and the genuine index.
The unchanged tactic script uses 5 declared prerequisites and contains 76 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
JT002F jordan_tuple_normalize_exists JT000F jordan_primitive_tuple_congruence_transport JT003E jordan_enumeration_complete JT0030 jordan_tuple_congruence_trans JT0038 jordan_tuple_equal_congruenceDirect 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 (5)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–12
03Establish hnrmL13–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan tuple normalize exists.
- L13
have hnrm : ∃ d. ∃ e. BetaPrefixInto(d,e,k,n) ∧ JordanTupleCongruence(n,b,c,d,e,k)Definitions: BetaPrefixIntoJordanTupleCongruence - L14
specialize jordan_tuple_normalize_exists (n) - L15
specialize jordan_tuple_normalize_exists (b) - L16
specialize jordan_tuple_normalize_exists (c) - L17
specialize jordan_tuple_normalize_exists (k) - L18
apply jordan_tuple_normalize_exists - L19
exact hn
04Separate the logical casesL20–22
05Establish hprimL23–32
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan primitive tuple congruence transport.
- L23
have hprim : JordanPrimitiveTuple(n,x,x1,k)Definitions: JordanPrimitiveTuple - L24
specialize jordan_primitive_tuple_congruence_transport (n) - L25
specialize jordan_primitive_tuple_congruence_transport (b) - L26
specialize jordan_primitive_tuple_congruence_transport (c) - L27
specialize jordan_primitive_tuple_congruence_transport (x) - L28
specialize jordan_primitive_tuple_congruence_transport (x1) - L29
specialize jordan_primitive_tuple_congruence_transport (k) - L30
apply jordan_primitive_tuple_congruence_transport - L31
exact hnrm_witness_witness_right - L32
exact hp
06Establish hlL33–42
Establish this local claim before using it. It is not an additional assumption.
- L33
have hl : JordanTupleListed(x,x1,k,A,B,C,D,j)Definitions: JordanTupleListed - L34
specialize jordan_enumeration_complete (k) - L35
specialize jordan_enumeration_complete (n) - L36
specialize jordan_enumeration_complete (A) - L37
specialize jordan_enumeration_complete (B) - L38
specialize jordan_enumeration_complete (C) - L39
specialize jordan_enumeration_complete (D) - L40
specialize jordan_enumeration_complete (j) - L41
specialize jordan_enumeration_complete (x) - L42
specialize jordan_enumeration_complete (x1)
07Use earlier factsL43–46
08Separate the logical casesL47–51
09Construct an explicit witnessL52–54
10Separate the logical casesL55–55
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L55
split
11Use earlier factsL56–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L56
exact hl_witness_witness_witness_left
12Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
split
13Use earlier factsL58–67
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L58
exact hl_witness_witness_witness_right_left - L59
specialize jordan_tuple_congruence_trans (n) - L60
specialize jordan_tuple_congruence_trans (b) - L61
specialize jordan_tuple_congruence_trans (c) - L62
specialize jordan_tuple_congruence_trans (x) - L63
specialize jordan_tuple_congruence_trans (x1) - L64
specialize jordan_tuple_congruence_trans (x3) - L65
specialize jordan_tuple_congruence_trans (x4) - L66
specialize jordan_tuple_congruence_trans (k) - L67
apply jordan_tuple_congruence_trans
14Use earlier factsL68–76
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
exact hnrm_witness_witness_right - L69
specialize jordan_tuple_equal_congruence (n) - L70
specialize jordan_tuple_equal_congruence (x) - L71
specialize jordan_tuple_equal_congruence (x1) - L72
specialize jordan_tuple_equal_congruence (x3) - L73
specialize jordan_tuple_equal_congruence (x4) - L74
specialize jordan_tuple_equal_congruence (k) - L75
apply jordan_tuple_equal_congruence - L76
exact hl_witness_witness_witness_right_right
Original exact command ledger · 76 lines
- 0001
intro n - 0002
intro k - 0003
intro A - 0004
intro B - 0005
intro C - 0006
intro D - 0007
intro j - 0008
intro b - 0009
intro c - 0010
intro hn - 0011
intro he - 0012
intro hp - 0013
have hnrm : exists d e. ((forall jt_index_reducebound. (exists jt_gap_reduceboundindex. jt_gap_reduceboundindex+S (jt_index_reducebound)=(k)) -> exists jt_value_reducebound. ((((exists fs_h_jt_reduceboundat. fs_h_jt_reduceboundat + S (jt_value_reducebound) = S ((S (jt_index_reducebound)) * e)) /\ exists fs_q_jt_reduceboundat. d = fs_q_jt_reduceboundat * S ((S (jt_index_reducebound)) * e) + (jt_value_reducebound))) /\ (exists jt_gap_reduceboundvalue. jt_gap_reduceboundvalue+S (jt_value_reducebound)=(n)))) /\ (forall jt_index_reducemod jt_left_reducemod jt_right_reducemod. (exists jt_gap_reducemodindex. jt_gap_reducemodindex+S (jt_index_reducemod)=(k)) -> (((exists fs_h_jt_reducemodleft. fs_h_jt_reducemodleft + S (jt_left_reducemod) = S ((S (jt_index_reducemod)) * c)) /\ exists fs_q_jt_reducemodleft. b = fs_q_jt_reducemodleft * S ((S (jt_index_reducemod)) * c) + (jt_left_reducemod))) -> (((exists fs_h_jt_reducemodright. fs_h_jt_reducemodright + S (jt_right_reducemod) = S ((S (jt_index_reducemod)) * e)) /\ exists fs_q_jt_reducemodright. d = fs_q_jt_reducemodright * S ((S (jt_index_reducemod)) * e) + (jt_right_reducemod))) -> (exists jt_left_reducemodmod jt_right_reducemodmod. (jt_left_reducemod)+(n)*jt_left_reducemodmod=(jt_right_reducemod)+(n)*jt_right_reducemodmod))) - 0014
specialize jordan_tuple_normalize_exists (n) - 0015
specialize jordan_tuple_normalize_exists (b) - 0016
specialize jordan_tuple_normalize_exists (c) - 0017
specialize jordan_tuple_normalize_exists (k) - 0018
apply jordan_tuple_normalize_exists - 0019
exact hn - 0020
cases hnrm - 0021
cases hnrm_witness - 0022
cases hnrm_witness_witness - 0023
have hprim : forall jt_divisor_reduceprim. (exists jt_factor_reduceprimmodulus. (n)=(jt_divisor_reduceprim)*jt_factor_reduceprimmodulus) -> (forall jt_index_reduceprimcoordinates jt_value_reduceprimcoordinates. (exists jt_gap_reduceprimcoordinatesindex. jt_gap_reduceprimcoordinatesindex+S (jt_index_reduceprimcoordinates)=(k)) -> (((exists fs_h_jt_reduceprimcoordinatesat. fs_h_jt_reduceprimcoordinatesat + S (jt_value_reduceprimcoordinates) = S ((S (jt_index_reduceprimcoordinates)) * x1)) /\ exists fs_q_jt_reduceprimcoordinatesat. x = fs_q_jt_reduceprimcoordinatesat * S ((S (jt_index_reduceprimcoordinates)) * x1) + (jt_value_reduceprimcoordinates))) -> (exists jt_factor_reduceprimcoordinatesdivides. (jt_value_reduceprimcoordinates)=(jt_divisor_reduceprim)*jt_factor_reduceprimcoordinatesdivides)) -> jt_divisor_reduceprim=1 - 0024
specialize jordan_primitive_tuple_congruence_transport (n) - 0025
specialize jordan_primitive_tuple_congruence_transport (b) - 0026
specialize jordan_primitive_tuple_congruence_transport (c) - 0027
specialize jordan_primitive_tuple_congruence_transport (x) - 0028
specialize jordan_primitive_tuple_congruence_transport (x1) - 0029
specialize jordan_primitive_tuple_congruence_transport (k) - 0030
apply jordan_primitive_tuple_congruence_transport - 0031
exact hnrm_witness_witness_right - 0032
exact hp - 0033
have hl : exists jt_index_reducelisted jt_code_reducelisted jt_scale_reducelisted. ((exists jt_gap_reducelistedindex. jt_gap_reducelistedindex+S (jt_index_reducelisted)=(j)) /\ (((((((exists fs_h_jt_reducelistedcode. fs_h_jt_reducelistedcode + S (jt_code_reducelisted) = S ((S (jt_index_reducelisted)) * B)) /\ exists fs_q_jt_reducelistedcode. A = fs_q_jt_reducelistedcode * S ((S (jt_index_reducelisted)) * B) + (jt_code_reducelisted))) /\ (((exists fs_h_jt_reducelistedscale. fs_h_jt_reducelistedscale + S (jt_scale_reducelisted) = S ((S (jt_index_reducelisted)) * D)) /\ exists fs_q_jt_reducelistedscale. C = fs_q_jt_reducelistedscale * S ((S (jt_index_reducelisted)) * D) + (jt_scale_reducelisted))))) /\ (forall jt_index_reducelistedequal jt_left_reducelistedequal jt_right_reducelistedequal. (exists jt_gap_reducelistedequalindex. jt_gap_reducelistedequalindex+S (jt_index_reducelistedequal)=(k)) -> (((exists fs_h_jt_reducelistedequalleft. fs_h_jt_reducelistedequalleft + S (jt_left_reducelistedequal) = S ((S (jt_index_reducelistedequal)) * x1)) /\ exists fs_q_jt_reducelistedequalleft. x = fs_q_jt_reducelistedequalleft * S ((S (jt_index_reducelistedequal)) * x1) + (jt_left_reducelistedequal))) -> (((exists fs_h_jt_reducelistedequalright. fs_h_jt_reducelistedequalright + S (jt_right_reducelistedequal) = S ((S (jt_index_reducelistedequal)) * jt_scale_reducelisted)) /\ exists fs_q_jt_reducelistedequalright. jt_code_reducelisted = fs_q_jt_reducelistedequalright * S ((S (jt_index_reducelistedequal)) * jt_scale_reducelisted) + (jt_right_reducelistedequal))) -> jt_left_reducelistedequal=jt_right_reducelistedequal)))) - 0034
specialize jordan_enumeration_complete (k) - 0035
specialize jordan_enumeration_complete (n) - 0036
specialize jordan_enumeration_complete (A) - 0037
specialize jordan_enumeration_complete (B) - 0038
specialize jordan_enumeration_complete (C) - 0039
specialize jordan_enumeration_complete (D) - 0040
specialize jordan_enumeration_complete (j) - 0041
specialize jordan_enumeration_complete (x) - 0042
specialize jordan_enumeration_complete (x1) - 0043
apply jordan_enumeration_complete - 0044
exact he - 0045
exact hnrm_witness_witness_left - 0046
exact hprim - 0047
cases hl - 0048
cases hl_witness - 0049
cases hl_witness_witness - 0050
cases hl_witness_witness_witness - 0051
cases hl_witness_witness_witness_right - 0052
exists x2 - 0053
exists x3 - 0054
exists x4 - 0055
split - 0056
exact hl_witness_witness_witness_left - 0057
split - 0058
exact hl_witness_witness_witness_right_left - 0059
specialize jordan_tuple_congruence_trans (n) - 0060
specialize jordan_tuple_congruence_trans (b) - 0061
specialize jordan_tuple_congruence_trans (c) - 0062
specialize jordan_tuple_congruence_trans (x) - 0063
specialize jordan_tuple_congruence_trans (x1) - 0064
specialize jordan_tuple_congruence_trans (x3) - 0065
specialize jordan_tuple_congruence_trans (x4) - 0066
specialize jordan_tuple_congruence_trans (k) - 0067
apply jordan_tuple_congruence_trans - 0068
exact hnrm_witness_witness_right - 0069
specialize jordan_tuple_equal_congruence (n) - 0070
specialize jordan_tuple_equal_congruence (x) - 0071
specialize jordan_tuple_equal_congruence (x1) - 0072
specialize jordan_tuple_equal_congruence (x3) - 0073
specialize jordan_tuple_equal_congruence (x4) - 0074
specialize jordan_tuple_equal_congruence (k) - 0075
apply jordan_tuple_equal_congruence - 0076
exact hl_witness_witness_witness_right_right