FP0041

prime_field_inverse_table_reflect

Public research checkpoint, not admitted to Alpha or Stable. Alpha v30 remains 3222 checked-use theorems; Stable remains 432. The on-demand Alpha Lean service does not yet expose these checkpoint theorems; their independently checked literal bundles and unchanged sources are available below.

Public research checkpoint: original HA and independently compiled Lean verified; not Alpha-enrolled, no Alpha checked-use authority; not Stable

Every genuine inverse value is stored at its actual unary table index.

Exact expanded first-order arithmetic statement

forall p B C a v. (forall pft_index_inverseunary_reflect_table. (exists pfa_gap_inverseunary_reflect_tableprefix. pfa_gap_inverseunary_reflect_tableprefix + S (pft_index_inverseunary_reflect_table) = (p)) -> exists pft_value_inverseunary_reflect_table. (((((exists ff_h_pft_inverseunary_reflect_tablepointentry. ff_h_pft_inverseunary_reflect_tablepointentry + S (pft_value_inverseunary_reflect_table) = S ((S (pft_index_inverseunary_reflect_table)) * C)) /\ exists ff_q_pft_inverseunary_reflect_tablepointentry. B = ff_q_pft_inverseunary_reflect_tablepointentry * S ((S (pft_index_inverseunary_reflect_table)) * C) + (pft_value_inverseunary_reflect_table))) /\ ((((exists pfa_gap_inverseunary_reflect_tablepointvalueinput. pfa_gap_inverseunary_reflect_tablepointvalueinput + S (pft_index_inverseunary_reflect_table) = (p)) /\ (((exists pfa_gap_inverseunary_reflect_tablepointvalueoutput. pfa_gap_inverseunary_reflect_tablepointvalueoutput + S (pft_value_inverseunary_reflect_table) = (p)) /\ ((((pft_index_inverseunary_reflect_table) = 0 /\ (pft_value_inverseunary_reflect_table) = 0) \/ (((~((pft_index_inverseunary_reflect_table) = 0)) /\ ((((exists pfa_gap_inverseunary_reflect_tablepointvaluenonzeromultiplicationleft. pfa_gap_inverseunary_reflect_tablepointvaluenonzeromultiplicationleft + S (pft_index_inverseunary_reflect_table) = (p)) /\ (((exists pfa_gap_inverseunary_reflect_tablepointvaluenonzeromultiplicationright. pfa_gap_inverseunary_reflect_tablepointvaluenonzeromultiplicationright + S (pft_value_inverseunary_reflect_table) = (p)) /\ ((((exists pfa_gap_inverseunary_reflect_tablepointvaluenonzeromultiplicationresultbound. pfa_gap_inverseunary_reflect_tablepointvaluenonzeromultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_inverseunary_reflect_tablepointvaluenonzeromultiplicationresultcongruence pfa_offset_right_inverseunary_reflect_tablepointvaluenonzeromultiplicationresultcongruence. ((pft_index_inverseunary_reflect_table) * (pft_value_inverseunary_reflect_table)) + (p) * pfa_offset_left_inverseunary_reflect_tablepointvaluenonzeromultiplicationresultcongruence = (1) + (p) * pfa_offset_right_inverseunary_reflect_tablepointvaluenonzeromultiplicationresultcongruence)))))))))))))))))))))) -> (((exists pfa_gap_inverseunary_reflect_graphinput. pfa_gap_inverseunary_reflect_graphinput + S (a) = (p)) /\ (((exists pfa_gap_inverseunary_reflect_graphoutput. pfa_gap_inverseunary_reflect_graphoutput + S (v) = (p)) /\ ((((a) = 0 /\ (v) = 0) \/ (((~((a) = 0)) /\ ((((exists pfa_gap_inverseunary_reflect_graphnonzeromultiplicationleft. pfa_gap_inverseunary_reflect_graphnonzeromultiplicationleft + S (a) = (p)) /\ (((exists pfa_gap_inverseunary_reflect_graphnonzeromultiplicationright. pfa_gap_inverseunary_reflect_graphnonzeromultiplicationright + S (v) = (p)) /\ ((((exists pfa_gap_inverseunary_reflect_graphnonzeromultiplicationresultbound. pfa_gap_inverseunary_reflect_graphnonzeromultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_inverseunary_reflect_graphnonzeromultiplicationresultcongruence pfa_offset_right_inverseunary_reflect_graphnonzeromultiplicationresultcongruence. ((a) * (v)) + (p) * pfa_offset_left_inverseunary_reflect_graphnonzeromultiplicationresultcongruence = (1) + (p) * pfa_offset_right_inverseunary_reflect_graphnonzeromultiplicationresultcongruence)))))))))))))))))) -> (((exists ff_h_pft_inverseunary_reflect_at. ff_h_pft_inverseunary_reflect_at + S (v) = S ((S (a)) * C)) /\ exists ff_q_pft_inverseunary_reflect_at. B = ff_q_pft_inverseunary_reflect_at * S ((S (a)) * C) + (v)))

Constructive proof overview

Generated structural guide

Every genuine inverse value is stored at its actual unary table index.

The unchanged tactic script uses 3 declared prerequisites and contains 35 exact native proof lines.

Public research checkpoint: original HA and independently compiled Lean verified; not Alpha-enrolled, no Alpha checked-use authority; not Stable

Proof neighborhood

Direct dependencies

Direct dependents

Formal native tactic body

Dependencies are introduced as named hypotheses before line 1. Local theorem links identify exact declared prerequisites. The literal dependency-closed bundle is checked by original HA and the independently compiled Lean verifier. Public delivery grants no Alpha checked-use authority or Stable membership.

Read the argument

Proof checkpoints

35 script commands · 7 reading checkpoints · 3 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 (2)

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–7

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

  1. L1
    intro p
  2. L2
    intro B
  3. L3
    intro C
  4. L4
    intro a
  5. L5
    intro v
  6. L6
    intro htable
  7. L7
    intro hop
02Separate the logical casesL8–8

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

  1. L8
    cases hop
03Establish hatL9–13

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

  1. L9
    have hat : exists w. (((exists ff_h_pft_inverseunary_reflect_exists. ff_h_pft_inverseunary_reflect_exists + S (w) = S ((S (a)) * C)) /\ exists ff_q_pft_inverseunary_reflect_exists. B = ff_q_pft_inverseunary_reflect_exists * S ((S (a)) * C) + (w)))
  2. L10
    specialize beta_at_exists (B)
  3. L11
    specialize beta_at_exists (C)
  4. L12
    specialize beta_at_exists (a)
  5. L13
    apply beta_at_exists
04Separate the logical casesL14–14

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

  1. L14
    cases hat
05Establish houtL15–24

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field inverse table lookup.

  1. L15
    have hout : FpZeroExtendedInv(p,a,x)Definitions: FpZeroExtendedInv
  2. L16
    specialize prime_field_inverse_table_lookup (p)
  3. L17
    specialize prime_field_inverse_table_lookup (B)
  4. L18
    specialize prime_field_inverse_table_lookup (C)
  5. L19
    specialize prime_field_inverse_table_lookup (a)
  6. L20
    specialize prime_field_inverse_table_lookup (x)
  7. L21
    apply prime_field_inverse_table_lookup
  8. L22
    exact htable
  9. L23
    exact hop_left
  10. L24
    exact hat_witness
06Establish heqL25–34

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

  1. L25
    have heq : x = v
  2. L26
    specialize prime_field_zero_extended_inverse_functional (p)
  3. L27
    specialize prime_field_zero_extended_inverse_functional (a)
  4. L28
    specialize prime_field_zero_extended_inverse_functional (x)
  5. L29
    specialize prime_field_zero_extended_inverse_functional (v)
  6. L30
    apply prime_field_zero_extended_inverse_functional
  7. L31
    exact hout
  8. L32
    exact hop
  9. L33
    rewrite heq at hat_witness
  10. L34
    rewrite heq at hat_witness
07Use earlier factsL35–35

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

  1. L35
    exact hat_witness

Library-wide reading audit

Original exact command ledger · 35 lines
  1. 0001intro p
  2. 0002intro B
  3. 0003intro C
  4. 0004intro a
  5. 0005intro v
  6. 0006intro htable
  7. 0007intro hop
  8. 0008cases hop
  9. 0009have hat : exists w. (((exists ff_h_pft_inverseunary_reflect_exists. ff_h_pft_inverseunary_reflect_exists + S (w) = S ((S (a)) * C)) /\ exists ff_q_pft_inverseunary_reflect_exists. B = ff_q_pft_inverseunary_reflect_exists * S ((S (a)) * C) + (w)))
  10. 0010specialize beta_at_exists (B)
  11. 0011specialize beta_at_exists (C)
  12. 0012specialize beta_at_exists (a)
  13. 0013apply beta_at_exists
  14. 0014cases hat
  15. 0015have hout : ((exists pfa_gap_inverseunary_reflect_lookupinput. pfa_gap_inverseunary_reflect_lookupinput + S (a) = (p)) /\ (((exists pfa_gap_inverseunary_reflect_lookupoutput. pfa_gap_inverseunary_reflect_lookupoutput + S (x) = (p)) /\ ((((a) = 0 /\ (x) = 0) \/ (((~((a) = 0)) /\ ((((exists pfa_gap_inverseunary_reflect_lookupnonzeromultiplicationleft. pfa_gap_inverseunary_reflect_lookupnonzeromultiplicationleft + S (a) = (p)) /\ (((exists pfa_gap_inverseunary_reflect_lookupnonzeromultiplicationright. pfa_gap_inverseunary_reflect_lookupnonzeromultiplicationright + S (x) = (p)) /\ ((((exists pfa_gap_inverseunary_reflect_lookupnonzeromultiplicationresultbound. pfa_gap_inverseunary_reflect_lookupnonzeromultiplicationresultbound + S (1) = (p)) /\ ((exists pfa_offset_left_inverseunary_reflect_lookupnonzeromultiplicationresultcongruence pfa_offset_right_inverseunary_reflect_lookupnonzeromultiplicationresultcongruence. ((a) * (x)) + (p) * pfa_offset_left_inverseunary_reflect_lookupnonzeromultiplicationresultcongruence = (1) + (p) * pfa_offset_right_inverseunary_reflect_lookupnonzeromultiplicationresultcongruence)))))))))))))))))
  16. 0016specialize prime_field_inverse_table_lookup (p)
  17. 0017specialize prime_field_inverse_table_lookup (B)
  18. 0018specialize prime_field_inverse_table_lookup (C)
  19. 0019specialize prime_field_inverse_table_lookup (a)
  20. 0020specialize prime_field_inverse_table_lookup (x)
  21. 0021apply prime_field_inverse_table_lookup
  22. 0022exact htable
  23. 0023exact hop_left
  24. 0024exact hat_witness
  25. 0025have heq : x = v
  26. 0026specialize prime_field_zero_extended_inverse_functional (p)
  27. 0027specialize prime_field_zero_extended_inverse_functional (a)
  28. 0028specialize prime_field_zero_extended_inverse_functional (x)
  29. 0029specialize prime_field_zero_extended_inverse_functional (v)
  30. 0030apply prime_field_zero_extended_inverse_functional
  31. 0031exact hout
  32. 0032exact hop
  33. 0033rewrite heq at hat_witness
  34. 0034rewrite heq at hat_witness
  35. 0035exact hat_witness