Exact expanded first-order arithmetic statement
forall k A B C D E F G H Z W q v j. (forall jt_index_append_old. (exists jt_gap_append_oldindex. jt_gap_append_oldindex+S (jt_index_append_old)=(q)) -> exists jt_image_append_old. ((((exists fs_h_jt_append_oldat. fs_h_jt_append_oldat + S (jt_image_append_old) = S ((S (jt_index_append_old)) * W)) /\ exists fs_q_jt_append_oldat. Z = fs_q_jt_append_oldat * S ((S (jt_index_append_old)) * W) + (jt_image_append_old))) /\ (((exists jt_gap_append_oldbound. jt_gap_append_oldbound+S (jt_image_append_old)=(v)) /\ (forall jt_b_append_oldmatch jt_c_append_oldmatch jt_d_append_oldmatch jt_e_append_oldmatch. (((((exists fs_h_jt_append_oldmatchleftcode. fs_h_jt_append_oldmatchleftcode + S (jt_b_append_oldmatch) = S ((S (jt_index_append_old)) * B)) /\ exists fs_q_jt_append_oldmatchleftcode. A = fs_q_jt_append_oldmatchleftcode * S ((S (jt_index_append_old)) * B) + (jt_b_append_oldmatch))) /\ (((exists fs_h_jt_append_oldmatchleftscale. fs_h_jt_append_oldmatchleftscale + S (jt_c_append_oldmatch) = S ((S (jt_index_append_old)) * D)) /\ exists fs_q_jt_append_oldmatchleftscale. C = fs_q_jt_append_oldmatchleftscale * S ((S (jt_index_append_old)) * D) + (jt_c_append_oldmatch))))) -> (((((exists fs_h_jt_append_oldmatchrightcode. fs_h_jt_append_oldmatchrightcode + S (jt_d_append_oldmatch) = S ((S (jt_image_append_old)) * F)) /\ exists fs_q_jt_append_oldmatchrightcode. E = fs_q_jt_append_oldmatchrightcode * S ((S (jt_image_append_old)) * F) + (jt_d_append_oldmatch))) /\ (((exists fs_h_jt_append_oldmatchrightscale. fs_h_jt_append_oldmatchrightscale + S (jt_e_append_oldmatch) = S ((S (jt_image_append_old)) * H)) /\ exists fs_q_jt_append_oldmatchrightscale. G = fs_q_jt_append_oldmatchrightscale * S ((S (jt_image_append_old)) * H) + (jt_e_append_oldmatch))))) -> (forall jt_index_append_oldmatchequal jt_left_append_oldmatchequal jt_right_append_oldmatchequal. (exists jt_gap_append_oldmatchequalindex. jt_gap_append_oldmatchequalindex+S (jt_index_append_oldmatchequal)=(k)) -> (((exists fs_h_jt_append_oldmatchequalleft. fs_h_jt_append_oldmatchequalleft + S (jt_left_append_oldmatchequal) = S ((S (jt_index_append_oldmatchequal)) * jt_c_append_oldmatch)) /\ exists fs_q_jt_append_oldmatchequalleft. jt_b_append_oldmatch = fs_q_jt_append_oldmatchequalleft * S ((S (jt_index_append_oldmatchequal)) * jt_c_append_oldmatch) + (jt_left_append_oldmatchequal))) -> (((exists fs_h_jt_append_oldmatchequalright. fs_h_jt_append_oldmatchequalright + S (jt_right_append_oldmatchequal) = S ((S (jt_index_append_oldmatchequal)) * jt_e_append_oldmatch)) /\ exists fs_q_jt_append_oldmatchequalright. jt_d_append_oldmatch = fs_q_jt_append_oldmatchequalright * S ((S (jt_index_append_oldmatchequal)) * jt_e_append_oldmatch) + (jt_right_append_oldmatchequal))) -> jt_left_append_oldmatchequal=jt_right_append_oldmatchequal)))))) -> (exists jt_gap_append_bound. jt_gap_append_bound+S (j)=(v)) -> (forall jt_b_append_match jt_c_append_match jt_d_append_match jt_e_append_match. (((((exists fs_h_jt_append_matchleftcode. fs_h_jt_append_matchleftcode + S (jt_b_append_match) = S ((S (q)) * B)) /\ exists fs_q_jt_append_matchleftcode. A = fs_q_jt_append_matchleftcode * S ((S (q)) * B) + (jt_b_append_match))) /\ (((exists fs_h_jt_append_matchleftscale. fs_h_jt_append_matchleftscale + S (jt_c_append_match) = S ((S (q)) * D)) /\ exists fs_q_jt_append_matchleftscale. C = fs_q_jt_append_matchleftscale * S ((S (q)) * D) + (jt_c_append_match))))) -> (((((exists fs_h_jt_append_matchrightcode. fs_h_jt_append_matchrightcode + S (jt_d_append_match) = S ((S (j)) * F)) /\ exists fs_q_jt_append_matchrightcode. E = fs_q_jt_append_matchrightcode * S ((S (j)) * F) + (jt_d_append_match))) /\ (((exists fs_h_jt_append_matchrightscale. fs_h_jt_append_matchrightscale + S (jt_e_append_match) = S ((S (j)) * H)) /\ exists fs_q_jt_append_matchrightscale. G = fs_q_jt_append_matchrightscale * S ((S (j)) * H) + (jt_e_append_match))))) -> (forall jt_index_append_matchequal jt_left_append_matchequal jt_right_append_matchequal. (exists jt_gap_append_matchequalindex. jt_gap_append_matchequalindex+S (jt_index_append_matchequal)=(k)) -> (((exists fs_h_jt_append_matchequalleft. fs_h_jt_append_matchequalleft + S (jt_left_append_matchequal) = S ((S (jt_index_append_matchequal)) * jt_c_append_match)) /\ exists fs_q_jt_append_matchequalleft. jt_b_append_match = fs_q_jt_append_matchequalleft * S ((S (jt_index_append_matchequal)) * jt_c_append_match) + (jt_left_append_matchequal))) -> (((exists fs_h_jt_append_matchequalright. fs_h_jt_append_matchequalright + S (jt_right_append_matchequal) = S ((S (jt_index_append_matchequal)) * jt_e_append_match)) /\ exists fs_q_jt_append_matchequalright. jt_d_append_match = fs_q_jt_append_matchequalright * S ((S (jt_index_append_matchequal)) * jt_e_append_match) + (jt_right_append_matchequal))) -> jt_left_append_matchequal=jt_right_append_matchequal)) -> (exists P Q. forall jt_index_append_result. (exists jt_gap_append_resultindex. jt_gap_append_resultindex+S (jt_index_append_result)=(S q)) -> exists jt_image_append_result. ((((exists fs_h_jt_append_resultat. fs_h_jt_append_resultat + S (jt_image_append_result) = S ((S (jt_index_append_result)) * Q)) /\ exists fs_q_jt_append_resultat. P = fs_q_jt_append_resultat * S ((S (jt_index_append_result)) * Q) + (jt_image_append_result))) /\ (((exists jt_gap_append_resultbound. jt_gap_append_resultbound+S (jt_image_append_result)=(v)) /\ (forall jt_b_append_resultmatch jt_c_append_resultmatch jt_d_append_resultmatch jt_e_append_resultmatch. (((((exists fs_h_jt_append_resultmatchleftcode. fs_h_jt_append_resultmatchleftcode + S (jt_b_append_resultmatch) = S ((S (jt_index_append_result)) * B)) /\ exists fs_q_jt_append_resultmatchleftcode. A = fs_q_jt_append_resultmatchleftcode * S ((S (jt_index_append_result)) * B) + (jt_b_append_resultmatch))) /\ (((exists fs_h_jt_append_resultmatchleftscale. fs_h_jt_append_resultmatchleftscale + S (jt_c_append_resultmatch) = S ((S (jt_index_append_result)) * D)) /\ exists fs_q_jt_append_resultmatchleftscale. C = fs_q_jt_append_resultmatchleftscale * S ((S (jt_index_append_result)) * D) + (jt_c_append_resultmatch))))) -> (((((exists fs_h_jt_append_resultmatchrightcode. fs_h_jt_append_resultmatchrightcode + S (jt_d_append_resultmatch) = S ((S (jt_image_append_result)) * F)) /\ exists fs_q_jt_append_resultmatchrightcode. E = fs_q_jt_append_resultmatchrightcode * S ((S (jt_image_append_result)) * F) + (jt_d_append_resultmatch))) /\ (((exists fs_h_jt_append_resultmatchrightscale. fs_h_jt_append_resultmatchrightscale + S (jt_e_append_resultmatch) = S ((S (jt_image_append_result)) * H)) /\ exists fs_q_jt_append_resultmatchrightscale. G = fs_q_jt_append_resultmatchrightscale * S ((S (jt_image_append_result)) * H) + (jt_e_append_resultmatch))))) -> (forall jt_index_append_resultmatchequal jt_left_append_resultmatchequal jt_right_append_resultmatchequal. (exists jt_gap_append_resultmatchequalindex. jt_gap_append_resultmatchequalindex+S (jt_index_append_resultmatchequal)=(k)) -> (((exists fs_h_jt_append_resultmatchequalleft. fs_h_jt_append_resultmatchequalleft + S (jt_left_append_resultmatchequal) = S ((S (jt_index_append_resultmatchequal)) * jt_c_append_resultmatch)) /\ exists fs_q_jt_append_resultmatchequalleft. jt_b_append_resultmatch = fs_q_jt_append_resultmatchequalleft * S ((S (jt_index_append_resultmatchequal)) * jt_c_append_resultmatch) + (jt_left_append_resultmatchequal))) -> (((exists fs_h_jt_append_resultmatchequalright. fs_h_jt_append_resultmatchequalright + S (jt_right_append_resultmatchequal) = S ((S (jt_index_append_resultmatchequal)) * jt_e_append_resultmatch)) /\ exists fs_q_jt_append_resultmatchequalright. jt_d_append_resultmatch = fs_q_jt_append_resultmatchequalright * S ((S (jt_index_append_resultmatchequal)) * jt_e_append_resultmatch) + (jt_right_append_resultmatchequal))) -> jt_left_append_resultmatchequal=jt_right_append_resultmatchequal))))))Constructive proof overview
Generated structural guide
Append one genuine matched target index and preserve all previous mapped positions by beta extension.
The unchanged tactic script uses 2 declared prerequisites and contains 65 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_prefix_extend Alpha theorem; checked-use authorized finite_lt_succ_eq_or_lt 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–17
03Establish hextL18–23
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix extend.
04Separate the logical casesL24–26
05Construct an explicit witnessL27–28
06Fix variables and assumptionsL29–30
07Establish hcL31–35
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
08Separate the logical casesL36–36
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L36
cases hc
09Construct an explicit witnessL37–37
Supply the displayed value, then prove that it has the required property.
- L37
exists j
10Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
split
11Calculate and transport equalitiesL39–40
12Use earlier factsL41–41
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L41
exact hext_witness_witness_left
13Separate the logical casesL42–42
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L42
split
14Use earlier factsL43–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L43
exact hj
15Calculate and transport equalitiesL44–47
16Use earlier factsL48–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
exact hmatch
17Establish hvL49–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hm.
18Separate the logical casesL53–55
19Construct an explicit witnessL56–56
Supply the displayed value, then prove that it has the required property.
- L56
exists x2
20Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
split
21Use earlier factsL58–62
22Separate the logical casesL63–63
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L63
split
Original exact command ledger · 65 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 Z - 0011
intro W - 0012
intro q - 0013
intro v - 0014
intro j - 0015
intro hm - 0016
intro hj - 0017
intro hmatch - 0018
have hext : exists P Q. ((((exists fs_h_jt_append_image. fs_h_jt_append_image + S (j) = S ((S (q)) * Q)) /\ exists fs_q_jt_append_image. P = fs_q_jt_append_image * S ((S (q)) * Q) + (j))) /\ (forall jt_index_append_preserves jt_value_append_preserves. (exists jt_gap_append_preservesindex. jt_gap_append_preservesindex+S (jt_index_append_preserves)=(q)) -> (((exists fs_h_jt_append_preservesold. fs_h_jt_append_preservesold + S (jt_value_append_preserves) = S ((S (jt_index_append_preserves)) * W)) /\ exists fs_q_jt_append_preservesold. Z = fs_q_jt_append_preservesold * S ((S (jt_index_append_preserves)) * W) + (jt_value_append_preserves))) -> (((exists fs_h_jt_append_preservesnew. fs_h_jt_append_preservesnew + S (jt_value_append_preserves) = S ((S (jt_index_append_preserves)) * Q)) /\ exists fs_q_jt_append_preservesnew. P = fs_q_jt_append_preservesnew * S ((S (jt_index_append_preserves)) * Q) + (jt_value_append_preserves))))) - 0019
specialize beta_prefix_extend (q) - 0020
specialize beta_prefix_extend (Z) - 0021
specialize beta_prefix_extend (W) - 0022
specialize beta_prefix_extend (j) - 0023
apply beta_prefix_extend - 0024
cases hext - 0025
cases hext_witness - 0026
cases hext_witness_witness - 0027
exists x - 0028
exists x1 - 0029
intro i - 0030
intro hi - 0031
have hc : i=q \/ (exists jt_gap_append_old_index. jt_gap_append_old_index+S (i)=(q)) - 0032
specialize finite_lt_succ_eq_or_lt (q) - 0033
specialize finite_lt_succ_eq_or_lt (i) - 0034
apply finite_lt_succ_eq_or_lt - 0035
exact hi - 0036
cases hc - 0037
exists j - 0038
split - 0039
rewrite hc_left - 0040
rewrite hc_left - 0041
exact hext_witness_witness_left - 0042
split - 0043
exact hj - 0044
rewrite hc_left - 0045
rewrite hc_left - 0046
rewrite hc_left - 0047
rewrite hc_left - 0048
exact hmatch - 0049
have hv : exists r. ((((exists fs_h_jt_append_previousat. fs_h_jt_append_previousat + S (r) = S ((S (i)) * W)) /\ exists fs_q_jt_append_previousat. Z = fs_q_jt_append_previousat * S ((S (i)) * W) + (r))) /\ (((exists jt_gap_append_previousbound. jt_gap_append_previousbound+S (r)=(v)) /\ (forall jt_b_append_previousmatch jt_c_append_previousmatch jt_d_append_previousmatch jt_e_append_previousmatch. (((((exists fs_h_jt_append_previousmatchleftcode. fs_h_jt_append_previousmatchleftcode + S (jt_b_append_previousmatch) = S ((S (i)) * B)) /\ exists fs_q_jt_append_previousmatchleftcode. A = fs_q_jt_append_previousmatchleftcode * S ((S (i)) * B) + (jt_b_append_previousmatch))) /\ (((exists fs_h_jt_append_previousmatchleftscale. fs_h_jt_append_previousmatchleftscale + S (jt_c_append_previousmatch) = S ((S (i)) * D)) /\ exists fs_q_jt_append_previousmatchleftscale. C = fs_q_jt_append_previousmatchleftscale * S ((S (i)) * D) + (jt_c_append_previousmatch))))) -> (((((exists fs_h_jt_append_previousmatchrightcode. fs_h_jt_append_previousmatchrightcode + S (jt_d_append_previousmatch) = S ((S (r)) * F)) /\ exists fs_q_jt_append_previousmatchrightcode. E = fs_q_jt_append_previousmatchrightcode * S ((S (r)) * F) + (jt_d_append_previousmatch))) /\ (((exists fs_h_jt_append_previousmatchrightscale. fs_h_jt_append_previousmatchrightscale + S (jt_e_append_previousmatch) = S ((S (r)) * H)) /\ exists fs_q_jt_append_previousmatchrightscale. G = fs_q_jt_append_previousmatchrightscale * S ((S (r)) * H) + (jt_e_append_previousmatch))))) -> (forall jt_index_append_previousmatchequal jt_left_append_previousmatchequal jt_right_append_previousmatchequal. (exists jt_gap_append_previousmatchequalindex. jt_gap_append_previousmatchequalindex+S (jt_index_append_previousmatchequal)=(k)) -> (((exists fs_h_jt_append_previousmatchequalleft. fs_h_jt_append_previousmatchequalleft + S (jt_left_append_previousmatchequal) = S ((S (jt_index_append_previousmatchequal)) * jt_c_append_previousmatch)) /\ exists fs_q_jt_append_previousmatchequalleft. jt_b_append_previousmatch = fs_q_jt_append_previousmatchequalleft * S ((S (jt_index_append_previousmatchequal)) * jt_c_append_previousmatch) + (jt_left_append_previousmatchequal))) -> (((exists fs_h_jt_append_previousmatchequalright. fs_h_jt_append_previousmatchequalright + S (jt_right_append_previousmatchequal) = S ((S (jt_index_append_previousmatchequal)) * jt_e_append_previousmatch)) /\ exists fs_q_jt_append_previousmatchequalright. jt_d_append_previousmatch = fs_q_jt_append_previousmatchequalright * S ((S (jt_index_append_previousmatchequal)) * jt_e_append_previousmatch) + (jt_right_append_previousmatchequal))) -> jt_left_append_previousmatchequal=jt_right_append_previousmatchequal))))) - 0050
specialize hm (i) - 0051
apply hm - 0052
exact hc_right - 0053
cases hv - 0054
cases hv_witness - 0055
cases hv_witness_right - 0056
exists x2 - 0057
split - 0058
specialize hext_witness_witness_right (i) - 0059
specialize hext_witness_witness_right (x2) - 0060
apply hext_witness_witness_right - 0061
exact hc_right - 0062
exact hv_witness_left - 0063
split - 0064
exact hv_witness_right_left - 0065
exact hv_witness_right_right