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.
Exact expanded first-order arithmetic statement
forall b c t l n z m w. (exists ff_u_hd_pair ff_v_hd_pair ff_d_hd_pair ff_e_hd_pair. ((((((exists fs_h_ph_hd_pair_body_value_start. fs_h_ph_hd_pair_body_value_start + S (0) = S ((S (0)) * ff_v_hd_pair)) /\ exists fs_q_ph_hd_pair_body_value_start. ff_u_hd_pair = fs_q_ph_hd_pair_body_value_start * S ((S (0)) * ff_v_hd_pair) + (0))) /\ ((((exists fs_h_ph_hd_pair_body_value_terminal. fs_h_ph_hd_pair_body_value_terminal + S (n) = S ((S (l)) * ff_v_hd_pair)) /\ exists fs_q_ph_hd_pair_body_value_terminal. ff_u_hd_pair = fs_q_ph_hd_pair_body_value_terminal * S ((S (l)) * ff_v_hd_pair) + (n))) /\ forall ff_i_ph_hd_pair_body_value_steps. (exists ph_bound_hd_pair_body_value_steps. ph_bound_hd_pair_body_value_steps + S ff_i_ph_hd_pair_body_value_steps = l) -> exists ff_coefficient_ph_hd_pair_body_value_steps ff_previous_ph_hd_pair_body_value_steps ff_current_ph_hd_pair_body_value_steps. ((((exists fs_h_ph_hd_pair_body_value_steps_coefficient. fs_h_ph_hd_pair_body_value_steps_coefficient + S (ff_coefficient_ph_hd_pair_body_value_steps) = S ((S (ff_i_ph_hd_pair_body_value_steps)) * c)) /\ exists fs_q_ph_hd_pair_body_value_steps_coefficient. b = fs_q_ph_hd_pair_body_value_steps_coefficient * S ((S (ff_i_ph_hd_pair_body_value_steps)) * c) + (ff_coefficient_ph_hd_pair_body_value_steps))) /\ ((((exists fs_h_ph_hd_pair_body_value_steps_before. fs_h_ph_hd_pair_body_value_steps_before + S (ff_previous_ph_hd_pair_body_value_steps) = S ((S (ff_i_ph_hd_pair_body_value_steps)) * ff_v_hd_pair)) /\ exists fs_q_ph_hd_pair_body_value_steps_before. ff_u_hd_pair = fs_q_ph_hd_pair_body_value_steps_before * S ((S (ff_i_ph_hd_pair_body_value_steps)) * ff_v_hd_pair) + (ff_previous_ph_hd_pair_body_value_steps))) /\ ((((exists fs_h_ph_hd_pair_body_value_steps_after. fs_h_ph_hd_pair_body_value_steps_after + S (ff_current_ph_hd_pair_body_value_steps) = S ((S (S ff_i_ph_hd_pair_body_value_steps)) * ff_v_hd_pair)) /\ exists fs_q_ph_hd_pair_body_value_steps_after. ff_u_hd_pair = fs_q_ph_hd_pair_body_value_steps_after * S ((S (S ff_i_ph_hd_pair_body_value_steps)) * ff_v_hd_pair) + (ff_current_ph_hd_pair_body_value_steps))) /\ ff_current_ph_hd_pair_body_value_steps = ff_previous_ph_hd_pair_body_value_steps * t + ff_coefficient_ph_hd_pair_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_pair_body_derivative_start. fs_h_ph_hd_pair_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_pair)) /\ exists fs_q_ph_hd_pair_body_derivative_start. ff_d_hd_pair = fs_q_ph_hd_pair_body_derivative_start * S ((S (0)) * ff_e_hd_pair) + (0))) /\ ((((exists fs_h_ph_hd_pair_body_derivative_terminal. fs_h_ph_hd_pair_body_derivative_terminal + S (z) = S ((S (l)) * ff_e_hd_pair)) /\ exists fs_q_ph_hd_pair_body_derivative_terminal. ff_d_hd_pair = fs_q_ph_hd_pair_body_derivative_terminal * S ((S (l)) * ff_e_hd_pair) + (z))) /\ forall ff_i_ph_hd_pair_body_derivative_steps. (exists ph_bound_hd_pair_body_derivative_steps. ph_bound_hd_pair_body_derivative_steps + S ff_i_ph_hd_pair_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_pair_body_derivative_steps ff_previous_ph_hd_pair_body_derivative_steps ff_current_ph_hd_pair_body_derivative_steps. ((((exists fs_h_ph_hd_pair_body_derivative_steps_coefficient. fs_h_ph_hd_pair_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_pair_body_derivative_steps) = S ((S (ff_i_ph_hd_pair_body_derivative_steps)) * ff_v_hd_pair)) /\ exists fs_q_ph_hd_pair_body_derivative_steps_coefficient. ff_u_hd_pair = fs_q_ph_hd_pair_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_pair_body_derivative_steps)) * ff_v_hd_pair) + (ff_coefficient_ph_hd_pair_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pair_body_derivative_steps_before. fs_h_ph_hd_pair_body_derivative_steps_before + S (ff_previous_ph_hd_pair_body_derivative_steps) = S ((S (ff_i_ph_hd_pair_body_derivative_steps)) * ff_e_hd_pair)) /\ exists fs_q_ph_hd_pair_body_derivative_steps_before. ff_d_hd_pair = fs_q_ph_hd_pair_body_derivative_steps_before * S ((S (ff_i_ph_hd_pair_body_derivative_steps)) * ff_e_hd_pair) + (ff_previous_ph_hd_pair_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pair_body_derivative_steps_after. fs_h_ph_hd_pair_body_derivative_steps_after + S (ff_current_ph_hd_pair_body_derivative_steps) = S ((S (S ff_i_ph_hd_pair_body_derivative_steps)) * ff_e_hd_pair)) /\ exists fs_q_ph_hd_pair_body_derivative_steps_after. ff_d_hd_pair = fs_q_ph_hd_pair_body_derivative_steps_after * S ((S (S ff_i_ph_hd_pair_body_derivative_steps)) * ff_e_hd_pair) + (ff_current_ph_hd_pair_body_derivative_steps))) /\ ff_current_ph_hd_pair_body_derivative_steps = ff_previous_ph_hd_pair_body_derivative_steps * t + ff_coefficient_ph_hd_pair_body_derivative_steps)))))))) -> (exists ff_u_hd_other ff_v_hd_other ff_d_hd_other ff_e_hd_other. ((((((exists fs_h_ph_hd_other_body_value_start. fs_h_ph_hd_other_body_value_start + S (0) = S ((S (0)) * ff_v_hd_other)) /\ exists fs_q_ph_hd_other_body_value_start. ff_u_hd_other = fs_q_ph_hd_other_body_value_start * S ((S (0)) * ff_v_hd_other) + (0))) /\ ((((exists fs_h_ph_hd_other_body_value_terminal. fs_h_ph_hd_other_body_value_terminal + S (m) = S ((S (l)) * ff_v_hd_other)) /\ exists fs_q_ph_hd_other_body_value_terminal. ff_u_hd_other = fs_q_ph_hd_other_body_value_terminal * S ((S (l)) * ff_v_hd_other) + (m))) /\ forall ff_i_ph_hd_other_body_value_steps. (exists ph_bound_hd_other_body_value_steps. ph_bound_hd_other_body_value_steps + S ff_i_ph_hd_other_body_value_steps = l) -> exists ff_coefficient_ph_hd_other_body_value_steps ff_previous_ph_hd_other_body_value_steps ff_current_ph_hd_other_body_value_steps. ((((exists fs_h_ph_hd_other_body_value_steps_coefficient. fs_h_ph_hd_other_body_value_steps_coefficient + S (ff_coefficient_ph_hd_other_body_value_steps) = S ((S (ff_i_ph_hd_other_body_value_steps)) * c)) /\ exists fs_q_ph_hd_other_body_value_steps_coefficient. b = fs_q_ph_hd_other_body_value_steps_coefficient * S ((S (ff_i_ph_hd_other_body_value_steps)) * c) + (ff_coefficient_ph_hd_other_body_value_steps))) /\ ((((exists fs_h_ph_hd_other_body_value_steps_before. fs_h_ph_hd_other_body_value_steps_before + S (ff_previous_ph_hd_other_body_value_steps) = S ((S (ff_i_ph_hd_other_body_value_steps)) * ff_v_hd_other)) /\ exists fs_q_ph_hd_other_body_value_steps_before. ff_u_hd_other = fs_q_ph_hd_other_body_value_steps_before * S ((S (ff_i_ph_hd_other_body_value_steps)) * ff_v_hd_other) + (ff_previous_ph_hd_other_body_value_steps))) /\ ((((exists fs_h_ph_hd_other_body_value_steps_after. fs_h_ph_hd_other_body_value_steps_after + S (ff_current_ph_hd_other_body_value_steps) = S ((S (S ff_i_ph_hd_other_body_value_steps)) * ff_v_hd_other)) /\ exists fs_q_ph_hd_other_body_value_steps_after. ff_u_hd_other = fs_q_ph_hd_other_body_value_steps_after * S ((S (S ff_i_ph_hd_other_body_value_steps)) * ff_v_hd_other) + (ff_current_ph_hd_other_body_value_steps))) /\ ff_current_ph_hd_other_body_value_steps = ff_previous_ph_hd_other_body_value_steps * t + ff_coefficient_ph_hd_other_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_other_body_derivative_start. fs_h_ph_hd_other_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_other)) /\ exists fs_q_ph_hd_other_body_derivative_start. ff_d_hd_other = fs_q_ph_hd_other_body_derivative_start * S ((S (0)) * ff_e_hd_other) + (0))) /\ ((((exists fs_h_ph_hd_other_body_derivative_terminal. fs_h_ph_hd_other_body_derivative_terminal + S (w) = S ((S (l)) * ff_e_hd_other)) /\ exists fs_q_ph_hd_other_body_derivative_terminal. ff_d_hd_other = fs_q_ph_hd_other_body_derivative_terminal * S ((S (l)) * ff_e_hd_other) + (w))) /\ forall ff_i_ph_hd_other_body_derivative_steps. (exists ph_bound_hd_other_body_derivative_steps. ph_bound_hd_other_body_derivative_steps + S ff_i_ph_hd_other_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_other_body_derivative_steps ff_previous_ph_hd_other_body_derivative_steps ff_current_ph_hd_other_body_derivative_steps. ((((exists fs_h_ph_hd_other_body_derivative_steps_coefficient. fs_h_ph_hd_other_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_other_body_derivative_steps) = S ((S (ff_i_ph_hd_other_body_derivative_steps)) * ff_v_hd_other)) /\ exists fs_q_ph_hd_other_body_derivative_steps_coefficient. ff_u_hd_other = fs_q_ph_hd_other_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_other_body_derivative_steps)) * ff_v_hd_other) + (ff_coefficient_ph_hd_other_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_other_body_derivative_steps_before. fs_h_ph_hd_other_body_derivative_steps_before + S (ff_previous_ph_hd_other_body_derivative_steps) = S ((S (ff_i_ph_hd_other_body_derivative_steps)) * ff_e_hd_other)) /\ exists fs_q_ph_hd_other_body_derivative_steps_before. ff_d_hd_other = fs_q_ph_hd_other_body_derivative_steps_before * S ((S (ff_i_ph_hd_other_body_derivative_steps)) * ff_e_hd_other) + (ff_previous_ph_hd_other_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_other_body_derivative_steps_after. fs_h_ph_hd_other_body_derivative_steps_after + S (ff_current_ph_hd_other_body_derivative_steps) = S ((S (S ff_i_ph_hd_other_body_derivative_steps)) * ff_e_hd_other)) /\ exists fs_q_ph_hd_other_body_derivative_steps_after. ff_d_hd_other = fs_q_ph_hd_other_body_derivative_steps_after * S ((S (S ff_i_ph_hd_other_body_derivative_steps)) * ff_e_hd_other) + (ff_current_ph_hd_other_body_derivative_steps))) /\ ff_current_ph_hd_other_body_derivative_steps = ff_previous_ph_hd_other_body_derivative_steps * t + ff_coefficient_ph_hd_other_body_derivative_steps)))))))) -> (n = m /\ z = w)Constructive proof overview
Generated structural guide
Both the value and exact formal derivative of every beta-coded polynomial are simultaneously unique.
The unchanged tactic script uses 3 declared prerequisites and contains 112 exact native proof lines.
Alpha v34 checked-use · first admitted v24 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
HD0007 beta_horner_derivative_empty HD0008 beta_horner_derivative_successor_decompose beta_at_unique Stable theorem; checked-use authorizedDirect dependents
Formal native tactic body
Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. This exact body belongs to a complete independently kernel-checked constructive proof bundle and has Alpha checked-use authority; it does not imply Stable membership.
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 (2)
01Fix variables and assumptionsL1–3
02Induction on lL4–10
03Establish hleft_zeroL11–18
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative empty.
- L11
have hleft_zero : (n = 0 /\ z = 0) - L12
specialize beta_horner_derivative_empty b - L13
specialize beta_horner_derivative_empty c - L14
specialize beta_horner_derivative_empty t - L15
specialize beta_horner_derivative_empty n - L16
specialize beta_horner_derivative_empty z - L17
apply beta_horner_derivative_empty - L18
exact hleft
04Establish hright_zeroL19–26
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative empty.
- L19
have hright_zero : (m = 0 /\ w = 0) - L20
specialize beta_horner_derivative_empty b - L21
specialize beta_horner_derivative_empty c - L22
specialize beta_horner_derivative_empty t - L23
specialize beta_horner_derivative_empty m - L24
specialize beta_horner_derivative_empty w - L25
apply beta_horner_derivative_empty - L26
exact hright
05Separate the logical casesL27–29
06Calculate and transport equalitiesL30–30
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L30
trans 0
07Use earlier factsL31–31
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L31
exact hleft_zero_left
08Calculate and transport equalitiesL32–32
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L32
symm
09Use earlier factsL33–33
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
exact hright_zero_left
10Calculate and transport equalitiesL34–34
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L34
trans 0
11Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact hleft_zero_right
12Calculate and transport equalitiesL36–36
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L36
symm
13Use earlier factsL37–37
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
exact hright_zero_right
14Fix variables and assumptionsL38–43
15Establish hfirstL44–52
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative successor decompose.
- L44
have hfirst : ∃ a. ∃ r. ∃ q. Beta(b,c,l,a) ∧ (HornerDerivative(b,c,t,l,r,q) ∧ (n = r · t + a ∧ z = q · t + r))Definitions: BetaHornerDerivative - L45
specialize beta_horner_derivative_successor_decompose b - L46
specialize beta_horner_derivative_successor_decompose c - L47
specialize beta_horner_derivative_successor_decompose t - L48
specialize beta_horner_derivative_successor_decompose l - L49
specialize beta_horner_derivative_successor_decompose n - L50
specialize beta_horner_derivative_successor_decompose z - L51
apply beta_horner_derivative_successor_decompose - L52
exact hleft
16Separate the logical casesL53–58
17Establish hsecondL59–67
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative successor decompose.
- L59
have hsecond : ∃ a. ∃ r. ∃ q. Beta(b,c,l,a) ∧ (HornerDerivative(b,c,t,l,r,q) ∧ (m = r · t + a ∧ w = q · t + r))Definitions: BetaHornerDerivative - L60
specialize beta_horner_derivative_successor_decompose b - L61
specialize beta_horner_derivative_successor_decompose c - L62
specialize beta_horner_derivative_successor_decompose t - L63
specialize beta_horner_derivative_successor_decompose l - L64
specialize beta_horner_derivative_successor_decompose m - L65
specialize beta_horner_derivative_successor_decompose w - L66
apply beta_horner_derivative_successor_decompose - L67
exact hright
18Separate the logical casesL68–73
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
19Establish hprefix_equalL74–81
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
20Separate the logical casesL82–82
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L82
cases hprefix_equal
21Establish hcoefficient_equalL83–91
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
22Separate the logical casesL92–92
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L92
split
23Calculate and transport equalitiesL93–93
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L93
trans x1 * t + x
24Use earlier factsL94–94
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L94
exact hfirst_witness_witness_witness_right_right_left
25Calculate and transport equalitiesL95–97
26Use earlier factsL98–98
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L98
exact hprefix_equal_left
27Calculate and transport equalitiesL99–99
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L99
refl
28Use earlier factsL100–100
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L100
exact hcoefficient_equal
29Calculate and transport equalitiesL101–101
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L101
symm
30Use earlier factsL102–102
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L102
exact hsecond_witness_witness_witness_right_right_left
31Calculate and transport equalitiesL103–103
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L103
trans x2 * t + x1
32Use earlier factsL104–104
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L104
exact hfirst_witness_witness_witness_right_right_right
33Calculate and transport equalitiesL105–107
34Use earlier factsL108–108
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L108
exact hprefix_equal_right
35Calculate and transport equalitiesL109–109
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L109
refl
36Use earlier factsL110–110
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L110
exact hprefix_equal_left
37Calculate and transport equalitiesL111–111
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L111
symm
38Use earlier factsL112–112
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L112
exact hsecond_witness_witness_witness_right_right_right
Original exact command ledger · 112 lines
- 0001
intro b - 0002
intro c - 0003
intro t - 0004
induction l - 0005
intro n - 0006
intro z - 0007
intro m - 0008
intro w - 0009
intro hleft - 0010
intro hright - 0011
have hleft_zero : (n = 0 /\ z = 0) - 0012
specialize beta_horner_derivative_empty b - 0013
specialize beta_horner_derivative_empty c - 0014
specialize beta_horner_derivative_empty t - 0015
specialize beta_horner_derivative_empty n - 0016
specialize beta_horner_derivative_empty z - 0017
apply beta_horner_derivative_empty - 0018
exact hleft - 0019
have hright_zero : (m = 0 /\ w = 0) - 0020
specialize beta_horner_derivative_empty b - 0021
specialize beta_horner_derivative_empty c - 0022
specialize beta_horner_derivative_empty t - 0023
specialize beta_horner_derivative_empty m - 0024
specialize beta_horner_derivative_empty w - 0025
apply beta_horner_derivative_empty - 0026
exact hright - 0027
cases hleft_zero - 0028
cases hright_zero - 0029
split - 0030
trans 0 - 0031
exact hleft_zero_left - 0032
symm - 0033
exact hright_zero_left - 0034
trans 0 - 0035
exact hleft_zero_right - 0036
symm - 0037
exact hright_zero_right - 0038
intro n - 0039
intro z - 0040
intro m - 0041
intro w - 0042
intro hleft - 0043
intro hright - 0044
have hfirst : exists a r q. ((((exists fs_h_hd_functional_left_coefficient. fs_h_hd_functional_left_coefficient + S (a) = S ((S (l)) * c)) /\ exists fs_q_hd_functional_left_coefficient. b = fs_q_hd_functional_left_coefficient * S ((S (l)) * c) + (a))) /\ ((exists ff_u_hd_functional_left_prefix ff_v_hd_functional_left_prefix ff_d_hd_functional_left_prefix ff_e_hd_functional_left_prefix. ((((((exists fs_h_ph_hd_functional_left_prefix_body_value_start. fs_h_ph_hd_functional_left_prefix_body_value_start + S (0) = S ((S (0)) * ff_v_hd_functional_left_prefix)) /\ exists fs_q_ph_hd_functional_left_prefix_body_value_start. ff_u_hd_functional_left_prefix = fs_q_ph_hd_functional_left_prefix_body_value_start * S ((S (0)) * ff_v_hd_functional_left_prefix) + (0))) /\ ((((exists fs_h_ph_hd_functional_left_prefix_body_value_terminal. fs_h_ph_hd_functional_left_prefix_body_value_terminal + S (r) = S ((S (l)) * ff_v_hd_functional_left_prefix)) /\ exists fs_q_ph_hd_functional_left_prefix_body_value_terminal. ff_u_hd_functional_left_prefix = fs_q_ph_hd_functional_left_prefix_body_value_terminal * S ((S (l)) * ff_v_hd_functional_left_prefix) + (r))) /\ forall ff_i_ph_hd_functional_left_prefix_body_value_steps. (exists ph_bound_hd_functional_left_prefix_body_value_steps. ph_bound_hd_functional_left_prefix_body_value_steps + S ff_i_ph_hd_functional_left_prefix_body_value_steps = l) -> exists ff_coefficient_ph_hd_functional_left_prefix_body_value_steps ff_previous_ph_hd_functional_left_prefix_body_value_steps ff_current_ph_hd_functional_left_prefix_body_value_steps. ((((exists fs_h_ph_hd_functional_left_prefix_body_value_steps_coefficient. fs_h_ph_hd_functional_left_prefix_body_value_steps_coefficient + S (ff_coefficient_ph_hd_functional_left_prefix_body_value_steps) = S ((S (ff_i_ph_hd_functional_left_prefix_body_value_steps)) * c)) /\ exists fs_q_ph_hd_functional_left_prefix_body_value_steps_coefficient. b = fs_q_ph_hd_functional_left_prefix_body_value_steps_coefficient * S ((S (ff_i_ph_hd_functional_left_prefix_body_value_steps)) * c) + (ff_coefficient_ph_hd_functional_left_prefix_body_value_steps))) /\ ((((exists fs_h_ph_hd_functional_left_prefix_body_value_steps_before. fs_h_ph_hd_functional_left_prefix_body_value_steps_before + S (ff_previous_ph_hd_functional_left_prefix_body_value_steps) = S ((S (ff_i_ph_hd_functional_left_prefix_body_value_steps)) * ff_v_hd_functional_left_prefix)) /\ exists fs_q_ph_hd_functional_left_prefix_body_value_steps_before. ff_u_hd_functional_left_prefix = fs_q_ph_hd_functional_left_prefix_body_value_steps_before * S ((S (ff_i_ph_hd_functional_left_prefix_body_value_steps)) * ff_v_hd_functional_left_prefix) + (ff_previous_ph_hd_functional_left_prefix_body_value_steps))) /\ ((((exists fs_h_ph_hd_functional_left_prefix_body_value_steps_after. fs_h_ph_hd_functional_left_prefix_body_value_steps_after + S (ff_current_ph_hd_functional_left_prefix_body_value_steps) = S ((S (S ff_i_ph_hd_functional_left_prefix_body_value_steps)) * ff_v_hd_functional_left_prefix)) /\ exists fs_q_ph_hd_functional_left_prefix_body_value_steps_after. ff_u_hd_functional_left_prefix = fs_q_ph_hd_functional_left_prefix_body_value_steps_after * S ((S (S ff_i_ph_hd_functional_left_prefix_body_value_steps)) * ff_v_hd_functional_left_prefix) + (ff_current_ph_hd_functional_left_prefix_body_value_steps))) /\ ff_current_ph_hd_functional_left_prefix_body_value_steps = ff_previous_ph_hd_functional_left_prefix_body_value_steps * t + ff_coefficient_ph_hd_functional_left_prefix_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_functional_left_prefix_body_derivative_start. fs_h_ph_hd_functional_left_prefix_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_functional_left_prefix)) /\ exists fs_q_ph_hd_functional_left_prefix_body_derivative_start. ff_d_hd_functional_left_prefix = fs_q_ph_hd_functional_left_prefix_body_derivative_start * S ((S (0)) * ff_e_hd_functional_left_prefix) + (0))) /\ ((((exists fs_h_ph_hd_functional_left_prefix_body_derivative_terminal. fs_h_ph_hd_functional_left_prefix_body_derivative_terminal + S (q) = S ((S (l)) * ff_e_hd_functional_left_prefix)) /\ exists fs_q_ph_hd_functional_left_prefix_body_derivative_terminal. ff_d_hd_functional_left_prefix = fs_q_ph_hd_functional_left_prefix_body_derivative_terminal * S ((S (l)) * ff_e_hd_functional_left_prefix) + (q))) /\ forall ff_i_ph_hd_functional_left_prefix_body_derivative_steps. (exists ph_bound_hd_functional_left_prefix_body_derivative_steps. ph_bound_hd_functional_left_prefix_body_derivative_steps + S ff_i_ph_hd_functional_left_prefix_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_functional_left_prefix_body_derivative_steps ff_previous_ph_hd_functional_left_prefix_body_derivative_steps ff_current_ph_hd_functional_left_prefix_body_derivative_steps. ((((exists fs_h_ph_hd_functional_left_prefix_body_derivative_steps_coefficient. fs_h_ph_hd_functional_left_prefix_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_functional_left_prefix_body_derivative_steps) = S ((S (ff_i_ph_hd_functional_left_prefix_body_derivative_steps)) * ff_v_hd_functional_left_prefix)) /\ exists fs_q_ph_hd_functional_left_prefix_body_derivative_steps_coefficient. ff_u_hd_functional_left_prefix = fs_q_ph_hd_functional_left_prefix_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_functional_left_prefix_body_derivative_steps)) * ff_v_hd_functional_left_prefix) + (ff_coefficient_ph_hd_functional_left_prefix_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_functional_left_prefix_body_derivative_steps_before. fs_h_ph_hd_functional_left_prefix_body_derivative_steps_before + S (ff_previous_ph_hd_functional_left_prefix_body_derivative_steps) = S ((S (ff_i_ph_hd_functional_left_prefix_body_derivative_steps)) * ff_e_hd_functional_left_prefix)) /\ exists fs_q_ph_hd_functional_left_prefix_body_derivative_steps_before. ff_d_hd_functional_left_prefix = fs_q_ph_hd_functional_left_prefix_body_derivative_steps_before * S ((S (ff_i_ph_hd_functional_left_prefix_body_derivative_steps)) * ff_e_hd_functional_left_prefix) + (ff_previous_ph_hd_functional_left_prefix_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_functional_left_prefix_body_derivative_steps_after. fs_h_ph_hd_functional_left_prefix_body_derivative_steps_after + S (ff_current_ph_hd_functional_left_prefix_body_derivative_steps) = S ((S (S ff_i_ph_hd_functional_left_prefix_body_derivative_steps)) * ff_e_hd_functional_left_prefix)) /\ exists fs_q_ph_hd_functional_left_prefix_body_derivative_steps_after. ff_d_hd_functional_left_prefix = fs_q_ph_hd_functional_left_prefix_body_derivative_steps_after * S ((S (S ff_i_ph_hd_functional_left_prefix_body_derivative_steps)) * ff_e_hd_functional_left_prefix) + (ff_current_ph_hd_functional_left_prefix_body_derivative_steps))) /\ ff_current_ph_hd_functional_left_prefix_body_derivative_steps = ff_previous_ph_hd_functional_left_prefix_body_derivative_steps * t + ff_coefficient_ph_hd_functional_left_prefix_body_derivative_steps)))))))) /\ ((n = r * t + a) /\ z = q * t + r))) - 0045
specialize beta_horner_derivative_successor_decompose b - 0046
specialize beta_horner_derivative_successor_decompose c - 0047
specialize beta_horner_derivative_successor_decompose t - 0048
specialize beta_horner_derivative_successor_decompose l - 0049
specialize beta_horner_derivative_successor_decompose n - 0050
specialize beta_horner_derivative_successor_decompose z - 0051
apply beta_horner_derivative_successor_decompose - 0052
exact hleft - 0053
cases hfirst - 0054
cases hfirst_witness - 0055
cases hfirst_witness_witness - 0056
cases hfirst_witness_witness_witness - 0057
cases hfirst_witness_witness_witness_right - 0058
cases hfirst_witness_witness_witness_right_right - 0059
have hsecond : exists a r q. ((((exists fs_h_hd_functional_right_coefficient. fs_h_hd_functional_right_coefficient + S (a) = S ((S (l)) * c)) /\ exists fs_q_hd_functional_right_coefficient. b = fs_q_hd_functional_right_coefficient * S ((S (l)) * c) + (a))) /\ ((exists ff_u_hd_functional_right_prefix ff_v_hd_functional_right_prefix ff_d_hd_functional_right_prefix ff_e_hd_functional_right_prefix. ((((((exists fs_h_ph_hd_functional_right_prefix_body_value_start. fs_h_ph_hd_functional_right_prefix_body_value_start + S (0) = S ((S (0)) * ff_v_hd_functional_right_prefix)) /\ exists fs_q_ph_hd_functional_right_prefix_body_value_start. ff_u_hd_functional_right_prefix = fs_q_ph_hd_functional_right_prefix_body_value_start * S ((S (0)) * ff_v_hd_functional_right_prefix) + (0))) /\ ((((exists fs_h_ph_hd_functional_right_prefix_body_value_terminal. fs_h_ph_hd_functional_right_prefix_body_value_terminal + S (r) = S ((S (l)) * ff_v_hd_functional_right_prefix)) /\ exists fs_q_ph_hd_functional_right_prefix_body_value_terminal. ff_u_hd_functional_right_prefix = fs_q_ph_hd_functional_right_prefix_body_value_terminal * S ((S (l)) * ff_v_hd_functional_right_prefix) + (r))) /\ forall ff_i_ph_hd_functional_right_prefix_body_value_steps. (exists ph_bound_hd_functional_right_prefix_body_value_steps. ph_bound_hd_functional_right_prefix_body_value_steps + S ff_i_ph_hd_functional_right_prefix_body_value_steps = l) -> exists ff_coefficient_ph_hd_functional_right_prefix_body_value_steps ff_previous_ph_hd_functional_right_prefix_body_value_steps ff_current_ph_hd_functional_right_prefix_body_value_steps. ((((exists fs_h_ph_hd_functional_right_prefix_body_value_steps_coefficient. fs_h_ph_hd_functional_right_prefix_body_value_steps_coefficient + S (ff_coefficient_ph_hd_functional_right_prefix_body_value_steps) = S ((S (ff_i_ph_hd_functional_right_prefix_body_value_steps)) * c)) /\ exists fs_q_ph_hd_functional_right_prefix_body_value_steps_coefficient. b = fs_q_ph_hd_functional_right_prefix_body_value_steps_coefficient * S ((S (ff_i_ph_hd_functional_right_prefix_body_value_steps)) * c) + (ff_coefficient_ph_hd_functional_right_prefix_body_value_steps))) /\ ((((exists fs_h_ph_hd_functional_right_prefix_body_value_steps_before. fs_h_ph_hd_functional_right_prefix_body_value_steps_before + S (ff_previous_ph_hd_functional_right_prefix_body_value_steps) = S ((S (ff_i_ph_hd_functional_right_prefix_body_value_steps)) * ff_v_hd_functional_right_prefix)) /\ exists fs_q_ph_hd_functional_right_prefix_body_value_steps_before. ff_u_hd_functional_right_prefix = fs_q_ph_hd_functional_right_prefix_body_value_steps_before * S ((S (ff_i_ph_hd_functional_right_prefix_body_value_steps)) * ff_v_hd_functional_right_prefix) + (ff_previous_ph_hd_functional_right_prefix_body_value_steps))) /\ ((((exists fs_h_ph_hd_functional_right_prefix_body_value_steps_after. fs_h_ph_hd_functional_right_prefix_body_value_steps_after + S (ff_current_ph_hd_functional_right_prefix_body_value_steps) = S ((S (S ff_i_ph_hd_functional_right_prefix_body_value_steps)) * ff_v_hd_functional_right_prefix)) /\ exists fs_q_ph_hd_functional_right_prefix_body_value_steps_after. ff_u_hd_functional_right_prefix = fs_q_ph_hd_functional_right_prefix_body_value_steps_after * S ((S (S ff_i_ph_hd_functional_right_prefix_body_value_steps)) * ff_v_hd_functional_right_prefix) + (ff_current_ph_hd_functional_right_prefix_body_value_steps))) /\ ff_current_ph_hd_functional_right_prefix_body_value_steps = ff_previous_ph_hd_functional_right_prefix_body_value_steps * t + ff_coefficient_ph_hd_functional_right_prefix_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_functional_right_prefix_body_derivative_start. fs_h_ph_hd_functional_right_prefix_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_functional_right_prefix)) /\ exists fs_q_ph_hd_functional_right_prefix_body_derivative_start. ff_d_hd_functional_right_prefix = fs_q_ph_hd_functional_right_prefix_body_derivative_start * S ((S (0)) * ff_e_hd_functional_right_prefix) + (0))) /\ ((((exists fs_h_ph_hd_functional_right_prefix_body_derivative_terminal. fs_h_ph_hd_functional_right_prefix_body_derivative_terminal + S (q) = S ((S (l)) * ff_e_hd_functional_right_prefix)) /\ exists fs_q_ph_hd_functional_right_prefix_body_derivative_terminal. ff_d_hd_functional_right_prefix = fs_q_ph_hd_functional_right_prefix_body_derivative_terminal * S ((S (l)) * ff_e_hd_functional_right_prefix) + (q))) /\ forall ff_i_ph_hd_functional_right_prefix_body_derivative_steps. (exists ph_bound_hd_functional_right_prefix_body_derivative_steps. ph_bound_hd_functional_right_prefix_body_derivative_steps + S ff_i_ph_hd_functional_right_prefix_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_functional_right_prefix_body_derivative_steps ff_previous_ph_hd_functional_right_prefix_body_derivative_steps ff_current_ph_hd_functional_right_prefix_body_derivative_steps. ((((exists fs_h_ph_hd_functional_right_prefix_body_derivative_steps_coefficient. fs_h_ph_hd_functional_right_prefix_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_functional_right_prefix_body_derivative_steps) = S ((S (ff_i_ph_hd_functional_right_prefix_body_derivative_steps)) * ff_v_hd_functional_right_prefix)) /\ exists fs_q_ph_hd_functional_right_prefix_body_derivative_steps_coefficient. ff_u_hd_functional_right_prefix = fs_q_ph_hd_functional_right_prefix_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_functional_right_prefix_body_derivative_steps)) * ff_v_hd_functional_right_prefix) + (ff_coefficient_ph_hd_functional_right_prefix_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_functional_right_prefix_body_derivative_steps_before. fs_h_ph_hd_functional_right_prefix_body_derivative_steps_before + S (ff_previous_ph_hd_functional_right_prefix_body_derivative_steps) = S ((S (ff_i_ph_hd_functional_right_prefix_body_derivative_steps)) * ff_e_hd_functional_right_prefix)) /\ exists fs_q_ph_hd_functional_right_prefix_body_derivative_steps_before. ff_d_hd_functional_right_prefix = fs_q_ph_hd_functional_right_prefix_body_derivative_steps_before * S ((S (ff_i_ph_hd_functional_right_prefix_body_derivative_steps)) * ff_e_hd_functional_right_prefix) + (ff_previous_ph_hd_functional_right_prefix_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_functional_right_prefix_body_derivative_steps_after. fs_h_ph_hd_functional_right_prefix_body_derivative_steps_after + S (ff_current_ph_hd_functional_right_prefix_body_derivative_steps) = S ((S (S ff_i_ph_hd_functional_right_prefix_body_derivative_steps)) * ff_e_hd_functional_right_prefix)) /\ exists fs_q_ph_hd_functional_right_prefix_body_derivative_steps_after. ff_d_hd_functional_right_prefix = fs_q_ph_hd_functional_right_prefix_body_derivative_steps_after * S ((S (S ff_i_ph_hd_functional_right_prefix_body_derivative_steps)) * ff_e_hd_functional_right_prefix) + (ff_current_ph_hd_functional_right_prefix_body_derivative_steps))) /\ ff_current_ph_hd_functional_right_prefix_body_derivative_steps = ff_previous_ph_hd_functional_right_prefix_body_derivative_steps * t + ff_coefficient_ph_hd_functional_right_prefix_body_derivative_steps)))))))) /\ ((m = r * t + a) /\ w = q * t + r))) - 0060
specialize beta_horner_derivative_successor_decompose b - 0061
specialize beta_horner_derivative_successor_decompose c - 0062
specialize beta_horner_derivative_successor_decompose t - 0063
specialize beta_horner_derivative_successor_decompose l - 0064
specialize beta_horner_derivative_successor_decompose m - 0065
specialize beta_horner_derivative_successor_decompose w - 0066
apply beta_horner_derivative_successor_decompose - 0067
exact hright - 0068
cases hsecond - 0069
cases hsecond_witness - 0070
cases hsecond_witness_witness - 0071
cases hsecond_witness_witness_witness - 0072
cases hsecond_witness_witness_witness_right - 0073
cases hsecond_witness_witness_witness_right_right - 0074
have hprefix_equal : (x1 = x4 /\ x2 = x5) - 0075
specialize IH x1 - 0076
specialize IH x2 - 0077
specialize IH x4 - 0078
specialize IH x5 - 0079
apply IH - 0080
exact hfirst_witness_witness_witness_right_left - 0081
exact hsecond_witness_witness_witness_right_left - 0082
cases hprefix_equal - 0083
have hcoefficient_equal : x = x3 - 0084
specialize beta_at_unique b - 0085
specialize beta_at_unique c - 0086
specialize beta_at_unique l - 0087
specialize beta_at_unique x - 0088
specialize beta_at_unique x3 - 0089
apply beta_at_unique - 0090
exact hfirst_witness_witness_witness_left - 0091
exact hsecond_witness_witness_witness_left - 0092
split - 0093
trans x1 * t + x - 0094
exact hfirst_witness_witness_witness_right_right_left - 0095
trans x4 * t + x3 - 0096
congr - 0097
congr - 0098
exact hprefix_equal_left - 0099
refl - 0100
exact hcoefficient_equal - 0101
symm - 0102
exact hsecond_witness_witness_witness_right_right_left - 0103
trans x2 * t + x1 - 0104
exact hfirst_witness_witness_witness_right_right_right - 0105
trans x5 * t + x4 - 0106
congr - 0107
congr - 0108
exact hprefix_equal_right - 0109
refl - 0110
exact hprefix_equal_left - 0111
symm - 0112
exact hsecond_witness_witness_witness_right_right_right
Separate complete second-wave branches: Full G095 proof · Alpha v27.