Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Exact expanded first-order arithmetic statement
forall b c d e u v U V l p. (forall pfp_i_append_old pfp_j_append_old pfp_a_append_old. (exists pfp_gap_append_oldbound. pfp_gap_append_oldbound + S (pfp_i_append_old) = (l)) -> (((exists ff_h_pfp_append_oldmap. ff_h_pfp_append_oldmap + S (pfp_j_append_old) = S ((S (pfp_i_append_old)) * v)) /\ exists ff_q_pfp_append_oldmap. u = ff_q_pfp_append_oldmap * S ((S (pfp_i_append_old)) * v) + (pfp_j_append_old))) -> (((exists ff_h_pfp_append_oldsource. ff_h_pfp_append_oldsource + S (pfp_a_append_old) = S ((S (pfp_i_append_old)) * c)) /\ exists ff_q_pfp_append_oldsource. b = ff_q_pfp_append_oldsource * S ((S (pfp_i_append_old)) * c) + (pfp_a_append_old))) -> (((exists ff_h_pfp_append_oldtarget. ff_h_pfp_append_oldtarget + S (pfp_a_append_old) = S ((S (pfp_j_append_old)) * e)) /\ exists ff_q_pfp_append_oldtarget. d = ff_q_pfp_append_oldtarget * S ((S (pfp_j_append_old)) * e) + (pfp_a_append_old)))) -> (((((exists ff_h_pfp_append_extensionlast. ff_h_pfp_append_extensionlast + S (l) = S ((S (l)) * V)) /\ exists ff_q_pfp_append_extensionlast. U = ff_q_pfp_append_extensionlast * S ((S (l)) * V) + (l))) /\ (forall pfp_i_append_extensionprefix pfp_a_append_extensionprefix. (exists pfp_gap_append_extensionprefixbound. pfp_gap_append_extensionprefixbound + S (pfp_i_append_extensionprefix) = (l)) -> (((exists ff_h_pfp_append_extensionprefixold. ff_h_pfp_append_extensionprefixold + S (pfp_a_append_extensionprefix) = S ((S (pfp_i_append_extensionprefix)) * v)) /\ exists ff_q_pfp_append_extensionprefixold. u = ff_q_pfp_append_extensionprefixold * S ((S (pfp_i_append_extensionprefix)) * v) + (pfp_a_append_extensionprefix))) -> (((exists ff_h_pfp_append_extensionprefixnew. ff_h_pfp_append_extensionprefixnew + S (pfp_a_append_extensionprefix) = S ((S (pfp_i_append_extensionprefix)) * V)) /\ exists ff_q_pfp_append_extensionprefixnew. U = ff_q_pfp_append_extensionprefixnew * S ((S (pfp_i_append_extensionprefix)) * V) + (pfp_a_append_extensionprefix)))))) -> (((exists ff_h_pfp_append_left. ff_h_pfp_append_left + S (p) = S ((S (l)) * c)) /\ exists ff_q_pfp_append_left. b = ff_q_pfp_append_left * S ((S (l)) * c) + (p))) -> (((exists ff_h_pfp_append_right. ff_h_pfp_append_right + S (p) = S ((S (l)) * e)) /\ exists ff_q_pfp_append_right. d = ff_q_pfp_append_right * S ((S (l)) * e) + (p))) -> (forall pfp_i_append_new pfp_j_append_new pfp_a_append_new. (exists pfp_gap_append_newbound. pfp_gap_append_newbound + S (pfp_i_append_new) = (S l)) -> (((exists ff_h_pfp_append_newmap. ff_h_pfp_append_newmap + S (pfp_j_append_new) = S ((S (pfp_i_append_new)) * V)) /\ exists ff_q_pfp_append_newmap. U = ff_q_pfp_append_newmap * S ((S (pfp_i_append_new)) * V) + (pfp_j_append_new))) -> (((exists ff_h_pfp_append_newsource. ff_h_pfp_append_newsource + S (pfp_a_append_new) = S ((S (pfp_i_append_new)) * c)) /\ exists ff_q_pfp_append_newsource. b = ff_q_pfp_append_newsource * S ((S (pfp_i_append_new)) * c) + (pfp_a_append_new))) -> (((exists ff_h_pfp_append_newtarget. ff_h_pfp_append_newtarget + S (pfp_a_append_new) = S ((S (pfp_j_append_new)) * e)) /\ exists ff_q_pfp_append_newtarget. d = ff_q_pfp_append_newtarget * S ((S (pfp_j_append_new)) * e) + (pfp_a_append_new))))Constructive proof overview
Generated structural guide
A matching map stays matching when the same actual last factor is appended to both lists and the fresh last index is appended to the map.
The unchanged tactic script uses 3 declared prerequisites and contains 73 exact native proof lines.
Alpha v34 checked-use · first admitted v28 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
finite_lt_succ_eq_or_lt Stable theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorized AF0006 factor_permutation_prefix_reflectDirect 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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–14
03Separate the logical casesL15–15
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L15
cases hext
04Fix variables and assumptionsL16–21
05Establish hcaseL22–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply finite lt succ eq or lt.
06Separate the logical casesL27–27
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L27
cases hcase
07Establish hjL28–37
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
08Use earlier factsL38–38
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
exact hext_left
09Establish haL39–48
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
10Use earlier factsL49–49
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L49
exact hleft
11Calculate and transport equalitiesL50–53
12Use earlier factsL54–54
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L54
exact hright
13Establish holdL55–64
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply factor permutation prefix reflect.
- L55
have hold : ((exists ff_h_pfp_append_original_map. ff_h_pfp_append_original_map + S (j) = S ((S (i)) * v)) /\ exists ff_q_pfp_append_original_map. u = ff_q_pfp_append_original_map * S ((S (i)) * v) + (j)) - L56
specialize factor_permutation_prefix_reflect (u) - L57
specialize factor_permutation_prefix_reflect (v) - L58
specialize factor_permutation_prefix_reflect (U) - L59
specialize factor_permutation_prefix_reflect (V) - L60
specialize factor_permutation_prefix_reflect (l) - L61
specialize factor_permutation_prefix_reflect (i) - L62
specialize factor_permutation_prefix_reflect (j) - L63
apply factor_permutation_prefix_reflect - L64
exact hext_right
Original exact command ledger · 73 lines
- 0001
intro b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
intro u - 0006
intro v - 0007
intro U - 0008
intro V - 0009
intro l - 0010
intro p - 0011
intro hm - 0012
intro hext - 0013
intro hleft - 0014
intro hright - 0015
cases hext - 0016
intro i - 0017
intro j - 0018
intro a - 0019
intro hi - 0020
intro hmap - 0021
intro hsource - 0022
have hcase : i = l \/ (exists pfp_gap_append_case. pfp_gap_append_case + S (i) = (l)) - 0023
specialize finite_lt_succ_eq_or_lt (l) - 0024
specialize finite_lt_succ_eq_or_lt (i) - 0025
apply finite_lt_succ_eq_or_lt - 0026
exact hi - 0027
cases hcase - 0028
have hj : j = l - 0029
specialize beta_at_unique (U) - 0030
specialize beta_at_unique (V) - 0031
specialize beta_at_unique (l) - 0032
specialize beta_at_unique (j) - 0033
specialize beta_at_unique (l) - 0034
apply beta_at_unique - 0035
rewrite hcase_left at hmap - 0036
rewrite hcase_left at hmap - 0037
exact hmap - 0038
exact hext_left - 0039
have ha : a = p - 0040
specialize beta_at_unique (b) - 0041
specialize beta_at_unique (c) - 0042
specialize beta_at_unique (l) - 0043
specialize beta_at_unique (a) - 0044
specialize beta_at_unique (p) - 0045
apply beta_at_unique - 0046
rewrite hcase_left at hsource - 0047
rewrite hcase_left at hsource - 0048
exact hsource - 0049
exact hleft - 0050
rewrite hj - 0051
rewrite hj - 0052
rewrite ha - 0053
rewrite ha - 0054
exact hright - 0055
have hold : ((exists ff_h_pfp_append_original_map. ff_h_pfp_append_original_map + S (j) = S ((S (i)) * v)) /\ exists ff_q_pfp_append_original_map. u = ff_q_pfp_append_original_map * S ((S (i)) * v) + (j)) - 0056
specialize factor_permutation_prefix_reflect (u) - 0057
specialize factor_permutation_prefix_reflect (v) - 0058
specialize factor_permutation_prefix_reflect (U) - 0059
specialize factor_permutation_prefix_reflect (V) - 0060
specialize factor_permutation_prefix_reflect (l) - 0061
specialize factor_permutation_prefix_reflect (i) - 0062
specialize factor_permutation_prefix_reflect (j) - 0063
apply factor_permutation_prefix_reflect - 0064
exact hext_right - 0065
exact hcase_right - 0066
exact hmap - 0067
specialize hm (i) - 0068
specialize hm (j) - 0069
specialize hm (a) - 0070
apply hm - 0071
exact hcase_right - 0072
exact hold - 0073
exact hsource