Exact expanded first-order arithmetic statement
forall b c d e k a z. (forall jt_index_eqextendprefix jt_left_eqextendprefix jt_right_eqextendprefix. (exists jt_gap_eqextendprefixindex. jt_gap_eqextendprefixindex+S (jt_index_eqextendprefix)=(k)) -> (((exists fs_h_jt_eqextendprefixleft. fs_h_jt_eqextendprefixleft + S (jt_left_eqextendprefix) = S ((S (jt_index_eqextendprefix)) * c)) /\ exists fs_q_jt_eqextendprefixleft. b = fs_q_jt_eqextendprefixleft * S ((S (jt_index_eqextendprefix)) * c) + (jt_left_eqextendprefix))) -> (((exists fs_h_jt_eqextendprefixright. fs_h_jt_eqextendprefixright + S (jt_right_eqextendprefix) = S ((S (jt_index_eqextendprefix)) * e)) /\ exists fs_q_jt_eqextendprefixright. d = fs_q_jt_eqextendprefixright * S ((S (jt_index_eqextendprefix)) * e) + (jt_right_eqextendprefix))) -> jt_left_eqextendprefix=jt_right_eqextendprefix) -> (((exists fs_h_jt_eqextendleft. fs_h_jt_eqextendleft + S (a) = S ((S (k)) * c)) /\ exists fs_q_jt_eqextendleft. b = fs_q_jt_eqextendleft * S ((S (k)) * c) + (a))) -> (((exists fs_h_jt_eqextendright. fs_h_jt_eqextendright + S (z) = S ((S (k)) * e)) /\ exists fs_q_jt_eqextendright. d = fs_q_jt_eqextendright * S ((S (k)) * e) + (z))) -> a=z -> (forall jt_index_eqextendtarget jt_left_eqextendtarget jt_right_eqextendtarget. (exists jt_gap_eqextendtargetindex. jt_gap_eqextendtargetindex+S (jt_index_eqextendtarget)=(S k)) -> (((exists fs_h_jt_eqextendtargetleft. fs_h_jt_eqextendtargetleft + S (jt_left_eqextendtarget) = S ((S (jt_index_eqextendtarget)) * c)) /\ exists fs_q_jt_eqextendtargetleft. b = fs_q_jt_eqextendtargetleft * S ((S (jt_index_eqextendtarget)) * c) + (jt_left_eqextendtarget))) -> (((exists fs_h_jt_eqextendtargetright. fs_h_jt_eqextendtargetright + S (jt_right_eqextendtarget) = S ((S (jt_index_eqextendtarget)) * e)) /\ exists fs_q_jt_eqextendtargetright. d = fs_q_jt_eqextendtargetright * S ((S (jt_index_eqextendtarget)) * e) + (jt_right_eqextendtarget))) -> jt_left_eqextendtarget=jt_right_eqextendtarget)Constructive proof overview
Generated structural guide
Extend equal prefixes using two actual equal last entries.
The unchanged tactic script uses 2 declared prerequisites and contains 55 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
finite_lt_succ_eq_or_lt Alpha theorem; checked-use authorized 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–17
03Establish hcL18–22
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
04Separate the logical casesL23–23
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L23
cases hc
05Establish hleftL24–33
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
06Use earlier factsL34–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L34
exact ha
07Establish hrightL35–44
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
08Use earlier factsL45–45
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L45
exact hz
09Calculate and transport equalitiesL46–47
Original exact command ledger · 55 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
intro k - 0006
intro a - 0007
intro z - 0008
intro hp - 0009
intro ha - 0010
intro hz - 0011
intro heq - 0012
intro i - 0013
intro r - 0014
intro s - 0015
intro hi - 0016
intro hr - 0017
intro hs - 0018
have hc : i=k \/ (exists jt_gap_eqextendcases. jt_gap_eqextendcases+S (i)=(k)) - 0019
specialize finite_lt_succ_eq_or_lt (k) - 0020
specialize finite_lt_succ_eq_or_lt (i) - 0021
apply finite_lt_succ_eq_or_lt - 0022
exact hi - 0023
cases hc - 0024
have hleft : r=a - 0025
specialize beta_at_unique (b) - 0026
specialize beta_at_unique (c) - 0027
specialize beta_at_unique (k) - 0028
specialize beta_at_unique (r) - 0029
specialize beta_at_unique (a) - 0030
apply beta_at_unique - 0031
rewrite hc_left at hr - 0032
rewrite hc_left at hr - 0033
exact hr - 0034
exact ha - 0035
have hright : s=z - 0036
specialize beta_at_unique (d) - 0037
specialize beta_at_unique (e) - 0038
specialize beta_at_unique (k) - 0039
specialize beta_at_unique (s) - 0040
specialize beta_at_unique (z) - 0041
apply beta_at_unique - 0042
rewrite hc_left at hs - 0043
rewrite hc_left at hs - 0044
exact hs - 0045
exact hz - 0046
rewrite hleft - 0047
rewrite hright - 0048
exact heq - 0049
specialize hp (i) - 0050
specialize hp (r) - 0051
specialize hp (s) - 0052
apply hp - 0053
exact hc_right - 0054
exact hr - 0055
exact hs