Exact expanded PA statement
forall b c d e f g l. (forall b5cc_index_b5ccpe_before. (exists bcf_lt_gap_b5ccpe_before_bound. bcf_lt_gap_b5ccpe_before_bound + S (b5cc_index_b5ccpe_before) = l) -> exists b5cc_left_b5ccpe_before b5cc_right_b5ccpe_before b5cc_bit_b5ccpe_before. (((exists fs_h_b5cc_b5ccpe_before_left. fs_h_b5cc_b5ccpe_before_left + S (b5cc_left_b5ccpe_before) = S ((S (b5cc_index_b5ccpe_before)) * c)) /\ exists fs_q_b5cc_b5ccpe_before_left. b = fs_q_b5cc_b5ccpe_before_left * S ((S (b5cc_index_b5ccpe_before)) * c) + (b5cc_left_b5ccpe_before))) /\ ((((exists fs_h_b5cc_b5ccpe_before_right. fs_h_b5cc_b5ccpe_before_right + S (b5cc_right_b5ccpe_before) = S ((S (b5cc_index_b5ccpe_before)) * e)) /\ exists fs_q_b5cc_b5ccpe_before_right. d = fs_q_b5cc_b5ccpe_before_right * S ((S (b5cc_index_b5ccpe_before)) * e) + (b5cc_right_b5ccpe_before))) /\ ((((exists fs_h_b5cc_b5ccpe_before_bit. fs_h_b5cc_b5ccpe_before_bit + S (b5cc_bit_b5ccpe_before) = S ((S (b5cc_index_b5ccpe_before)) * g)) /\ exists fs_q_b5cc_b5ccpe_before_bit. f = fs_q_b5cc_b5ccpe_before_bit * S ((S (b5cc_index_b5ccpe_before)) * g) + (b5cc_bit_b5ccpe_before))) /\ (((b5cc_bit_b5ccpe_before = 0 /\ b5cc_right_b5ccpe_before = b5cc_left_b5ccpe_before + b5cc_left_b5ccpe_before) \/ (b5cc_bit_b5ccpe_before = 1 /\ b5cc_right_b5ccpe_before = S (b5cc_left_b5ccpe_before + b5cc_left_b5ccpe_before))))))) -> (exists q Q bit. (((exists fs_h_b5ccpe_last_left. fs_h_b5ccpe_last_left + S (q) = S ((S (l)) * c)) /\ exists fs_q_b5ccpe_last_left. b = fs_q_b5ccpe_last_left * S ((S (l)) * c) + (q))) /\ ((((exists fs_h_b5ccpe_last_right. fs_h_b5ccpe_last_right + S (Q) = S ((S (l)) * e)) /\ exists fs_q_b5ccpe_last_right. d = fs_q_b5ccpe_last_right * S ((S (l)) * e) + (Q))) /\ (((bit = 0 /\ Q = q + q) \/ (bit = 1 /\ Q = S (q + q)))))) -> exists z h. (forall b5cc_index_b5ccpe_after. (exists bcf_lt_gap_b5ccpe_after_bound. bcf_lt_gap_b5ccpe_after_bound + S (b5cc_index_b5ccpe_after) = S l) -> exists b5cc_left_b5ccpe_after b5cc_right_b5ccpe_after b5cc_bit_b5ccpe_after. (((exists fs_h_b5cc_b5ccpe_after_left. fs_h_b5cc_b5ccpe_after_left + S (b5cc_left_b5ccpe_after) = S ((S (b5cc_index_b5ccpe_after)) * c)) /\ exists fs_q_b5cc_b5ccpe_after_left. b = fs_q_b5cc_b5ccpe_after_left * S ((S (b5cc_index_b5ccpe_after)) * c) + (b5cc_left_b5ccpe_after))) /\ ((((exists fs_h_b5cc_b5ccpe_after_right. fs_h_b5cc_b5ccpe_after_right + S (b5cc_right_b5ccpe_after) = S ((S (b5cc_index_b5ccpe_after)) * e)) /\ exists fs_q_b5cc_b5ccpe_after_right. d = fs_q_b5cc_b5ccpe_after_right * S ((S (b5cc_index_b5ccpe_after)) * e) + (b5cc_right_b5ccpe_after))) /\ ((((exists fs_h_b5cc_b5ccpe_after_bit. fs_h_b5cc_b5ccpe_after_bit + S (b5cc_bit_b5ccpe_after) = S ((S (b5cc_index_b5ccpe_after)) * h)) /\ exists fs_q_b5cc_b5ccpe_after_bit. z = fs_q_b5cc_b5ccpe_after_bit * S ((S (b5cc_index_b5ccpe_after)) * h) + (b5cc_bit_b5ccpe_after))) /\ (((b5cc_bit_b5ccpe_after = 0 /\ b5cc_right_b5ccpe_after = b5cc_left_b5ccpe_after + b5cc_left_b5ccpe_after) \/ (b5cc_bit_b5ccpe_after = 1 /\ b5cc_right_b5ccpe_after = S (b5cc_left_b5ccpe_after + b5cc_left_b5ccpe_after)))))))Structural proof guide
A carry prefix extends by one freshly decoded carry bit.
Direct prerequisites: beta_prefix_extend, finite_lt_succ_eq_or_lt. The authored body proceeds by case analysis (15), intermediate claims (2), equality transport (6).
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 b - 0002
intro c - 0003
intro d - 0004
intro e - 0005
intro f - 0006
intro g - 0007
intro l - 0008
intro hprefix - 0009
intro hlast - 0010
cases hlast - 0011
cases hlast_witness - 0012
cases hlast_witness_witness - 0013
cases hlast_witness_witness_witness - 0014
cases hlast_witness_witness_witness_right - 0015
specialize beta_prefix_extend l - 0016
specialize beta_prefix_extend f - 0017
specialize beta_prefix_extend g - 0018
specialize beta_prefix_extend x2 - 0019
cases beta_prefix_extend - 0020
cases beta_prefix_extend_witness - 0021
cases beta_prefix_extend_witness_witness - 0022
exists x3 - 0023
exists x4 - 0024
intro i - 0025
intro hi - 0026
specialize finite_lt_succ_eq_or_lt l - 0027
specialize finite_lt_succ_eq_or_lt i - 0028
have hsplit : i = l \/ exists k. k + S i = l - 0029
apply finite_lt_succ_eq_or_lt - 0030
exact hi - 0031
cases hsplit - 0032
rewrite hsplit_left - 0033
rewrite hsplit_left - 0034
rewrite hsplit_left - 0035
rewrite hsplit_left - 0036
rewrite hsplit_left - 0037
rewrite hsplit_left - 0038
exists x - 0039
exists x1 - 0040
exists x2 - 0041
split - 0042
exact hlast_witness_witness_witness_left - 0043
split - 0044
exact hlast_witness_witness_witness_right_left - 0045
split - 0046
exact beta_prefix_extend_witness_witness_left - 0047
exact hlast_witness_witness_witness_right_right - 0048
have hold : exists q Q bit. (((exists fs_h_b5ccpe_old_left. fs_h_b5ccpe_old_left + S (q) = S ((S (i)) * c)) /\ exists fs_q_b5ccpe_old_left. b = fs_q_b5ccpe_old_left * S ((S (i)) * c) + (q))) /\ ((((exists fs_h_b5ccpe_old_right. fs_h_b5ccpe_old_right + S (Q) = S ((S (i)) * e)) /\ exists fs_q_b5ccpe_old_right. d = fs_q_b5ccpe_old_right * S ((S (i)) * e) + (Q))) /\ ((((exists fs_h_b5ccpe_old_bit. fs_h_b5ccpe_old_bit + S (bit) = S ((S (i)) * g)) /\ exists fs_q_b5ccpe_old_bit. f = fs_q_b5ccpe_old_bit * S ((S (i)) * g) + (bit))) /\ (((bit = 0 /\ Q = q + q) \/ (bit = 1 /\ Q = S (q + q)))))) - 0049
specialize hprefix i - 0050
apply hprefix - 0051
exact hsplit_right - 0052
cases hold - 0053
cases hold_witness - 0054
cases hold_witness_witness - 0055
cases hold_witness_witness_witness - 0056
cases hold_witness_witness_witness_right - 0057
cases hold_witness_witness_witness_right_right - 0058
exists x5 - 0059
exists x6 - 0060
exists x7 - 0061
split - 0062
exact hold_witness_witness_witness_left - 0063
split - 0064
exact hold_witness_witness_witness_right_left - 0065
split - 0066
specialize beta_prefix_extend_witness_witness_right i - 0067
specialize beta_prefix_extend_witness_witness_right x7 - 0068
apply beta_prefix_extend_witness_witness_right - 0069
exact hsplit_right - 0070
exact hold_witness_witness_witness_right_right_left - 0071
exact hold_witness_witness_witness_right_right_right