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 PA statement
forall b c z d l a e. (((((exists wpo_beta_height_injective_trace_first. wpo_beta_height_injective_trace_first + S (a) = S ((S (l)) * d)) /\ exists wpo_beta_quotient_injective_trace_first. z = wpo_beta_quotient_injective_trace_first * S ((S (l)) * d) + (a))) /\ ((((exists wpo_beta_height_injective_trace_second. wpo_beta_height_injective_trace_second + S (e) = S ((S (S (l))) * d)) /\ exists wpo_beta_quotient_injective_trace_second. z = wpo_beta_quotient_injective_trace_second * S ((S (S (l))) * d) + (e))) /\ (forall wpo_old_index_injective_trace wpo_old_value_injective_trace. (exists wpo_gap_injective_trace_old_bound. wpo_gap_injective_trace_old_bound + S (wpo_old_index_injective_trace) = l) -> (((exists wpo_beta_height_injective_trace_old_entry. wpo_beta_height_injective_trace_old_entry + S (wpo_old_value_injective_trace) = S ((S (wpo_old_index_injective_trace)) * c)) /\ exists wpo_beta_quotient_injective_trace_old_entry. b = wpo_beta_quotient_injective_trace_old_entry * S ((S (wpo_old_index_injective_trace)) * c) + (wpo_old_value_injective_trace))) -> (((exists wpo_beta_height_injective_trace_new_entry. wpo_beta_height_injective_trace_new_entry + S (wpo_old_value_injective_trace) = S ((S (wpo_old_index_injective_trace)) * d)) /\ exists wpo_beta_quotient_injective_trace_new_entry. z = wpo_beta_quotient_injective_trace_new_entry * S ((S (wpo_old_index_injective_trace)) * d) + (wpo_old_value_injective_trace))))))) -> (forall wpo_injective_left_injective_before wpo_injective_right_injective_before wpo_injective_value_injective_before. (exists wpo_gap_injective_before_left_bound. wpo_gap_injective_before_left_bound + S (wpo_injective_left_injective_before) = l) -> (exists wpo_gap_injective_before_right_bound. wpo_gap_injective_before_right_bound + S (wpo_injective_right_injective_before) = l) -> (((exists wpo_beta_height_injective_before_left_entry. wpo_beta_height_injective_before_left_entry + S (wpo_injective_value_injective_before) = S ((S (wpo_injective_left_injective_before)) * c)) /\ exists wpo_beta_quotient_injective_before_left_entry. b = wpo_beta_quotient_injective_before_left_entry * S ((S (wpo_injective_left_injective_before)) * c) + (wpo_injective_value_injective_before))) -> (((exists wpo_beta_height_injective_before_right_entry. wpo_beta_height_injective_before_right_entry + S (wpo_injective_value_injective_before) = S ((S (wpo_injective_right_injective_before)) * c)) /\ exists wpo_beta_quotient_injective_before_right_entry. b = wpo_beta_quotient_injective_before_right_entry * S ((S (wpo_injective_right_injective_before)) * c) + (wpo_injective_value_injective_before))) -> wpo_injective_left_injective_before = wpo_injective_right_injective_before) -> (~(exists wpo_index_injective_first_omit_contains. ((exists wpo_gap_injective_first_omit_contains_bound. wpo_gap_injective_first_omit_contains_bound + S (wpo_index_injective_first_omit_contains) = l) /\ (((exists wpo_beta_height_injective_first_omit_contains_entry. wpo_beta_height_injective_first_omit_contains_entry + S (a) = S ((S (wpo_index_injective_first_omit_contains)) * c)) /\ exists wpo_beta_quotient_injective_first_omit_contains_entry. b = wpo_beta_quotient_injective_first_omit_contains_entry * S ((S (wpo_index_injective_first_omit_contains)) * c) + (a)))))) -> (~(exists wpo_index_injective_second_omit_contains. ((exists wpo_gap_injective_second_omit_contains_bound. wpo_gap_injective_second_omit_contains_bound + S (wpo_index_injective_second_omit_contains) = l) /\ (((exists wpo_beta_height_injective_second_omit_contains_entry. wpo_beta_height_injective_second_omit_contains_entry + S (e) = S ((S (wpo_index_injective_second_omit_contains)) * c)) /\ exists wpo_beta_quotient_injective_second_omit_contains_entry. b = wpo_beta_quotient_injective_second_omit_contains_entry * S ((S (wpo_index_injective_second_omit_contains)) * c) + (e)))))) -> ~(a = e) -> (forall wpo_injective_left_injective_after wpo_injective_right_injective_after wpo_injective_value_injective_after. (exists wpo_gap_injective_after_left_bound. wpo_gap_injective_after_left_bound + S (wpo_injective_left_injective_after) = S (S l)) -> (exists wpo_gap_injective_after_right_bound. wpo_gap_injective_after_right_bound + S (wpo_injective_right_injective_after) = S (S l)) -> (((exists wpo_beta_height_injective_after_left_entry. wpo_beta_height_injective_after_left_entry + S (wpo_injective_value_injective_after) = S ((S (wpo_injective_left_injective_after)) * d)) /\ exists wpo_beta_quotient_injective_after_left_entry. z = wpo_beta_quotient_injective_after_left_entry * S ((S (wpo_injective_left_injective_after)) * d) + (wpo_injective_value_injective_after))) -> (((exists wpo_beta_height_injective_after_right_entry. wpo_beta_height_injective_after_right_entry + S (wpo_injective_value_injective_after) = S ((S (wpo_injective_right_injective_after)) * d)) /\ exists wpo_beta_quotient_injective_after_right_entry. z = wpo_beta_quotient_injective_after_right_entry * S ((S (wpo_injective_right_injective_after)) * d) + (wpo_injective_value_injective_after))) -> wpo_injective_left_injective_after = wpo_injective_right_injective_after)Structural proof guide
Generated structural guide
Appending two distinct values omitted by an injective old prefix preserves decoded-prefix injectivity.
Use the direct prerequisites beta_prefix_append_two_reflect as previously established PA formulas.
The proof proceeds by case analysis (20), intermediate claims (5), equality transport (8).
Referenced ingredients
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Linked names are exact direct references. This Alpha-v25 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
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–12
03Establish hright_reflect_theoremL13–21
Establish this local claim before using it. It is not an additional assumption.
04Establish hleft_allL22–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta prefix append two reflect.
- L22
- L23
specialize beta_prefix_append_two_reflect b - L24
specialize beta_prefix_append_two_reflect c - L25
specialize beta_prefix_append_two_reflect z - L26
specialize beta_prefix_append_two_reflect d - L27
specialize beta_prefix_append_two_reflect l - L28
specialize beta_prefix_append_two_reflect a - L29
specialize beta_prefix_append_two_reflect e - L30
apply beta_prefix_append_two_reflect - L31
exact htrace
05Establish hright_allL32–41
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hright reflect theorem.
- L32
- L33
specialize hright_reflect_theorem b - L34
specialize hright_reflect_theorem c - L35
specialize hright_reflect_theorem z - L36
specialize hright_reflect_theorem d - L37
specialize hright_reflect_theorem l - L38
specialize hright_reflect_theorem a - L39
specialize hright_reflect_theorem e - L40
apply hright_reflect_theorem - L41
exact htrace
06Establish hleft_classL42–47
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hleft all.
- L42
have hleft_class : ((q = S (l) /\ w = e) \/ ((q = l /\ w = a) \/ ((exists wpo_gap_injective_left_reflection_old_bound. wpo_gap_injective_left_reflection_old_bound + S (q) = l) /\ (((exists wpo_beta_height_injective_left_reflection_old_entry. wpo_beta_height_injective_left_reflection_old_entry + S (w) = S ((S (q)) * c)) /\ exists wpo_beta_quotient_injective_left_reflection_old_entry. b = wpo_beta_quotient_injective_left_reflection_old_entry * S ((S (q)) * c) + (w)))))) - L43
specialize hleft_all q - L44
specialize hleft_all w - L45
apply hleft_all - L46
exact hq - L47
exact hleft_entry
07Establish hright_classL48–53
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hright all.
- L48
have hright_class : ((r = S (l) /\ w = e) \/ ((r = l /\ w = a) \/ ((exists wpo_gap_injective_right_reflection_old_bound. wpo_gap_injective_right_reflection_old_bound + S (r) = l) /\ (((exists wpo_beta_height_injective_right_reflection_old_entry. wpo_beta_height_injective_right_reflection_old_entry + S (w) = S ((S (r)) * c)) /\ exists wpo_beta_quotient_injective_right_reflection_old_entry. b = wpo_beta_quotient_injective_right_reflection_old_entry * S ((S (r)) * c) + (w)))))) - L49
specialize hright_all r - L50
specialize hright_all w - L51
apply hright_all - L52
exact hr - L53
exact hright_entry
08Separate the logical casesL54–57
09Calculate and transport equalitiesL58–58
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L58
trans (S l)
10Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
exact hleft_class_left_left
11Calculate and transport equalitiesL60–60
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L60
symm
12Use earlier factsL61–61
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L61
exact hright_class_left_left
13Separate the logical casesL62–64
14Use earlier factsL65–65
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L65
apply hdistinct
15Calculate and transport equalitiesL66–67
16Use earlier factsL68–69
17Separate the logical casesL70–71
18Use earlier factsL72–72
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L72
apply hsecond_omit
19Construct an explicit witnessL73–73
Supply the displayed value, then prove that it has the required property.
- L73
exists r
20Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
split
21Use earlier factsL75–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L75
exact hright_class_right_right_left
22Calculate and transport equalitiesL76–77
23Use earlier factsL78–78
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L78
exact hright_class_right_right_right
24Separate the logical casesL79–83
25Use earlier factsL84–84
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L84
apply hdistinct
26Calculate and transport equalitiesL85–86
27Use earlier factsL87–88
28Separate the logical casesL89–90
29Calculate and transport equalitiesL91–91
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L91
trans l
30Use earlier factsL92–92
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
exact hleft_class_right_left_left
31Calculate and transport equalitiesL93–93
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L93
symm
32Use earlier factsL94–94
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L94
exact hright_class_right_left_left
33Separate the logical casesL95–96
34Use earlier factsL97–97
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L97
apply hfirst_omit
35Construct an explicit witnessL98–98
Supply the displayed value, then prove that it has the required property.
- L98
exists r
36Separate the logical casesL99–99
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L99
split
37Use earlier factsL100–100
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L100
exact hright_class_right_right_left
38Calculate and transport equalitiesL101–102
39Use earlier factsL103–103
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L103
exact hright_class_right_right_right
40Separate the logical casesL104–107
41Use earlier factsL108–108
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L108
apply hsecond_omit
42Construct an explicit witnessL109–109
Supply the displayed value, then prove that it has the required property.
- L109
exists q
43Separate the logical casesL110–110
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L110
split
44Use earlier factsL111–111
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L111
exact hleft_class_right_right_left
45Calculate and transport equalitiesL112–113
46Use earlier factsL114–114
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L114
exact hleft_class_right_right_right
47Separate the logical casesL115–117
48Use earlier factsL118–118
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L118
apply hfirst_omit
49Construct an explicit witnessL119–119
Supply the displayed value, then prove that it has the required property.
- L119
exists q
50Separate the logical casesL120–120
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L120
split
51Use earlier factsL121–121
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L121
exact hleft_class_right_right_left
52Calculate and transport equalitiesL122–123
53Use earlier factsL124–124
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L124
exact hleft_class_right_right_right
54Separate the logical casesL125–125
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L125
cases hright_class_right_right
55Use earlier factsL126–133
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 133 lines
- 0001
intro b - 0002
intro c - 0003
intro z - 0004
intro d - 0005
intro l - 0006
intro a - 0007
intro e - 0008
intro htrace - 0009
intro hold_injective - 0010
intro hfirst_omit - 0011
intro hsecond_omit - 0012
intro hdistinct - 0013
have hright_reflect_theorem : forall b c z d l a e. (((((exists wpo_beta_height_reflect_trace_first. wpo_beta_height_reflect_trace_first + S (a) = S ((S (l)) * d)) /\ exists wpo_beta_quotient_reflect_trace_first. z = wpo_beta_quotient_reflect_trace_first * S ((S (l)) * d) + (a))) /\ ((((exists wpo_beta_height_reflect_trace_second. wpo_beta_height_reflect_trace_second + S (e) = S ((S (S (l))) * d)) /\ exists wpo_beta_quotient_reflect_trace_second. z = wpo_beta_quotient_reflect_trace_second * S ((S (S (l))) * d) + (e))) /\ (forall wpo_old_index_reflect_trace wpo_old_value_reflect_trace. (exists wpo_gap_reflect_trace_old_bound. wpo_gap_reflect_trace_old_bound + S (wpo_old_index_reflect_trace) = l) -> (((exists wpo_beta_height_reflect_trace_old_entry. wpo_beta_height_reflect_trace_old_entry + S (wpo_old_value_reflect_trace) = S ((S (wpo_old_index_reflect_trace)) * c)) /\ exists wpo_beta_quotient_reflect_trace_old_entry. b = wpo_beta_quotient_reflect_trace_old_entry * S ((S (wpo_old_index_reflect_trace)) * c) + (wpo_old_value_reflect_trace))) -> (((exists wpo_beta_height_reflect_trace_new_entry. wpo_beta_height_reflect_trace_new_entry + S (wpo_old_value_reflect_trace) = S ((S (wpo_old_index_reflect_trace)) * d)) /\ exists wpo_beta_quotient_reflect_trace_new_entry. z = wpo_beta_quotient_reflect_trace_new_entry * S ((S (wpo_old_index_reflect_trace)) * d) + (wpo_old_value_reflect_trace))))))) -> forall i v. (exists wpo_gap_reflect_new_bound. wpo_gap_reflect_new_bound + S (i) = S (S l)) -> (((exists wpo_beta_height_reflect_new_entry. wpo_beta_height_reflect_new_entry + S (v) = S ((S (i)) * d)) /\ exists wpo_beta_quotient_reflect_new_entry. z = wpo_beta_quotient_reflect_new_entry * S ((S (i)) * d) + (v))) -> (((i = S (l) /\ v = e) \/ ((i = l /\ v = a) \/ ((exists wpo_gap_reflect_result_old_bound. wpo_gap_reflect_result_old_bound + S (i) = l) /\ (((exists wpo_beta_height_reflect_result_old_entry. wpo_beta_height_reflect_result_old_entry + S (v) = S ((S (i)) * c)) /\ exists wpo_beta_quotient_reflect_result_old_entry. b = wpo_beta_quotient_reflect_result_old_entry * S ((S (i)) * c) + (v))))))) - 0014
exact beta_prefix_append_two_reflect - 0015
intro q - 0016
intro r - 0017
intro w - 0018
intro hq - 0019
intro hr - 0020
intro hleft_entry - 0021
intro hright_entry - 0022
have hleft_all : forall q w. (exists wpo_gap_injective_left_bound. wpo_gap_injective_left_bound + S (q) = S (S l)) -> (((exists wpo_beta_height_injective_left_entry. wpo_beta_height_injective_left_entry + S (w) = S ((S (q)) * d)) /\ exists wpo_beta_quotient_injective_left_entry. z = wpo_beta_quotient_injective_left_entry * S ((S (q)) * d) + (w))) -> (((q = S (l) /\ w = e) \/ ((q = l /\ w = a) \/ ((exists wpo_gap_injective_left_reflection_old_bound. wpo_gap_injective_left_reflection_old_bound + S (q) = l) /\ (((exists wpo_beta_height_injective_left_reflection_old_entry. wpo_beta_height_injective_left_reflection_old_entry + S (w) = S ((S (q)) * c)) /\ exists wpo_beta_quotient_injective_left_reflection_old_entry. b = wpo_beta_quotient_injective_left_reflection_old_entry * S ((S (q)) * c) + (w))))))) - 0023
specialize beta_prefix_append_two_reflect b - 0024
specialize beta_prefix_append_two_reflect c - 0025
specialize beta_prefix_append_two_reflect z - 0026
specialize beta_prefix_append_two_reflect d - 0027
specialize beta_prefix_append_two_reflect l - 0028
specialize beta_prefix_append_two_reflect a - 0029
specialize beta_prefix_append_two_reflect e - 0030
apply beta_prefix_append_two_reflect - 0031
exact htrace - 0032
have hright_all : forall r w. (exists wpo_gap_injective_right_bound. wpo_gap_injective_right_bound + S (r) = S (S l)) -> (((exists wpo_beta_height_injective_right_entry. wpo_beta_height_injective_right_entry + S (w) = S ((S (r)) * d)) /\ exists wpo_beta_quotient_injective_right_entry. z = wpo_beta_quotient_injective_right_entry * S ((S (r)) * d) + (w))) -> (((r = S (l) /\ w = e) \/ ((r = l /\ w = a) \/ ((exists wpo_gap_injective_right_reflection_old_bound. wpo_gap_injective_right_reflection_old_bound + S (r) = l) /\ (((exists wpo_beta_height_injective_right_reflection_old_entry. wpo_beta_height_injective_right_reflection_old_entry + S (w) = S ((S (r)) * c)) /\ exists wpo_beta_quotient_injective_right_reflection_old_entry. b = wpo_beta_quotient_injective_right_reflection_old_entry * S ((S (r)) * c) + (w))))))) - 0033
specialize hright_reflect_theorem b - 0034
specialize hright_reflect_theorem c - 0035
specialize hright_reflect_theorem z - 0036
specialize hright_reflect_theorem d - 0037
specialize hright_reflect_theorem l - 0038
specialize hright_reflect_theorem a - 0039
specialize hright_reflect_theorem e - 0040
apply hright_reflect_theorem - 0041
exact htrace - 0042
have hleft_class : ((q = S (l) /\ w = e) \/ ((q = l /\ w = a) \/ ((exists wpo_gap_injective_left_reflection_old_bound. wpo_gap_injective_left_reflection_old_bound + S (q) = l) /\ (((exists wpo_beta_height_injective_left_reflection_old_entry. wpo_beta_height_injective_left_reflection_old_entry + S (w) = S ((S (q)) * c)) /\ exists wpo_beta_quotient_injective_left_reflection_old_entry. b = wpo_beta_quotient_injective_left_reflection_old_entry * S ((S (q)) * c) + (w)))))) - 0043
specialize hleft_all q - 0044
specialize hleft_all w - 0045
apply hleft_all - 0046
exact hq - 0047
exact hleft_entry - 0048
have hright_class : ((r = S (l) /\ w = e) \/ ((r = l /\ w = a) \/ ((exists wpo_gap_injective_right_reflection_old_bound. wpo_gap_injective_right_reflection_old_bound + S (r) = l) /\ (((exists wpo_beta_height_injective_right_reflection_old_entry. wpo_beta_height_injective_right_reflection_old_entry + S (w) = S ((S (r)) * c)) /\ exists wpo_beta_quotient_injective_right_reflection_old_entry. b = wpo_beta_quotient_injective_right_reflection_old_entry * S ((S (r)) * c) + (w)))))) - 0049
specialize hright_all r - 0050
specialize hright_all w - 0051
apply hright_all - 0052
exact hr - 0053
exact hright_entry - 0054
cases hleft_class - 0055
cases hleft_class_left - 0056
cases hright_class - 0057
cases hright_class_left - 0058
trans (S l) - 0059
exact hleft_class_left_left - 0060
symm - 0061
exact hright_class_left_left - 0062
cases hright_class_right - 0063
cases hright_class_right_left - 0064
exfalso - 0065
apply hdistinct - 0066
trans w - 0067
symm - 0068
exact hright_class_right_left_right - 0069
exact hleft_class_left_right - 0070
cases hright_class_right_right - 0071
exfalso - 0072
apply hsecond_omit - 0073
exists r - 0074
split - 0075
exact hright_class_right_right_left - 0076
rewrite hleft_class_left_right at hright_class_right_right_right - 0077
rewrite hleft_class_left_right at hright_class_right_right_right - 0078
exact hright_class_right_right_right - 0079
cases hleft_class_right - 0080
cases hleft_class_right_left - 0081
cases hright_class - 0082
cases hright_class_left - 0083
exfalso - 0084
apply hdistinct - 0085
trans w - 0086
symm - 0087
exact hleft_class_right_left_right - 0088
exact hright_class_left_right - 0089
cases hright_class_right - 0090
cases hright_class_right_left - 0091
trans l - 0092
exact hleft_class_right_left_left - 0093
symm - 0094
exact hright_class_right_left_left - 0095
cases hright_class_right_right - 0096
exfalso - 0097
apply hfirst_omit - 0098
exists r - 0099
split - 0100
exact hright_class_right_right_left - 0101
rewrite hleft_class_right_left_right at hright_class_right_right_right - 0102
rewrite hleft_class_right_left_right at hright_class_right_right_right - 0103
exact hright_class_right_right_right - 0104
cases hleft_class_right_right - 0105
cases hright_class - 0106
cases hright_class_left - 0107
exfalso - 0108
apply hsecond_omit - 0109
exists q - 0110
split - 0111
exact hleft_class_right_right_left - 0112
rewrite hright_class_left_right at hleft_class_right_right_right - 0113
rewrite hright_class_left_right at hleft_class_right_right_right - 0114
exact hleft_class_right_right_right - 0115
cases hright_class_right - 0116
cases hright_class_right_left - 0117
exfalso - 0118
apply hfirst_omit - 0119
exists q - 0120
split - 0121
exact hleft_class_right_right_left - 0122
rewrite hright_class_right_left_right at hleft_class_right_right_right - 0123
rewrite hright_class_right_left_right at hleft_class_right_right_right - 0124
exact hleft_class_right_right_right - 0125
cases hright_class_right_right - 0126
specialize hold_injective q - 0127
specialize hold_injective r - 0128
specialize hold_injective w - 0129
apply hold_injective - 0130
exact hleft_class_right_right_left - 0131
exact hright_class_right_right_left - 0132
exact hleft_class_right_right_right - 0133
exact hright_class_right_right_right