Exact expanded first-order arithmetic statement
forall p b c B C n r. (((((exists ff_h_pft_trace_recode_sourcestart. ff_h_pft_trace_recode_sourcestart + S (0) = S ((S (0)) * c)) /\ exists ff_q_pft_trace_recode_sourcestart. b = ff_q_pft_trace_recode_sourcestart * S ((S (0)) * c) + (0))) /\ (((((exists ff_h_pft_trace_recode_sourceterminal. ff_h_pft_trace_recode_sourceterminal + S (r) = S ((S (n)) * c)) /\ exists ff_q_pft_trace_recode_sourceterminal. b = ff_q_pft_trace_recode_sourceterminal * S ((S (n)) * c) + (r))) /\ ((forall pff_trace_index_trace_recode_sourcesteps. (exists pfa_gap_trace_recode_sourcestepsindex. pfa_gap_trace_recode_sourcestepsindex + S (pff_trace_index_trace_recode_sourcesteps) = (n)) -> exists pff_trace_before_trace_recode_sourcesteps pff_trace_after_trace_recode_sourcesteps. ((((exists ff_h_pft_trace_recode_sourcestepsbefore. ff_h_pft_trace_recode_sourcestepsbefore + S (pff_trace_before_trace_recode_sourcesteps) = S ((S (pff_trace_index_trace_recode_sourcesteps)) * c)) /\ exists ff_q_pft_trace_recode_sourcestepsbefore. b = ff_q_pft_trace_recode_sourcestepsbefore * S ((S (pff_trace_index_trace_recode_sourcesteps)) * c) + (pff_trace_before_trace_recode_sourcesteps))) /\ (((((exists ff_h_pft_trace_recode_sourcestepsafter. ff_h_pft_trace_recode_sourcestepsafter + S (pff_trace_after_trace_recode_sourcesteps) = S ((S (S (pff_trace_index_trace_recode_sourcesteps))) * c)) /\ exists ff_q_pft_trace_recode_sourcestepsafter. b = ff_q_pft_trace_recode_sourcestepsafter * S ((S (S (pff_trace_index_trace_recode_sourcesteps))) * c) + (pff_trace_after_trace_recode_sourcesteps))) /\ ((((exists pfa_gap_trace_recode_sourcestepsadditionleft. pfa_gap_trace_recode_sourcestepsadditionleft + S (pff_trace_before_trace_recode_sourcesteps) = (p)) /\ (((exists pfa_gap_trace_recode_sourcestepsadditionright. pfa_gap_trace_recode_sourcestepsadditionright + S (1) = (p)) /\ ((((exists pfa_gap_trace_recode_sourcestepsadditionresultbound. pfa_gap_trace_recode_sourcestepsadditionresultbound + S (pff_trace_after_trace_recode_sourcesteps) = (p)) /\ ((exists pfa_offset_left_trace_recode_sourcestepsadditionresultcongruence pfa_offset_right_trace_recode_sourcestepsadditionresultcongruence. ((pff_trace_before_trace_recode_sourcesteps) + (1)) + (p) * pfa_offset_left_trace_recode_sourcestepsadditionresultcongruence = (pff_trace_after_trace_recode_sourcesteps) + (p) * pfa_offset_right_trace_recode_sourcestepsadditionresultcongruence))))))))))))))))))) -> (forall i v. (exists pfa_gap_trace_recode_bound. pfa_gap_trace_recode_bound + S (i) = (S n)) -> (((exists ff_h_pft_trace_recode_old. ff_h_pft_trace_recode_old + S (v) = S ((S (i)) * c)) /\ exists ff_q_pft_trace_recode_old. b = ff_q_pft_trace_recode_old * S ((S (i)) * c) + (v))) -> (((exists ff_h_pft_trace_recode_new. ff_h_pft_trace_recode_new + S (v) = S ((S (i)) * C)) /\ exists ff_q_pft_trace_recode_new. B = ff_q_pft_trace_recode_new * S ((S (i)) * C) + (v)))) -> (((((exists ff_h_pft_trace_recode_targetstart. ff_h_pft_trace_recode_targetstart + S (0) = S ((S (0)) * C)) /\ exists ff_q_pft_trace_recode_targetstart. B = ff_q_pft_trace_recode_targetstart * S ((S (0)) * C) + (0))) /\ (((((exists ff_h_pft_trace_recode_targetterminal. ff_h_pft_trace_recode_targetterminal + S (r) = S ((S (n)) * C)) /\ exists ff_q_pft_trace_recode_targetterminal. B = ff_q_pft_trace_recode_targetterminal * S ((S (n)) * C) + (r))) /\ ((forall pff_trace_index_trace_recode_targetsteps. (exists pfa_gap_trace_recode_targetstepsindex. pfa_gap_trace_recode_targetstepsindex + S (pff_trace_index_trace_recode_targetsteps) = (n)) -> exists pff_trace_before_trace_recode_targetsteps pff_trace_after_trace_recode_targetsteps. ((((exists ff_h_pft_trace_recode_targetstepsbefore. ff_h_pft_trace_recode_targetstepsbefore + S (pff_trace_before_trace_recode_targetsteps) = S ((S (pff_trace_index_trace_recode_targetsteps)) * C)) /\ exists ff_q_pft_trace_recode_targetstepsbefore. B = ff_q_pft_trace_recode_targetstepsbefore * S ((S (pff_trace_index_trace_recode_targetsteps)) * C) + (pff_trace_before_trace_recode_targetsteps))) /\ (((((exists ff_h_pft_trace_recode_targetstepsafter. ff_h_pft_trace_recode_targetstepsafter + S (pff_trace_after_trace_recode_targetsteps) = S ((S (S (pff_trace_index_trace_recode_targetsteps))) * C)) /\ exists ff_q_pft_trace_recode_targetstepsafter. B = ff_q_pft_trace_recode_targetstepsafter * S ((S (S (pff_trace_index_trace_recode_targetsteps))) * C) + (pff_trace_after_trace_recode_targetsteps))) /\ ((((exists pfa_gap_trace_recode_targetstepsadditionleft. pfa_gap_trace_recode_targetstepsadditionleft + S (pff_trace_before_trace_recode_targetsteps) = (p)) /\ (((exists pfa_gap_trace_recode_targetstepsadditionright. pfa_gap_trace_recode_targetstepsadditionright + S (1) = (p)) /\ ((((exists pfa_gap_trace_recode_targetstepsadditionresultbound. pfa_gap_trace_recode_targetstepsadditionresultbound + S (pff_trace_after_trace_recode_targetsteps) = (p)) /\ ((exists pfa_offset_left_trace_recode_targetstepsadditionresultcongruence pfa_offset_right_trace_recode_targetstepsadditionresultcongruence. ((pff_trace_before_trace_recode_targetsteps) + (1)) + (p) * pfa_offset_left_trace_recode_targetstepsadditionresultcongruence = (pff_trace_after_trace_recode_targetsteps) + (p) * pfa_offset_right_trace_recode_targetstepsadditionresultcongruence)))))))))))))))))))Constructive proof overview
Generated structural guide
A genuine recoding preserving every one of the n+1 trace entries preserves all actual unit-addition steps.
The unchanged tactic script uses 3 declared prerequisites and contains 56 exact native proof lines.
Public research checkpoint: original HA and independently compiled Lean verified; not Alpha-enrolled, no Alpha checked-use authority; not Stable
Proof neighborhood
Direct dependencies
zero_add Alpha theorem; checked-use authorized le_succ Alpha theorem; checked-use authorized succ_le_succ 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. The literal dependency-closed bundle is checked by original HA and the independently compiled Lean verifier. Public delivery grants no Alpha checked-use authority or 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–9
02Separate the logical casesL10–12
03Use earlier factsL13–15
04Construct an explicit witnessL16–16
Supply the displayed value, then prove that it has the required property.
- L16
exists n
05Calculate and transport equalitiesL17–17
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L17
simp
06Use earlier factsL18–18
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L18
exact htrace_left
07Separate the logical casesL19–19
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L19
split
08Use earlier factsL20–22
09Construct an explicit witnessL23–23
Supply the displayed value, then prove that it has the required property.
- L23
exists 0
10Use earlier factsL24–25
11Fix variables and assumptionsL26–27
12Establish hsL28–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply htrace right right.
13Separate the logical casesL32–35
14Construct an explicit witnessL36–37
15Separate the logical casesL38–38
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L38
split
16Use earlier factsL39–46
17Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
split
18Use earlier factsL48–56
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 56 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro B - 0005
intro C - 0006
intro n - 0007
intro r - 0008
intro htrace - 0009
intro hpreserve - 0010
cases htrace - 0011
cases htrace_right - 0012
split - 0013
specialize hpreserve (0) - 0014
specialize hpreserve (0) - 0015
apply hpreserve - 0016
exists n - 0017
simp - 0018
exact htrace_left - 0019
split - 0020
specialize hpreserve (n) - 0021
specialize hpreserve (r) - 0022
apply hpreserve - 0023
exists 0 - 0024
apply zero_add - 0025
exact htrace_right_left - 0026
intro i - 0027
intro hi - 0028
have hs : exists u v. (((((exists ff_h_pft_trace_recode_before. ff_h_pft_trace_recode_before + S (u) = S ((S (i)) * c)) /\ exists ff_q_pft_trace_recode_before. b = ff_q_pft_trace_recode_before * S ((S (i)) * c) + (u))) /\ (((((exists ff_h_pft_trace_recode_after. ff_h_pft_trace_recode_after + S (v) = S ((S (S i)) * c)) /\ exists ff_q_pft_trace_recode_after. b = ff_q_pft_trace_recode_after * S ((S (S i)) * c) + (v))) /\ ((((exists pfa_gap_trace_recode_addleft. pfa_gap_trace_recode_addleft + S (u) = (p)) /\ (((exists pfa_gap_trace_recode_addright. pfa_gap_trace_recode_addright + S (1) = (p)) /\ ((((exists pfa_gap_trace_recode_addresultbound. pfa_gap_trace_recode_addresultbound + S (v) = (p)) /\ ((exists pfa_offset_left_trace_recode_addresultcongruence pfa_offset_right_trace_recode_addresultcongruence. ((u) + (1)) + (p) * pfa_offset_left_trace_recode_addresultcongruence = (v) + (p) * pfa_offset_right_trace_recode_addresultcongruence)))))))))))))) - 0029
specialize htrace_right_right (i) - 0030
apply htrace_right_right - 0031
exact hi - 0032
cases hs - 0033
cases hs_witness - 0034
cases hs_witness_witness - 0035
cases hs_witness_witness_right - 0036
exists x - 0037
exists x1 - 0038
split - 0039
specialize hpreserve (i) - 0040
specialize hpreserve (x) - 0041
apply hpreserve - 0042
specialize le_succ (S i) - 0043
specialize le_succ (n) - 0044
apply le_succ - 0045
exact hi - 0046
exact hs_witness_witness_left - 0047
split - 0048
specialize hpreserve (S i) - 0049
specialize hpreserve (x1) - 0050
apply hpreserve - 0051
specialize succ_le_succ (S i) - 0052
specialize succ_le_succ (n) - 0053
apply succ_le_succ - 0054
exact hi - 0055
exact hs_witness_witness_right_left - 0056
exact hs_witness_witness_right_right