PQ0009

prime_field_polynomial_negate_involutive

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

Reversing a genuine coefficientwise additive inverse gives the original values, without identifying encodings.

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 ab ac rb rc l. (forall pfs_index_neg_inv_old. (exists pfa_gap_neg_inv_oldindex. pfa_gap_neg_inv_oldindex + S (pfs_index_neg_inv_old) = (l)) -> exists pfs_source_neg_inv_old pfs_result_neg_inv_old. ((((exists ff_h_pfp_neg_inv_oldsource. ff_h_pfp_neg_inv_oldsource + S (pfs_source_neg_inv_old) = S ((S (pfs_index_neg_inv_old)) * ac)) /\ exists ff_q_pfp_neg_inv_oldsource. ab = ff_q_pfp_neg_inv_oldsource * S ((S (pfs_index_neg_inv_old)) * ac) + (pfs_source_neg_inv_old))) /\ (((((exists ff_h_pfp_neg_inv_oldresult. ff_h_pfp_neg_inv_oldresult + S (pfs_result_neg_inv_old) = S ((S (pfs_index_neg_inv_old)) * rc)) /\ exists ff_q_pfp_neg_inv_oldresult. rb = ff_q_pfp_neg_inv_oldresult * S ((S (pfs_index_neg_inv_old)) * rc) + (pfs_result_neg_inv_old))) /\ ((((exists pfa_gap_neg_inv_oldoperationadditionleft. pfa_gap_neg_inv_oldoperationadditionleft + S (pfs_source_neg_inv_old) = (p)) /\ (((exists pfa_gap_neg_inv_oldoperationadditionright. pfa_gap_neg_inv_oldoperationadditionright + S (pfs_result_neg_inv_old) = (p)) /\ ((((exists pfa_gap_neg_inv_oldoperationadditionresultbound. pfa_gap_neg_inv_oldoperationadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_neg_inv_oldoperationadditionresultcongruence pfa_offset_right_neg_inv_oldoperationadditionresultcongruence. ((pfs_source_neg_inv_old) + (pfs_result_neg_inv_old)) + (p) * pfa_offset_left_neg_inv_oldoperationadditionresultcongruence = (0) + (p) * pfa_offset_right_neg_inv_oldoperationadditionresultcongruence)))))))))))))) -> (forall pfs_index_neg_inv_new. (exists pfa_gap_neg_inv_newindex. pfa_gap_neg_inv_newindex + S (pfs_index_neg_inv_new) = (l)) -> exists pfs_source_neg_inv_new pfs_result_neg_inv_new. ((((exists ff_h_pfp_neg_inv_newsource. ff_h_pfp_neg_inv_newsource + S (pfs_source_neg_inv_new) = S ((S (pfs_index_neg_inv_new)) * rc)) /\ exists ff_q_pfp_neg_inv_newsource. rb = ff_q_pfp_neg_inv_newsource * S ((S (pfs_index_neg_inv_new)) * rc) + (pfs_source_neg_inv_new))) /\ (((((exists ff_h_pfp_neg_inv_newresult. ff_h_pfp_neg_inv_newresult + S (pfs_result_neg_inv_new) = S ((S (pfs_index_neg_inv_new)) * ac)) /\ exists ff_q_pfp_neg_inv_newresult. ab = ff_q_pfp_neg_inv_newresult * S ((S (pfs_index_neg_inv_new)) * ac) + (pfs_result_neg_inv_new))) /\ ((((exists pfa_gap_neg_inv_newoperationadditionleft. pfa_gap_neg_inv_newoperationadditionleft + S (pfs_source_neg_inv_new) = (p)) /\ (((exists pfa_gap_neg_inv_newoperationadditionright. pfa_gap_neg_inv_newoperationadditionright + S (pfs_result_neg_inv_new) = (p)) /\ ((((exists pfa_gap_neg_inv_newoperationadditionresultbound. pfa_gap_neg_inv_newoperationadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_neg_inv_newoperationadditionresultcongruence pfa_offset_right_neg_inv_newoperationadditionresultcongruence. ((pfs_source_neg_inv_new) + (pfs_result_neg_inv_new)) + (p) * pfa_offset_left_neg_inv_newoperationadditionresultcongruence = (0) + (p) * pfa_offset_right_neg_inv_newoperationadditionresultcongruence))))))))))))))

Constructive proof overview

Generated structural guide

Reversing a genuine coefficientwise additive inverse gives the original values, without identifying encodings.

The unchanged tactic script uses 1 declared prerequisite and contains 29 exact native proof lines.

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

Proof neighborhood

Direct dependencies

prime_field_add_commutative Alpha theorem; checked-use authorized

Direct dependents

none

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

29 script commands · 8 reading checkpoints · 1 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.

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–9

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

  1. L1
    intro p
  2. L2
    intro ab
  3. L3
    intro ac
  4. L4
    intro rb
  5. L5
    intro rc
  6. L6
    intro l
  7. L7
    intro h
  8. L8
    intro i
  9. L9
    intro hi
02Establish hvL10–13

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

  1. L10
    have hv : ∃ a. ∃ r. BetaAt(ab,ac,i,a) ∧ (BetaAt(rb,rc,i,r) ∧ FpAdd(p,a,r,0))Definitions: FpAddBetaAt
  2. L11
    specialize h (i)
  3. L12
    apply h
  4. L13
    exact hi
03Separate the logical casesL14–17

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

  1. L14
    cases hv
  2. L15
    cases hv_witness
  3. L16
    cases hv_witness_witness
  4. L17
    cases hv_witness_witness_right
04Construct an explicit witnessL18–19

Supply the displayed value, then prove that it has the required property.

  1. L18
    exists x1
  2. L19
    exists x
05Separate the logical casesL20–20

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

  1. L20
    split
06Use earlier factsL21–21

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

  1. L21
    exact hv_witness_witness_right_left
07Separate the logical casesL22–22

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

  1. L22
    split
08Use earlier factsL23–29

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

  1. L23
    exact hv_witness_witness_left
  2. L24
    specialize prime_field_add_commutative (p)
  3. L25
    specialize prime_field_add_commutative (x)
  4. L26
    specialize prime_field_add_commutative (x1)
  5. L27
    specialize prime_field_add_commutative (0)
  6. L28
    apply prime_field_add_commutative
  7. L29
    exact hv_witness_witness_right_right

Library-wide reading audit

Original exact command ledger · 29 lines
  1. 0001intro p
  2. 0002intro ab
  3. 0003intro ac
  4. 0004intro rb
  5. 0005intro rc
  6. 0006intro l
  7. 0007intro h
  8. 0008intro i
  9. 0009intro hi
  10. 0010have hv : exists a r. (((((exists ff_h_pfp_neg_law_source. ff_h_pfp_neg_law_source + S (a) = S ((S (i)) * ac)) /\ exists ff_q_pfp_neg_law_source. ab = ff_q_pfp_neg_law_source * S ((S (i)) * ac) + (a))) /\ (((((exists ff_h_pfp_neg_law_result. ff_h_pfp_neg_law_result + S (r) = S ((S (i)) * rc)) /\ exists ff_q_pfp_neg_law_result. rb = ff_q_pfp_neg_law_result * S ((S (i)) * rc) + (r))) /\ ((((exists pfa_gap_neg_law_valueadditionleft. pfa_gap_neg_law_valueadditionleft + S (a) = (p)) /\ (((exists pfa_gap_neg_law_valueadditionright. pfa_gap_neg_law_valueadditionright + S (r) = (p)) /\ ((((exists pfa_gap_neg_law_valueadditionresultbound. pfa_gap_neg_law_valueadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_neg_law_valueadditionresultcongruence pfa_offset_right_neg_law_valueadditionresultcongruence. ((a) + (r)) + (p) * pfa_offset_left_neg_law_valueadditionresultcongruence = (0) + (p) * pfa_offset_right_neg_law_valueadditionresultcongruence))))))))))))))
  11. 0011specialize h (i)
  12. 0012apply h
  13. 0013exact hi
  14. 0014cases hv
  15. 0015cases hv_witness
  16. 0016cases hv_witness_witness
  17. 0017cases hv_witness_witness_right
  18. 0018exists x1
  19. 0019exists x
  20. 0020split
  21. 0021exact hv_witness_witness_right_left
  22. 0022split
  23. 0023exact hv_witness_witness_left
  24. 0024specialize prime_field_add_commutative (p)
  25. 0025specialize prime_field_add_commutative (x)
  26. 0026specialize prime_field_add_commutative (x1)
  27. 0027specialize prime_field_add_commutative (0)
  28. 0028apply prime_field_add_commutative
  29. 0029exact hv_witness_witness_right_right