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-v16 checked-use theorem is independently kernel-checked when replayed; it is not a Stable theorem.
- 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