Exact expanded first-order arithmetic statement
forall n b c d e f g h s k. (forall jt_index_recoverleft. (exists jt_gap_recoverleftindex. jt_gap_recoverleftindex+S (jt_index_recoverleft)=(k)) -> exists jt_value_recoverleft. ((((exists fs_h_jt_recoverleftat. fs_h_jt_recoverleftat + S (jt_value_recoverleft) = S ((S (jt_index_recoverleft)) * c)) /\ exists fs_q_jt_recoverleftat. b = fs_q_jt_recoverleftat * S ((S (jt_index_recoverleft)) * c) + (jt_value_recoverleft))) /\ (exists jt_gap_recoverleftvalue. jt_gap_recoverleftvalue+S (jt_value_recoverleft)=(n)))) -> (forall jt_index_recoverright. (exists jt_gap_recoverrightindex. jt_gap_recoverrightindex+S (jt_index_recoverright)=(k)) -> exists jt_value_recoverright. ((((exists fs_h_jt_recoverrightat. fs_h_jt_recoverrightat + S (jt_value_recoverright) = S ((S (jt_index_recoverright)) * e)) /\ exists fs_q_jt_recoverrightat. d = fs_q_jt_recoverrightat * S ((S (jt_index_recoverright)) * e) + (jt_value_recoverright))) /\ (exists jt_gap_recoverrightvalue. jt_gap_recoverrightvalue+S (jt_value_recoverright)=(n)))) -> (forall jt_index_recoverfirst jt_left_recoverfirst jt_right_recoverfirst. (exists jt_gap_recoverfirstindex. jt_gap_recoverfirstindex+S (jt_index_recoverfirst)=(k)) -> (((exists fs_h_jt_recoverfirstleft. fs_h_jt_recoverfirstleft + S (jt_left_recoverfirst) = S ((S (jt_index_recoverfirst)) * g)) /\ exists fs_q_jt_recoverfirstleft. f = fs_q_jt_recoverfirstleft * S ((S (jt_index_recoverfirst)) * g) + (jt_left_recoverfirst))) -> (((exists fs_h_jt_recoverfirstright. fs_h_jt_recoverfirstright + S (jt_right_recoverfirst) = S ((S (jt_index_recoverfirst)) * c)) /\ exists fs_q_jt_recoverfirstright. b = fs_q_jt_recoverfirstright * S ((S (jt_index_recoverfirst)) * c) + (jt_right_recoverfirst))) -> (exists jt_left_recoverfirstmod jt_right_recoverfirstmod. (jt_left_recoverfirst)+(n)*jt_left_recoverfirstmod=(jt_right_recoverfirst)+(n)*jt_right_recoverfirstmod)) -> (forall jt_index_recoversecond jt_left_recoversecond jt_right_recoversecond. (exists jt_gap_recoversecondindex. jt_gap_recoversecondindex+S (jt_index_recoversecond)=(k)) -> (((exists fs_h_jt_recoversecondleft. fs_h_jt_recoversecondleft + S (jt_left_recoversecond) = S ((S (jt_index_recoversecond)) * s)) /\ exists fs_q_jt_recoversecondleft. h = fs_q_jt_recoversecondleft * S ((S (jt_index_recoversecond)) * s) + (jt_left_recoversecond))) -> (((exists fs_h_jt_recoversecondright. fs_h_jt_recoversecondright + S (jt_right_recoversecond) = S ((S (jt_index_recoversecond)) * e)) /\ exists fs_q_jt_recoversecondright. d = fs_q_jt_recoversecondright * S ((S (jt_index_recoversecond)) * e) + (jt_right_recoversecond))) -> (exists jt_left_recoversecondmod jt_right_recoversecondmod. (jt_left_recoversecond)+(n)*jt_left_recoversecondmod=(jt_right_recoversecond)+(n)*jt_right_recoversecondmod)) -> (forall jt_index_recoveroutput jt_left_recoveroutput jt_right_recoveroutput. (exists jt_gap_recoveroutputindex. jt_gap_recoveroutputindex+S (jt_index_recoveroutput)=(k)) -> (((exists fs_h_jt_recoveroutputleft. fs_h_jt_recoveroutputleft + S (jt_left_recoveroutput) = S ((S (jt_index_recoveroutput)) * g)) /\ exists fs_q_jt_recoveroutputleft. f = fs_q_jt_recoveroutputleft * S ((S (jt_index_recoveroutput)) * g) + (jt_left_recoveroutput))) -> (((exists fs_h_jt_recoveroutputright. fs_h_jt_recoveroutputright + S (jt_right_recoveroutput) = S ((S (jt_index_recoveroutput)) * s)) /\ exists fs_q_jt_recoveroutputright. h = fs_q_jt_recoveroutputright * S ((S (jt_index_recoveroutput)) * s) + (jt_right_recoveroutput))) -> jt_left_recoveroutput=jt_right_recoveroutput) -> (forall jt_index_recoverinputs jt_left_recoverinputs jt_right_recoverinputs. (exists jt_gap_recoverinputsindex. jt_gap_recoverinputsindex+S (jt_index_recoverinputs)=(k)) -> (((exists fs_h_jt_recoverinputsleft. fs_h_jt_recoverinputsleft + S (jt_left_recoverinputs) = S ((S (jt_index_recoverinputs)) * c)) /\ exists fs_q_jt_recoverinputsleft. b = fs_q_jt_recoverinputsleft * S ((S (jt_index_recoverinputs)) * c) + (jt_left_recoverinputs))) -> (((exists fs_h_jt_recoverinputsright. fs_h_jt_recoverinputsright + S (jt_right_recoverinputs) = S ((S (jt_index_recoverinputs)) * e)) /\ exists fs_q_jt_recoverinputsright. d = fs_q_jt_recoverinputsright * S ((S (jt_index_recoverinputs)) * e) + (jt_right_recoverinputs))) -> jt_left_recoverinputs=jt_right_recoverinputs)Constructive proof overview
Generated structural guide
Equal output tuples recover equal canonical input components, not equal raw beta codes.
The unchanged tactic script uses 4 declared prerequisites and contains 61 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
JT0039 jordan_tuple_bounded_congruence_equal JT0030 jordan_tuple_congruence_trans JT000E jordan_tuple_congruence_symm 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 (4)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–15
03Establish hmiddleL16–25
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply jordan tuple congruence trans.
- L16
have hmiddle : JordanTupleCongruence(n,f,g,d,e,k)Definitions: JordanTupleCongruence - L17
specialize jordan_tuple_congruence_trans (n) - L18
specialize jordan_tuple_congruence_trans (f) - L19
specialize jordan_tuple_congruence_trans (g) - L20
specialize jordan_tuple_congruence_trans (h) - L21
specialize jordan_tuple_congruence_trans (s) - L22
specialize jordan_tuple_congruence_trans (d) - L23
specialize jordan_tuple_congruence_trans (e) - L24
specialize jordan_tuple_congruence_trans (k) - L25
apply jordan_tuple_congruence_trans
04Use earlier factsL26–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L26
specialize jordan_tuple_equal_congruence (n) - L27
specialize jordan_tuple_equal_congruence (f) - L28
specialize jordan_tuple_equal_congruence (g) - L29
specialize jordan_tuple_equal_congruence (h) - L30
specialize jordan_tuple_equal_congruence (s) - L31
specialize jordan_tuple_equal_congruence (k) - L32
apply jordan_tuple_equal_congruence - L33
exact heq - L34
exact hright - L35
specialize jordan_tuple_bounded_congruence_equal (n)
05Use earlier factsL36–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L36
specialize jordan_tuple_bounded_congruence_equal (b) - L37
specialize jordan_tuple_bounded_congruence_equal (c) - L38
specialize jordan_tuple_bounded_congruence_equal (d) - L39
specialize jordan_tuple_bounded_congruence_equal (e) - L40
specialize jordan_tuple_bounded_congruence_equal (k) - L41
apply jordan_tuple_bounded_congruence_equal - L42
exact hb - L43
exact hd - L44
specialize jordan_tuple_congruence_trans (n) - L45
specialize jordan_tuple_congruence_trans (b)
06Use earlier factsL46–55
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L46
specialize jordan_tuple_congruence_trans (c) - L47
specialize jordan_tuple_congruence_trans (f) - L48
specialize jordan_tuple_congruence_trans (g) - L49
specialize jordan_tuple_congruence_trans (d) - L50
specialize jordan_tuple_congruence_trans (e) - L51
specialize jordan_tuple_congruence_trans (k) - L52
apply jordan_tuple_congruence_trans - L53
specialize jordan_tuple_congruence_symm (n) - L54
specialize jordan_tuple_congruence_symm (f) - L55
specialize jordan_tuple_congruence_symm (g)
07Use earlier factsL56–61
Original exact command ledger · 61 lines
- 0001
intro n - 0002
intro b - 0003
intro c - 0004
intro d - 0005
intro e - 0006
intro f - 0007
intro g - 0008
intro h - 0009
intro s - 0010
intro k - 0011
intro hb - 0012
intro hd - 0013
intro hleft - 0014
intro hright - 0015
intro heq - 0016
have hmiddle : forall jt_index_recovermiddle jt_left_recovermiddle jt_right_recovermiddle. (exists jt_gap_recovermiddleindex. jt_gap_recovermiddleindex+S (jt_index_recovermiddle)=(k)) -> (((exists fs_h_jt_recovermiddleleft. fs_h_jt_recovermiddleleft + S (jt_left_recovermiddle) = S ((S (jt_index_recovermiddle)) * g)) /\ exists fs_q_jt_recovermiddleleft. f = fs_q_jt_recovermiddleleft * S ((S (jt_index_recovermiddle)) * g) + (jt_left_recovermiddle))) -> (((exists fs_h_jt_recovermiddleright. fs_h_jt_recovermiddleright + S (jt_right_recovermiddle) = S ((S (jt_index_recovermiddle)) * e)) /\ exists fs_q_jt_recovermiddleright. d = fs_q_jt_recovermiddleright * S ((S (jt_index_recovermiddle)) * e) + (jt_right_recovermiddle))) -> (exists jt_left_recovermiddlemod jt_right_recovermiddlemod. (jt_left_recovermiddle)+(n)*jt_left_recovermiddlemod=(jt_right_recovermiddle)+(n)*jt_right_recovermiddlemod) - 0017
specialize jordan_tuple_congruence_trans (n) - 0018
specialize jordan_tuple_congruence_trans (f) - 0019
specialize jordan_tuple_congruence_trans (g) - 0020
specialize jordan_tuple_congruence_trans (h) - 0021
specialize jordan_tuple_congruence_trans (s) - 0022
specialize jordan_tuple_congruence_trans (d) - 0023
specialize jordan_tuple_congruence_trans (e) - 0024
specialize jordan_tuple_congruence_trans (k) - 0025
apply jordan_tuple_congruence_trans - 0026
specialize jordan_tuple_equal_congruence (n) - 0027
specialize jordan_tuple_equal_congruence (f) - 0028
specialize jordan_tuple_equal_congruence (g) - 0029
specialize jordan_tuple_equal_congruence (h) - 0030
specialize jordan_tuple_equal_congruence (s) - 0031
specialize jordan_tuple_equal_congruence (k) - 0032
apply jordan_tuple_equal_congruence - 0033
exact heq - 0034
exact hright - 0035
specialize jordan_tuple_bounded_congruence_equal (n) - 0036
specialize jordan_tuple_bounded_congruence_equal (b) - 0037
specialize jordan_tuple_bounded_congruence_equal (c) - 0038
specialize jordan_tuple_bounded_congruence_equal (d) - 0039
specialize jordan_tuple_bounded_congruence_equal (e) - 0040
specialize jordan_tuple_bounded_congruence_equal (k) - 0041
apply jordan_tuple_bounded_congruence_equal - 0042
exact hb - 0043
exact hd - 0044
specialize jordan_tuple_congruence_trans (n) - 0045
specialize jordan_tuple_congruence_trans (b) - 0046
specialize jordan_tuple_congruence_trans (c) - 0047
specialize jordan_tuple_congruence_trans (f) - 0048
specialize jordan_tuple_congruence_trans (g) - 0049
specialize jordan_tuple_congruence_trans (d) - 0050
specialize jordan_tuple_congruence_trans (e) - 0051
specialize jordan_tuple_congruence_trans (k) - 0052
apply jordan_tuple_congruence_trans - 0053
specialize jordan_tuple_congruence_symm (n) - 0054
specialize jordan_tuple_congruence_symm (f) - 0055
specialize jordan_tuple_congruence_symm (g) - 0056
specialize jordan_tuple_congruence_symm (b) - 0057
specialize jordan_tuple_congruence_symm (c) - 0058
specialize jordan_tuple_congruence_symm (k) - 0059
apply jordan_tuple_congruence_symm - 0060
exact hleft - 0061
exact hmiddle