Current library: Alpha v34, 4,223 checked-use theorems; Stable remains 432. Historical first admissions, original proof editions, and non-admitted aliases are preserved. Exact original first-admission records.
Statement with defined notation
∀ b. ∀ c. ∀ l. (∀ x. Lt(x,l) → ∃ y. BetaAt(b,c,x,y) ∧ Lt(y,S S l)) → (∀ x. ∀ y. Lt(x,l) → BetaAt(b,c,x,y) → ¬y = 0 ∧ ¬S y = S S l) → InjectivePrefix(b,c,l) → ∀ x. Lt(x,S S l) → ¬x = 0 ∧ ¬S x = S S l → ContainsPrefix(b,c,l,x)Every purple notation token opens its conservative definition. This is a reading surface; the compiler expands the statement before the unchanged kernel checks it.
Definitions used by this theorem
In the theorem statement
8 occurrences
In local proof propositions
20 occurrences
Exact expanded native-PA statement
forall b c l. (forall fom_index_wpoi_terminal_bounded. (exists fom_gap_wpoi_terminal_bounded_index_bound. fom_gap_wpoi_terminal_bounded_index_bound + S (fom_index_wpoi_terminal_bounded) = l) -> exists fom_value_wpoi_terminal_bounded. ((((exists fom_beta_height_wpoi_terminal_bounded_entry. fom_beta_height_wpoi_terminal_bounded_entry + S (fom_value_wpoi_terminal_bounded) = S ((S (fom_index_wpoi_terminal_bounded)) * c)) /\ exists fom_beta_quotient_wpoi_terminal_bounded_entry. b = fom_beta_quotient_wpoi_terminal_bounded_entry * S ((S (fom_index_wpoi_terminal_bounded)) * c) + (fom_value_wpoi_terminal_bounded))) /\ (exists fom_gap_wpoi_terminal_bounded_value_bound. fom_gap_wpoi_terminal_bounded_value_bound + S (fom_value_wpoi_terminal_bounded) = S (S l)))) -> (forall wpo_position_wpoi_terminal_nonendpoint wpo_value_wpoi_terminal_nonendpoint. (exists wpo_gap_wpoi_terminal_nonendpoint_position_bound. wpo_gap_wpoi_terminal_nonendpoint_position_bound + S (wpo_position_wpoi_terminal_nonendpoint) = l) -> (((exists wpo_beta_height_wpoi_terminal_nonendpoint_entry. wpo_beta_height_wpoi_terminal_nonendpoint_entry + S (wpo_value_wpoi_terminal_nonendpoint) = S ((S (wpo_position_wpoi_terminal_nonendpoint)) * c)) /\ exists wpo_beta_quotient_wpoi_terminal_nonendpoint_entry. b = wpo_beta_quotient_wpoi_terminal_nonendpoint_entry * S ((S (wpo_position_wpoi_terminal_nonendpoint)) * c) + (wpo_value_wpoi_terminal_nonendpoint))) -> (~(wpo_value_wpoi_terminal_nonendpoint = 0) /\ ~((S wpo_value_wpoi_terminal_nonendpoint) = S (S l)))) -> (forall wpo_injective_left_wpoi_terminal_injective wpo_injective_right_wpoi_terminal_injective wpo_injective_value_wpoi_terminal_injective. (exists wpo_gap_wpoi_terminal_injective_left_bound. wpo_gap_wpoi_terminal_injective_left_bound + S (wpo_injective_left_wpoi_terminal_injective) = l) -> (exists wpo_gap_wpoi_terminal_injective_right_bound. wpo_gap_wpoi_terminal_injective_right_bound + S (wpo_injective_right_wpoi_terminal_injective) = l) -> (((exists wpo_beta_height_wpoi_terminal_injective_left_entry. wpo_beta_height_wpoi_terminal_injective_left_entry + S (wpo_injective_value_wpoi_terminal_injective) = S ((S (wpo_injective_left_wpoi_terminal_injective)) * c)) /\ exists wpo_beta_quotient_wpoi_terminal_injective_left_entry. b = wpo_beta_quotient_wpoi_terminal_injective_left_entry * S ((S (wpo_injective_left_wpoi_terminal_injective)) * c) + (wpo_injective_value_wpoi_terminal_injective))) -> (((exists wpo_beta_height_wpoi_terminal_injective_right_entry. wpo_beta_height_wpoi_terminal_injective_right_entry + S (wpo_injective_value_wpoi_terminal_injective) = S ((S (wpo_injective_right_wpoi_terminal_injective)) * c)) /\ exists wpo_beta_quotient_wpoi_terminal_injective_right_entry. b = wpo_beta_quotient_wpoi_terminal_injective_right_entry * S ((S (wpo_injective_right_wpoi_terminal_injective)) * c) + (wpo_injective_value_wpoi_terminal_injective))) -> wpo_injective_left_wpoi_terminal_injective = wpo_injective_right_wpoi_terminal_injective) -> forall s. (exists wpo_gap_wpoi_terminal_value_bound. wpo_gap_wpoi_terminal_value_bound + S (s) = S (S l)) -> (~(s = 0) /\ ~((S s) = S (S l))) -> (exists q. ((exists wpo_gap_wpoi_terminal_index_bound. wpo_gap_wpoi_terminal_index_bound + S (q) = l) /\ (((exists wpo_beta_height_wpoi_terminal_entry. wpo_beta_height_wpoi_terminal_entry + S (s) = S ((S (q)) * c)) /\ exists wpo_beta_quotient_wpoi_terminal_entry. b = wpo_beta_quotient_wpoi_terminal_entry * S ((S (q)) * c) + (s)))))Proof neighborhood
Direct theorem prerequisites
PA002L one_le_of_ne_zero PA000V le_of_succ_le_succ PA000W le_eq_or_lt PA001V nonzero_is_succ PA007D beta_magnitude_predecessor_recode_exists PA00B3 beta_magnitude_predecessor_recode_surjective PA007T beta_magnitude_predecessor_recode_reflectDirect theorem dependents
Definition-aware tactic body
Only local propositions introduced by have or suffices are compacted. The untrusted compiler re-expands each one before the original tactic script is replayed; defined notation is never accepted by the kernel. Open the exact replay line beneath every changed command.
Read the argument
Proof checkpoints
This is a reading aid, not a new proof or a proof-tree certificate. Checkpoint groups are consecutive commands, not inferred branch boundaries. Every step links to the preserved script.
Named ingredients (7)
01Fix variables and assumptionsL1–6
02Establish hmagnitudeL7–9
Establish this local claim before using it. It is not an additional assumption.
- L7
have hmagnitude : ∀ gmp_index_wpoi_terminal_magnitude_range. Lt(gmp_index_wpoi_terminal_magnitude_range,l) → ∃ x. BetaAt(b,c,gmp_index_wpoi_terminal_magnitude_range,x) ∧ (Lt(0,x) ∧ Le(x,l))Definitions: Lt(gmp_index_wpoi_terminal_magnitude_range,l)BetaAt(b,c,gmp_index_wpoi_terminal_magnitude_range,x)Lt(0,x)Le(x,l)Original native command in the exact edition - L8
intro q - L9
intro hq
03Establish hbounded_entryL10–13
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hbounded.
- L10
have hbounded_entry : ∃ x. BetaAt(b,c,q,x) ∧ Lt(x,S S l)Definitions: BetaAt(b,c,q,x)Lt(x,S S l)Original native command in the exact edition - L11
specialize hbounded q - L12
apply hbounded - L13
exact hq
04Separate the logical casesL14–15
05Establish hxnonendpointL16–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hnonendpoint.
06Separate the logical casesL22–22
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L22
cases hxnonendpoint
07Construct an explicit witnessL23–23
Supply the displayed value, then prove that it has the required property.
- L23
exists x
08Separate the logical casesL24–24
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L24
split
09Use earlier factsL25–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
exact hbounded_entry_witness_left
10Separate the logical casesL26–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L26
split
11Use earlier factsL27–29
12Establish hxle_succL30–34
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
13Establish hxsplitL35–39
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.
14Separate the logical casesL40–41
15Use earlier factsL42–42
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L42
apply hxnonendpoint_right
16Calculate and transport equalitiesL43–44
17Use earlier factsL45–48
18Establish hrecode_existsL49–55
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta magnitude predecessor recode exists.
- L49
have hrecode_exists : ∃ rb. ∃ rc. ∀ x. ∀ y. Lt(x,l) → BetaAt(b,c,x,S y) → BetaAt(rb,rc,x,y)Definitions: Lt(x,l)BetaAt(b,c,x,S y)BetaAt(rb,rc,x,y)Original native command in the exact edition - L50
specialize beta_magnitude_predecessor_recode_exists b - L51
specialize beta_magnitude_predecessor_recode_exists c - L52
specialize beta_magnitude_predecessor_recode_exists l - L53
specialize beta_magnitude_predecessor_recode_exists l - L54
apply beta_magnitude_predecessor_recode_exists - L55
exact hmagnitude
19Separate the logical casesL56–57
20Establish hrecodeL58–59
Establish this local claim before using it. It is not an additional assumption.
- L58
have hrecode : ∀ gmp_index_wpoi_terminal_recode_x. ∀ gmp_predecessor_wpoi_terminal_recode_x. Lt(gmp_index_wpoi_terminal_recode_x,l) → BetaAt(b,c,gmp_index_wpoi_terminal_recode_x,S gmp_predecessor_wpoi_terminal_recode_x) → BetaAt(x,x1,gmp_index_wpoi_terminal_recode_x,gmp_predecessor_wpoi_terminal_recode_x)Definitions: Lt(gmp_index_wpoi_terminal_recode_x,l)BetaAt(b,c,gmp_index_wpoi_terminal_recode_x,S gmp_predecessor_wpoi_terminal_recode_x)BetaAt(x,x1,gmp_index_wpoi_terminal_recode_x,gmp_predecessor_wpoi_terminal_recode_x)Original native command in the exact edition - L59
exact hrecode_exists_witness_witness
21Establish hsurjectiveL60–69
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta magnitude predecessor recode surjective.
- L60
have hsurjective : SurjectivePrefix(x,x1,l)Definitions: SurjectivePrefix(x,x1,l)Original native command in the exact edition - L61
specialize beta_magnitude_predecessor_recode_surjective b - L62
specialize beta_magnitude_predecessor_recode_surjective c - L63
specialize beta_magnitude_predecessor_recode_surjective x - L64
specialize beta_magnitude_predecessor_recode_surjective x1 - L65
specialize beta_magnitude_predecessor_recode_surjective l - L66
apply beta_magnitude_predecessor_recode_surjective - L67
exact hmagnitude - L68
exact hinjective - L69
exact hrecode
22Fix variables and assumptionsL70–72
23Separate the logical casesL73–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L73
cases hsendpoints
24Establish hspredL74–77
25Separate the logical casesL78–78
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L78
cases hspred
26Establish hsleL79–84
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
27Establish hrleL85–89
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le of succ le succ.
28Establish hrsplitL90–94
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply le eq or lt.
29Separate the logical casesL95–96
30Use earlier factsL97–97
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L97
apply hsendpoints_right
31Calculate and transport equalitiesL98–100
32Establish htargetL101–104
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hsurjective.
- L101
have htarget : ContainsPrefix(x,x1,l,x2)Definitions: ContainsPrefix(x,x1,l,x2)Original native command in the exact edition - L102
specialize hsurjective x2 - L103
apply hsurjective - L104
exact hrsplit_right
33Separate the logical casesL105–106
34Establish hsourceL107–116
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta magnitude predecessor recode reflect.
- L107
have hsource : BetaAt(b,c,x3,S x2)Definitions: BetaAt(b,c,x3,S x2)Original native command in the exact edition - L108
specialize beta_magnitude_predecessor_recode_reflect b - L109
specialize beta_magnitude_predecessor_recode_reflect c - L110
specialize beta_magnitude_predecessor_recode_reflect x - L111
specialize beta_magnitude_predecessor_recode_reflect x1 - L112
specialize beta_magnitude_predecessor_recode_reflect l - L113
specialize beta_magnitude_predecessor_recode_reflect l - L114
specialize beta_magnitude_predecessor_recode_reflect x3 - L115
specialize beta_magnitude_predecessor_recode_reflect x2 - L116
apply beta_magnitude_predecessor_recode_reflect
35Use earlier factsL117–120
36Construct an explicit witnessL121–121
Supply the displayed value, then prove that it has the required property.
- L121
exists x3
37Separate the logical casesL122–122
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L122
split
38Use earlier factsL123–123
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L123
exact htarget_witness_left
39Calculate and transport equalitiesL124–125
40Use earlier factsL126–126
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L126
exact hsource
Original defined command ledger · 126 lines
- 0001
intro b - 0002
intro c - 0003
intro l - 0004
intro hbounded - 0005
intro hnonendpoint - 0006
intro hinjective - 0007
have hmagnitude : ∀ gmp_index_wpoi_terminal_magnitude_range. Lt(gmp_index_wpoi_terminal_magnitude_range,l) → ∃ x. BetaAt(b,c,gmp_index_wpoi_terminal_magnitude_range,x) ∧ (Lt(0,x) ∧ Le(x,l))Exact native replay line
have hmagnitude : forall gmp_index_wpoi_terminal_magnitude_range. (exists gsp_lt_gap_wpoi_terminal_magnitude_range_index_bound. gsp_lt_gap_wpoi_terminal_magnitude_range_index_bound + S gmp_index_wpoi_terminal_magnitude_range = l) -> exists gmp_magnitude_wpoi_terminal_magnitude_range. ((((exists ff_h_gmp_wpoi_terminal_magnitude_range_decoded. ff_h_gmp_wpoi_terminal_magnitude_range_decoded + S (gmp_magnitude_wpoi_terminal_magnitude_range) = S ((S (gmp_index_wpoi_terminal_magnitude_range)) * c)) /\ exists ff_q_gmp_wpoi_terminal_magnitude_range_decoded. b = ff_q_gmp_wpoi_terminal_magnitude_range_decoded * S ((S (gmp_index_wpoi_terminal_magnitude_range)) * c) + (gmp_magnitude_wpoi_terminal_magnitude_range))) /\ ((exists gsp_lt_gap_wpoi_terminal_magnitude_range_positive. gsp_lt_gap_wpoi_terminal_magnitude_range_positive + S 0 = gmp_magnitude_wpoi_terminal_magnitude_range) /\ (exists gsp_le_gap_wpoi_terminal_magnitude_range_bounded. gsp_le_gap_wpoi_terminal_magnitude_range_bounded + gmp_magnitude_wpoi_terminal_magnitude_range = l))) - 0008
intro q - 0009
intro hq - 0010
have hbounded_entry : ∃ x. BetaAt(b,c,q,x) ∧ Lt(x,S S l)Exact native replay line
have hbounded_entry : exists x. ((((exists wpo_beta_height_wpoi_terminal_source_entry_x. wpo_beta_height_wpoi_terminal_source_entry_x + S (x) = S ((S (q)) * c)) /\ exists wpo_beta_quotient_wpoi_terminal_source_entry_x. b = wpo_beta_quotient_wpoi_terminal_source_entry_x * S ((S (q)) * c) + (x))) /\ (exists wpo_gap_wpoi_terminal_source_bound_x. wpo_gap_wpoi_terminal_source_bound_x + S (x) = S (S l))) - 0011
specialize hbounded q - 0012
apply hbounded - 0013
exact hq - 0014
cases hbounded_entry - 0015
cases hbounded_entry_witness - 0016
have hxnonendpoint : ~(x = 0) /\ ~((S x) = S (S l)) - 0017
specialize hnonendpoint q - 0018
specialize hnonendpoint x - 0019
apply hnonendpoint - 0020
exact hq - 0021
exact hbounded_entry_witness_left - 0022
cases hxnonendpoint - 0023
exists x - 0024
split - 0025
exact hbounded_entry_witness_left - 0026
split - 0027
specialize one_le_of_ne_zero x - 0028
apply one_le_of_ne_zero - 0029
exact hxnonendpoint_left - 0030
have hxle_succ : Le(x,S l)Exact native replay line
have hxle_succ : exists h. h + x = S l - 0031
specialize le_of_succ_le_succ x - 0032
specialize le_of_succ_le_succ (S l) - 0033
apply le_of_succ_le_succ - 0034
exact hbounded_entry_witness_right - 0035
have hxsplit : x = S l ∨ Lt(x,S l)Exact native replay line
have hxsplit : x = S l \/ exists h. h + S x = S l - 0036
specialize le_eq_or_lt x - 0037
specialize le_eq_or_lt (S l) - 0038
apply le_eq_or_lt - 0039
exact hxle_succ - 0040
cases hxsplit - 0041
exfalso - 0042
apply hxnonendpoint_right - 0043
rewrite hxsplit_left - 0044
refl - 0045
specialize le_of_succ_le_succ x - 0046
specialize le_of_succ_le_succ l - 0047
apply le_of_succ_le_succ - 0048
exact hxsplit_right - 0049
have hrecode_exists : ∃ rb. ∃ rc. ∀ x. ∀ y. Lt(x,l) → BetaAt(b,c,x,S y) → BetaAt(rb,rc,x,y)Exact native replay line
have hrecode_exists : exists rb rc. (forall gmp_index_wpoi_terminal_recode gmp_predecessor_wpoi_terminal_recode. (exists gsp_lt_gap_wpoi_terminal_recode_index_bound. gsp_lt_gap_wpoi_terminal_recode_index_bound + S gmp_index_wpoi_terminal_recode = l) -> (((exists gsp_beta_height_gmp_wpoi_terminal_recode_source. gsp_beta_height_gmp_wpoi_terminal_recode_source + S (S gmp_predecessor_wpoi_terminal_recode) = S ((S (gmp_index_wpoi_terminal_recode)) * c)) /\ exists gsp_beta_quotient_gmp_wpoi_terminal_recode_source. b = gsp_beta_quotient_gmp_wpoi_terminal_recode_source * S ((S (gmp_index_wpoi_terminal_recode)) * c) + (S gmp_predecessor_wpoi_terminal_recode))) -> (((exists ff_h_gmp_wpoi_terminal_recode_target. ff_h_gmp_wpoi_terminal_recode_target + S (gmp_predecessor_wpoi_terminal_recode) = S ((S (gmp_index_wpoi_terminal_recode)) * rc)) /\ exists ff_q_gmp_wpoi_terminal_recode_target. rb = ff_q_gmp_wpoi_terminal_recode_target * S ((S (gmp_index_wpoi_terminal_recode)) * rc) + (gmp_predecessor_wpoi_terminal_recode)))) - 0050
specialize beta_magnitude_predecessor_recode_exists b - 0051
specialize beta_magnitude_predecessor_recode_exists c - 0052
specialize beta_magnitude_predecessor_recode_exists l - 0053
specialize beta_magnitude_predecessor_recode_exists l - 0054
apply beta_magnitude_predecessor_recode_exists - 0055
exact hmagnitude - 0056
cases hrecode_exists - 0057
cases hrecode_exists_witness - 0058
have hrecode : ∀ gmp_index_wpoi_terminal_recode_x. ∀ gmp_predecessor_wpoi_terminal_recode_x. Lt(gmp_index_wpoi_terminal_recode_x,l) → BetaAt(b,c,gmp_index_wpoi_terminal_recode_x,S gmp_predecessor_wpoi_terminal_recode_x) → BetaAt(x,x1,gmp_index_wpoi_terminal_recode_x,gmp_predecessor_wpoi_terminal_recode_x)Exact native replay line
have hrecode : forall gmp_index_wpoi_terminal_recode_x gmp_predecessor_wpoi_terminal_recode_x. (exists gsp_lt_gap_wpoi_terminal_recode_x_index_bound. gsp_lt_gap_wpoi_terminal_recode_x_index_bound + S gmp_index_wpoi_terminal_recode_x = l) -> (((exists gsp_beta_height_gmp_wpoi_terminal_recode_x_source. gsp_beta_height_gmp_wpoi_terminal_recode_x_source + S (S gmp_predecessor_wpoi_terminal_recode_x) = S ((S (gmp_index_wpoi_terminal_recode_x)) * c)) /\ exists gsp_beta_quotient_gmp_wpoi_terminal_recode_x_source. b = gsp_beta_quotient_gmp_wpoi_terminal_recode_x_source * S ((S (gmp_index_wpoi_terminal_recode_x)) * c) + (S gmp_predecessor_wpoi_terminal_recode_x))) -> (((exists ff_h_gmp_wpoi_terminal_recode_x_target. ff_h_gmp_wpoi_terminal_recode_x_target + S (gmp_predecessor_wpoi_terminal_recode_x) = S ((S (gmp_index_wpoi_terminal_recode_x)) * x1)) /\ exists ff_q_gmp_wpoi_terminal_recode_x_target. x = ff_q_gmp_wpoi_terminal_recode_x_target * S ((S (gmp_index_wpoi_terminal_recode_x)) * x1) + (gmp_predecessor_wpoi_terminal_recode_x))) - 0059
exact hrecode_exists_witness_witness - 0060
have hsurjective : SurjectivePrefix(x,x1,l)Exact native replay line
have hsurjective : forall fp_value_wpoi_terminal_recode_surjective_x. (exists fp_gap_wpoi_terminal_recode_surjective_x_value. fp_gap_wpoi_terminal_recode_surjective_x_value + S fp_value_wpoi_terminal_recode_surjective_x = l) -> exists fp_i_wpoi_terminal_recode_surjective_x. ((exists fp_gap_wpoi_terminal_recode_surjective_x_index. fp_gap_wpoi_terminal_recode_surjective_x_index + S fp_i_wpoi_terminal_recode_surjective_x = l) /\ (((exists ff_h_wpoi_terminal_recode_surjective_x_entry. ff_h_wpoi_terminal_recode_surjective_x_entry + S (fp_value_wpoi_terminal_recode_surjective_x) = S ((S (fp_i_wpoi_terminal_recode_surjective_x)) * x1)) /\ exists ff_q_wpoi_terminal_recode_surjective_x_entry. x = ff_q_wpoi_terminal_recode_surjective_x_entry * S ((S (fp_i_wpoi_terminal_recode_surjective_x)) * x1) + (fp_value_wpoi_terminal_recode_surjective_x)))) - 0061
specialize beta_magnitude_predecessor_recode_surjective b - 0062
specialize beta_magnitude_predecessor_recode_surjective c - 0063
specialize beta_magnitude_predecessor_recode_surjective x - 0064
specialize beta_magnitude_predecessor_recode_surjective x1 - 0065
specialize beta_magnitude_predecessor_recode_surjective l - 0066
apply beta_magnitude_predecessor_recode_surjective - 0067
exact hmagnitude - 0068
exact hinjective - 0069
exact hrecode - 0070
intro s - 0071
intro hsbound - 0072
intro hsendpoints - 0073
cases hsendpoints - 0074
have hspred : exists r. s = S r - 0075
specialize nonzero_is_succ s - 0076
apply nonzero_is_succ - 0077
exact hsendpoints_left - 0078
cases hspred - 0079
have hsle : Le(s,S l)Exact native replay line
have hsle : exists h. h + s = S l - 0080
specialize le_of_succ_le_succ s - 0081
specialize le_of_succ_le_succ (S l) - 0082
apply le_of_succ_le_succ - 0083
exact hsbound - 0084
rewrite hspred_witness at hsle - 0085
have hrle : Le(x2,l)Exact native replay line
have hrle : exists h. h + x2 = l - 0086
specialize le_of_succ_le_succ x2 - 0087
specialize le_of_succ_le_succ l - 0088
apply le_of_succ_le_succ - 0089
exact hsle - 0090
have hrsplit : x2 = l ∨ Lt(x2,l)Exact native replay line
have hrsplit : x2 = l \/ exists h. h + S x2 = l - 0091
specialize le_eq_or_lt x2 - 0092
specialize le_eq_or_lt l - 0093
apply le_eq_or_lt - 0094
exact hrle - 0095
cases hrsplit - 0096
exfalso - 0097
apply hsendpoints_right - 0098
rewrite hspred_witness - 0099
rewrite hrsplit_left - 0100
refl - 0101
have htarget : ContainsPrefix(x,x1,l,x2)Exact native replay line
have htarget : exists q. ((exists wpo_gap_wpoi_terminal_target_occurrence_bound. wpo_gap_wpoi_terminal_target_occurrence_bound + S (q) = l) /\ (((exists wpo_beta_height_wpoi_terminal_target_occurrence_entry. wpo_beta_height_wpoi_terminal_target_occurrence_entry + S (x2) = S ((S (q)) * x1)) /\ exists wpo_beta_quotient_wpoi_terminal_target_occurrence_entry. x = wpo_beta_quotient_wpoi_terminal_target_occurrence_entry * S ((S (q)) * x1) + (x2)))) - 0102
specialize hsurjective x2 - 0103
apply hsurjective - 0104
exact hrsplit_right - 0105
cases htarget - 0106
cases htarget_witness - 0107
have hsource : BetaAt(b,c,x3,S x2)Exact native replay line
have hsource : ((exists wpo_beta_height_wpoi_terminal_source_entry_x2_succ_r. wpo_beta_height_wpoi_terminal_source_entry_x2_succ_r + S (S x2) = S ((S (x3)) * c)) /\ exists wpo_beta_quotient_wpoi_terminal_source_entry_x2_succ_r. b = wpo_beta_quotient_wpoi_terminal_source_entry_x2_succ_r * S ((S (x3)) * c) + (S x2)) - 0108
specialize beta_magnitude_predecessor_recode_reflect b - 0109
specialize beta_magnitude_predecessor_recode_reflect c - 0110
specialize beta_magnitude_predecessor_recode_reflect x - 0111
specialize beta_magnitude_predecessor_recode_reflect x1 - 0112
specialize beta_magnitude_predecessor_recode_reflect l - 0113
specialize beta_magnitude_predecessor_recode_reflect l - 0114
specialize beta_magnitude_predecessor_recode_reflect x3 - 0115
specialize beta_magnitude_predecessor_recode_reflect x2 - 0116
apply beta_magnitude_predecessor_recode_reflect - 0117
exact hmagnitude - 0118
exact hrecode - 0119
exact htarget_witness_left - 0120
exact htarget_witness_right - 0121
exists x3 - 0122
split - 0123
exact htarget_witness_left - 0124
rewrite hspred_witness - 0125
rewrite hspred_witness - 0126
exact hsource