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 expanded first-order arithmetic statement
forall p k ab ac L bb bc M sb sc i c r. (((exists pfa_gap_scalar_coefficient_operationscalar. pfa_gap_scalar_coefficient_operationscalar + S (k) = (p)) /\ ((forall pfp_index_scalar_coefficient_operation. (exists pfa_gap_scalar_coefficient_operationindex. pfa_gap_scalar_coefficient_operationindex + S (pfp_index_scalar_coefficient_operation) = (M)) -> exists pfp_source_scalar_coefficient_operation pfp_value_scalar_coefficient_operation. ((((exists ff_h_pfp_scalar_coefficient_operationsource. ff_h_pfp_scalar_coefficient_operationsource + S (pfp_source_scalar_coefficient_operation) = S ((S (pfp_index_scalar_coefficient_operation)) * bc)) /\ exists ff_q_pfp_scalar_coefficient_operationsource. bb = ff_q_pfp_scalar_coefficient_operationsource * S ((S (pfp_index_scalar_coefficient_operation)) * bc) + (pfp_source_scalar_coefficient_operation))) /\ (((((exists ff_h_pfp_scalar_coefficient_operationtarget. ff_h_pfp_scalar_coefficient_operationtarget + S (pfp_value_scalar_coefficient_operation) = S ((S (pfp_index_scalar_coefficient_operation)) * sc)) /\ exists ff_q_pfp_scalar_coefficient_operationtarget. sb = ff_q_pfp_scalar_coefficient_operationtarget * S ((S (pfp_index_scalar_coefficient_operation)) * sc) + (pfp_value_scalar_coefficient_operation))) /\ ((((exists pfa_gap_scalar_coefficient_operationoperationleft. pfa_gap_scalar_coefficient_operationoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scalar_coefficient_operationoperationright. pfa_gap_scalar_coefficient_operationoperationright + S (pfp_source_scalar_coefficient_operation) = (p)) /\ ((((exists pfa_gap_scalar_coefficient_operationoperationresultbound. pfa_gap_scalar_coefficient_operationoperationresultbound + S (pfp_value_scalar_coefficient_operation) = (p)) /\ ((exists pfa_offset_left_scalar_coefficient_operationoperationresultcongruence pfa_offset_right_scalar_coefficient_operationoperationresultcongruence. ((k) * (pfp_source_scalar_coefficient_operation)) + (p) * pfa_offset_left_scalar_coefficient_operationoperationresultcongruence = (pfp_value_scalar_coefficient_operation) + (p) * pfa_offset_right_scalar_coefficient_operationoperationresultcongruence))))))))))))))))) -> (exists pfc_terms_code_scalar_coefficient_original pfc_terms_scale_scalar_coefficient_original pfc_natural_sum_scalar_coefficient_original. ((forall pfc_index_scalar_coefficient_originaldiagonal. (exists pfa_gap_scalar_coefficient_originaldiagonalbound. pfa_gap_scalar_coefficient_originaldiagonalbound + S (pfc_index_scalar_coefficient_originaldiagonal) = (S (i))) -> exists pfc_value_scalar_coefficient_originaldiagonal. ((((exists ff_h_pfp_scalar_coefficient_originaldiagonalentry. ff_h_pfp_scalar_coefficient_originaldiagonalentry + S (pfc_value_scalar_coefficient_originaldiagonal) = S ((S (pfc_index_scalar_coefficient_originaldiagonal)) * pfc_terms_scale_scalar_coefficient_original)) /\ exists ff_q_pfp_scalar_coefficient_originaldiagonalentry. pfc_terms_code_scalar_coefficient_original = ff_q_pfp_scalar_coefficient_originaldiagonalentry * S ((S (pfc_index_scalar_coefficient_originaldiagonal)) * pfc_terms_scale_scalar_coefficient_original) + (pfc_value_scalar_coefficient_originaldiagonal))) /\ ((exists pfc_complement_scalar_coefficient_originaldiagonalterm pfc_left_scalar_coefficient_originaldiagonalterm pfc_right_scalar_coefficient_originaldiagonalterm. (((pfc_index_scalar_coefficient_originaldiagonal)+pfc_complement_scalar_coefficient_originaldiagonalterm=(i)) /\ ((((((exists pfa_gap_scalar_coefficient_originaldiagonaltermleftinside. pfa_gap_scalar_coefficient_originaldiagonaltermleftinside + S (pfc_index_scalar_coefficient_originaldiagonal) = (L)) /\ ((((exists ff_h_pfp_scalar_coefficient_originaldiagonaltermleftentry. ff_h_pfp_scalar_coefficient_originaldiagonaltermleftentry + S (pfc_left_scalar_coefficient_originaldiagonalterm) = S ((S (pfc_index_scalar_coefficient_originaldiagonal)) * ac)) /\ exists ff_q_pfp_scalar_coefficient_originaldiagonaltermleftentry. ab = ff_q_pfp_scalar_coefficient_originaldiagonaltermleftentry * S ((S (pfc_index_scalar_coefficient_originaldiagonal)) * ac) + (pfc_left_scalar_coefficient_originaldiagonalterm)))))) \/ (((exists pfc_gap_scalar_coefficient_originaldiagonaltermleftoutside. pfc_gap_scalar_coefficient_originaldiagonaltermleftoutside+(L)=(pfc_index_scalar_coefficient_originaldiagonal)) /\ (((pfc_left_scalar_coefficient_originaldiagonalterm)=0))))) /\ ((((((exists pfa_gap_scalar_coefficient_originaldiagonaltermrightinside. pfa_gap_scalar_coefficient_originaldiagonaltermrightinside + S (pfc_complement_scalar_coefficient_originaldiagonalterm) = (M)) /\ ((((exists ff_h_pfp_scalar_coefficient_originaldiagonaltermrightentry. ff_h_pfp_scalar_coefficient_originaldiagonaltermrightentry + S (pfc_right_scalar_coefficient_originaldiagonalterm) = S ((S (pfc_complement_scalar_coefficient_originaldiagonalterm)) * bc)) /\ exists ff_q_pfp_scalar_coefficient_originaldiagonaltermrightentry. bb = ff_q_pfp_scalar_coefficient_originaldiagonaltermrightentry * S ((S (pfc_complement_scalar_coefficient_originaldiagonalterm)) * bc) + (pfc_right_scalar_coefficient_originaldiagonalterm)))))) \/ (((exists pfc_gap_scalar_coefficient_originaldiagonaltermrightoutside. pfc_gap_scalar_coefficient_originaldiagonaltermrightoutside+(M)=(pfc_complement_scalar_coefficient_originaldiagonalterm)) /\ (((pfc_right_scalar_coefficient_originaldiagonalterm)=0))))) /\ (((pfc_value_scalar_coefficient_originaldiagonal)=pfc_left_scalar_coefficient_originaldiagonalterm*pfc_right_scalar_coefficient_originaldiagonalterm))))))))))) /\ (((exists fs_u_pfc_scalar_coefficient_originalsum fs_v_pfc_scalar_coefficient_originalsum. ((((exists fs_h_pfc_scalar_coefficient_originalsum_body_start. fs_h_pfc_scalar_coefficient_originalsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_scalar_coefficient_originalsum)) /\ exists fs_q_pfc_scalar_coefficient_originalsum_body_start. fs_u_pfc_scalar_coefficient_originalsum = fs_q_pfc_scalar_coefficient_originalsum_body_start * S ((S (0)) * fs_v_pfc_scalar_coefficient_originalsum) + (0))) /\ ((((exists fs_h_pfc_scalar_coefficient_originalsum_body_terminal. fs_h_pfc_scalar_coefficient_originalsum_body_terminal + S (pfc_natural_sum_scalar_coefficient_original) = S ((S (S (i))) * fs_v_pfc_scalar_coefficient_originalsum)) /\ exists fs_q_pfc_scalar_coefficient_originalsum_body_terminal. fs_u_pfc_scalar_coefficient_originalsum = fs_q_pfc_scalar_coefficient_originalsum_body_terminal * S ((S (S (i))) * fs_v_pfc_scalar_coefficient_originalsum) + (pfc_natural_sum_scalar_coefficient_original))) /\ forall fs_i_pfc_scalar_coefficient_originalsum_body_steps. (exists fs_lt_pfc_scalar_coefficient_originalsum_body_steps_bound. fs_lt_pfc_scalar_coefficient_originalsum_body_steps_bound + S fs_i_pfc_scalar_coefficient_originalsum_body_steps = S (i)) -> exists fs_a_pfc_scalar_coefficient_originalsum_body_steps fs_r_pfc_scalar_coefficient_originalsum_body_steps fs_s_pfc_scalar_coefficient_originalsum_body_steps. ((((exists fs_h_pfc_scalar_coefficient_originalsum_body_steps_summand. fs_h_pfc_scalar_coefficient_originalsum_body_steps_summand + S (fs_a_pfc_scalar_coefficient_originalsum_body_steps) = S ((S (fs_i_pfc_scalar_coefficient_originalsum_body_steps)) * pfc_terms_scale_scalar_coefficient_original)) /\ exists fs_q_pfc_scalar_coefficient_originalsum_body_steps_summand. pfc_terms_code_scalar_coefficient_original = fs_q_pfc_scalar_coefficient_originalsum_body_steps_summand * S ((S (fs_i_pfc_scalar_coefficient_originalsum_body_steps)) * pfc_terms_scale_scalar_coefficient_original) + (fs_a_pfc_scalar_coefficient_originalsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_coefficient_originalsum_body_steps_partial. fs_h_pfc_scalar_coefficient_originalsum_body_steps_partial + S (fs_r_pfc_scalar_coefficient_originalsum_body_steps) = S ((S (fs_i_pfc_scalar_coefficient_originalsum_body_steps)) * fs_v_pfc_scalar_coefficient_originalsum)) /\ exists fs_q_pfc_scalar_coefficient_originalsum_body_steps_partial. fs_u_pfc_scalar_coefficient_originalsum = fs_q_pfc_scalar_coefficient_originalsum_body_steps_partial * S ((S (fs_i_pfc_scalar_coefficient_originalsum_body_steps)) * fs_v_pfc_scalar_coefficient_originalsum) + (fs_r_pfc_scalar_coefficient_originalsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_coefficient_originalsum_body_steps_successor. fs_h_pfc_scalar_coefficient_originalsum_body_steps_successor + S (fs_s_pfc_scalar_coefficient_originalsum_body_steps) = S ((S (S fs_i_pfc_scalar_coefficient_originalsum_body_steps)) * fs_v_pfc_scalar_coefficient_originalsum)) /\ exists fs_q_pfc_scalar_coefficient_originalsum_body_steps_successor. fs_u_pfc_scalar_coefficient_originalsum = fs_q_pfc_scalar_coefficient_originalsum_body_steps_successor * S ((S (S fs_i_pfc_scalar_coefficient_originalsum_body_steps)) * fs_v_pfc_scalar_coefficient_originalsum) + (fs_s_pfc_scalar_coefficient_originalsum_body_steps))) /\ fs_s_pfc_scalar_coefficient_originalsum_body_steps = fs_r_pfc_scalar_coefficient_originalsum_body_steps + fs_a_pfc_scalar_coefficient_originalsum_body_steps)))))) /\ ((((exists pfa_gap_scalar_coefficient_originalresiduebound. pfa_gap_scalar_coefficient_originalresiduebound + S (c) = (p)) /\ ((exists pfa_offset_left_scalar_coefficient_originalresiduecongruence pfa_offset_right_scalar_coefficient_originalresiduecongruence. (pfc_natural_sum_scalar_coefficient_original) + (p) * pfa_offset_left_scalar_coefficient_originalresiduecongruence = (c) + (p) * pfa_offset_right_scalar_coefficient_originalresiduecongruence))))))))) -> (exists pfc_terms_code_scalar_coefficient_scaled pfc_terms_scale_scalar_coefficient_scaled pfc_natural_sum_scalar_coefficient_scaled. ((forall pfc_index_scalar_coefficient_scaleddiagonal. (exists pfa_gap_scalar_coefficient_scaleddiagonalbound. pfa_gap_scalar_coefficient_scaleddiagonalbound + S (pfc_index_scalar_coefficient_scaleddiagonal) = (S (i))) -> exists pfc_value_scalar_coefficient_scaleddiagonal. ((((exists ff_h_pfp_scalar_coefficient_scaleddiagonalentry. ff_h_pfp_scalar_coefficient_scaleddiagonalentry + S (pfc_value_scalar_coefficient_scaleddiagonal) = S ((S (pfc_index_scalar_coefficient_scaleddiagonal)) * pfc_terms_scale_scalar_coefficient_scaled)) /\ exists ff_q_pfp_scalar_coefficient_scaleddiagonalentry. pfc_terms_code_scalar_coefficient_scaled = ff_q_pfp_scalar_coefficient_scaleddiagonalentry * S ((S (pfc_index_scalar_coefficient_scaleddiagonal)) * pfc_terms_scale_scalar_coefficient_scaled) + (pfc_value_scalar_coefficient_scaleddiagonal))) /\ ((exists pfc_complement_scalar_coefficient_scaleddiagonalterm pfc_left_scalar_coefficient_scaleddiagonalterm pfc_right_scalar_coefficient_scaleddiagonalterm. (((pfc_index_scalar_coefficient_scaleddiagonal)+pfc_complement_scalar_coefficient_scaleddiagonalterm=(i)) /\ ((((((exists pfa_gap_scalar_coefficient_scaleddiagonaltermleftinside. pfa_gap_scalar_coefficient_scaleddiagonaltermleftinside + S (pfc_index_scalar_coefficient_scaleddiagonal) = (L)) /\ ((((exists ff_h_pfp_scalar_coefficient_scaleddiagonaltermleftentry. ff_h_pfp_scalar_coefficient_scaleddiagonaltermleftentry + S (pfc_left_scalar_coefficient_scaleddiagonalterm) = S ((S (pfc_index_scalar_coefficient_scaleddiagonal)) * ac)) /\ exists ff_q_pfp_scalar_coefficient_scaleddiagonaltermleftentry. ab = ff_q_pfp_scalar_coefficient_scaleddiagonaltermleftentry * S ((S (pfc_index_scalar_coefficient_scaleddiagonal)) * ac) + (pfc_left_scalar_coefficient_scaleddiagonalterm)))))) \/ (((exists pfc_gap_scalar_coefficient_scaleddiagonaltermleftoutside. pfc_gap_scalar_coefficient_scaleddiagonaltermleftoutside+(L)=(pfc_index_scalar_coefficient_scaleddiagonal)) /\ (((pfc_left_scalar_coefficient_scaleddiagonalterm)=0))))) /\ ((((((exists pfa_gap_scalar_coefficient_scaleddiagonaltermrightinside. pfa_gap_scalar_coefficient_scaleddiagonaltermrightinside + S (pfc_complement_scalar_coefficient_scaleddiagonalterm) = (M)) /\ ((((exists ff_h_pfp_scalar_coefficient_scaleddiagonaltermrightentry. ff_h_pfp_scalar_coefficient_scaleddiagonaltermrightentry + S (pfc_right_scalar_coefficient_scaleddiagonalterm) = S ((S (pfc_complement_scalar_coefficient_scaleddiagonalterm)) * sc)) /\ exists ff_q_pfp_scalar_coefficient_scaleddiagonaltermrightentry. sb = ff_q_pfp_scalar_coefficient_scaleddiagonaltermrightentry * S ((S (pfc_complement_scalar_coefficient_scaleddiagonalterm)) * sc) + (pfc_right_scalar_coefficient_scaleddiagonalterm)))))) \/ (((exists pfc_gap_scalar_coefficient_scaleddiagonaltermrightoutside. pfc_gap_scalar_coefficient_scaleddiagonaltermrightoutside+(M)=(pfc_complement_scalar_coefficient_scaleddiagonalterm)) /\ (((pfc_right_scalar_coefficient_scaleddiagonalterm)=0))))) /\ (((pfc_value_scalar_coefficient_scaleddiagonal)=pfc_left_scalar_coefficient_scaleddiagonalterm*pfc_right_scalar_coefficient_scaleddiagonalterm))))))))))) /\ (((exists fs_u_pfc_scalar_coefficient_scaledsum fs_v_pfc_scalar_coefficient_scaledsum. ((((exists fs_h_pfc_scalar_coefficient_scaledsum_body_start. fs_h_pfc_scalar_coefficient_scaledsum_body_start + S (0) = S ((S (0)) * fs_v_pfc_scalar_coefficient_scaledsum)) /\ exists fs_q_pfc_scalar_coefficient_scaledsum_body_start. fs_u_pfc_scalar_coefficient_scaledsum = fs_q_pfc_scalar_coefficient_scaledsum_body_start * S ((S (0)) * fs_v_pfc_scalar_coefficient_scaledsum) + (0))) /\ ((((exists fs_h_pfc_scalar_coefficient_scaledsum_body_terminal. fs_h_pfc_scalar_coefficient_scaledsum_body_terminal + S (pfc_natural_sum_scalar_coefficient_scaled) = S ((S (S (i))) * fs_v_pfc_scalar_coefficient_scaledsum)) /\ exists fs_q_pfc_scalar_coefficient_scaledsum_body_terminal. fs_u_pfc_scalar_coefficient_scaledsum = fs_q_pfc_scalar_coefficient_scaledsum_body_terminal * S ((S (S (i))) * fs_v_pfc_scalar_coefficient_scaledsum) + (pfc_natural_sum_scalar_coefficient_scaled))) /\ forall fs_i_pfc_scalar_coefficient_scaledsum_body_steps. (exists fs_lt_pfc_scalar_coefficient_scaledsum_body_steps_bound. fs_lt_pfc_scalar_coefficient_scaledsum_body_steps_bound + S fs_i_pfc_scalar_coefficient_scaledsum_body_steps = S (i)) -> exists fs_a_pfc_scalar_coefficient_scaledsum_body_steps fs_r_pfc_scalar_coefficient_scaledsum_body_steps fs_s_pfc_scalar_coefficient_scaledsum_body_steps. ((((exists fs_h_pfc_scalar_coefficient_scaledsum_body_steps_summand. fs_h_pfc_scalar_coefficient_scaledsum_body_steps_summand + S (fs_a_pfc_scalar_coefficient_scaledsum_body_steps) = S ((S (fs_i_pfc_scalar_coefficient_scaledsum_body_steps)) * pfc_terms_scale_scalar_coefficient_scaled)) /\ exists fs_q_pfc_scalar_coefficient_scaledsum_body_steps_summand. pfc_terms_code_scalar_coefficient_scaled = fs_q_pfc_scalar_coefficient_scaledsum_body_steps_summand * S ((S (fs_i_pfc_scalar_coefficient_scaledsum_body_steps)) * pfc_terms_scale_scalar_coefficient_scaled) + (fs_a_pfc_scalar_coefficient_scaledsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_coefficient_scaledsum_body_steps_partial. fs_h_pfc_scalar_coefficient_scaledsum_body_steps_partial + S (fs_r_pfc_scalar_coefficient_scaledsum_body_steps) = S ((S (fs_i_pfc_scalar_coefficient_scaledsum_body_steps)) * fs_v_pfc_scalar_coefficient_scaledsum)) /\ exists fs_q_pfc_scalar_coefficient_scaledsum_body_steps_partial. fs_u_pfc_scalar_coefficient_scaledsum = fs_q_pfc_scalar_coefficient_scaledsum_body_steps_partial * S ((S (fs_i_pfc_scalar_coefficient_scaledsum_body_steps)) * fs_v_pfc_scalar_coefficient_scaledsum) + (fs_r_pfc_scalar_coefficient_scaledsum_body_steps))) /\ ((((exists fs_h_pfc_scalar_coefficient_scaledsum_body_steps_successor. fs_h_pfc_scalar_coefficient_scaledsum_body_steps_successor + S (fs_s_pfc_scalar_coefficient_scaledsum_body_steps) = S ((S (S fs_i_pfc_scalar_coefficient_scaledsum_body_steps)) * fs_v_pfc_scalar_coefficient_scaledsum)) /\ exists fs_q_pfc_scalar_coefficient_scaledsum_body_steps_successor. fs_u_pfc_scalar_coefficient_scaledsum = fs_q_pfc_scalar_coefficient_scaledsum_body_steps_successor * S ((S (S fs_i_pfc_scalar_coefficient_scaledsum_body_steps)) * fs_v_pfc_scalar_coefficient_scaledsum) + (fs_s_pfc_scalar_coefficient_scaledsum_body_steps))) /\ fs_s_pfc_scalar_coefficient_scaledsum_body_steps = fs_r_pfc_scalar_coefficient_scaledsum_body_steps + fs_a_pfc_scalar_coefficient_scaledsum_body_steps)))))) /\ ((((exists pfa_gap_scalar_coefficient_scaledresiduebound. pfa_gap_scalar_coefficient_scaledresiduebound + S (r) = (p)) /\ ((exists pfa_offset_left_scalar_coefficient_scaledresiduecongruence pfa_offset_right_scalar_coefficient_scaledresiduecongruence. (pfc_natural_sum_scalar_coefficient_scaled) + (p) * pfa_offset_left_scalar_coefficient_scaledresiduecongruence = (r) + (p) * pfa_offset_right_scalar_coefficient_scaledresiduecongruence))))))))) -> (((exists pfa_gap_scalar_coefficient_resultleft. pfa_gap_scalar_coefficient_resultleft + S (k) = (p)) /\ (((exists pfa_gap_scalar_coefficient_resultright. pfa_gap_scalar_coefficient_resultright + S (c) = (p)) /\ ((((exists pfa_gap_scalar_coefficient_resultresultbound. pfa_gap_scalar_coefficient_resultresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_scalar_coefficient_resultresultcongruence pfa_offset_right_scalar_coefficient_resultresultcongruence. ((k) * (c)) + (p) * pfa_offset_left_scalar_coefficient_resultresultcongruence = (r) + (p) * pfa_offset_right_scalar_coefficient_resultresultcongruence)))))))))Constructive proof overview
Generated structural guide
At every natural index the actual scaled-input convolution coefficient is the actual canonical product of k and the original coefficient, including all exterior coefficients and composite moduli.
The unchanged tactic script uses 4 declared prerequisites and contains 84 exact native proof lines.
Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PG0013 polynomial_diagonal_sum_right_scale_congruent mod_eq_trans Alpha theorem; checked-use authorized mod_eq_symm Alpha theorem; checked-use authorized mod_eq_mul_left Alpha 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 (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–16
03Separate the logical casesL17–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
04Establish hsumL27–36
Establish this local claim before using it. It is not an additional assumption.
- L27
have hsum : exists pfa_offset_left_scalar_coefficient_actual_sum pfa_offset_right_scalar_coefficient_actual_sum. (k*x2) + (p) * pfa_offset_left_scalar_coefficient_actual_sum = (x5) + (p) * pfa_offset_right_scalar_coefficient_actual_sum - L28
specialize polynomial_diagonal_sum_right_scale_congruent (p) - L29
specialize polynomial_diagonal_sum_right_scale_congruent (k) - L30
specialize polynomial_diagonal_sum_right_scale_congruent (ab) - L31
specialize polynomial_diagonal_sum_right_scale_congruent (ac) - L32
specialize polynomial_diagonal_sum_right_scale_congruent (L) - L33
specialize polynomial_diagonal_sum_right_scale_congruent (bb) - L34
specialize polynomial_diagonal_sum_right_scale_congruent (bc) - L35
specialize polynomial_diagonal_sum_right_scale_congruent (M) - L36
specialize polynomial_diagonal_sum_right_scale_congruent (sb)
05Use earlier factsL37–46
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
specialize polynomial_diagonal_sum_right_scale_congruent (sc) - L38
specialize polynomial_diagonal_sum_right_scale_congruent (i) - L39
specialize polynomial_diagonal_sum_right_scale_congruent (x) - L40
specialize polynomial_diagonal_sum_right_scale_congruent (x1) - L41
specialize polynomial_diagonal_sum_right_scale_congruent (x3) - L42
specialize polynomial_diagonal_sum_right_scale_congruent (x4) - L43
specialize polynomial_diagonal_sum_right_scale_congruent (S i) - L44
specialize polynomial_diagonal_sum_right_scale_congruent (x2) - L45
specialize polynomial_diagonal_sum_right_scale_congruent (x5) - L46
apply polynomial_diagonal_sum_right_scale_congruent
06Use earlier factsL47–51
07Separate the logical casesL52–54
08Establish htailL55–62
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq trans.
- L55
have htail : exists pfa_offset_left_scalar_coefficient_tail pfa_offset_right_scalar_coefficient_tail. (k*x2) + (p) * pfa_offset_left_scalar_coefficient_tail = (r) + (p) * pfa_offset_right_scalar_coefficient_tail - L56
specialize mod_eq_trans (p) - L57
specialize mod_eq_trans (k*x2) - L58
specialize mod_eq_trans (x5) - L59
specialize mod_eq_trans (r) - L60
apply mod_eq_trans - L61
exact hsum - L62
exact hr_witness_witness_witness_right_right_right
09Separate the logical casesL63–63
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L63
split
10Use earlier factsL64–64
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L64
exact hs_left
11Separate the logical casesL65–65
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L65
split
12Use earlier factsL66–66
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L66
exact hc_witness_witness_witness_right_right_left
13Separate the logical casesL67–67
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L67
split
14Use earlier factsL68–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L68
exact hr_witness_witness_witness_right_right_left - L69
specialize mod_eq_trans (p) - L70
specialize mod_eq_trans (k*c) - L71
specialize mod_eq_trans (k*x2) - L72
specialize mod_eq_trans (r) - L73
apply mod_eq_trans - L74
specialize mod_eq_symm (p) - L75
specialize mod_eq_symm (k*x2) - L76
specialize mod_eq_symm (k*c) - L77
apply mod_eq_symm
15Use earlier factsL78–84
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 84 lines
- 0001
intro p - 0002
intro k - 0003
intro ab - 0004
intro ac - 0005
intro L - 0006
intro bb - 0007
intro bc - 0008
intro M - 0009
intro sb - 0010
intro sc - 0011
intro i - 0012
intro c - 0013
intro r - 0014
intro hs - 0015
intro hc - 0016
intro hr - 0017
cases hc - 0018
cases hc_witness - 0019
cases hc_witness_witness - 0020
cases hc_witness_witness_witness - 0021
cases hc_witness_witness_witness_right - 0022
cases hr - 0023
cases hr_witness - 0024
cases hr_witness_witness - 0025
cases hr_witness_witness_witness - 0026
cases hr_witness_witness_witness_right - 0027
have hsum : exists pfa_offset_left_scalar_coefficient_actual_sum pfa_offset_right_scalar_coefficient_actual_sum. (k*x2) + (p) * pfa_offset_left_scalar_coefficient_actual_sum = (x5) + (p) * pfa_offset_right_scalar_coefficient_actual_sum - 0028
specialize polynomial_diagonal_sum_right_scale_congruent (p) - 0029
specialize polynomial_diagonal_sum_right_scale_congruent (k) - 0030
specialize polynomial_diagonal_sum_right_scale_congruent (ab) - 0031
specialize polynomial_diagonal_sum_right_scale_congruent (ac) - 0032
specialize polynomial_diagonal_sum_right_scale_congruent (L) - 0033
specialize polynomial_diagonal_sum_right_scale_congruent (bb) - 0034
specialize polynomial_diagonal_sum_right_scale_congruent (bc) - 0035
specialize polynomial_diagonal_sum_right_scale_congruent (M) - 0036
specialize polynomial_diagonal_sum_right_scale_congruent (sb) - 0037
specialize polynomial_diagonal_sum_right_scale_congruent (sc) - 0038
specialize polynomial_diagonal_sum_right_scale_congruent (i) - 0039
specialize polynomial_diagonal_sum_right_scale_congruent (x) - 0040
specialize polynomial_diagonal_sum_right_scale_congruent (x1) - 0041
specialize polynomial_diagonal_sum_right_scale_congruent (x3) - 0042
specialize polynomial_diagonal_sum_right_scale_congruent (x4) - 0043
specialize polynomial_diagonal_sum_right_scale_congruent (S i) - 0044
specialize polynomial_diagonal_sum_right_scale_congruent (x2) - 0045
specialize polynomial_diagonal_sum_right_scale_congruent (x5) - 0046
apply polynomial_diagonal_sum_right_scale_congruent - 0047
exact hs - 0048
exact hc_witness_witness_witness_left - 0049
exact hc_witness_witness_witness_right_left - 0050
exact hr_witness_witness_witness_left - 0051
exact hr_witness_witness_witness_right_left - 0052
cases hs - 0053
cases hc_witness_witness_witness_right_right - 0054
cases hr_witness_witness_witness_right_right - 0055
have htail : exists pfa_offset_left_scalar_coefficient_tail pfa_offset_right_scalar_coefficient_tail. (k*x2) + (p) * pfa_offset_left_scalar_coefficient_tail = (r) + (p) * pfa_offset_right_scalar_coefficient_tail - 0056
specialize mod_eq_trans (p) - 0057
specialize mod_eq_trans (k*x2) - 0058
specialize mod_eq_trans (x5) - 0059
specialize mod_eq_trans (r) - 0060
apply mod_eq_trans - 0061
exact hsum - 0062
exact hr_witness_witness_witness_right_right_right - 0063
split - 0064
exact hs_left - 0065
split - 0066
exact hc_witness_witness_witness_right_right_left - 0067
split - 0068
exact hr_witness_witness_witness_right_right_left - 0069
specialize mod_eq_trans (p) - 0070
specialize mod_eq_trans (k*c) - 0071
specialize mod_eq_trans (k*x2) - 0072
specialize mod_eq_trans (r) - 0073
apply mod_eq_trans - 0074
specialize mod_eq_symm (p) - 0075
specialize mod_eq_symm (k*x2) - 0076
specialize mod_eq_symm (k*c) - 0077
apply mod_eq_symm - 0078
specialize mod_eq_mul_left (p) - 0079
specialize mod_eq_mul_left (x2) - 0080
specialize mod_eq_mul_left (c) - 0081
specialize mod_eq_mul_left (k) - 0082
apply mod_eq_mul_left - 0083
exact hc_witness_witness_witness_right_right_right - 0084
exact htail