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 m t s l n d z e. (exists hgcrt_mod_left_pth_pair_base hgcrt_mod_right_pth_pair_base. t + m * hgcrt_mod_left_pth_pair_base = s + m * hgcrt_mod_right_pth_pair_base) -> (exists ff_u_hd_pth_pair_left ff_v_hd_pth_pair_left ff_d_hd_pth_pair_left ff_e_hd_pth_pair_left. ((((((exists fs_h_ph_hd_pth_pair_left_body_value_start. fs_h_ph_hd_pth_pair_left_body_value_start + S (0) = S ((S (0)) * ff_v_hd_pth_pair_left)) /\ exists fs_q_ph_hd_pth_pair_left_body_value_start. ff_u_hd_pth_pair_left = fs_q_ph_hd_pth_pair_left_body_value_start * S ((S (0)) * ff_v_hd_pth_pair_left) + (0))) /\ ((((exists fs_h_ph_hd_pth_pair_left_body_value_terminal. fs_h_ph_hd_pth_pair_left_body_value_terminal + S (n) = S ((S (l)) * ff_v_hd_pth_pair_left)) /\ exists fs_q_ph_hd_pth_pair_left_body_value_terminal. ff_u_hd_pth_pair_left = fs_q_ph_hd_pth_pair_left_body_value_terminal * S ((S (l)) * ff_v_hd_pth_pair_left) + (n))) /\ forall ff_i_ph_hd_pth_pair_left_body_value_steps. (exists ph_bound_hd_pth_pair_left_body_value_steps. ph_bound_hd_pth_pair_left_body_value_steps + S ff_i_ph_hd_pth_pair_left_body_value_steps = l) -> exists ff_coefficient_ph_hd_pth_pair_left_body_value_steps ff_previous_ph_hd_pth_pair_left_body_value_steps ff_current_ph_hd_pth_pair_left_body_value_steps. ((((exists fs_h_ph_hd_pth_pair_left_body_value_steps_coefficient. fs_h_ph_hd_pth_pair_left_body_value_steps_coefficient + S (ff_coefficient_ph_hd_pth_pair_left_body_value_steps) = S ((S (ff_i_ph_hd_pth_pair_left_body_value_steps)) * c)) /\ exists fs_q_ph_hd_pth_pair_left_body_value_steps_coefficient. b = fs_q_ph_hd_pth_pair_left_body_value_steps_coefficient * S ((S (ff_i_ph_hd_pth_pair_left_body_value_steps)) * c) + (ff_coefficient_ph_hd_pth_pair_left_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_left_body_value_steps_before. fs_h_ph_hd_pth_pair_left_body_value_steps_before + S (ff_previous_ph_hd_pth_pair_left_body_value_steps) = S ((S (ff_i_ph_hd_pth_pair_left_body_value_steps)) * ff_v_hd_pth_pair_left)) /\ exists fs_q_ph_hd_pth_pair_left_body_value_steps_before. ff_u_hd_pth_pair_left = fs_q_ph_hd_pth_pair_left_body_value_steps_before * S ((S (ff_i_ph_hd_pth_pair_left_body_value_steps)) * ff_v_hd_pth_pair_left) + (ff_previous_ph_hd_pth_pair_left_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_left_body_value_steps_after. fs_h_ph_hd_pth_pair_left_body_value_steps_after + S (ff_current_ph_hd_pth_pair_left_body_value_steps) = S ((S (S ff_i_ph_hd_pth_pair_left_body_value_steps)) * ff_v_hd_pth_pair_left)) /\ exists fs_q_ph_hd_pth_pair_left_body_value_steps_after. ff_u_hd_pth_pair_left = fs_q_ph_hd_pth_pair_left_body_value_steps_after * S ((S (S ff_i_ph_hd_pth_pair_left_body_value_steps)) * ff_v_hd_pth_pair_left) + (ff_current_ph_hd_pth_pair_left_body_value_steps))) /\ ff_current_ph_hd_pth_pair_left_body_value_steps = ff_previous_ph_hd_pth_pair_left_body_value_steps * t + ff_coefficient_ph_hd_pth_pair_left_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_pth_pair_left_body_derivative_start. fs_h_ph_hd_pth_pair_left_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_pth_pair_left)) /\ exists fs_q_ph_hd_pth_pair_left_body_derivative_start. ff_d_hd_pth_pair_left = fs_q_ph_hd_pth_pair_left_body_derivative_start * S ((S (0)) * ff_e_hd_pth_pair_left) + (0))) /\ ((((exists fs_h_ph_hd_pth_pair_left_body_derivative_terminal. fs_h_ph_hd_pth_pair_left_body_derivative_terminal + S (d) = S ((S (l)) * ff_e_hd_pth_pair_left)) /\ exists fs_q_ph_hd_pth_pair_left_body_derivative_terminal. ff_d_hd_pth_pair_left = fs_q_ph_hd_pth_pair_left_body_derivative_terminal * S ((S (l)) * ff_e_hd_pth_pair_left) + (d))) /\ forall ff_i_ph_hd_pth_pair_left_body_derivative_steps. (exists ph_bound_hd_pth_pair_left_body_derivative_steps. ph_bound_hd_pth_pair_left_body_derivative_steps + S ff_i_ph_hd_pth_pair_left_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_pth_pair_left_body_derivative_steps ff_previous_ph_hd_pth_pair_left_body_derivative_steps ff_current_ph_hd_pth_pair_left_body_derivative_steps. ((((exists fs_h_ph_hd_pth_pair_left_body_derivative_steps_coefficient. fs_h_ph_hd_pth_pair_left_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_pth_pair_left_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_pair_left_body_derivative_steps)) * ff_v_hd_pth_pair_left)) /\ exists fs_q_ph_hd_pth_pair_left_body_derivative_steps_coefficient. ff_u_hd_pth_pair_left = fs_q_ph_hd_pth_pair_left_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_pth_pair_left_body_derivative_steps)) * ff_v_hd_pth_pair_left) + (ff_coefficient_ph_hd_pth_pair_left_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_left_body_derivative_steps_before. fs_h_ph_hd_pth_pair_left_body_derivative_steps_before + S (ff_previous_ph_hd_pth_pair_left_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_pair_left_body_derivative_steps)) * ff_e_hd_pth_pair_left)) /\ exists fs_q_ph_hd_pth_pair_left_body_derivative_steps_before. ff_d_hd_pth_pair_left = fs_q_ph_hd_pth_pair_left_body_derivative_steps_before * S ((S (ff_i_ph_hd_pth_pair_left_body_derivative_steps)) * ff_e_hd_pth_pair_left) + (ff_previous_ph_hd_pth_pair_left_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_left_body_derivative_steps_after. fs_h_ph_hd_pth_pair_left_body_derivative_steps_after + S (ff_current_ph_hd_pth_pair_left_body_derivative_steps) = S ((S (S ff_i_ph_hd_pth_pair_left_body_derivative_steps)) * ff_e_hd_pth_pair_left)) /\ exists fs_q_ph_hd_pth_pair_left_body_derivative_steps_after. ff_d_hd_pth_pair_left = fs_q_ph_hd_pth_pair_left_body_derivative_steps_after * S ((S (S ff_i_ph_hd_pth_pair_left_body_derivative_steps)) * ff_e_hd_pth_pair_left) + (ff_current_ph_hd_pth_pair_left_body_derivative_steps))) /\ ff_current_ph_hd_pth_pair_left_body_derivative_steps = ff_previous_ph_hd_pth_pair_left_body_derivative_steps * t + ff_coefficient_ph_hd_pth_pair_left_body_derivative_steps)))))))) -> (exists ff_u_hd_pth_pair_right ff_v_hd_pth_pair_right ff_d_hd_pth_pair_right ff_e_hd_pth_pair_right. ((((((exists fs_h_ph_hd_pth_pair_right_body_value_start. fs_h_ph_hd_pth_pair_right_body_value_start + S (0) = S ((S (0)) * ff_v_hd_pth_pair_right)) /\ exists fs_q_ph_hd_pth_pair_right_body_value_start. ff_u_hd_pth_pair_right = fs_q_ph_hd_pth_pair_right_body_value_start * S ((S (0)) * ff_v_hd_pth_pair_right) + (0))) /\ ((((exists fs_h_ph_hd_pth_pair_right_body_value_terminal. fs_h_ph_hd_pth_pair_right_body_value_terminal + S (z) = S ((S (l)) * ff_v_hd_pth_pair_right)) /\ exists fs_q_ph_hd_pth_pair_right_body_value_terminal. ff_u_hd_pth_pair_right = fs_q_ph_hd_pth_pair_right_body_value_terminal * S ((S (l)) * ff_v_hd_pth_pair_right) + (z))) /\ forall ff_i_ph_hd_pth_pair_right_body_value_steps. (exists ph_bound_hd_pth_pair_right_body_value_steps. ph_bound_hd_pth_pair_right_body_value_steps + S ff_i_ph_hd_pth_pair_right_body_value_steps = l) -> exists ff_coefficient_ph_hd_pth_pair_right_body_value_steps ff_previous_ph_hd_pth_pair_right_body_value_steps ff_current_ph_hd_pth_pair_right_body_value_steps. ((((exists fs_h_ph_hd_pth_pair_right_body_value_steps_coefficient. fs_h_ph_hd_pth_pair_right_body_value_steps_coefficient + S (ff_coefficient_ph_hd_pth_pair_right_body_value_steps) = S ((S (ff_i_ph_hd_pth_pair_right_body_value_steps)) * c)) /\ exists fs_q_ph_hd_pth_pair_right_body_value_steps_coefficient. b = fs_q_ph_hd_pth_pair_right_body_value_steps_coefficient * S ((S (ff_i_ph_hd_pth_pair_right_body_value_steps)) * c) + (ff_coefficient_ph_hd_pth_pair_right_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_right_body_value_steps_before. fs_h_ph_hd_pth_pair_right_body_value_steps_before + S (ff_previous_ph_hd_pth_pair_right_body_value_steps) = S ((S (ff_i_ph_hd_pth_pair_right_body_value_steps)) * ff_v_hd_pth_pair_right)) /\ exists fs_q_ph_hd_pth_pair_right_body_value_steps_before. ff_u_hd_pth_pair_right = fs_q_ph_hd_pth_pair_right_body_value_steps_before * S ((S (ff_i_ph_hd_pth_pair_right_body_value_steps)) * ff_v_hd_pth_pair_right) + (ff_previous_ph_hd_pth_pair_right_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_right_body_value_steps_after. fs_h_ph_hd_pth_pair_right_body_value_steps_after + S (ff_current_ph_hd_pth_pair_right_body_value_steps) = S ((S (S ff_i_ph_hd_pth_pair_right_body_value_steps)) * ff_v_hd_pth_pair_right)) /\ exists fs_q_ph_hd_pth_pair_right_body_value_steps_after. ff_u_hd_pth_pair_right = fs_q_ph_hd_pth_pair_right_body_value_steps_after * S ((S (S ff_i_ph_hd_pth_pair_right_body_value_steps)) * ff_v_hd_pth_pair_right) + (ff_current_ph_hd_pth_pair_right_body_value_steps))) /\ ff_current_ph_hd_pth_pair_right_body_value_steps = ff_previous_ph_hd_pth_pair_right_body_value_steps * s + ff_coefficient_ph_hd_pth_pair_right_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_pth_pair_right_body_derivative_start. fs_h_ph_hd_pth_pair_right_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_pth_pair_right)) /\ exists fs_q_ph_hd_pth_pair_right_body_derivative_start. ff_d_hd_pth_pair_right = fs_q_ph_hd_pth_pair_right_body_derivative_start * S ((S (0)) * ff_e_hd_pth_pair_right) + (0))) /\ ((((exists fs_h_ph_hd_pth_pair_right_body_derivative_terminal. fs_h_ph_hd_pth_pair_right_body_derivative_terminal + S (e) = S ((S (l)) * ff_e_hd_pth_pair_right)) /\ exists fs_q_ph_hd_pth_pair_right_body_derivative_terminal. ff_d_hd_pth_pair_right = fs_q_ph_hd_pth_pair_right_body_derivative_terminal * S ((S (l)) * ff_e_hd_pth_pair_right) + (e))) /\ forall ff_i_ph_hd_pth_pair_right_body_derivative_steps. (exists ph_bound_hd_pth_pair_right_body_derivative_steps. ph_bound_hd_pth_pair_right_body_derivative_steps + S ff_i_ph_hd_pth_pair_right_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_pth_pair_right_body_derivative_steps ff_previous_ph_hd_pth_pair_right_body_derivative_steps ff_current_ph_hd_pth_pair_right_body_derivative_steps. ((((exists fs_h_ph_hd_pth_pair_right_body_derivative_steps_coefficient. fs_h_ph_hd_pth_pair_right_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_pth_pair_right_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_pair_right_body_derivative_steps)) * ff_v_hd_pth_pair_right)) /\ exists fs_q_ph_hd_pth_pair_right_body_derivative_steps_coefficient. ff_u_hd_pth_pair_right = fs_q_ph_hd_pth_pair_right_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_pth_pair_right_body_derivative_steps)) * ff_v_hd_pth_pair_right) + (ff_coefficient_ph_hd_pth_pair_right_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_right_body_derivative_steps_before. fs_h_ph_hd_pth_pair_right_body_derivative_steps_before + S (ff_previous_ph_hd_pth_pair_right_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_pair_right_body_derivative_steps)) * ff_e_hd_pth_pair_right)) /\ exists fs_q_ph_hd_pth_pair_right_body_derivative_steps_before. ff_d_hd_pth_pair_right = fs_q_ph_hd_pth_pair_right_body_derivative_steps_before * S ((S (ff_i_ph_hd_pth_pair_right_body_derivative_steps)) * ff_e_hd_pth_pair_right) + (ff_previous_ph_hd_pth_pair_right_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_right_body_derivative_steps_after. fs_h_ph_hd_pth_pair_right_body_derivative_steps_after + S (ff_current_ph_hd_pth_pair_right_body_derivative_steps) = S ((S (S ff_i_ph_hd_pth_pair_right_body_derivative_steps)) * ff_e_hd_pth_pair_right)) /\ exists fs_q_ph_hd_pth_pair_right_body_derivative_steps_after. ff_d_hd_pth_pair_right = fs_q_ph_hd_pth_pair_right_body_derivative_steps_after * S ((S (S ff_i_ph_hd_pth_pair_right_body_derivative_steps)) * ff_e_hd_pth_pair_right) + (ff_current_ph_hd_pth_pair_right_body_derivative_steps))) /\ ff_current_ph_hd_pth_pair_right_body_derivative_steps = ff_previous_ph_hd_pth_pair_right_body_derivative_steps * s + ff_coefficient_ph_hd_pth_pair_right_body_derivative_steps)))))))) -> ((exists hgcrt_mod_left_pth_pair_value_result hgcrt_mod_right_pth_pair_value_result. n + m * hgcrt_mod_left_pth_pair_value_result = z + m * hgcrt_mod_right_pth_pair_value_result) /\ (exists hgcrt_mod_left_pth_pair_derivative_result hgcrt_mod_right_pth_pair_derivative_result. d + m * hgcrt_mod_left_pth_pair_derivative_result = e + m * hgcrt_mod_right_pth_pair_derivative_result))Constructive proof overview
Generated structural guide
Every beta-coded natural polynomial and its exact formal derivative simultaneously preserve balanced congruence.
The unchanged tactic script uses 6 declared prerequisites and contains 128 exact native proof lines.
Alpha v34 checked-use · first admitted v25 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_horner_derivative_empty Alpha theorem; checked-use authorized beta_horner_derivative_successor_decompose Alpha theorem; checked-use authorized beta_at_unique Stable theorem; checked-use authorized mod_eq_refl Stable theorem; checked-use authorized TH0002 horner_mod_congruence_successor_step TH0003 horner_derivative_mod_congruence_successor_stepDirect 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–5
02Induction on lL6–13
03Establish hzero_leftL14–21
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative empty.
- L14
have hzero_left : (n = 0 /\ d = 0) - L15
specialize beta_horner_derivative_empty b - L16
specialize beta_horner_derivative_empty c - L17
specialize beta_horner_derivative_empty t - L18
specialize beta_horner_derivative_empty n - L19
specialize beta_horner_derivative_empty d - L20
apply beta_horner_derivative_empty - L21
exact hleft
04Establish hzero_rightL22–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative empty.
- L22
have hzero_right : (z = 0 /\ e = 0) - L23
specialize beta_horner_derivative_empty b - L24
specialize beta_horner_derivative_empty c - L25
specialize beta_horner_derivative_empty s - L26
specialize beta_horner_derivative_empty z - L27
specialize beta_horner_derivative_empty e - L28
apply beta_horner_derivative_empty - L29
exact hright
05Separate the logical casesL30–32
06Calculate and transport equalitiesL33–34
07Use earlier factsL35–37
08Calculate and transport equalitiesL38–39
09Use earlier factsL40–42
10Fix variables and assumptionsL43–49
11Establish hfirstL50–58
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative successor decompose.
- L50
have hfirst : ∃ a. ∃ r. ∃ q. Beta(b,c,l,a) ∧ (HornerDerivative(b,c,t,l,r,q) ∧ (n = r · t + a ∧ d = q · t + r))Definitions: BetaHornerDerivative - L51
specialize beta_horner_derivative_successor_decompose b - L52
specialize beta_horner_derivative_successor_decompose c - L53
specialize beta_horner_derivative_successor_decompose t - L54
specialize beta_horner_derivative_successor_decompose l - L55
specialize beta_horner_derivative_successor_decompose n - L56
specialize beta_horner_derivative_successor_decompose d - L57
apply beta_horner_derivative_successor_decompose - L58
exact hleft
12Separate the logical casesL59–64
13Establish hsecondL65–73
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta horner derivative successor decompose.
- L65
have hsecond : ∃ a. ∃ r. ∃ q. Beta(b,c,l,a) ∧ (HornerDerivative(b,c,s,l,r,q) ∧ (z = r · s + a ∧ e = q · s + r))Definitions: BetaHornerDerivative - L66
specialize beta_horner_derivative_successor_decompose b - L67
specialize beta_horner_derivative_successor_decompose c - L68
specialize beta_horner_derivative_successor_decompose s - L69
specialize beta_horner_derivative_successor_decompose l - L70
specialize beta_horner_derivative_successor_decompose z - L71
specialize beta_horner_derivative_successor_decompose e - L72
apply beta_horner_derivative_successor_decompose - L73
exact hright
14Separate the logical casesL74–79
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
15Establish hcoefficientL80–88
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
16Establish hprefixL89–97
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply IH.
- L89
have hprefix : ((exists hgcrt_mod_left_pth_pair_prefix_value hgcrt_mod_right_pth_pair_prefix_value. x1 + m * hgcrt_mod_left_pth_pair_prefix_value = x4 + m * hgcrt_mod_right_pth_pair_prefix_value) /\ (exists hgcrt_mod_left_pth_pair_prefix_derivative hgcrt_mod_right_pth_pair_prefix_derivative. x2 + m * hgcrt_mod_left_pth_pair_prefix_derivative = x5 + m * hgcrt_mod_right_pth_pair_prefix_derivative)) - L90
specialize IH x1 - L91
specialize IH x2 - L92
specialize IH x4 - L93
specialize IH x5 - L94
apply IH - L95
exact hbase - L96
exact hfirst_witness_witness_witness_right_left - L97
exact hsecond_witness_witness_witness_right_left
17Separate the logical casesL98–98
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L98
cases hprefix
18Establish hvalueL99–108
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply horner mod congruence successor step.
- L99
have hvalue : exists hgcrt_mod_left_pth_pair_value_step hgcrt_mod_right_pth_pair_value_step. (x1 * t + x) + m * hgcrt_mod_left_pth_pair_value_step = (x4 * s + x) + m * hgcrt_mod_right_pth_pair_value_step - L100
specialize horner_mod_congruence_successor_step m - L101
specialize horner_mod_congruence_successor_step t - L102
specialize horner_mod_congruence_successor_step s - L103
specialize horner_mod_congruence_successor_step x1 - L104
specialize horner_mod_congruence_successor_step x4 - L105
specialize horner_mod_congruence_successor_step x - L106
apply horner_mod_congruence_successor_step - L107
exact hbase - L108
exact hprefix_left
19Establish hderivativeL109–118
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply horner derivative mod congruence successor step.
- L109
have hderivative : exists hgcrt_mod_left_pth_pair_derivative_step hgcrt_mod_right_pth_pair_derivative_step. (x2 * t + x1) + m * hgcrt_mod_left_pth_pair_derivative_step = (x5 * s + x4) + m * hgcrt_mod_right_pth_pair_derivative_step - L110
specialize horner_derivative_mod_congruence_successor_step m - L111
specialize horner_derivative_mod_congruence_successor_step t - L112
specialize horner_derivative_mod_congruence_successor_step s - L113
specialize horner_derivative_mod_congruence_successor_step x1 - L114
specialize horner_derivative_mod_congruence_successor_step x4 - L115
specialize horner_derivative_mod_congruence_successor_step x2 - L116
specialize horner_derivative_mod_congruence_successor_step x5 - L117
apply horner_derivative_mod_congruence_successor_step - L118
exact hbase
20Use earlier factsL119–120
21Separate the logical casesL121–121
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L121
split
22Calculate and transport equalitiesL122–124
23Use earlier factsL125–125
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L125
exact hvalue
24Calculate and transport equalitiesL126–127
25Use earlier factsL128–128
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L128
exact hderivative
Original exact command ledger · 128 lines
- 0001
intro b - 0002
intro c - 0003
intro m - 0004
intro t - 0005
intro s - 0006
induction l - 0007
intro n - 0008
intro d - 0009
intro z - 0010
intro e - 0011
intro hbase - 0012
intro hleft - 0013
intro hright - 0014
have hzero_left : (n = 0 /\ d = 0) - 0015
specialize beta_horner_derivative_empty b - 0016
specialize beta_horner_derivative_empty c - 0017
specialize beta_horner_derivative_empty t - 0018
specialize beta_horner_derivative_empty n - 0019
specialize beta_horner_derivative_empty d - 0020
apply beta_horner_derivative_empty - 0021
exact hleft - 0022
have hzero_right : (z = 0 /\ e = 0) - 0023
specialize beta_horner_derivative_empty b - 0024
specialize beta_horner_derivative_empty c - 0025
specialize beta_horner_derivative_empty s - 0026
specialize beta_horner_derivative_empty z - 0027
specialize beta_horner_derivative_empty e - 0028
apply beta_horner_derivative_empty - 0029
exact hright - 0030
cases hzero_left - 0031
cases hzero_right - 0032
split - 0033
rewrite hzero_left_left - 0034
rewrite hzero_right_left - 0035
specialize mod_eq_refl m - 0036
specialize mod_eq_refl 0 - 0037
apply mod_eq_refl - 0038
rewrite hzero_left_right - 0039
rewrite hzero_right_right - 0040
specialize mod_eq_refl m - 0041
specialize mod_eq_refl 0 - 0042
apply mod_eq_refl - 0043
intro n - 0044
intro d - 0045
intro z - 0046
intro e - 0047
intro hbase - 0048
intro hleft - 0049
intro hright - 0050
have hfirst : exists a r q. ((((exists fs_h_pth_pair_first_coefficient. fs_h_pth_pair_first_coefficient + S (a) = S ((S (l)) * c)) /\ exists fs_q_pth_pair_first_coefficient. b = fs_q_pth_pair_first_coefficient * S ((S (l)) * c) + (a))) /\ ((exists ff_u_hd_pth_pair_first_prefix ff_v_hd_pth_pair_first_prefix ff_d_hd_pth_pair_first_prefix ff_e_hd_pth_pair_first_prefix. ((((((exists fs_h_ph_hd_pth_pair_first_prefix_body_value_start. fs_h_ph_hd_pth_pair_first_prefix_body_value_start + S (0) = S ((S (0)) * ff_v_hd_pth_pair_first_prefix)) /\ exists fs_q_ph_hd_pth_pair_first_prefix_body_value_start. ff_u_hd_pth_pair_first_prefix = fs_q_ph_hd_pth_pair_first_prefix_body_value_start * S ((S (0)) * ff_v_hd_pth_pair_first_prefix) + (0))) /\ ((((exists fs_h_ph_hd_pth_pair_first_prefix_body_value_terminal. fs_h_ph_hd_pth_pair_first_prefix_body_value_terminal + S (r) = S ((S (l)) * ff_v_hd_pth_pair_first_prefix)) /\ exists fs_q_ph_hd_pth_pair_first_prefix_body_value_terminal. ff_u_hd_pth_pair_first_prefix = fs_q_ph_hd_pth_pair_first_prefix_body_value_terminal * S ((S (l)) * ff_v_hd_pth_pair_first_prefix) + (r))) /\ forall ff_i_ph_hd_pth_pair_first_prefix_body_value_steps. (exists ph_bound_hd_pth_pair_first_prefix_body_value_steps. ph_bound_hd_pth_pair_first_prefix_body_value_steps + S ff_i_ph_hd_pth_pair_first_prefix_body_value_steps = l) -> exists ff_coefficient_ph_hd_pth_pair_first_prefix_body_value_steps ff_previous_ph_hd_pth_pair_first_prefix_body_value_steps ff_current_ph_hd_pth_pair_first_prefix_body_value_steps. ((((exists fs_h_ph_hd_pth_pair_first_prefix_body_value_steps_coefficient. fs_h_ph_hd_pth_pair_first_prefix_body_value_steps_coefficient + S (ff_coefficient_ph_hd_pth_pair_first_prefix_body_value_steps) = S ((S (ff_i_ph_hd_pth_pair_first_prefix_body_value_steps)) * c)) /\ exists fs_q_ph_hd_pth_pair_first_prefix_body_value_steps_coefficient. b = fs_q_ph_hd_pth_pair_first_prefix_body_value_steps_coefficient * S ((S (ff_i_ph_hd_pth_pair_first_prefix_body_value_steps)) * c) + (ff_coefficient_ph_hd_pth_pair_first_prefix_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_first_prefix_body_value_steps_before. fs_h_ph_hd_pth_pair_first_prefix_body_value_steps_before + S (ff_previous_ph_hd_pth_pair_first_prefix_body_value_steps) = S ((S (ff_i_ph_hd_pth_pair_first_prefix_body_value_steps)) * ff_v_hd_pth_pair_first_prefix)) /\ exists fs_q_ph_hd_pth_pair_first_prefix_body_value_steps_before. ff_u_hd_pth_pair_first_prefix = fs_q_ph_hd_pth_pair_first_prefix_body_value_steps_before * S ((S (ff_i_ph_hd_pth_pair_first_prefix_body_value_steps)) * ff_v_hd_pth_pair_first_prefix) + (ff_previous_ph_hd_pth_pair_first_prefix_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_first_prefix_body_value_steps_after. fs_h_ph_hd_pth_pair_first_prefix_body_value_steps_after + S (ff_current_ph_hd_pth_pair_first_prefix_body_value_steps) = S ((S (S ff_i_ph_hd_pth_pair_first_prefix_body_value_steps)) * ff_v_hd_pth_pair_first_prefix)) /\ exists fs_q_ph_hd_pth_pair_first_prefix_body_value_steps_after. ff_u_hd_pth_pair_first_prefix = fs_q_ph_hd_pth_pair_first_prefix_body_value_steps_after * S ((S (S ff_i_ph_hd_pth_pair_first_prefix_body_value_steps)) * ff_v_hd_pth_pair_first_prefix) + (ff_current_ph_hd_pth_pair_first_prefix_body_value_steps))) /\ ff_current_ph_hd_pth_pair_first_prefix_body_value_steps = ff_previous_ph_hd_pth_pair_first_prefix_body_value_steps * t + ff_coefficient_ph_hd_pth_pair_first_prefix_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_pth_pair_first_prefix_body_derivative_start. fs_h_ph_hd_pth_pair_first_prefix_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_pth_pair_first_prefix)) /\ exists fs_q_ph_hd_pth_pair_first_prefix_body_derivative_start. ff_d_hd_pth_pair_first_prefix = fs_q_ph_hd_pth_pair_first_prefix_body_derivative_start * S ((S (0)) * ff_e_hd_pth_pair_first_prefix) + (0))) /\ ((((exists fs_h_ph_hd_pth_pair_first_prefix_body_derivative_terminal. fs_h_ph_hd_pth_pair_first_prefix_body_derivative_terminal + S (q) = S ((S (l)) * ff_e_hd_pth_pair_first_prefix)) /\ exists fs_q_ph_hd_pth_pair_first_prefix_body_derivative_terminal. ff_d_hd_pth_pair_first_prefix = fs_q_ph_hd_pth_pair_first_prefix_body_derivative_terminal * S ((S (l)) * ff_e_hd_pth_pair_first_prefix) + (q))) /\ forall ff_i_ph_hd_pth_pair_first_prefix_body_derivative_steps. (exists ph_bound_hd_pth_pair_first_prefix_body_derivative_steps. ph_bound_hd_pth_pair_first_prefix_body_derivative_steps + S ff_i_ph_hd_pth_pair_first_prefix_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_pth_pair_first_prefix_body_derivative_steps ff_previous_ph_hd_pth_pair_first_prefix_body_derivative_steps ff_current_ph_hd_pth_pair_first_prefix_body_derivative_steps. ((((exists fs_h_ph_hd_pth_pair_first_prefix_body_derivative_steps_coefficient. fs_h_ph_hd_pth_pair_first_prefix_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_pth_pair_first_prefix_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_pair_first_prefix_body_derivative_steps)) * ff_v_hd_pth_pair_first_prefix)) /\ exists fs_q_ph_hd_pth_pair_first_prefix_body_derivative_steps_coefficient. ff_u_hd_pth_pair_first_prefix = fs_q_ph_hd_pth_pair_first_prefix_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_pth_pair_first_prefix_body_derivative_steps)) * ff_v_hd_pth_pair_first_prefix) + (ff_coefficient_ph_hd_pth_pair_first_prefix_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_first_prefix_body_derivative_steps_before. fs_h_ph_hd_pth_pair_first_prefix_body_derivative_steps_before + S (ff_previous_ph_hd_pth_pair_first_prefix_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_pair_first_prefix_body_derivative_steps)) * ff_e_hd_pth_pair_first_prefix)) /\ exists fs_q_ph_hd_pth_pair_first_prefix_body_derivative_steps_before. ff_d_hd_pth_pair_first_prefix = fs_q_ph_hd_pth_pair_first_prefix_body_derivative_steps_before * S ((S (ff_i_ph_hd_pth_pair_first_prefix_body_derivative_steps)) * ff_e_hd_pth_pair_first_prefix) + (ff_previous_ph_hd_pth_pair_first_prefix_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_first_prefix_body_derivative_steps_after. fs_h_ph_hd_pth_pair_first_prefix_body_derivative_steps_after + S (ff_current_ph_hd_pth_pair_first_prefix_body_derivative_steps) = S ((S (S ff_i_ph_hd_pth_pair_first_prefix_body_derivative_steps)) * ff_e_hd_pth_pair_first_prefix)) /\ exists fs_q_ph_hd_pth_pair_first_prefix_body_derivative_steps_after. ff_d_hd_pth_pair_first_prefix = fs_q_ph_hd_pth_pair_first_prefix_body_derivative_steps_after * S ((S (S ff_i_ph_hd_pth_pair_first_prefix_body_derivative_steps)) * ff_e_hd_pth_pair_first_prefix) + (ff_current_ph_hd_pth_pair_first_prefix_body_derivative_steps))) /\ ff_current_ph_hd_pth_pair_first_prefix_body_derivative_steps = ff_previous_ph_hd_pth_pair_first_prefix_body_derivative_steps * t + ff_coefficient_ph_hd_pth_pair_first_prefix_body_derivative_steps)))))))) /\ ((n = r * t + a) /\ d = q * t + r))) - 0051
specialize beta_horner_derivative_successor_decompose b - 0052
specialize beta_horner_derivative_successor_decompose c - 0053
specialize beta_horner_derivative_successor_decompose t - 0054
specialize beta_horner_derivative_successor_decompose l - 0055
specialize beta_horner_derivative_successor_decompose n - 0056
specialize beta_horner_derivative_successor_decompose d - 0057
apply beta_horner_derivative_successor_decompose - 0058
exact hleft - 0059
cases hfirst - 0060
cases hfirst_witness - 0061
cases hfirst_witness_witness - 0062
cases hfirst_witness_witness_witness - 0063
cases hfirst_witness_witness_witness_right - 0064
cases hfirst_witness_witness_witness_right_right - 0065
have hsecond : exists a r q. ((((exists fs_h_pth_pair_second_coefficient. fs_h_pth_pair_second_coefficient + S (a) = S ((S (l)) * c)) /\ exists fs_q_pth_pair_second_coefficient. b = fs_q_pth_pair_second_coefficient * S ((S (l)) * c) + (a))) /\ ((exists ff_u_hd_pth_pair_second_prefix ff_v_hd_pth_pair_second_prefix ff_d_hd_pth_pair_second_prefix ff_e_hd_pth_pair_second_prefix. ((((((exists fs_h_ph_hd_pth_pair_second_prefix_body_value_start. fs_h_ph_hd_pth_pair_second_prefix_body_value_start + S (0) = S ((S (0)) * ff_v_hd_pth_pair_second_prefix)) /\ exists fs_q_ph_hd_pth_pair_second_prefix_body_value_start. ff_u_hd_pth_pair_second_prefix = fs_q_ph_hd_pth_pair_second_prefix_body_value_start * S ((S (0)) * ff_v_hd_pth_pair_second_prefix) + (0))) /\ ((((exists fs_h_ph_hd_pth_pair_second_prefix_body_value_terminal. fs_h_ph_hd_pth_pair_second_prefix_body_value_terminal + S (r) = S ((S (l)) * ff_v_hd_pth_pair_second_prefix)) /\ exists fs_q_ph_hd_pth_pair_second_prefix_body_value_terminal. ff_u_hd_pth_pair_second_prefix = fs_q_ph_hd_pth_pair_second_prefix_body_value_terminal * S ((S (l)) * ff_v_hd_pth_pair_second_prefix) + (r))) /\ forall ff_i_ph_hd_pth_pair_second_prefix_body_value_steps. (exists ph_bound_hd_pth_pair_second_prefix_body_value_steps. ph_bound_hd_pth_pair_second_prefix_body_value_steps + S ff_i_ph_hd_pth_pair_second_prefix_body_value_steps = l) -> exists ff_coefficient_ph_hd_pth_pair_second_prefix_body_value_steps ff_previous_ph_hd_pth_pair_second_prefix_body_value_steps ff_current_ph_hd_pth_pair_second_prefix_body_value_steps. ((((exists fs_h_ph_hd_pth_pair_second_prefix_body_value_steps_coefficient. fs_h_ph_hd_pth_pair_second_prefix_body_value_steps_coefficient + S (ff_coefficient_ph_hd_pth_pair_second_prefix_body_value_steps) = S ((S (ff_i_ph_hd_pth_pair_second_prefix_body_value_steps)) * c)) /\ exists fs_q_ph_hd_pth_pair_second_prefix_body_value_steps_coefficient. b = fs_q_ph_hd_pth_pair_second_prefix_body_value_steps_coefficient * S ((S (ff_i_ph_hd_pth_pair_second_prefix_body_value_steps)) * c) + (ff_coefficient_ph_hd_pth_pair_second_prefix_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_second_prefix_body_value_steps_before. fs_h_ph_hd_pth_pair_second_prefix_body_value_steps_before + S (ff_previous_ph_hd_pth_pair_second_prefix_body_value_steps) = S ((S (ff_i_ph_hd_pth_pair_second_prefix_body_value_steps)) * ff_v_hd_pth_pair_second_prefix)) /\ exists fs_q_ph_hd_pth_pair_second_prefix_body_value_steps_before. ff_u_hd_pth_pair_second_prefix = fs_q_ph_hd_pth_pair_second_prefix_body_value_steps_before * S ((S (ff_i_ph_hd_pth_pair_second_prefix_body_value_steps)) * ff_v_hd_pth_pair_second_prefix) + (ff_previous_ph_hd_pth_pair_second_prefix_body_value_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_second_prefix_body_value_steps_after. fs_h_ph_hd_pth_pair_second_prefix_body_value_steps_after + S (ff_current_ph_hd_pth_pair_second_prefix_body_value_steps) = S ((S (S ff_i_ph_hd_pth_pair_second_prefix_body_value_steps)) * ff_v_hd_pth_pair_second_prefix)) /\ exists fs_q_ph_hd_pth_pair_second_prefix_body_value_steps_after. ff_u_hd_pth_pair_second_prefix = fs_q_ph_hd_pth_pair_second_prefix_body_value_steps_after * S ((S (S ff_i_ph_hd_pth_pair_second_prefix_body_value_steps)) * ff_v_hd_pth_pair_second_prefix) + (ff_current_ph_hd_pth_pair_second_prefix_body_value_steps))) /\ ff_current_ph_hd_pth_pair_second_prefix_body_value_steps = ff_previous_ph_hd_pth_pair_second_prefix_body_value_steps * s + ff_coefficient_ph_hd_pth_pair_second_prefix_body_value_steps)))))) /\ (((((exists fs_h_ph_hd_pth_pair_second_prefix_body_derivative_start. fs_h_ph_hd_pth_pair_second_prefix_body_derivative_start + S (0) = S ((S (0)) * ff_e_hd_pth_pair_second_prefix)) /\ exists fs_q_ph_hd_pth_pair_second_prefix_body_derivative_start. ff_d_hd_pth_pair_second_prefix = fs_q_ph_hd_pth_pair_second_prefix_body_derivative_start * S ((S (0)) * ff_e_hd_pth_pair_second_prefix) + (0))) /\ ((((exists fs_h_ph_hd_pth_pair_second_prefix_body_derivative_terminal. fs_h_ph_hd_pth_pair_second_prefix_body_derivative_terminal + S (q) = S ((S (l)) * ff_e_hd_pth_pair_second_prefix)) /\ exists fs_q_ph_hd_pth_pair_second_prefix_body_derivative_terminal. ff_d_hd_pth_pair_second_prefix = fs_q_ph_hd_pth_pair_second_prefix_body_derivative_terminal * S ((S (l)) * ff_e_hd_pth_pair_second_prefix) + (q))) /\ forall ff_i_ph_hd_pth_pair_second_prefix_body_derivative_steps. (exists ph_bound_hd_pth_pair_second_prefix_body_derivative_steps. ph_bound_hd_pth_pair_second_prefix_body_derivative_steps + S ff_i_ph_hd_pth_pair_second_prefix_body_derivative_steps = l) -> exists ff_coefficient_ph_hd_pth_pair_second_prefix_body_derivative_steps ff_previous_ph_hd_pth_pair_second_prefix_body_derivative_steps ff_current_ph_hd_pth_pair_second_prefix_body_derivative_steps. ((((exists fs_h_ph_hd_pth_pair_second_prefix_body_derivative_steps_coefficient. fs_h_ph_hd_pth_pair_second_prefix_body_derivative_steps_coefficient + S (ff_coefficient_ph_hd_pth_pair_second_prefix_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_pair_second_prefix_body_derivative_steps)) * ff_v_hd_pth_pair_second_prefix)) /\ exists fs_q_ph_hd_pth_pair_second_prefix_body_derivative_steps_coefficient. ff_u_hd_pth_pair_second_prefix = fs_q_ph_hd_pth_pair_second_prefix_body_derivative_steps_coefficient * S ((S (ff_i_ph_hd_pth_pair_second_prefix_body_derivative_steps)) * ff_v_hd_pth_pair_second_prefix) + (ff_coefficient_ph_hd_pth_pair_second_prefix_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_second_prefix_body_derivative_steps_before. fs_h_ph_hd_pth_pair_second_prefix_body_derivative_steps_before + S (ff_previous_ph_hd_pth_pair_second_prefix_body_derivative_steps) = S ((S (ff_i_ph_hd_pth_pair_second_prefix_body_derivative_steps)) * ff_e_hd_pth_pair_second_prefix)) /\ exists fs_q_ph_hd_pth_pair_second_prefix_body_derivative_steps_before. ff_d_hd_pth_pair_second_prefix = fs_q_ph_hd_pth_pair_second_prefix_body_derivative_steps_before * S ((S (ff_i_ph_hd_pth_pair_second_prefix_body_derivative_steps)) * ff_e_hd_pth_pair_second_prefix) + (ff_previous_ph_hd_pth_pair_second_prefix_body_derivative_steps))) /\ ((((exists fs_h_ph_hd_pth_pair_second_prefix_body_derivative_steps_after. fs_h_ph_hd_pth_pair_second_prefix_body_derivative_steps_after + S (ff_current_ph_hd_pth_pair_second_prefix_body_derivative_steps) = S ((S (S ff_i_ph_hd_pth_pair_second_prefix_body_derivative_steps)) * ff_e_hd_pth_pair_second_prefix)) /\ exists fs_q_ph_hd_pth_pair_second_prefix_body_derivative_steps_after. ff_d_hd_pth_pair_second_prefix = fs_q_ph_hd_pth_pair_second_prefix_body_derivative_steps_after * S ((S (S ff_i_ph_hd_pth_pair_second_prefix_body_derivative_steps)) * ff_e_hd_pth_pair_second_prefix) + (ff_current_ph_hd_pth_pair_second_prefix_body_derivative_steps))) /\ ff_current_ph_hd_pth_pair_second_prefix_body_derivative_steps = ff_previous_ph_hd_pth_pair_second_prefix_body_derivative_steps * s + ff_coefficient_ph_hd_pth_pair_second_prefix_body_derivative_steps)))))))) /\ ((z = r * s + a) /\ e = q * s + r))) - 0066
specialize beta_horner_derivative_successor_decompose b - 0067
specialize beta_horner_derivative_successor_decompose c - 0068
specialize beta_horner_derivative_successor_decompose s - 0069
specialize beta_horner_derivative_successor_decompose l - 0070
specialize beta_horner_derivative_successor_decompose z - 0071
specialize beta_horner_derivative_successor_decompose e - 0072
apply beta_horner_derivative_successor_decompose - 0073
exact hright - 0074
cases hsecond - 0075
cases hsecond_witness - 0076
cases hsecond_witness_witness - 0077
cases hsecond_witness_witness_witness - 0078
cases hsecond_witness_witness_witness_right - 0079
cases hsecond_witness_witness_witness_right_right - 0080
have hcoefficient : x = x3 - 0081
specialize beta_at_unique b - 0082
specialize beta_at_unique c - 0083
specialize beta_at_unique l - 0084
specialize beta_at_unique x - 0085
specialize beta_at_unique x3 - 0086
apply beta_at_unique - 0087
exact hfirst_witness_witness_witness_left - 0088
exact hsecond_witness_witness_witness_left - 0089
have hprefix : ((exists hgcrt_mod_left_pth_pair_prefix_value hgcrt_mod_right_pth_pair_prefix_value. x1 + m * hgcrt_mod_left_pth_pair_prefix_value = x4 + m * hgcrt_mod_right_pth_pair_prefix_value) /\ (exists hgcrt_mod_left_pth_pair_prefix_derivative hgcrt_mod_right_pth_pair_prefix_derivative. x2 + m * hgcrt_mod_left_pth_pair_prefix_derivative = x5 + m * hgcrt_mod_right_pth_pair_prefix_derivative)) - 0090
specialize IH x1 - 0091
specialize IH x2 - 0092
specialize IH x4 - 0093
specialize IH x5 - 0094
apply IH - 0095
exact hbase - 0096
exact hfirst_witness_witness_witness_right_left - 0097
exact hsecond_witness_witness_witness_right_left - 0098
cases hprefix - 0099
have hvalue : exists hgcrt_mod_left_pth_pair_value_step hgcrt_mod_right_pth_pair_value_step. (x1 * t + x) + m * hgcrt_mod_left_pth_pair_value_step = (x4 * s + x) + m * hgcrt_mod_right_pth_pair_value_step - 0100
specialize horner_mod_congruence_successor_step m - 0101
specialize horner_mod_congruence_successor_step t - 0102
specialize horner_mod_congruence_successor_step s - 0103
specialize horner_mod_congruence_successor_step x1 - 0104
specialize horner_mod_congruence_successor_step x4 - 0105
specialize horner_mod_congruence_successor_step x - 0106
apply horner_mod_congruence_successor_step - 0107
exact hbase - 0108
exact hprefix_left - 0109
have hderivative : exists hgcrt_mod_left_pth_pair_derivative_step hgcrt_mod_right_pth_pair_derivative_step. (x2 * t + x1) + m * hgcrt_mod_left_pth_pair_derivative_step = (x5 * s + x4) + m * hgcrt_mod_right_pth_pair_derivative_step - 0110
specialize horner_derivative_mod_congruence_successor_step m - 0111
specialize horner_derivative_mod_congruence_successor_step t - 0112
specialize horner_derivative_mod_congruence_successor_step s - 0113
specialize horner_derivative_mod_congruence_successor_step x1 - 0114
specialize horner_derivative_mod_congruence_successor_step x4 - 0115
specialize horner_derivative_mod_congruence_successor_step x2 - 0116
specialize horner_derivative_mod_congruence_successor_step x5 - 0117
apply horner_derivative_mod_congruence_successor_step - 0118
exact hbase - 0119
exact hprefix_left - 0120
exact hprefix_right - 0121
split - 0122
rewrite hfirst_witness_witness_witness_right_right_left - 0123
rewrite hsecond_witness_witness_witness_right_right_left - 0124
rewrite <- hcoefficient - 0125
exact hvalue - 0126
rewrite hfirst_witness_witness_witness_right_right_right - 0127
rewrite hsecond_witness_witness_witness_right_right_right - 0128
exact hderivative
Separate complete second-wave branches: Full G095 proof · Alpha v27.