Exact expanded first-order arithmetic statement
forall n b c d e k. (forall jt_index_congboundleft. (exists jt_gap_congboundleftindex. jt_gap_congboundleftindex+S (jt_index_congboundleft)=(k)) -> exists jt_value_congboundleft. ((((exists fs_h_jt_congboundleftat. fs_h_jt_congboundleftat + S (jt_value_congboundleft) = S ((S (jt_index_congboundleft)) * c)) /\ exists fs_q_jt_congboundleftat. b = fs_q_jt_congboundleftat * S ((S (jt_index_congboundleft)) * c) + (jt_value_congboundleft))) /\ (exists jt_gap_congboundleftvalue. jt_gap_congboundleftvalue+S (jt_value_congboundleft)=(n)))) -> (forall jt_index_congboundright. (exists jt_gap_congboundrightindex. jt_gap_congboundrightindex+S (jt_index_congboundright)=(k)) -> exists jt_value_congboundright. ((((exists fs_h_jt_congboundrightat. fs_h_jt_congboundrightat + S (jt_value_congboundright) = S ((S (jt_index_congboundright)) * e)) /\ exists fs_q_jt_congboundrightat. d = fs_q_jt_congboundrightat * S ((S (jt_index_congboundright)) * e) + (jt_value_congboundright))) /\ (exists jt_gap_congboundrightvalue. jt_gap_congboundrightvalue+S (jt_value_congboundright)=(n)))) -> (forall jt_index_congboth jt_left_congboth jt_right_congboth. (exists jt_gap_congbothindex. jt_gap_congbothindex+S (jt_index_congboth)=(k)) -> (((exists fs_h_jt_congbothleft. fs_h_jt_congbothleft + S (jt_left_congboth) = S ((S (jt_index_congboth)) * c)) /\ exists fs_q_jt_congbothleft. b = fs_q_jt_congbothleft * S ((S (jt_index_congboth)) * c) + (jt_left_congboth))) -> (((exists fs_h_jt_congbothright. fs_h_jt_congbothright + S (jt_right_congboth) = S ((S (jt_index_congboth)) * e)) /\ exists fs_q_jt_congbothright. d = fs_q_jt_congbothright * S ((S (jt_index_congboth)) * e) + (jt_right_congboth))) -> (exists jt_left_congbothmod jt_right_congbothmod. (jt_left_congboth)+(n)*jt_left_congbothmod=(jt_right_congboth)+(n)*jt_right_congbothmod)) -> (forall jt_index_congequal jt_left_congequal jt_right_congequal. (exists jt_gap_congequalindex. jt_gap_congequalindex+S (jt_index_congequal)=(k)) -> (((exists fs_h_jt_congequalleft. fs_h_jt_congequalleft + S (jt_left_congequal) = S ((S (jt_index_congequal)) * c)) /\ exists fs_q_jt_congequalleft. b = fs_q_jt_congequalleft * S ((S (jt_index_congequal)) * c) + (jt_left_congequal))) -> (((exists fs_h_jt_congequalright. fs_h_jt_congequalright + S (jt_right_congequal) = S ((S (jt_index_congequal)) * e)) /\ exists fs_q_jt_congequalright. d = fs_q_jt_congequalright * S ((S (jt_index_congequal)) * e) + (jt_right_congequal))) -> jt_left_congequal=jt_right_congequal)Constructive proof overview
Generated structural guide
Actual canonical residues with pointwise congruence are equal as coordinate functions.
The unchanged tactic script uses 2 declared prerequisites and contains 46 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
mod_eq_bounded_unique Alpha theorem; checked-use authorized matrix_rank_bounded_prefix_value 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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–15
03Use earlier factsL16–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L16
specialize mod_eq_bounded_unique (n) - L17
specialize mod_eq_bounded_unique (a) - L18
specialize mod_eq_bounded_unique (z) - L19
apply mod_eq_bounded_unique - L20
specialize matrix_rank_bounded_prefix_value (b) - L21
specialize matrix_rank_bounded_prefix_value (c) - L22
specialize matrix_rank_bounded_prefix_value (k) - L23
specialize matrix_rank_bounded_prefix_value (n) - L24
specialize matrix_rank_bounded_prefix_value (i) - L25
specialize matrix_rank_bounded_prefix_value (a)
04Use earlier factsL26–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
apply matrix_rank_bounded_prefix_value - L27
exact hb - L28
exact hi - L29
exact ha - L30
specialize matrix_rank_bounded_prefix_value (d) - L31
specialize matrix_rank_bounded_prefix_value (e) - L32
specialize matrix_rank_bounded_prefix_value (k) - L33
specialize matrix_rank_bounded_prefix_value (n) - L34
specialize matrix_rank_bounded_prefix_value (i) - L35
specialize matrix_rank_bounded_prefix_value (z)
05Use earlier factsL36–45
06Use earlier factsL46–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
exact hz
Original exact command ledger · 46 lines
- 0001
intro n - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro e - 0006
intro k - 0007
intro hb - 0008
intro hd - 0009
intro hm - 0010
intro i - 0011
intro a - 0012
intro z - 0013
intro hi - 0014
intro ha - 0015
intro hz - 0016
specialize mod_eq_bounded_unique (n) - 0017
specialize mod_eq_bounded_unique (a) - 0018
specialize mod_eq_bounded_unique (z) - 0019
apply mod_eq_bounded_unique - 0020
specialize matrix_rank_bounded_prefix_value (b) - 0021
specialize matrix_rank_bounded_prefix_value (c) - 0022
specialize matrix_rank_bounded_prefix_value (k) - 0023
specialize matrix_rank_bounded_prefix_value (n) - 0024
specialize matrix_rank_bounded_prefix_value (i) - 0025
specialize matrix_rank_bounded_prefix_value (a) - 0026
apply matrix_rank_bounded_prefix_value - 0027
exact hb - 0028
exact hi - 0029
exact ha - 0030
specialize matrix_rank_bounded_prefix_value (d) - 0031
specialize matrix_rank_bounded_prefix_value (e) - 0032
specialize matrix_rank_bounded_prefix_value (k) - 0033
specialize matrix_rank_bounded_prefix_value (n) - 0034
specialize matrix_rank_bounded_prefix_value (i) - 0035
specialize matrix_rank_bounded_prefix_value (z) - 0036
apply matrix_rank_bounded_prefix_value - 0037
exact hd - 0038
exact hi - 0039
exact hz - 0040
specialize hm (i) - 0041
specialize hm (a) - 0042
specialize hm (z) - 0043
apply hm - 0044
exact hi - 0045
exact ha - 0046
exact hz