Exact expanded PA statement
forall b c l z. (forall i a. (exists bcf_lt_gap_b5bpao_bound. bcf_lt_gap_b5bpao_bound + S (i) = l) -> (((exists bpr_height_b5bpao_entry. bpr_height_b5bpao_entry + S (a) = S ((S (i)) * c)) /\ exists bpr_quotient_b5bpao_entry. b = bpr_quotient_b5bpao_entry * S ((S (i)) * c) + (a))) -> a = 1) -> (exists ff_u_b5bpao_product ff_v_b5bpao_product. ((((exists ff_h_b5bpao_product_start. ff_h_b5bpao_product_start + S (1) = S ((S (0)) * ff_v_b5bpao_product)) /\ exists ff_q_b5bpao_product_start. ff_u_b5bpao_product = ff_q_b5bpao_product_start * S ((S (0)) * ff_v_b5bpao_product) + (1))) /\ ((((exists ff_h_b5bpao_product_terminal. ff_h_b5bpao_product_terminal + S (z) = S ((S (l)) * ff_v_b5bpao_product)) /\ exists ff_q_b5bpao_product_terminal. ff_u_b5bpao_product = ff_q_b5bpao_product_terminal * S ((S (l)) * ff_v_b5bpao_product) + (z))) /\ forall ff_i_b5bpao_product. (exists ff_lt_b5bpao_product_bound. ff_lt_b5bpao_product_bound + S ff_i_b5bpao_product = l) -> exists ff_p_b5bpao_product ff_r_b5bpao_product ff_s_b5bpao_product. ((((exists ff_h_b5bpao_product_factor. ff_h_b5bpao_product_factor + S (ff_p_b5bpao_product) = S ((S (ff_i_b5bpao_product)) * c)) /\ exists ff_q_b5bpao_product_factor. b = ff_q_b5bpao_product_factor * S ((S (ff_i_b5bpao_product)) * c) + (ff_p_b5bpao_product))) /\ ((((exists ff_h_b5bpao_product_partial. ff_h_b5bpao_product_partial + S (ff_r_b5bpao_product) = S ((S (ff_i_b5bpao_product)) * ff_v_b5bpao_product)) /\ exists ff_q_b5bpao_product_partial. ff_u_b5bpao_product = ff_q_b5bpao_product_partial * S ((S (ff_i_b5bpao_product)) * ff_v_b5bpao_product) + (ff_r_b5bpao_product))) /\ ((((exists ff_h_b5bpao_product_successor. ff_h_b5bpao_product_successor + S (ff_s_b5bpao_product) = S ((S (S ff_i_b5bpao_product)) * ff_v_b5bpao_product)) /\ exists ff_q_b5bpao_product_successor. ff_u_b5bpao_product = ff_q_b5bpao_product_successor * S ((S (S ff_i_b5bpao_product)) * ff_v_b5bpao_product) + (ff_s_b5bpao_product))) /\ ff_s_b5bpao_product = ff_r_b5bpao_product * ff_p_b5bpao_product)))))) -> z = 1Structural proof guide
A Product whose decoded factors are all one is exactly one.
Direct prerequisites: beta_product_zero, beta_product_succ_decompose, le_succ, le_refl, mul_one. The authored body proceeds by structural induction (1), case analysis (4), intermediate claims (4), equality transport (3).
Proof neighborhood
Direct dependencies
BT005I beta_product_zero BT005J beta_product_succ_decompose BT0018 le_succ BT000E le_refl BT000A mul_oneDirect 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
induction l - 0004
intro z - 0005
intro hall - 0006
intro hproduct - 0007
specialize beta_product_zero b - 0008
specialize beta_product_zero c - 0009
specialize beta_product_zero z - 0010
apply beta_product_zero - 0011
exact hproduct - 0012
intro z - 0013
intro hall - 0014
intro hproduct - 0015
have hdecomposition : exists a r. (((exists bpr_height_b5bpao_decomposition_entry. bpr_height_b5bpao_decomposition_entry + S (a) = S ((S (l)) * c)) /\ exists bpr_quotient_b5bpao_decomposition_entry. b = bpr_quotient_b5bpao_decomposition_entry * S ((S (l)) * c) + (a))) /\ ((exists ff_u_b5bpao_decomposition_product ff_v_b5bpao_decomposition_product. ((((exists ff_h_b5bpao_decomposition_product_start. ff_h_b5bpao_decomposition_product_start + S (1) = S ((S (0)) * ff_v_b5bpao_decomposition_product)) /\ exists ff_q_b5bpao_decomposition_product_start. ff_u_b5bpao_decomposition_product = ff_q_b5bpao_decomposition_product_start * S ((S (0)) * ff_v_b5bpao_decomposition_product) + (1))) /\ ((((exists ff_h_b5bpao_decomposition_product_terminal. ff_h_b5bpao_decomposition_product_terminal + S (r) = S ((S (l)) * ff_v_b5bpao_decomposition_product)) /\ exists ff_q_b5bpao_decomposition_product_terminal. ff_u_b5bpao_decomposition_product = ff_q_b5bpao_decomposition_product_terminal * S ((S (l)) * ff_v_b5bpao_decomposition_product) + (r))) /\ forall ff_i_b5bpao_decomposition_product. (exists ff_lt_b5bpao_decomposition_product_bound. ff_lt_b5bpao_decomposition_product_bound + S ff_i_b5bpao_decomposition_product = l) -> exists ff_p_b5bpao_decomposition_product ff_r_b5bpao_decomposition_product ff_s_b5bpao_decomposition_product. ((((exists ff_h_b5bpao_decomposition_product_factor. ff_h_b5bpao_decomposition_product_factor + S (ff_p_b5bpao_decomposition_product) = S ((S (ff_i_b5bpao_decomposition_product)) * c)) /\ exists ff_q_b5bpao_decomposition_product_factor. b = ff_q_b5bpao_decomposition_product_factor * S ((S (ff_i_b5bpao_decomposition_product)) * c) + (ff_p_b5bpao_decomposition_product))) /\ ((((exists ff_h_b5bpao_decomposition_product_partial. ff_h_b5bpao_decomposition_product_partial + S (ff_r_b5bpao_decomposition_product) = S ((S (ff_i_b5bpao_decomposition_product)) * ff_v_b5bpao_decomposition_product)) /\ exists ff_q_b5bpao_decomposition_product_partial. ff_u_b5bpao_decomposition_product = ff_q_b5bpao_decomposition_product_partial * S ((S (ff_i_b5bpao_decomposition_product)) * ff_v_b5bpao_decomposition_product) + (ff_r_b5bpao_decomposition_product))) /\ ((((exists ff_h_b5bpao_decomposition_product_successor. ff_h_b5bpao_decomposition_product_successor + S (ff_s_b5bpao_decomposition_product) = S ((S (S ff_i_b5bpao_decomposition_product)) * ff_v_b5bpao_decomposition_product)) /\ exists ff_q_b5bpao_decomposition_product_successor. ff_u_b5bpao_decomposition_product = ff_q_b5bpao_decomposition_product_successor * S ((S (S ff_i_b5bpao_decomposition_product)) * ff_v_b5bpao_decomposition_product) + (ff_s_b5bpao_decomposition_product))) /\ ff_s_b5bpao_decomposition_product = ff_r_b5bpao_decomposition_product * ff_p_b5bpao_decomposition_product)))))) /\ z = r * a) - 0016
specialize beta_product_succ_decompose b - 0017
specialize beta_product_succ_decompose c - 0018
specialize beta_product_succ_decompose l - 0019
specialize beta_product_succ_decompose z - 0020
apply beta_product_succ_decompose - 0021
exact hproduct - 0022
cases hdecomposition - 0023
cases hdecomposition_witness - 0024
cases hdecomposition_witness_witness - 0025
cases hdecomposition_witness_witness_right - 0026
have hprevious : forall i a. (exists bcf_lt_gap_b5bpao_previous_bound. bcf_lt_gap_b5bpao_previous_bound + S (i) = l) -> (((exists bpr_height_b5bpao_previous_entry. bpr_height_b5bpao_previous_entry + S (a) = S ((S (i)) * c)) /\ exists bpr_quotient_b5bpao_previous_entry. b = bpr_quotient_b5bpao_previous_entry * S ((S (i)) * c) + (a))) -> a = 1 - 0027
intro i - 0028
intro a - 0029
intro hi - 0030
intro ha - 0031
specialize hall i - 0032
specialize hall a - 0033
apply hall - 0034
specialize le_succ (S i) - 0035
specialize le_succ l - 0036
apply le_succ - 0037
exact hi - 0038
exact ha - 0039
have hprefix_one : x1 = 1 - 0040
specialize IH x1 - 0041
apply IH - 0042
exact hprevious - 0043
exact hdecomposition_witness_witness_right_left - 0044
have hfactor_one : x = 1 - 0045
specialize hall l - 0046
specialize hall x - 0047
apply hall - 0048
specialize le_refl (S l) - 0049
exact le_refl - 0050
exact hdecomposition_witness_witness_left - 0051
rewrite hdecomposition_witness_witness_right_right - 0052
rewrite hprefix_one - 0053
rewrite hfactor_one - 0054
specialize mul_one 1 - 0055
exact mul_one