Exact expanded PA statement
forall u v b c z d l i j. (((((exists wpo_beta_height_closure_trace_first. wpo_beta_height_closure_trace_first + S (i) = S ((S (l)) * d)) /\ exists wpo_beta_quotient_closure_trace_first. z = wpo_beta_quotient_closure_trace_first * S ((S (l)) * d) + (i))) /\ ((((exists wpo_beta_height_closure_trace_second. wpo_beta_height_closure_trace_second + S (j) = S ((S (S (l))) * d)) /\ exists wpo_beta_quotient_closure_trace_second. z = wpo_beta_quotient_closure_trace_second * S ((S (S (l))) * d) + (j))) /\ (forall wpo_old_index_closure_trace wpo_old_value_closure_trace. (exists wpo_gap_closure_trace_old_bound. wpo_gap_closure_trace_old_bound + S (wpo_old_index_closure_trace) = l) -> (((exists wpo_beta_height_closure_trace_old_entry. wpo_beta_height_closure_trace_old_entry + S (wpo_old_value_closure_trace) = S ((S (wpo_old_index_closure_trace)) * c)) /\ exists wpo_beta_quotient_closure_trace_old_entry. b = wpo_beta_quotient_closure_trace_old_entry * S ((S (wpo_old_index_closure_trace)) * c) + (wpo_old_value_closure_trace))) -> (((exists wpo_beta_height_closure_trace_new_entry. wpo_beta_height_closure_trace_new_entry + S (wpo_old_value_closure_trace) = S ((S (wpo_old_index_closure_trace)) * d)) /\ exists wpo_beta_quotient_closure_trace_new_entry. z = wpo_beta_quotient_closure_trace_new_entry * S ((S (wpo_old_index_closure_trace)) * d) + (wpo_old_value_closure_trace))))))) -> (forall espo_position_closure_before espo_source_closure_before espo_mate_closure_before. (exists wpo_gap_closure_before_position_bound. wpo_gap_closure_before_position_bound + S (espo_position_closure_before) = l) -> (((exists wpo_beta_height_closure_before_source_entry. wpo_beta_height_closure_before_source_entry + S (espo_source_closure_before) = S ((S (espo_position_closure_before)) * c)) /\ exists wpo_beta_quotient_closure_before_source_entry. b = wpo_beta_quotient_closure_before_source_entry * S ((S (espo_position_closure_before)) * c) + (espo_source_closure_before))) -> (((exists wpo_beta_height_closure_before_scaled_entry. wpo_beta_height_closure_before_scaled_entry + S (S espo_mate_closure_before) = S ((S (espo_source_closure_before)) * v)) /\ exists wpo_beta_quotient_closure_before_scaled_entry. u = wpo_beta_quotient_closure_before_scaled_entry * S ((S (espo_source_closure_before)) * v) + (S espo_mate_closure_before))) -> exists espo_mate_position_closure_before. ((exists wpo_gap_closure_before_mate_bound. wpo_gap_closure_before_mate_bound + S (espo_mate_position_closure_before) = l) /\ (((exists wpo_beta_height_closure_before_mate_entry. wpo_beta_height_closure_before_mate_entry + S (espo_mate_closure_before) = S ((S (espo_mate_position_closure_before)) * c)) /\ exists wpo_beta_quotient_closure_before_mate_entry. b = wpo_beta_quotient_closure_before_mate_entry * S ((S (espo_mate_position_closure_before)) * c) + (espo_mate_closure_before))))) -> (((exists wpo_beta_height_closure_forward. wpo_beta_height_closure_forward + S (S j) = S ((S (i)) * v)) /\ exists wpo_beta_quotient_closure_forward. u = wpo_beta_quotient_closure_forward * S ((S (i)) * v) + (S j))) -> (((exists wpo_beta_height_closure_back. wpo_beta_height_closure_back + S (S i) = S ((S (j)) * v)) /\ exists wpo_beta_quotient_closure_back. u = wpo_beta_quotient_closure_back * S ((S (j)) * v) + (S i))) -> (forall espo_position_closure_after espo_source_closure_after espo_mate_closure_after. (exists wpo_gap_closure_after_position_bound. wpo_gap_closure_after_position_bound + S (espo_position_closure_after) = S (S l)) -> (((exists wpo_beta_height_closure_after_source_entry. wpo_beta_height_closure_after_source_entry + S (espo_source_closure_after) = S ((S (espo_position_closure_after)) * d)) /\ exists wpo_beta_quotient_closure_after_source_entry. z = wpo_beta_quotient_closure_after_source_entry * S ((S (espo_position_closure_after)) * d) + (espo_source_closure_after))) -> (((exists wpo_beta_height_closure_after_scaled_entry. wpo_beta_height_closure_after_scaled_entry + S (S espo_mate_closure_after) = S ((S (espo_source_closure_after)) * v)) /\ exists wpo_beta_quotient_closure_after_scaled_entry. u = wpo_beta_quotient_closure_after_scaled_entry * S ((S (espo_source_closure_after)) * v) + (S espo_mate_closure_after))) -> exists espo_mate_position_closure_after. ((exists wpo_gap_closure_after_mate_bound. wpo_gap_closure_after_mate_bound + S (espo_mate_position_closure_after) = S (S l)) /\ (((exists wpo_beta_height_closure_after_mate_entry. wpo_beta_height_closure_after_mate_entry + S (espo_mate_closure_after) = S ((S (espo_mate_position_closure_after)) * d)) /\ exists wpo_beta_quotient_closure_after_mate_entry. z = wpo_beta_quotient_closure_after_mate_entry * S ((S (espo_mate_position_closure_after)) * d) + (espo_mate_closure_after)))))Structural proof guide
Generated structural guide
Appending both zero-based sources preserves closure under actual-mate entries S j.
Use the direct prerequisites beta_prefix_append_two_reflect, beta_at_unique, succ_injective, le_refl, le_succ as previously established PA formulas.
The proof proceeds by case analysis (9), intermediate claims (9), equality transport (8).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA009L beta_prefix_append_two_reflect PA002F beta_at_unique PA003V succ_injective PA001A le_refl PA002O le_succDirect 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 u - 0002
intro v - 0003
intro b - 0004
intro c - 0005
intro z - 0006
intro d - 0007
intro l - 0008
intro i - 0009
intro j - 0010
intro htrace - 0011
intro hclosed - 0012
intro hforward - 0013
intro hback - 0014
have htrace_parts : ((((exists wpo_beta_height_closure_trace_first. wpo_beta_height_closure_trace_first + S (i) = S ((S (l)) * d)) /\ exists wpo_beta_quotient_closure_trace_first. z = wpo_beta_quotient_closure_trace_first * S ((S (l)) * d) + (i))) /\ ((((exists wpo_beta_height_closure_trace_second. wpo_beta_height_closure_trace_second + S (j) = S ((S (S (l))) * d)) /\ exists wpo_beta_quotient_closure_trace_second. z = wpo_beta_quotient_closure_trace_second * S ((S (S (l))) * d) + (j))) /\ (forall wpo_old_index_closure_trace wpo_old_value_closure_trace. (exists wpo_gap_closure_trace_old_bound. wpo_gap_closure_trace_old_bound + S (wpo_old_index_closure_trace) = l) -> (((exists wpo_beta_height_closure_trace_old_entry. wpo_beta_height_closure_trace_old_entry + S (wpo_old_value_closure_trace) = S ((S (wpo_old_index_closure_trace)) * c)) /\ exists wpo_beta_quotient_closure_trace_old_entry. b = wpo_beta_quotient_closure_trace_old_entry * S ((S (wpo_old_index_closure_trace)) * c) + (wpo_old_value_closure_trace))) -> (((exists wpo_beta_height_closure_trace_new_entry. wpo_beta_height_closure_trace_new_entry + S (wpo_old_value_closure_trace) = S ((S (wpo_old_index_closure_trace)) * d)) /\ exists wpo_beta_quotient_closure_trace_new_entry. z = wpo_beta_quotient_closure_trace_new_entry * S ((S (wpo_old_index_closure_trace)) * d) + (wpo_old_value_closure_trace)))))) - 0015
exact htrace - 0016
cases htrace_parts - 0017
cases htrace_parts_right - 0018
intro q - 0019
intro s - 0020
intro m - 0021
intro hq - 0022
intro hsource - 0023
intro hscaled - 0024
have hreflect_all : forall q s. (exists wpo_gap_closure_reflection_bound. wpo_gap_closure_reflection_bound + S (q) = S (S l)) -> (((exists wpo_beta_height_closure_reflection_entry. wpo_beta_height_closure_reflection_entry + S (s) = S ((S (q)) * d)) /\ exists wpo_beta_quotient_closure_reflection_entry. z = wpo_beta_quotient_closure_reflection_entry * S ((S (q)) * d) + (s))) -> (((q = S (l) /\ s = j) \/ ((q = l /\ s = i) \/ ((exists wpo_gap_closure_reflection_old_bound. wpo_gap_closure_reflection_old_bound + S (q) = l) /\ (((exists wpo_beta_height_closure_reflection_old_entry. wpo_beta_height_closure_reflection_old_entry + S (s) = S ((S (q)) * c)) /\ exists wpo_beta_quotient_closure_reflection_old_entry. b = wpo_beta_quotient_closure_reflection_old_entry * S ((S (q)) * c) + (s))))))) - 0025
specialize beta_prefix_append_two_reflect b - 0026
specialize beta_prefix_append_two_reflect c - 0027
specialize beta_prefix_append_two_reflect z - 0028
specialize beta_prefix_append_two_reflect d - 0029
specialize beta_prefix_append_two_reflect l - 0030
specialize beta_prefix_append_two_reflect i - 0031
specialize beta_prefix_append_two_reflect j - 0032
apply beta_prefix_append_two_reflect - 0033
exact htrace - 0034
have hreflect : ((q = S (l) /\ s = j) \/ ((q = l /\ s = i) \/ ((exists wpo_gap_closure_reflection_old_bound. wpo_gap_closure_reflection_old_bound + S (q) = l) /\ (((exists wpo_beta_height_closure_reflection_old_entry. wpo_beta_height_closure_reflection_old_entry + S (s) = S ((S (q)) * c)) /\ exists wpo_beta_quotient_closure_reflection_old_entry. b = wpo_beta_quotient_closure_reflection_old_entry * S ((S (q)) * c) + (s)))))) - 0035
specialize hreflect_all q - 0036
specialize hreflect_all s - 0037
apply hreflect_all - 0038
exact hq - 0039
exact hsource - 0040
cases hreflect - 0041
cases hreflect_left - 0042
have hmate_succ : S m = S i - 0043
specialize beta_at_unique u - 0044
specialize beta_at_unique v - 0045
specialize beta_at_unique j - 0046
specialize beta_at_unique (S m) - 0047
specialize beta_at_unique (S i) - 0048
apply beta_at_unique - 0049
rewrite hreflect_left_right at hscaled - 0050
rewrite hreflect_left_right at hscaled - 0051
exact hscaled - 0052
exact hback - 0053
have hmate : m = i - 0054
specialize succ_injective m - 0055
specialize succ_injective i - 0056
apply succ_injective - 0057
exact hmate_succ - 0058
exists l - 0059
split - 0060
specialize le_succ (S l) - 0061
specialize le_succ (S l) - 0062
apply le_succ - 0063
specialize le_refl (S l) - 0064
exact le_refl - 0065
rewrite hmate - 0066
rewrite hmate - 0067
exact htrace_parts_left - 0068
cases hreflect_right - 0069
cases hreflect_right_left - 0070
have hmate_succ_second : S m = S j - 0071
specialize beta_at_unique u - 0072
specialize beta_at_unique v - 0073
specialize beta_at_unique i - 0074
specialize beta_at_unique (S m) - 0075
specialize beta_at_unique (S j) - 0076
apply beta_at_unique - 0077
rewrite hreflect_right_left_right at hscaled - 0078
rewrite hreflect_right_left_right at hscaled - 0079
exact hscaled - 0080
exact hforward - 0081
have hmate_second : m = j - 0082
specialize succ_injective m - 0083
specialize succ_injective j - 0084
apply succ_injective - 0085
exact hmate_succ_second - 0086
exists (S l) - 0087
split - 0088
specialize le_refl (S (S l)) - 0089
exact le_refl - 0090
rewrite hmate_second - 0091
rewrite hmate_second - 0092
exact htrace_parts_right_left - 0093
cases hreflect_right_right - 0094
have hold_occurrence : exists wpo_index_closure_old_occurrence. ((exists wpo_gap_closure_old_occurrence_bound. wpo_gap_closure_old_occurrence_bound + S (wpo_index_closure_old_occurrence) = l) /\ (((exists wpo_beta_height_closure_old_occurrence_entry. wpo_beta_height_closure_old_occurrence_entry + S (m) = S ((S (wpo_index_closure_old_occurrence)) * c)) /\ exists wpo_beta_quotient_closure_old_occurrence_entry. b = wpo_beta_quotient_closure_old_occurrence_entry * S ((S (wpo_index_closure_old_occurrence)) * c) + (m)))) - 0095
specialize hclosed q - 0096
specialize hclosed s - 0097
specialize hclosed m - 0098
apply hclosed - 0099
exact hreflect_right_right_left - 0100
exact hreflect_right_right_right - 0101
exact hscaled - 0102
cases hold_occurrence - 0103
cases hold_occurrence_witness - 0104
exists x - 0105
split - 0106
have hlift : exists h. h + S x = S l - 0107
specialize le_succ (S x) - 0108
specialize le_succ l - 0109
apply le_succ - 0110
exact hold_occurrence_witness_left - 0111
specialize le_succ (S x) - 0112
specialize le_succ (S l) - 0113
apply le_succ - 0114
exact hlift - 0115
specialize htrace_parts_right_right x - 0116
specialize htrace_parts_right_right m - 0117
apply htrace_parts_right_right - 0118
exact hold_occurrence_witness_left - 0119
exact hold_occurrence_witness_right