Exact expanded PA statement
forall a b c ab ac tb tc h. (forall gsp_range_index_eisenstein_scaled_half_range. (exists gsp_lt_gap_eisenstein_scaled_half_range_range_bound. gsp_lt_gap_eisenstein_scaled_half_range_range_bound + S gsp_range_index_eisenstein_scaled_half_range = h) -> (((exists gsp_beta_height_eisenstein_scaled_half_range_range_entry. gsp_beta_height_eisenstein_scaled_half_range_range_entry + S (1 + gsp_range_index_eisenstein_scaled_half_range) = S ((S (gsp_range_index_eisenstein_scaled_half_range)) * c)) /\ exists gsp_beta_quotient_eisenstein_scaled_half_range_range_entry. b = gsp_beta_quotient_eisenstein_scaled_half_range_range_entry * S ((S (gsp_range_index_eisenstein_scaled_half_range)) * c) + (1 + gsp_range_index_eisenstein_scaled_half_range)))) -> (forall ff_i_eisenstein_scaled_repeat. (exists ff_lt_eisenstein_scaled_repeat_bound. ff_lt_eisenstein_scaled_repeat_bound + S ff_i_eisenstein_scaled_repeat = h) -> (((exists ff_h_eisenstein_scaled_repeat_decoded. ff_h_eisenstein_scaled_repeat_decoded + S (a) = S ((S (ff_i_eisenstein_scaled_repeat)) * ac)) /\ exists ff_q_eisenstein_scaled_repeat_decoded. ab = ff_q_eisenstein_scaled_repeat_decoded * S ((S (ff_i_eisenstein_scaled_repeat)) * ac) + (a)))) -> (forall fpmp_index_eisenstein_scaled_pointwise fpmp_left_eisenstein_scaled_pointwise fpmp_right_eisenstein_scaled_pointwise fpmp_target_eisenstein_scaled_pointwise. (exists fpmp_gap_eisenstein_scaled_pointwise. fpmp_gap_eisenstein_scaled_pointwise + S fpmp_index_eisenstein_scaled_pointwise = h) -> (((exists ff_h_fpmp_eisenstein_scaled_pointwise_left. ff_h_fpmp_eisenstein_scaled_pointwise_left + S (fpmp_left_eisenstein_scaled_pointwise) = S ((S (fpmp_index_eisenstein_scaled_pointwise)) * ac)) /\ exists ff_q_fpmp_eisenstein_scaled_pointwise_left. ab = ff_q_fpmp_eisenstein_scaled_pointwise_left * S ((S (fpmp_index_eisenstein_scaled_pointwise)) * ac) + (fpmp_left_eisenstein_scaled_pointwise))) -> (((exists ff_h_fpmp_eisenstein_scaled_pointwise_right. ff_h_fpmp_eisenstein_scaled_pointwise_right + S (fpmp_right_eisenstein_scaled_pointwise) = S ((S (fpmp_index_eisenstein_scaled_pointwise)) * c)) /\ exists ff_q_fpmp_eisenstein_scaled_pointwise_right. b = ff_q_fpmp_eisenstein_scaled_pointwise_right * S ((S (fpmp_index_eisenstein_scaled_pointwise)) * c) + (fpmp_right_eisenstein_scaled_pointwise))) -> (((exists ff_h_fpmp_eisenstein_scaled_pointwise_target. ff_h_fpmp_eisenstein_scaled_pointwise_target + S (fpmp_target_eisenstein_scaled_pointwise) = S ((S (fpmp_index_eisenstein_scaled_pointwise)) * tc)) /\ exists ff_q_fpmp_eisenstein_scaled_pointwise_target. tb = ff_q_fpmp_eisenstein_scaled_pointwise_target * S ((S (fpmp_index_eisenstein_scaled_pointwise)) * tc) + (fpmp_target_eisenstein_scaled_pointwise))) -> fpmp_target_eisenstein_scaled_pointwise = fpmp_left_eisenstein_scaled_pointwise * fpmp_right_eisenstein_scaled_pointwise) -> (forall esd_index_eisenstein_scaled_exact esd_value_eisenstein_scaled_exact. (exists esd_gap_eisenstein_scaled_exact. esd_gap_eisenstein_scaled_exact + S esd_index_eisenstein_scaled_exact = h) -> (((exists ff_h_esd_eisenstein_scaled_exact_decoded. ff_h_esd_eisenstein_scaled_exact_decoded + S (esd_value_eisenstein_scaled_exact) = S ((S (esd_index_eisenstein_scaled_exact)) * tc)) /\ exists ff_q_esd_eisenstein_scaled_exact_decoded. tb = ff_q_esd_eisenstein_scaled_exact_decoded * S ((S (esd_index_eisenstein_scaled_exact)) * tc) + (esd_value_eisenstein_scaled_exact))) -> esd_value_eisenstein_scaled_exact = a * (1 + esd_index_eisenstein_scaled_exact))Structural proof guide
Generated structural guide
A constant prefix times 1,...,h decodes exactly as a*(1+i).
This root lemma is proved directly from the PA rules and the hypotheses introduced by its statement.
The proof proceeds by intermediate claims (2).
Referenced ingredients
none
Proof neighborhood
Direct dependencies
none
Direct 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 a - 0002
intro b - 0003
intro c - 0004
intro ab - 0005
intro ac - 0006
intro tb - 0007
intro tc - 0008
intro h - 0009
intro hhalf - 0010
intro hrepeat - 0011
intro hpointwise - 0012
intro i - 0013
intro x - 0014
intro hi - 0015
intro hx - 0016
have hcanonical : ((exists gsp_beta_height_eisenstein_scaled_canonical_entry. gsp_beta_height_eisenstein_scaled_canonical_entry + S (1 + i) = S ((S (i)) * c)) /\ exists gsp_beta_quotient_eisenstein_scaled_canonical_entry. b = gsp_beta_quotient_eisenstein_scaled_canonical_entry * S ((S (i)) * c) + (1 + i)) - 0017
specialize hhalf i - 0018
apply hhalf - 0019
exact hi - 0020
have hrepeated : ((exists ff_h_eisenstein_scaled_repeated_entry. ff_h_eisenstein_scaled_repeated_entry + S (a) = S ((S (i)) * ac)) /\ exists ff_q_eisenstein_scaled_repeated_entry. ab = ff_q_eisenstein_scaled_repeated_entry * S ((S (i)) * ac) + (a)) - 0021
specialize hrepeat i - 0022
apply hrepeat - 0023
exact hi - 0024
specialize hpointwise i - 0025
specialize hpointwise a - 0026
specialize hpointwise (1 + i) - 0027
specialize hpointwise x - 0028
apply hpointwise - 0029
exact hi - 0030
exact hrepeated - 0031
exact hcanonical - 0032
exact hx