Exact expanded first-order arithmetic statement
forall k A B C D E F G H i j b c d e. (((((exists fs_h_jt_position_leftcode. fs_h_jt_position_leftcode + S (b) = S ((S (i)) * B)) /\ exists fs_q_jt_position_leftcode. A = fs_q_jt_position_leftcode * S ((S (i)) * B) + (b))) /\ (((exists fs_h_jt_position_leftscale. fs_h_jt_position_leftscale + S (c) = S ((S (i)) * D)) /\ exists fs_q_jt_position_leftscale. C = fs_q_jt_position_leftscale * S ((S (i)) * D) + (c))))) -> (((((exists fs_h_jt_position_rightcode. fs_h_jt_position_rightcode + S (d) = S ((S (j)) * F)) /\ exists fs_q_jt_position_rightcode. E = fs_q_jt_position_rightcode * S ((S (j)) * F) + (d))) /\ (((exists fs_h_jt_position_rightscale. fs_h_jt_position_rightscale + S (e) = S ((S (j)) * H)) /\ exists fs_q_jt_position_rightscale. G = fs_q_jt_position_rightscale * S ((S (j)) * H) + (e))))) -> (forall jt_index_position_equal jt_left_position_equal jt_right_position_equal. (exists jt_gap_position_equalindex. jt_gap_position_equalindex+S (jt_index_position_equal)=(k)) -> (((exists fs_h_jt_position_equalleft. fs_h_jt_position_equalleft + S (jt_left_position_equal) = S ((S (jt_index_position_equal)) * c)) /\ exists fs_q_jt_position_equalleft. b = fs_q_jt_position_equalleft * S ((S (jt_index_position_equal)) * c) + (jt_left_position_equal))) -> (((exists fs_h_jt_position_equalright. fs_h_jt_position_equalright + S (jt_right_position_equal) = S ((S (jt_index_position_equal)) * e)) /\ exists fs_q_jt_position_equalright. d = fs_q_jt_position_equalright * S ((S (jt_index_position_equal)) * e) + (jt_right_position_equal))) -> jt_left_position_equal=jt_right_position_equal) -> (forall jt_b_position_result jt_c_position_result jt_d_position_result jt_e_position_result. (((((exists fs_h_jt_position_resultleftcode. fs_h_jt_position_resultleftcode + S (jt_b_position_result) = S ((S (i)) * B)) /\ exists fs_q_jt_position_resultleftcode. A = fs_q_jt_position_resultleftcode * S ((S (i)) * B) + (jt_b_position_result))) /\ (((exists fs_h_jt_position_resultleftscale. fs_h_jt_position_resultleftscale + S (jt_c_position_result) = S ((S (i)) * D)) /\ exists fs_q_jt_position_resultleftscale. C = fs_q_jt_position_resultleftscale * S ((S (i)) * D) + (jt_c_position_result))))) -> (((((exists fs_h_jt_position_resultrightcode. fs_h_jt_position_resultrightcode + S (jt_d_position_result) = S ((S (j)) * F)) /\ exists fs_q_jt_position_resultrightcode. E = fs_q_jt_position_resultrightcode * S ((S (j)) * F) + (jt_d_position_result))) /\ (((exists fs_h_jt_position_resultrightscale. fs_h_jt_position_resultrightscale + S (jt_e_position_result) = S ((S (j)) * H)) /\ exists fs_q_jt_position_resultrightscale. G = fs_q_jt_position_resultrightscale * S ((S (j)) * H) + (jt_e_position_result))))) -> (forall jt_index_position_resultequal jt_left_position_resultequal jt_right_position_resultequal. (exists jt_gap_position_resultequalindex. jt_gap_position_resultequalindex+S (jt_index_position_resultequal)=(k)) -> (((exists fs_h_jt_position_resultequalleft. fs_h_jt_position_resultequalleft + S (jt_left_position_resultequal) = S ((S (jt_index_position_resultequal)) * jt_c_position_result)) /\ exists fs_q_jt_position_resultequalleft. jt_b_position_result = fs_q_jt_position_resultequalleft * S ((S (jt_index_position_resultequal)) * jt_c_position_result) + (jt_left_position_resultequal))) -> (((exists fs_h_jt_position_resultequalright. fs_h_jt_position_resultequalright + S (jt_right_position_resultequal) = S ((S (jt_index_position_resultequal)) * jt_e_position_result)) /\ exists fs_q_jt_position_resultequalright. jt_d_position_result = fs_q_jt_position_resultequalright * S ((S (jt_index_position_resultequal)) * jt_e_position_result) + (jt_right_position_resultequal))) -> jt_left_position_resultequal=jt_right_position_resultequal))Constructive proof overview
Generated structural guide
Actual outer beta functionality transports chosen tuple equality to every decoding at the same two positions.
The unchanged tactic script uses 1 declared prerequisite and contains 71 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
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.
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–24
04Separate the logical casesL25–28
05Establish heq_bL29–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
06Establish heq_cL38–46
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
07Establish heq_dL47–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
08Establish heq_eL56–65
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
09Calculate and transport equalitiesL66–70
10Use earlier factsL71–71
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L71
exact he
Original exact command ledger · 71 lines
- 0001
intro k - 0002
intro A - 0003
intro B - 0004
intro C - 0005
intro D - 0006
intro E - 0007
intro F - 0008
intro G - 0009
intro H - 0010
intro i - 0011
intro j - 0012
intro b - 0013
intro c - 0014
intro d - 0015
intro e - 0016
intro hl - 0017
intro hr - 0018
intro he - 0019
intro a0 - 0020
intro a1 - 0021
intro a2 - 0022
intro a3 - 0023
intro hnewl - 0024
intro hnewr - 0025
cases hl - 0026
cases hr - 0027
cases hnewl - 0028
cases hnewr - 0029
have heq_b : b=a0 - 0030
specialize beta_at_unique (A) - 0031
specialize beta_at_unique (B) - 0032
specialize beta_at_unique (i) - 0033
specialize beta_at_unique (b) - 0034
specialize beta_at_unique (a0) - 0035
apply beta_at_unique - 0036
exact hl_left - 0037
exact hnewl_left - 0038
have heq_c : c=a1 - 0039
specialize beta_at_unique (C) - 0040
specialize beta_at_unique (D) - 0041
specialize beta_at_unique (i) - 0042
specialize beta_at_unique (c) - 0043
specialize beta_at_unique (a1) - 0044
apply beta_at_unique - 0045
exact hl_right - 0046
exact hnewl_right - 0047
have heq_d : d=a2 - 0048
specialize beta_at_unique (E) - 0049
specialize beta_at_unique (F) - 0050
specialize beta_at_unique (j) - 0051
specialize beta_at_unique (d) - 0052
specialize beta_at_unique (a2) - 0053
apply beta_at_unique - 0054
exact hr_left - 0055
exact hnewr_left - 0056
have heq_e : e=a3 - 0057
specialize beta_at_unique (G) - 0058
specialize beta_at_unique (H) - 0059
specialize beta_at_unique (j) - 0060
specialize beta_at_unique (e) - 0061
specialize beta_at_unique (a3) - 0062
apply beta_at_unique - 0063
exact hr_right - 0064
exact hnewr_right - 0065
rewrite heq_b at he - 0066
rewrite heq_c at he - 0067
rewrite heq_c at he - 0068
rewrite heq_d at he - 0069
rewrite heq_e at he - 0070
rewrite heq_e at he - 0071
exact he