Exact expanded first-order arithmetic statement
forall p B C a b v. (forall pft_index_multiplylookup_table. (exists pfa_gap_multiplylookup_tableprefix. pfa_gap_multiplylookup_tableprefix + S (pft_index_multiplylookup_table) = ((p) * (p))) -> exists pft_value_multiplylookup_table. (((((exists ff_h_pft_multiplylookup_tablepointentry. ff_h_pft_multiplylookup_tablepointentry + S (pft_value_multiplylookup_table) = S ((S (pft_index_multiplylookup_table)) * C)) /\ exists ff_q_pft_multiplylookup_tablepointentry. B = ff_q_pft_multiplylookup_tablepointentry * S ((S (pft_index_multiplylookup_table)) * C) + (pft_value_multiplylookup_table))) /\ ((exists pft_row_multiplylookup_tablepointvalue pft_column_multiplylookup_tablepointvalue. (((pft_index_multiplylookup_table) = pft_row_multiplylookup_tablepointvalue * (p) + pft_column_multiplylookup_tablepointvalue) /\ ((((exists pfa_gap_multiplylookup_tablepointvalueoperationleft. pfa_gap_multiplylookup_tablepointvalueoperationleft + S (pft_row_multiplylookup_tablepointvalue) = (p)) /\ (((exists pfa_gap_multiplylookup_tablepointvalueoperationright. pfa_gap_multiplylookup_tablepointvalueoperationright + S (pft_column_multiplylookup_tablepointvalue) = (p)) /\ ((((exists pfa_gap_multiplylookup_tablepointvalueoperationresultbound. pfa_gap_multiplylookup_tablepointvalueoperationresultbound + S (pft_value_multiplylookup_table) = (p)) /\ ((exists pfa_offset_left_multiplylookup_tablepointvalueoperationresultcongruence pfa_offset_right_multiplylookup_tablepointvalueoperationresultcongruence. ((pft_row_multiplylookup_tablepointvalue) * (pft_column_multiplylookup_tablepointvalue)) + (p) * pfa_offset_left_multiplylookup_tablepointvalueoperationresultcongruence = (pft_value_multiplylookup_table) + (p) * pfa_offset_right_multiplylookup_tablepointvalueoperationresultcongruence)))))))))))))))) -> (exists pfa_gap_multiplylookup_a. pfa_gap_multiplylookup_a + S (a) = (p)) -> (exists pfa_gap_multiplylookup_b. pfa_gap_multiplylookup_b + S (b) = (p)) -> (((exists ff_h_pft_multiplylookup_at. ff_h_pft_multiplylookup_at + S (v) = S ((S (a*p+b)) * C)) /\ exists ff_q_pft_multiplylookup_at. B = ff_q_pft_multiplylookup_at * S ((S (a*p+b)) * C) + (v))) -> (((exists pfa_gap_multiplylookup_graphleft. pfa_gap_multiplylookup_graphleft + S (a) = (p)) /\ (((exists pfa_gap_multiplylookup_graphright. pfa_gap_multiplylookup_graphright + S (b) = (p)) /\ ((((exists pfa_gap_multiplylookup_graphresultbound. pfa_gap_multiplylookup_graphresultbound + S (v) = (p)) /\ ((exists pfa_offset_left_multiplylookup_graphresultcongruence pfa_offset_right_multiplylookup_graphresultcongruence. ((a) * (b)) + (p) * pfa_offset_left_multiplylookup_graphresultcongruence = (v) + (p) * pfa_offset_right_multiplylookup_graphresultcongruence)))))))))Constructive proof overview
Generated structural guide
Every decoded multiply table lookup has exactly the proved canonical arithmetic meaning.
The unchanged tactic script uses 3 declared prerequisites and contains 39 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
matrix_recursive_flattened_index_bound Alpha theorem; checked-use authorized beta_at_unique Alpha theorem; checked-use authorized FP003B prime_field_multiply_grid_value_lookupDirect 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
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
02Establish hpointL11–19
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply htable.
- L11
have hpoint : ∃ w. BetaAt(B,C,a · p + b,w) ∧ FpMulGridValue(p,a · p + b,w)Definitions: FpMulGridValueBetaAt - L12
specialize htable (a*p+b) - L13
apply htable - L14
specialize matrix_recursive_flattened_index_bound (p) - L15
specialize matrix_recursive_flattened_index_bound (a) - L16
specialize matrix_recursive_flattened_index_bound (b) - L17
apply matrix_recursive_flattened_index_bound - L18
exact ha - L19
exact hb
03Separate the logical casesL20–21
04Establish heqL22–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
05Calculate and transport equalitiesL32–32
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L32
rewrite heq at hpoint_witness_right
06Use earlier factsL33–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L33
specialize prime_field_multiply_grid_value_lookup (p) - L34
specialize prime_field_multiply_grid_value_lookup (a) - L35
specialize prime_field_multiply_grid_value_lookup (b) - L36
specialize prime_field_multiply_grid_value_lookup (v) - L37
apply prime_field_multiply_grid_value_lookup - L38
exact hb - L39
exact hpoint_witness_right
Original exact command ledger · 39 lines
- 0001
intro p - 0002
intro B - 0003
intro C - 0004
intro a - 0005
intro b - 0006
intro v - 0007
intro htable - 0008
intro ha - 0009
intro hb - 0010
intro hat - 0011
have hpoint : exists w. (((((exists ff_h_pft_multiplylookup_pointentry. ff_h_pft_multiplylookup_pointentry + S (w) = S ((S (a*p+b)) * C)) /\ exists ff_q_pft_multiplylookup_pointentry. B = ff_q_pft_multiplylookup_pointentry * S ((S (a*p+b)) * C) + (w))) /\ ((exists pft_row_multiplylookup_pointvalue pft_column_multiplylookup_pointvalue. (((a*p+b) = pft_row_multiplylookup_pointvalue * (p) + pft_column_multiplylookup_pointvalue) /\ ((((exists pfa_gap_multiplylookup_pointvalueoperationleft. pfa_gap_multiplylookup_pointvalueoperationleft + S (pft_row_multiplylookup_pointvalue) = (p)) /\ (((exists pfa_gap_multiplylookup_pointvalueoperationright. pfa_gap_multiplylookup_pointvalueoperationright + S (pft_column_multiplylookup_pointvalue) = (p)) /\ ((((exists pfa_gap_multiplylookup_pointvalueoperationresultbound. pfa_gap_multiplylookup_pointvalueoperationresultbound + S (w) = (p)) /\ ((exists pfa_offset_left_multiplylookup_pointvalueoperationresultcongruence pfa_offset_right_multiplylookup_pointvalueoperationresultcongruence. ((pft_row_multiplylookup_pointvalue) * (pft_column_multiplylookup_pointvalue)) + (p) * pfa_offset_left_multiplylookup_pointvalueoperationresultcongruence = (w) + (p) * pfa_offset_right_multiplylookup_pointvalueoperationresultcongruence))))))))))))))) - 0012
specialize htable (a*p+b) - 0013
apply htable - 0014
specialize matrix_recursive_flattened_index_bound (p) - 0015
specialize matrix_recursive_flattened_index_bound (a) - 0016
specialize matrix_recursive_flattened_index_bound (b) - 0017
apply matrix_recursive_flattened_index_bound - 0018
exact ha - 0019
exact hb - 0020
cases hpoint - 0021
cases hpoint_witness - 0022
have heq : x = v - 0023
specialize beta_at_unique (B) - 0024
specialize beta_at_unique (C) - 0025
specialize beta_at_unique (a*p+b) - 0026
specialize beta_at_unique (x) - 0027
specialize beta_at_unique (v) - 0028
apply beta_at_unique - 0029
exact hpoint_witness_left - 0030
exact hat - 0031
rewrite heq at hpoint_witness_right - 0032
rewrite heq at hpoint_witness_right - 0033
specialize prime_field_multiply_grid_value_lookup (p) - 0034
specialize prime_field_multiply_grid_value_lookup (a) - 0035
specialize prime_field_multiply_grid_value_lookup (b) - 0036
specialize prime_field_multiply_grid_value_lookup (v) - 0037
apply prime_field_multiply_grid_value_lookup - 0038
exact hb - 0039
exact hpoint_witness_right