Exact expanded PA statement
forall b c l n. (exists h. h + S l = n) -> ~(forall fom_value_impossible_cover. (exists fom_gap_impossible_cover_value_bound. fom_gap_impossible_cover_value_bound + S (fom_value_impossible_cover) = n) -> exists fom_index_impossible_cover. ((exists fom_gap_impossible_cover_index_bound. fom_gap_impossible_cover_index_bound + S (fom_index_impossible_cover) = l) /\ (((exists fom_beta_height_impossible_cover_entry. fom_beta_height_impossible_cover_entry + S (fom_value_impossible_cover) = S ((S (fom_index_impossible_cover)) * c)) /\ exists fom_beta_quotient_impossible_cover_entry. b = fom_beta_quotient_impossible_cover_entry * S ((S (fom_index_impossible_cover)) * c) + (fom_value_impossible_cover)))))Structural proof guide
Generated structural guide
A prefix shorter than the target interval cannot cover every target value.
Use the direct prerequisites finite_inverse_choice_prefix_exists, finite_inverse_choice_bounded_into, finite_inverse_choice_injective, finite_bounded_injective_surjective, le_trans, le_succ, le_refl, beta_at_unique, lt_irrefl_expanded as previously established PA formulas.
The proof proceeds by case analysis (8), intermediate claims (13), equality transport (1).
Referenced ingredients
Proof neighborhood
Direct dependencies
PA0094 finite_inverse_choice_prefix_exists PA0095 finite_inverse_choice_bounded_into PA0096 finite_inverse_choice_injective PA004W finite_bounded_injective_surjective PA000R le_trans PA002O le_succ PA001A le_refl PA002F beta_at_unique PA0010 lt_irrefl_expandedDirect 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 b - 0002
intro c - 0003
intro l - 0004
intro n - 0005
intro hln - 0006
intro hcover - 0007
have hchoice_exists : exists z d. (forall fom_value_impossible_choice. (exists fom_gap_impossible_choice_value_bound. fom_gap_impossible_choice_value_bound + S (fom_value_impossible_choice) = n) -> exists fom_index_impossible_choice. ((((exists fom_beta_height_impossible_choice_choice_entry. fom_beta_height_impossible_choice_choice_entry + S (fom_index_impossible_choice) = S ((S (fom_value_impossible_choice)) * d)) /\ exists fom_beta_quotient_impossible_choice_choice_entry. z = fom_beta_quotient_impossible_choice_choice_entry * S ((S (fom_value_impossible_choice)) * d) + (fom_index_impossible_choice))) /\ ((exists fom_gap_impossible_choice_index_bound. fom_gap_impossible_choice_index_bound + S (fom_index_impossible_choice) = l) /\ (((exists fom_beta_height_impossible_choice_source_entry. fom_beta_height_impossible_choice_source_entry + S (fom_value_impossible_choice) = S ((S (fom_index_impossible_choice)) * c)) /\ exists fom_beta_quotient_impossible_choice_source_entry. b = fom_beta_quotient_impossible_choice_source_entry * S ((S (fom_index_impossible_choice)) * c) + (fom_value_impossible_choice)))))) - 0008
specialize finite_inverse_choice_prefix_exists b - 0009
specialize finite_inverse_choice_prefix_exists c - 0010
specialize finite_inverse_choice_prefix_exists l - 0011
specialize finite_inverse_choice_prefix_exists n - 0012
apply finite_inverse_choice_prefix_exists - 0013
exact hcover - 0014
cases hchoice_exists - 0015
cases hchoice_exists_witness - 0016
have hbounded : forall fom_index_impossible_bounded. (exists fom_gap_impossible_bounded_index_bound. fom_gap_impossible_bounded_index_bound + S (fom_index_impossible_bounded) = n) -> exists fom_value_impossible_bounded. ((((exists fom_beta_height_impossible_bounded_entry. fom_beta_height_impossible_bounded_entry + S (fom_value_impossible_bounded) = S ((S (fom_index_impossible_bounded)) * x1)) /\ exists fom_beta_quotient_impossible_bounded_entry. x = fom_beta_quotient_impossible_bounded_entry * S ((S (fom_index_impossible_bounded)) * x1) + (fom_value_impossible_bounded))) /\ (exists fom_gap_impossible_bounded_value_bound. fom_gap_impossible_bounded_value_bound + S (fom_value_impossible_bounded) = l)) - 0017
specialize finite_inverse_choice_bounded_into b - 0018
specialize finite_inverse_choice_bounded_into c - 0019
specialize finite_inverse_choice_bounded_into l - 0020
specialize finite_inverse_choice_bounded_into x - 0021
specialize finite_inverse_choice_bounded_into x1 - 0022
specialize finite_inverse_choice_bounded_into n - 0023
apply finite_inverse_choice_bounded_into - 0024
exact hchoice_exists_witness_witness - 0025
have hinjective : forall fp_i_impossible_injective fp_j_impossible_injective fp_value_impossible_injective. (exists fp_gap_impossible_injective_i. fp_gap_impossible_injective_i + S fp_i_impossible_injective = n) -> (exists fp_gap_impossible_injective_j. fp_gap_impossible_injective_j + S fp_j_impossible_injective = n) -> (((exists ff_h_impossible_injective_left. ff_h_impossible_injective_left + S (fp_value_impossible_injective) = S ((S (fp_i_impossible_injective)) * x1)) /\ exists ff_q_impossible_injective_left. x = ff_q_impossible_injective_left * S ((S (fp_i_impossible_injective)) * x1) + (fp_value_impossible_injective))) -> (((exists ff_h_impossible_injective_right. ff_h_impossible_injective_right + S (fp_value_impossible_injective) = S ((S (fp_j_impossible_injective)) * x1)) /\ exists ff_q_impossible_injective_right. x = ff_q_impossible_injective_right * S ((S (fp_j_impossible_injective)) * x1) + (fp_value_impossible_injective))) -> fp_i_impossible_injective = fp_j_impossible_injective - 0026
specialize finite_inverse_choice_injective b - 0027
specialize finite_inverse_choice_injective c - 0028
specialize finite_inverse_choice_injective l - 0029
specialize finite_inverse_choice_injective x - 0030
specialize finite_inverse_choice_injective x1 - 0031
specialize finite_inverse_choice_injective n - 0032
apply finite_inverse_choice_injective - 0033
exact hchoice_exists_witness_witness - 0034
have hbounded_all : forall fom_index_impossible_bounded. (exists fom_gap_impossible_bounded_index_bound. fom_gap_impossible_bounded_index_bound + S (fom_index_impossible_bounded) = n) -> exists fom_value_impossible_bounded. ((((exists fom_beta_height_impossible_bounded_entry. fom_beta_height_impossible_bounded_entry + S (fom_value_impossible_bounded) = S ((S (fom_index_impossible_bounded)) * x1)) /\ exists fom_beta_quotient_impossible_bounded_entry. x = fom_beta_quotient_impossible_bounded_entry * S ((S (fom_index_impossible_bounded)) * x1) + (fom_value_impossible_bounded))) /\ (exists fom_gap_impossible_bounded_value_bound. fom_gap_impossible_bounded_value_bound + S (fom_value_impossible_bounded) = l)) - 0035
exact hbounded - 0036
have hbounded_small : forall fp_i_impossible_small_bounded. (exists fp_gap_impossible_small_bounded_index. fp_gap_impossible_small_bounded_index + S fp_i_impossible_small_bounded = S l) -> exists fp_value_impossible_small_bounded. ((((exists ff_h_impossible_small_bounded_entry. ff_h_impossible_small_bounded_entry + S (fp_value_impossible_small_bounded) = S ((S (fp_i_impossible_small_bounded)) * x1)) /\ exists ff_q_impossible_small_bounded_entry. x = ff_q_impossible_small_bounded_entry * S ((S (fp_i_impossible_small_bounded)) * x1) + (fp_value_impossible_small_bounded))) /\ (exists fp_gap_impossible_small_bounded_value. fp_gap_impossible_small_bounded_value + S fp_value_impossible_small_bounded = S l)) - 0037
intro i - 0038
intro hi - 0039
have hin : exists h. h + S i = n - 0040
specialize le_trans (S i) - 0041
specialize le_trans (S l) - 0042
specialize le_trans n - 0043
apply le_trans - 0044
exact hi - 0045
exact hln - 0046
specialize hbounded_all i - 0047
have hentry : exists v. (((exists h. h + S v = S ((S i) * x1)) /\ exists q. x = q * S ((S i) * x1) + v) /\ exists h. h + S v = l) - 0048
apply hbounded_all - 0049
exact hin - 0050
cases hentry - 0051
cases hentry_witness - 0052
exists x2 - 0053
split - 0054
exact hentry_witness_left - 0055
specialize le_succ (S x2) - 0056
specialize le_succ l - 0057
apply le_succ - 0058
exact hentry_witness_right - 0059
have hinjective_small : forall fp_i_impossible_small_injective fp_j_impossible_small_injective fp_value_impossible_small_injective. (exists fp_gap_impossible_small_injective_i. fp_gap_impossible_small_injective_i + S fp_i_impossible_small_injective = S l) -> (exists fp_gap_impossible_small_injective_j. fp_gap_impossible_small_injective_j + S fp_j_impossible_small_injective = S l) -> (((exists ff_h_impossible_small_injective_left. ff_h_impossible_small_injective_left + S (fp_value_impossible_small_injective) = S ((S (fp_i_impossible_small_injective)) * x1)) /\ exists ff_q_impossible_small_injective_left. x = ff_q_impossible_small_injective_left * S ((S (fp_i_impossible_small_injective)) * x1) + (fp_value_impossible_small_injective))) -> (((exists ff_h_impossible_small_injective_right. ff_h_impossible_small_injective_right + S (fp_value_impossible_small_injective) = S ((S (fp_j_impossible_small_injective)) * x1)) /\ exists ff_q_impossible_small_injective_right. x = ff_q_impossible_small_injective_right * S ((S (fp_j_impossible_small_injective)) * x1) + (fp_value_impossible_small_injective))) -> fp_i_impossible_small_injective = fp_j_impossible_small_injective - 0060
intro i - 0061
intro j - 0062
intro v - 0063
intro hi - 0064
intro hj - 0065
intro hvi - 0066
intro hvj - 0067
specialize hinjective i - 0068
specialize hinjective j - 0069
specialize hinjective v - 0070
apply hinjective - 0071
specialize le_trans (S i) - 0072
specialize le_trans (S l) - 0073
specialize le_trans n - 0074
apply le_trans - 0075
exact hi - 0076
exact hln - 0077
specialize le_trans (S j) - 0078
specialize le_trans (S l) - 0079
specialize le_trans n - 0080
apply le_trans - 0081
exact hj - 0082
exact hln - 0083
exact hvi - 0084
exact hvj - 0085
have hsurjective : forall fp_value_impossible_small_surjective. (exists fp_gap_impossible_small_surjective_value. fp_gap_impossible_small_surjective_value + S fp_value_impossible_small_surjective = S l) -> exists fp_i_impossible_small_surjective. ((exists fp_gap_impossible_small_surjective_index. fp_gap_impossible_small_surjective_index + S fp_i_impossible_small_surjective = S l) /\ (((exists ff_h_impossible_small_surjective_entry. ff_h_impossible_small_surjective_entry + S (fp_value_impossible_small_surjective) = S ((S (fp_i_impossible_small_surjective)) * x1)) /\ exists ff_q_impossible_small_surjective_entry. x = ff_q_impossible_small_surjective_entry * S ((S (fp_i_impossible_small_surjective)) * x1) + (fp_value_impossible_small_surjective)))) - 0086
specialize finite_bounded_injective_surjective (S l) - 0087
specialize finite_bounded_injective_surjective x - 0088
specialize finite_bounded_injective_surjective x1 - 0089
apply finite_bounded_injective_surjective - 0090
exact hbounded_small - 0091
exact hinjective_small - 0092
specialize hsurjective l - 0093
have hoccurs : exists i. ((exists h. h + S i = S l) /\ (((exists ff_h_impossible_last_entry. ff_h_impossible_last_entry + S (l) = S ((S (i)) * x1)) /\ exists ff_q_impossible_last_entry. x = ff_q_impossible_last_entry * S ((S (i)) * x1) + (l)))) - 0094
apply hsurjective - 0095
specialize le_refl (S l) - 0096
exact le_refl - 0097
cases hoccurs - 0098
cases hoccurs_witness - 0099
have hindex_n : exists h. h + S x2 = n - 0100
specialize le_trans (S x2) - 0101
specialize le_trans (S l) - 0102
specialize le_trans n - 0103
apply le_trans - 0104
exact hoccurs_witness_left - 0105
exact hln - 0106
specialize hbounded x2 - 0107
have hstored : exists v. ((((exists ff_h_impossible_stored_entry. ff_h_impossible_stored_entry + S (v) = S ((S (x2)) * x1)) /\ exists ff_q_impossible_stored_entry. x = ff_q_impossible_stored_entry * S ((S (x2)) * x1) + (v))) /\ exists h. h + S v = l) - 0108
apply hbounded - 0109
exact hindex_n - 0110
cases hstored - 0111
cases hstored_witness - 0112
have hlv : l = x3 - 0113
specialize beta_at_unique x - 0114
specialize beta_at_unique x1 - 0115
specialize beta_at_unique x2 - 0116
specialize beta_at_unique l - 0117
specialize beta_at_unique x3 - 0118
apply beta_at_unique - 0119
exact hoccurs_witness_right - 0120
exact hstored_witness_left - 0121
rewrite <- hlv at hstored_witness_right - 0122
specialize lt_irrefl_expanded l - 0123
apply lt_irrefl_expanded - 0124
exact hstored_witness_right