Exact expanded PA statement
forall b c d e l n q. (forall i a z. (exists bppl_bound. bppl_bound + S i = l) -> (((exists ff_h_bppl_left. ff_h_bppl_left + S (a) = S ((S (i)) * c)) /\ exists ff_q_bppl_left. b = ff_q_bppl_left * S ((S (i)) * c) + (a))) -> (((exists ff_h_bppl_right. ff_h_bppl_right + S (z) = S ((S (i)) * e)) /\ exists ff_q_bppl_right. d = ff_q_bppl_right * S ((S (i)) * e) + (z))) -> exists bppl_factor_gap. bppl_factor_gap + a = z) -> (exists ff_u_bppl_left_product ff_v_bppl_left_product. ((((exists ff_h_bppl_left_product_start. ff_h_bppl_left_product_start + S (1) = S ((S (0)) * ff_v_bppl_left_product)) /\ exists ff_q_bppl_left_product_start. ff_u_bppl_left_product = ff_q_bppl_left_product_start * S ((S (0)) * ff_v_bppl_left_product) + (1))) /\ ((((exists ff_h_bppl_left_product_terminal. ff_h_bppl_left_product_terminal + S (n) = S ((S (l)) * ff_v_bppl_left_product)) /\ exists ff_q_bppl_left_product_terminal. ff_u_bppl_left_product = ff_q_bppl_left_product_terminal * S ((S (l)) * ff_v_bppl_left_product) + (n))) /\ forall ff_i_bppl_left_product. (exists ff_lt_bppl_left_product_bound. ff_lt_bppl_left_product_bound + S ff_i_bppl_left_product = l) -> exists ff_p_bppl_left_product ff_r_bppl_left_product ff_s_bppl_left_product. ((((exists ff_h_bppl_left_product_factor. ff_h_bppl_left_product_factor + S (ff_p_bppl_left_product) = S ((S (ff_i_bppl_left_product)) * c)) /\ exists ff_q_bppl_left_product_factor. b = ff_q_bppl_left_product_factor * S ((S (ff_i_bppl_left_product)) * c) + (ff_p_bppl_left_product))) /\ ((((exists ff_h_bppl_left_product_partial. ff_h_bppl_left_product_partial + S (ff_r_bppl_left_product) = S ((S (ff_i_bppl_left_product)) * ff_v_bppl_left_product)) /\ exists ff_q_bppl_left_product_partial. ff_u_bppl_left_product = ff_q_bppl_left_product_partial * S ((S (ff_i_bppl_left_product)) * ff_v_bppl_left_product) + (ff_r_bppl_left_product))) /\ ((((exists ff_h_bppl_left_product_successor. ff_h_bppl_left_product_successor + S (ff_s_bppl_left_product) = S ((S (S ff_i_bppl_left_product)) * ff_v_bppl_left_product)) /\ exists ff_q_bppl_left_product_successor. ff_u_bppl_left_product = ff_q_bppl_left_product_successor * S ((S (S ff_i_bppl_left_product)) * ff_v_bppl_left_product) + (ff_s_bppl_left_product))) /\ ff_s_bppl_left_product = ff_r_bppl_left_product * ff_p_bppl_left_product)))))) -> (exists ff_u_bppl_right_product ff_v_bppl_right_product. ((((exists ff_h_bppl_right_product_start. ff_h_bppl_right_product_start + S (1) = S ((S (0)) * ff_v_bppl_right_product)) /\ exists ff_q_bppl_right_product_start. ff_u_bppl_right_product = ff_q_bppl_right_product_start * S ((S (0)) * ff_v_bppl_right_product) + (1))) /\ ((((exists ff_h_bppl_right_product_terminal. ff_h_bppl_right_product_terminal + S (q) = S ((S (l)) * ff_v_bppl_right_product)) /\ exists ff_q_bppl_right_product_terminal. ff_u_bppl_right_product = ff_q_bppl_right_product_terminal * S ((S (l)) * ff_v_bppl_right_product) + (q))) /\ forall ff_i_bppl_right_product. (exists ff_lt_bppl_right_product_bound. ff_lt_bppl_right_product_bound + S ff_i_bppl_right_product = l) -> exists ff_p_bppl_right_product ff_r_bppl_right_product ff_s_bppl_right_product. ((((exists ff_h_bppl_right_product_factor. ff_h_bppl_right_product_factor + S (ff_p_bppl_right_product) = S ((S (ff_i_bppl_right_product)) * e)) /\ exists ff_q_bppl_right_product_factor. d = ff_q_bppl_right_product_factor * S ((S (ff_i_bppl_right_product)) * e) + (ff_p_bppl_right_product))) /\ ((((exists ff_h_bppl_right_product_partial. ff_h_bppl_right_product_partial + S (ff_r_bppl_right_product) = S ((S (ff_i_bppl_right_product)) * ff_v_bppl_right_product)) /\ exists ff_q_bppl_right_product_partial. ff_u_bppl_right_product = ff_q_bppl_right_product_partial * S ((S (ff_i_bppl_right_product)) * ff_v_bppl_right_product) + (ff_r_bppl_right_product))) /\ ((((exists ff_h_bppl_right_product_successor. ff_h_bppl_right_product_successor + S (ff_s_bppl_right_product) = S ((S (S ff_i_bppl_right_product)) * ff_v_bppl_right_product)) /\ exists ff_q_bppl_right_product_successor. ff_u_bppl_right_product = ff_q_bppl_right_product_successor * S ((S (S ff_i_bppl_right_product)) * ff_v_bppl_right_product) + (ff_s_bppl_right_product))) /\ ff_s_bppl_right_product = ff_r_bppl_right_product * ff_p_bppl_right_product)))))) -> exists bppl_result_gap. bppl_result_gap + n = qStructural proof guide
Pointwise bounded decoded prefixes have ordered finite products.
Direct prerequisites: beta_product_zero, beta_product_succ_decompose, le_succ, le_refl, mul_le_mul. The authored body proceeds by structural induction (1), case analysis (8), intermediate claims (8), equality transport (4).
Proof neighborhood
Direct dependencies
BT005I beta_product_zero BT005J beta_product_succ_decompose BT0018 le_succ BT000E le_refl BT00PV mul_le_mulDirect 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
induction l - 0006
intro n - 0007
intro q - 0008
intro hpw - 0009
intro hn - 0010
intro hq - 0011
have hn1 : n = 1 - 0012
specialize beta_product_zero b - 0013
specialize beta_product_zero c - 0014
specialize beta_product_zero n - 0015
apply beta_product_zero - 0016
exact hn - 0017
have hq1 : q = 1 - 0018
specialize beta_product_zero d - 0019
specialize beta_product_zero e - 0020
specialize beta_product_zero q - 0021
apply beta_product_zero - 0022
exact hq - 0023
rewrite hn1 - 0024
rewrite hq1 - 0025
specialize le_refl 1 - 0026
exact le_refl - 0027
intro n - 0028
intro q - 0029
intro hpw - 0030
intro hn - 0031
intro hq - 0032
have hnd : exists a r. (((exists ff_h_bppl_left_decomposition_entry. ff_h_bppl_left_decomposition_entry + S (a) = S ((S (l)) * c)) /\ exists ff_q_bppl_left_decomposition_entry. b = ff_q_bppl_left_decomposition_entry * S ((S (l)) * c) + (a))) /\ ((exists ff_u_bppl_left_decomposition_product ff_v_bppl_left_decomposition_product. ((((exists ff_h_bppl_left_decomposition_product_start. ff_h_bppl_left_decomposition_product_start + S (1) = S ((S (0)) * ff_v_bppl_left_decomposition_product)) /\ exists ff_q_bppl_left_decomposition_product_start. ff_u_bppl_left_decomposition_product = ff_q_bppl_left_decomposition_product_start * S ((S (0)) * ff_v_bppl_left_decomposition_product) + (1))) /\ ((((exists ff_h_bppl_left_decomposition_product_terminal. ff_h_bppl_left_decomposition_product_terminal + S (r) = S ((S (l)) * ff_v_bppl_left_decomposition_product)) /\ exists ff_q_bppl_left_decomposition_product_terminal. ff_u_bppl_left_decomposition_product = ff_q_bppl_left_decomposition_product_terminal * S ((S (l)) * ff_v_bppl_left_decomposition_product) + (r))) /\ forall ff_i_bppl_left_decomposition_product. (exists ff_lt_bppl_left_decomposition_product_bound. ff_lt_bppl_left_decomposition_product_bound + S ff_i_bppl_left_decomposition_product = l) -> exists ff_p_bppl_left_decomposition_product ff_r_bppl_left_decomposition_product ff_s_bppl_left_decomposition_product. ((((exists ff_h_bppl_left_decomposition_product_factor. ff_h_bppl_left_decomposition_product_factor + S (ff_p_bppl_left_decomposition_product) = S ((S (ff_i_bppl_left_decomposition_product)) * c)) /\ exists ff_q_bppl_left_decomposition_product_factor. b = ff_q_bppl_left_decomposition_product_factor * S ((S (ff_i_bppl_left_decomposition_product)) * c) + (ff_p_bppl_left_decomposition_product))) /\ ((((exists ff_h_bppl_left_decomposition_product_partial. ff_h_bppl_left_decomposition_product_partial + S (ff_r_bppl_left_decomposition_product) = S ((S (ff_i_bppl_left_decomposition_product)) * ff_v_bppl_left_decomposition_product)) /\ exists ff_q_bppl_left_decomposition_product_partial. ff_u_bppl_left_decomposition_product = ff_q_bppl_left_decomposition_product_partial * S ((S (ff_i_bppl_left_decomposition_product)) * ff_v_bppl_left_decomposition_product) + (ff_r_bppl_left_decomposition_product))) /\ ((((exists ff_h_bppl_left_decomposition_product_successor. ff_h_bppl_left_decomposition_product_successor + S (ff_s_bppl_left_decomposition_product) = S ((S (S ff_i_bppl_left_decomposition_product)) * ff_v_bppl_left_decomposition_product)) /\ exists ff_q_bppl_left_decomposition_product_successor. ff_u_bppl_left_decomposition_product = ff_q_bppl_left_decomposition_product_successor * S ((S (S ff_i_bppl_left_decomposition_product)) * ff_v_bppl_left_decomposition_product) + (ff_s_bppl_left_decomposition_product))) /\ ff_s_bppl_left_decomposition_product = ff_r_bppl_left_decomposition_product * ff_p_bppl_left_decomposition_product)))))) /\ n = r * a) - 0033
specialize beta_product_succ_decompose b - 0034
specialize beta_product_succ_decompose c - 0035
specialize beta_product_succ_decompose l - 0036
specialize beta_product_succ_decompose n - 0037
apply beta_product_succ_decompose - 0038
exact hn - 0039
cases hnd - 0040
cases hnd_witness - 0041
cases hnd_witness_witness - 0042
cases hnd_witness_witness_right - 0043
have hqd : exists a r. (((exists ff_h_bppl_right_decomposition_entry. ff_h_bppl_right_decomposition_entry + S (a) = S ((S (l)) * e)) /\ exists ff_q_bppl_right_decomposition_entry. d = ff_q_bppl_right_decomposition_entry * S ((S (l)) * e) + (a))) /\ ((exists ff_u_bppl_right_decomposition_product ff_v_bppl_right_decomposition_product. ((((exists ff_h_bppl_right_decomposition_product_start. ff_h_bppl_right_decomposition_product_start + S (1) = S ((S (0)) * ff_v_bppl_right_decomposition_product)) /\ exists ff_q_bppl_right_decomposition_product_start. ff_u_bppl_right_decomposition_product = ff_q_bppl_right_decomposition_product_start * S ((S (0)) * ff_v_bppl_right_decomposition_product) + (1))) /\ ((((exists ff_h_bppl_right_decomposition_product_terminal. ff_h_bppl_right_decomposition_product_terminal + S (r) = S ((S (l)) * ff_v_bppl_right_decomposition_product)) /\ exists ff_q_bppl_right_decomposition_product_terminal. ff_u_bppl_right_decomposition_product = ff_q_bppl_right_decomposition_product_terminal * S ((S (l)) * ff_v_bppl_right_decomposition_product) + (r))) /\ forall ff_i_bppl_right_decomposition_product. (exists ff_lt_bppl_right_decomposition_product_bound. ff_lt_bppl_right_decomposition_product_bound + S ff_i_bppl_right_decomposition_product = l) -> exists ff_p_bppl_right_decomposition_product ff_r_bppl_right_decomposition_product ff_s_bppl_right_decomposition_product. ((((exists ff_h_bppl_right_decomposition_product_factor. ff_h_bppl_right_decomposition_product_factor + S (ff_p_bppl_right_decomposition_product) = S ((S (ff_i_bppl_right_decomposition_product)) * e)) /\ exists ff_q_bppl_right_decomposition_product_factor. d = ff_q_bppl_right_decomposition_product_factor * S ((S (ff_i_bppl_right_decomposition_product)) * e) + (ff_p_bppl_right_decomposition_product))) /\ ((((exists ff_h_bppl_right_decomposition_product_partial. ff_h_bppl_right_decomposition_product_partial + S (ff_r_bppl_right_decomposition_product) = S ((S (ff_i_bppl_right_decomposition_product)) * ff_v_bppl_right_decomposition_product)) /\ exists ff_q_bppl_right_decomposition_product_partial. ff_u_bppl_right_decomposition_product = ff_q_bppl_right_decomposition_product_partial * S ((S (ff_i_bppl_right_decomposition_product)) * ff_v_bppl_right_decomposition_product) + (ff_r_bppl_right_decomposition_product))) /\ ((((exists ff_h_bppl_right_decomposition_product_successor. ff_h_bppl_right_decomposition_product_successor + S (ff_s_bppl_right_decomposition_product) = S ((S (S ff_i_bppl_right_decomposition_product)) * ff_v_bppl_right_decomposition_product)) /\ exists ff_q_bppl_right_decomposition_product_successor. ff_u_bppl_right_decomposition_product = ff_q_bppl_right_decomposition_product_successor * S ((S (S ff_i_bppl_right_decomposition_product)) * ff_v_bppl_right_decomposition_product) + (ff_s_bppl_right_decomposition_product))) /\ ff_s_bppl_right_decomposition_product = ff_r_bppl_right_decomposition_product * ff_p_bppl_right_decomposition_product)))))) /\ q = r * a) - 0044
specialize beta_product_succ_decompose d - 0045
specialize beta_product_succ_decompose e - 0046
specialize beta_product_succ_decompose l - 0047
specialize beta_product_succ_decompose q - 0048
apply beta_product_succ_decompose - 0049
exact hq - 0050
cases hqd - 0051
cases hqd_witness - 0052
cases hqd_witness_witness - 0053
cases hqd_witness_witness_right - 0054
have hpw_prefix : forall i a z. (exists bppl_prefix_bound. bppl_prefix_bound + S i = l) -> (((exists ff_h_bppl_prefix_left. ff_h_bppl_prefix_left + S (a) = S ((S (i)) * c)) /\ exists ff_q_bppl_prefix_left. b = ff_q_bppl_prefix_left * S ((S (i)) * c) + (a))) -> (((exists ff_h_bppl_prefix_right. ff_h_bppl_prefix_right + S (z) = S ((S (i)) * e)) /\ exists ff_q_bppl_prefix_right. d = ff_q_bppl_prefix_right * S ((S (i)) * e) + (z))) -> exists bppl_prefix_factor_gap. bppl_prefix_factor_gap + a = z - 0055
intro i - 0056
intro a - 0057
intro z - 0058
intro hi - 0059
intro ha - 0060
intro hz - 0061
specialize hpw i - 0062
specialize hpw a - 0063
specialize hpw z - 0064
apply hpw - 0065
specialize le_succ (S i) - 0066
specialize le_succ l - 0067
apply le_succ - 0068
exact hi - 0069
exact ha - 0070
exact hz - 0071
have hprefix : exists k. k + x1 = x3 - 0072
specialize IH x1 - 0073
specialize IH x3 - 0074
apply IH - 0075
exact hpw_prefix - 0076
exact hnd_witness_witness_right_left - 0077
exact hqd_witness_witness_right_left - 0078
have hentry : exists k. k + x = x2 - 0079
specialize hpw l - 0080
specialize hpw x - 0081
specialize hpw x2 - 0082
apply hpw - 0083
specialize le_refl (S l) - 0084
exact le_refl - 0085
exact hnd_witness_witness_left - 0086
exact hqd_witness_witness_left - 0087
have hfold : exists k. k + (x1 * x) = (x3 * x2) - 0088
specialize mul_le_mul x1 - 0089
specialize mul_le_mul x3 - 0090
specialize mul_le_mul x - 0091
specialize mul_le_mul x2 - 0092
apply mul_le_mul - 0093
exact hprefix - 0094
exact hentry - 0095
rewrite hnd_witness_witness_right_right - 0096
rewrite hqd_witness_witness_right_right - 0097
exact hfold