PG0012

polynomial_diagonal_term_right_scale_congruent

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

The uniquely identified complementary index and unchanged left coefficient turn actual right-input scaling into pointwise antidiagonal scalar congruence.

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 j t r. (((exists pfa_gap_scalar_term_operationscalar. pfa_gap_scalar_term_operationscalar + S (k) = (p)) /\ ((forall pfp_index_scalar_term_operation. (exists pfa_gap_scalar_term_operationindex. pfa_gap_scalar_term_operationindex + S (pfp_index_scalar_term_operation) = (M)) -> exists pfp_source_scalar_term_operation pfp_value_scalar_term_operation. ((((exists ff_h_pfp_scalar_term_operationsource. ff_h_pfp_scalar_term_operationsource + S (pfp_source_scalar_term_operation) = S ((S (pfp_index_scalar_term_operation)) * bc)) /\ exists ff_q_pfp_scalar_term_operationsource. bb = ff_q_pfp_scalar_term_operationsource * S ((S (pfp_index_scalar_term_operation)) * bc) + (pfp_source_scalar_term_operation))) /\ (((((exists ff_h_pfp_scalar_term_operationtarget. ff_h_pfp_scalar_term_operationtarget + S (pfp_value_scalar_term_operation) = S ((S (pfp_index_scalar_term_operation)) * sc)) /\ exists ff_q_pfp_scalar_term_operationtarget. sb = ff_q_pfp_scalar_term_operationtarget * S ((S (pfp_index_scalar_term_operation)) * sc) + (pfp_value_scalar_term_operation))) /\ ((((exists pfa_gap_scalar_term_operationoperationleft. pfa_gap_scalar_term_operationoperationleft + S (k) = (p)) /\ (((exists pfa_gap_scalar_term_operationoperationright. pfa_gap_scalar_term_operationoperationright + S (pfp_source_scalar_term_operation) = (p)) /\ ((((exists pfa_gap_scalar_term_operationoperationresultbound. pfa_gap_scalar_term_operationoperationresultbound + S (pfp_value_scalar_term_operation) = (p)) /\ ((exists pfa_offset_left_scalar_term_operationoperationresultcongruence pfa_offset_right_scalar_term_operationoperationresultcongruence. ((k) * (pfp_source_scalar_term_operation)) + (p) * pfa_offset_left_scalar_term_operationoperationresultcongruence = (pfp_value_scalar_term_operation) + (p) * pfa_offset_right_scalar_term_operationoperationresultcongruence))))))))))))))))) -> (exists pfc_complement_scalar_term_original pfc_left_scalar_term_original pfc_right_scalar_term_original. (((j)+pfc_complement_scalar_term_original=(i)) /\ ((((((exists pfa_gap_scalar_term_originalleftinside. pfa_gap_scalar_term_originalleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_scalar_term_originalleftentry. ff_h_pfp_scalar_term_originalleftentry + S (pfc_left_scalar_term_original) = S ((S (j)) * ac)) /\ exists ff_q_pfp_scalar_term_originalleftentry. ab = ff_q_pfp_scalar_term_originalleftentry * S ((S (j)) * ac) + (pfc_left_scalar_term_original)))))) \/ (((exists pfc_gap_scalar_term_originalleftoutside. pfc_gap_scalar_term_originalleftoutside+(L)=(j)) /\ (((pfc_left_scalar_term_original)=0))))) /\ ((((((exists pfa_gap_scalar_term_originalrightinside. pfa_gap_scalar_term_originalrightinside + S (pfc_complement_scalar_term_original) = (M)) /\ ((((exists ff_h_pfp_scalar_term_originalrightentry. ff_h_pfp_scalar_term_originalrightentry + S (pfc_right_scalar_term_original) = S ((S (pfc_complement_scalar_term_original)) * bc)) /\ exists ff_q_pfp_scalar_term_originalrightentry. bb = ff_q_pfp_scalar_term_originalrightentry * S ((S (pfc_complement_scalar_term_original)) * bc) + (pfc_right_scalar_term_original)))))) \/ (((exists pfc_gap_scalar_term_originalrightoutside. pfc_gap_scalar_term_originalrightoutside+(M)=(pfc_complement_scalar_term_original)) /\ (((pfc_right_scalar_term_original)=0))))) /\ (((t)=pfc_left_scalar_term_original*pfc_right_scalar_term_original)))))))) -> (exists pfc_complement_scalar_term_scaled pfc_left_scalar_term_scaled pfc_right_scalar_term_scaled. (((j)+pfc_complement_scalar_term_scaled=(i)) /\ ((((((exists pfa_gap_scalar_term_scaledleftinside. pfa_gap_scalar_term_scaledleftinside + S (j) = (L)) /\ ((((exists ff_h_pfp_scalar_term_scaledleftentry. ff_h_pfp_scalar_term_scaledleftentry + S (pfc_left_scalar_term_scaled) = S ((S (j)) * ac)) /\ exists ff_q_pfp_scalar_term_scaledleftentry. ab = ff_q_pfp_scalar_term_scaledleftentry * S ((S (j)) * ac) + (pfc_left_scalar_term_scaled)))))) \/ (((exists pfc_gap_scalar_term_scaledleftoutside. pfc_gap_scalar_term_scaledleftoutside+(L)=(j)) /\ (((pfc_left_scalar_term_scaled)=0))))) /\ ((((((exists pfa_gap_scalar_term_scaledrightinside. pfa_gap_scalar_term_scaledrightinside + S (pfc_complement_scalar_term_scaled) = (M)) /\ ((((exists ff_h_pfp_scalar_term_scaledrightentry. ff_h_pfp_scalar_term_scaledrightentry + S (pfc_right_scalar_term_scaled) = S ((S (pfc_complement_scalar_term_scaled)) * sc)) /\ exists ff_q_pfp_scalar_term_scaledrightentry. sb = ff_q_pfp_scalar_term_scaledrightentry * S ((S (pfc_complement_scalar_term_scaled)) * sc) + (pfc_right_scalar_term_scaled)))))) \/ (((exists pfc_gap_scalar_term_scaledrightoutside. pfc_gap_scalar_term_scaledrightoutside+(M)=(pfc_complement_scalar_term_scaled)) /\ (((pfc_right_scalar_term_scaled)=0))))) /\ (((r)=pfc_left_scalar_term_scaled*pfc_right_scalar_term_scaled)))))))) -> (exists pfa_offset_left_scalar_term_result pfa_offset_right_scalar_term_result. (k*t) + (p) * pfa_offset_left_scalar_term_result = (r) + (p) * pfa_offset_right_scalar_term_result)

Constructive proof overview

Generated structural guide

The uniquely identified complementary index and unchanged left coefficient turn actual right-input scaling into pointwise antidiagonal scalar congruence.

The unchanged tactic script uses 6 declared prerequisites and contains 81 exact native proof lines.

Alpha v34 checked-use · first admitted v34 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

add_left_cancel Alpha theorem; checked-use authorized polynomial_zero_extended_entry_functional Alpha theorem; checked-use authorized PG0011 polynomial_zero_extended_scale_congruent mod_eq_mul_left Alpha theorem; checked-use authorized mul_assoc Alpha theorem; checked-use authorized mul_comm Alpha theorem; checked-use authorized

Direct 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

81 script commands · 11 reading checkpoints · 5 local claims

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

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro p
  2. L2
    intro k
  3. L3
    intro ab
  4. L4
    intro ac
  5. L5
    intro L
  6. L6
    intro bb
  7. L7
    intro bc
  8. L8
    intro M
  9. L9
    intro sb
  10. L10
    intro sc
02Fix variables and assumptionsL11–17

Work with arbitrary variables or the premises of the current implication.

  1. L11
    intro i
  2. L12
    intro j
  3. L13
    intro t
  4. L14
    intro r
  5. L15
    intro hs
  6. L16
    intro ht
  7. L17
    intro hr
03Separate the logical casesL18–27

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L18
    cases ht
  2. L19
    cases ht_witness
  3. L20
    cases ht_witness_witness
  4. L21
    cases ht_witness_witness_witness
  5. L22
    cases ht_witness_witness_witness_right
  6. L23
    cases ht_witness_witness_witness_right_right
  7. L24
    cases hr
  8. L25
    cases hr_witness
  9. L26
    cases hr_witness_witness
  10. L27
    cases hr_witness_witness_witness
04Separate the logical casesL28–29

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L28
    cases hr_witness_witness_witness_right
  2. L29
    cases hr_witness_witness_witness_right_right
05Establish hindexL30–39

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply add left cancel.

  1. L30
    have hindex : x=x3
  2. L31
    specialize add_left_cancel (j)
  3. L32
    specialize add_left_cancel (x)
  4. L33
    specialize add_left_cancel (x3)
  5. L34
    apply add_left_cancel
  6. L35
    trans i
  7. L36
    exact ht_witness_witness_witness_left
  8. L37
    symm
  9. L38
    exact hr_witness_witness_witness_left
  10. L39
    rewrite hindex at ht_witness_witness_witness_right_right_left
06Calculate and transport equalitiesL40–42

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L40
    rewrite hindex at ht_witness_witness_witness_right_right_left
  2. L41
    rewrite hindex at ht_witness_witness_witness_right_right_left
  3. L42
    rewrite hindex at ht_witness_witness_witness_right_right_left
07Establish hleftL43–52

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply polynomial zero extended entry functional.

  1. L43
    have hleft : x1=x4
  2. L44
    specialize polynomial_zero_extended_entry_functional (ab)
  3. L45
    specialize polynomial_zero_extended_entry_functional (ac)
  4. L46
    specialize polynomial_zero_extended_entry_functional (L)
  5. L47
    specialize polynomial_zero_extended_entry_functional (j)
  6. L48
    specialize polynomial_zero_extended_entry_functional (x1)
  7. L49
    specialize polynomial_zero_extended_entry_functional (x4)
  8. L50
    apply polynomial_zero_extended_entry_functional
  9. L51
    exact ht_witness_witness_witness_right_left
  10. L52
    exact hr_witness_witness_witness_right_left
08Establish hscaleL53–62

Establish this local claim before using it. It is not an additional assumption.

  1. L53
    have hscale : exists pfa_offset_left_scalar_term_actual_right_scale pfa_offset_right_scalar_term_actual_right_scale. (k*x2) + (p) * pfa_offset_left_scalar_term_actual_right_scale = (x5) + (p) * pfa_offset_right_scalar_term_actual_right_scale
  2. L54
    specialize polynomial_zero_extended_scale_congruent (p)
  3. L55
    specialize polynomial_zero_extended_scale_congruent (k)
  4. L56
    specialize polynomial_zero_extended_scale_congruent (bb)
  5. L57
    specialize polynomial_zero_extended_scale_congruent (bc)
  6. L58
    specialize polynomial_zero_extended_scale_congruent (sb)
  7. L59
    specialize polynomial_zero_extended_scale_congruent (sc)
  8. L60
    specialize polynomial_zero_extended_scale_congruent (M)
  9. L61
    specialize polynomial_zero_extended_scale_congruent (x3)
  10. L62
    specialize polynomial_zero_extended_scale_congruent (x2)
09Use earlier factsL63–67

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L63
    specialize polynomial_zero_extended_scale_congruent (x5)
  2. L64
    apply polynomial_zero_extended_scale_congruent
  3. L65
    exact hs
  4. L66
    exact ht_witness_witness_witness_right_right_left
  5. L67
    exact hr_witness_witness_witness_right_right_left
10Establish hmL68–74

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply mod eq mul left.

  1. L68
    have hm : exists pfa_offset_left_scalar_term_product_congruence pfa_offset_right_scalar_term_product_congruence. (x4*(k*x2)) + (p) * pfa_offset_left_scalar_term_product_congruence = (x4*x5) + (p) * pfa_offset_right_scalar_term_product_congruence
  2. L69
    specialize mod_eq_mul_left (p)
  3. L70
    specialize mod_eq_mul_left (k*x2)
  4. L71
    specialize mod_eq_mul_left (x5)
  5. L72
    specialize mod_eq_mul_left (x4)
  6. L73
    apply mod_eq_mul_left
  7. L74
    exact hscale
11Establish hshuffleL75–81

Establish this local claim before using it. It is not an additional assumption.

  1. L75
    have hshuffle : k*(x1*x2)=x4*(k*x2)
  2. L76
    rewrite hleft
  3. L77
    simp [mul_assoc,mul_comm]
  4. L78
    rewrite ht_witness_witness_witness_right_right_right
  5. L79
    rewrite hr_witness_witness_witness_right_right_right
  6. L80
    rewrite hshuffle
  7. L81
    exact hm

Library-wide reading audit

Original exact command ledger · 81 lines
  1. 0001intro p
  2. 0002intro k
  3. 0003intro ab
  4. 0004intro ac
  5. 0005intro L
  6. 0006intro bb
  7. 0007intro bc
  8. 0008intro M
  9. 0009intro sb
  10. 0010intro sc
  11. 0011intro i
  12. 0012intro j
  13. 0013intro t
  14. 0014intro r
  15. 0015intro hs
  16. 0016intro ht
  17. 0017intro hr
  18. 0018cases ht
  19. 0019cases ht_witness
  20. 0020cases ht_witness_witness
  21. 0021cases ht_witness_witness_witness
  22. 0022cases ht_witness_witness_witness_right
  23. 0023cases ht_witness_witness_witness_right_right
  24. 0024cases hr
  25. 0025cases hr_witness
  26. 0026cases hr_witness_witness
  27. 0027cases hr_witness_witness_witness
  28. 0028cases hr_witness_witness_witness_right
  29. 0029cases hr_witness_witness_witness_right_right
  30. 0030have hindex : x=x3
  31. 0031specialize add_left_cancel (j)
  32. 0032specialize add_left_cancel (x)
  33. 0033specialize add_left_cancel (x3)
  34. 0034apply add_left_cancel
  35. 0035trans i
  36. 0036exact ht_witness_witness_witness_left
  37. 0037symm
  38. 0038exact hr_witness_witness_witness_left
  39. 0039rewrite hindex at ht_witness_witness_witness_right_right_left
  40. 0040rewrite hindex at ht_witness_witness_witness_right_right_left
  41. 0041rewrite hindex at ht_witness_witness_witness_right_right_left
  42. 0042rewrite hindex at ht_witness_witness_witness_right_right_left
  43. 0043have hleft : x1=x4
  44. 0044specialize polynomial_zero_extended_entry_functional (ab)
  45. 0045specialize polynomial_zero_extended_entry_functional (ac)
  46. 0046specialize polynomial_zero_extended_entry_functional (L)
  47. 0047specialize polynomial_zero_extended_entry_functional (j)
  48. 0048specialize polynomial_zero_extended_entry_functional (x1)
  49. 0049specialize polynomial_zero_extended_entry_functional (x4)
  50. 0050apply polynomial_zero_extended_entry_functional
  51. 0051exact ht_witness_witness_witness_right_left
  52. 0052exact hr_witness_witness_witness_right_left
  53. 0053have hscale : exists pfa_offset_left_scalar_term_actual_right_scale pfa_offset_right_scalar_term_actual_right_scale. (k*x2) + (p) * pfa_offset_left_scalar_term_actual_right_scale = (x5) + (p) * pfa_offset_right_scalar_term_actual_right_scale
  54. 0054specialize polynomial_zero_extended_scale_congruent (p)
  55. 0055specialize polynomial_zero_extended_scale_congruent (k)
  56. 0056specialize polynomial_zero_extended_scale_congruent (bb)
  57. 0057specialize polynomial_zero_extended_scale_congruent (bc)
  58. 0058specialize polynomial_zero_extended_scale_congruent (sb)
  59. 0059specialize polynomial_zero_extended_scale_congruent (sc)
  60. 0060specialize polynomial_zero_extended_scale_congruent (M)
  61. 0061specialize polynomial_zero_extended_scale_congruent (x3)
  62. 0062specialize polynomial_zero_extended_scale_congruent (x2)
  63. 0063specialize polynomial_zero_extended_scale_congruent (x5)
  64. 0064apply polynomial_zero_extended_scale_congruent
  65. 0065exact hs
  66. 0066exact ht_witness_witness_witness_right_right_left
  67. 0067exact hr_witness_witness_witness_right_right_left
  68. 0068have hm : exists pfa_offset_left_scalar_term_product_congruence pfa_offset_right_scalar_term_product_congruence. (x4*(k*x2)) + (p) * pfa_offset_left_scalar_term_product_congruence = (x4*x5) + (p) * pfa_offset_right_scalar_term_product_congruence
  69. 0069specialize mod_eq_mul_left (p)
  70. 0070specialize mod_eq_mul_left (k*x2)
  71. 0071specialize mod_eq_mul_left (x5)
  72. 0072specialize mod_eq_mul_left (x4)
  73. 0073apply mod_eq_mul_left
  74. 0074exact hscale
  75. 0075have hshuffle : k*(x1*x2)=x4*(k*x2)
  76. 0076rewrite hleft
  77. 0077simp [mul_assoc,mul_comm]
  78. 0078rewrite ht_witness_witness_witness_right_right_right
  79. 0079rewrite hr_witness_witness_witness_right_right_right
  80. 0080rewrite hshuffle
  81. 0081exact hm