Exact expanded PA statement
forall pb pc b c w. (forall bcf_index_bpsre_before. (exists bcf_lt_gap_bpsre_before_bound. bcf_lt_gap_bpsre_before_bound + S (bcf_index_bpsre_before) = w) -> exists bcf_value_bpsre_before. ((((exists bcf_height_bpsre_before_entry. bcf_height_bpsre_before_entry + S (bcf_value_bpsre_before) = S ((S (bcf_index_bpsre_before)) * c)) /\ exists bcf_quotient_bpsre_before_entry. b = bcf_quotient_bpsre_before_entry * S ((S (bcf_index_bpsre_before)) * c) + (bcf_value_bpsre_before))) /\ ((bcf_index_bpsre_before = 0 /\ bcf_value_bpsre_before = 1) \/ exists bcf_predecessor_bpsre_before bcf_left_bpsre_before bcf_right_bpsre_before. bcf_index_bpsre_before = S bcf_predecessor_bpsre_before /\ ((((exists bcf_height_bpsre_before_previous_left. bcf_height_bpsre_before_previous_left + S (bcf_left_bpsre_before) = S ((S (bcf_predecessor_bpsre_before)) * pc)) /\ exists bcf_quotient_bpsre_before_previous_left. pb = bcf_quotient_bpsre_before_previous_left * S ((S (bcf_predecessor_bpsre_before)) * pc) + (bcf_left_bpsre_before))) /\ ((((exists bcf_height_bpsre_before_previous_right. bcf_height_bpsre_before_previous_right + S (bcf_right_bpsre_before) = S ((S (S (bcf_predecessor_bpsre_before))) * pc)) /\ exists bcf_quotient_bpsre_before_previous_right. pb = bcf_quotient_bpsre_before_previous_right * S ((S (S (bcf_predecessor_bpsre_before))) * pc) + (bcf_right_bpsre_before))) /\ bcf_value_bpsre_before = bcf_left_bpsre_before + bcf_right_bpsre_before))))) -> exists d e. (forall bcf_index_bpsre_after. (exists bcf_lt_gap_bpsre_after_bound. bcf_lt_gap_bpsre_after_bound + S (bcf_index_bpsre_after) = S (w)) -> exists bcf_value_bpsre_after. ((((exists bcf_height_bpsre_after_entry. bcf_height_bpsre_after_entry + S (bcf_value_bpsre_after) = S ((S (bcf_index_bpsre_after)) * e)) /\ exists bcf_quotient_bpsre_after_entry. d = bcf_quotient_bpsre_after_entry * S ((S (bcf_index_bpsre_after)) * e) + (bcf_value_bpsre_after))) /\ ((bcf_index_bpsre_after = 0 /\ bcf_value_bpsre_after = 1) \/ exists bcf_predecessor_bpsre_after bcf_left_bpsre_after bcf_right_bpsre_after. bcf_index_bpsre_after = S bcf_predecessor_bpsre_after /\ ((((exists bcf_height_bpsre_after_previous_left. bcf_height_bpsre_after_previous_left + S (bcf_left_bpsre_after) = S ((S (bcf_predecessor_bpsre_after)) * pc)) /\ exists bcf_quotient_bpsre_after_previous_left. pb = bcf_quotient_bpsre_after_previous_left * S ((S (bcf_predecessor_bpsre_after)) * pc) + (bcf_left_bpsre_after))) /\ ((((exists bcf_height_bpsre_after_previous_right. bcf_height_bpsre_after_previous_right + S (bcf_right_bpsre_after) = S ((S (S (bcf_predecessor_bpsre_after))) * pc)) /\ exists bcf_quotient_bpsre_after_previous_right. pb = bcf_quotient_bpsre_after_previous_right * S ((S (S (bcf_predecessor_bpsre_after))) * pc) + (bcf_right_bpsre_after))) /\ bcf_value_bpsre_after = bcf_left_bpsre_after + bcf_right_bpsre_after)))))Structural proof guide
Append one Pascal successor-row value and preserve the prefix.
Direct prerequisites: zero_or_succ, beta_at_exists, beta_prefix_extend, finite_lt_succ_eq_or_lt. The authored body proceeds by case analysis (16), intermediate claims (6), equality transport (4).
Proof neighborhood
Direct dependencies
Direct dependents
Formal native tactic body
Dependencies are hypotheses of this body receipt. The focused endpoint audits separately check the complete empty-context certificates.
- 0001
intro pb - 0002
intro pc - 0003
intro b - 0004
intro c - 0005
intro w - 0006
intro hrow - 0007
specialize zero_or_succ w - 0008
cases zero_or_succ - 0009
specialize beta_prefix_extend w - 0010
specialize beta_prefix_extend b - 0011
specialize beta_prefix_extend c - 0012
specialize beta_prefix_extend 1 - 0013
cases beta_prefix_extend - 0014
cases beta_prefix_extend_witness - 0015
cases beta_prefix_extend_witness_witness - 0016
exists x - 0017
exists x1 - 0018
intro i - 0019
intro hi - 0020
have hsplit : i = w \/ exists gap. gap + S i = w - 0021
specialize finite_lt_succ_eq_or_lt w - 0022
specialize finite_lt_succ_eq_or_lt i - 0023
apply finite_lt_succ_eq_or_lt - 0024
exact hi - 0025
cases hsplit - 0026
exists 1 - 0027
split - 0028
rewrite hsplit_left - 0029
rewrite hsplit_left - 0030
exact beta_prefix_extend_witness_witness_left - 0031
left - 0032
split - 0033
trans w - 0034
exact hsplit_left - 0035
exact zero_or_succ_left - 0036
refl - 0037
specialize hrow i - 0038
have hold : exists value. (((exists height. height + S value = S ((S i) * c)) /\ exists quotient. b = quotient * S ((S i) * c) + value) /\ ((i = 0 /\ value = 1) \/ exists p u v. i = S p /\ (((exists h. h + S u = S ((S p) * pc)) /\ exists q. pb = q * S ((S p) * pc) + u) /\ (((exists h. h + S v = S ((S (S p)) * pc)) /\ exists q. pb = q * S ((S (S p)) * pc) + v) /\ value = u + v)))) - 0039
apply hrow - 0040
exact hsplit_right - 0041
cases hold - 0042
cases hold_witness - 0043
exists x2 - 0044
split - 0045
specialize beta_prefix_extend_witness_witness_right i - 0046
specialize beta_prefix_extend_witness_witness_right x2 - 0047
apply beta_prefix_extend_witness_witness_right - 0048
exact hsplit_right - 0049
exact hold_witness_left - 0050
exact hold_witness_right - 0051
cases zero_or_succ_right - 0052
have hleft : exists u. ((exists h. h + S u = S ((S x) * pc)) /\ exists q. pb = q * S ((S x) * pc) + u) - 0053
specialize beta_at_exists pb - 0054
specialize beta_at_exists pc - 0055
specialize beta_at_exists x - 0056
exact beta_at_exists - 0057
cases hleft - 0058
have hright : exists v. ((exists h. h + S v = S ((S (S x)) * pc)) /\ exists q. pb = q * S ((S (S x)) * pc) + v) - 0059
specialize beta_at_exists pb - 0060
specialize beta_at_exists pc - 0061
specialize beta_at_exists (S x) - 0062
exact beta_at_exists - 0063
cases hright - 0064
specialize beta_prefix_extend w - 0065
specialize beta_prefix_extend b - 0066
specialize beta_prefix_extend c - 0067
specialize beta_prefix_extend (x1 + x2) - 0068
cases beta_prefix_extend - 0069
cases beta_prefix_extend_witness - 0070
cases beta_prefix_extend_witness_witness - 0071
exists x3 - 0072
exists x4 - 0073
intro i - 0074
intro hi - 0075
have hsplit : i = w \/ exists gap. gap + S i = w - 0076
specialize finite_lt_succ_eq_or_lt w - 0077
specialize finite_lt_succ_eq_or_lt i - 0078
apply finite_lt_succ_eq_or_lt - 0079
exact hi - 0080
cases hsplit - 0081
exists x1 + x2 - 0082
split - 0083
rewrite hsplit_left - 0084
rewrite hsplit_left - 0085
exact beta_prefix_extend_witness_witness_left - 0086
right - 0087
exists x - 0088
exists x1 - 0089
exists x2 - 0090
split - 0091
trans w - 0092
exact hsplit_left - 0093
exact zero_or_succ_right_witness - 0094
split - 0095
exact hleft_witness - 0096
split - 0097
exact hright_witness - 0098
refl - 0099
specialize hrow i - 0100
have hold : exists value. (((exists height. height + S value = S ((S i) * c)) /\ exists quotient. b = quotient * S ((S i) * c) + value) /\ ((i = 0 /\ value = 1) \/ exists p u v. i = S p /\ (((exists h. h + S u = S ((S p) * pc)) /\ exists q. pb = q * S ((S p) * pc) + u) /\ (((exists h. h + S v = S ((S (S p)) * pc)) /\ exists q. pb = q * S ((S (S p)) * pc) + v) /\ value = u + v)))) - 0101
apply hrow - 0102
exact hsplit_right - 0103
cases hold - 0104
cases hold_witness - 0105
exists x5 - 0106
split - 0107
specialize beta_prefix_extend_witness_witness_right i - 0108
specialize beta_prefix_extend_witness_witness_right x5 - 0109
apply beta_prefix_extend_witness_witness_right - 0110
exact hsplit_right - 0111
exact hold_witness_left - 0112
exact hold_witness_right