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 B C a v. (forall pft_index_negateunary_reflect_table. (exists pfa_gap_negateunary_reflect_tableprefix. pfa_gap_negateunary_reflect_tableprefix + S (pft_index_negateunary_reflect_table) = (p)) -> exists pft_value_negateunary_reflect_table. (((((exists ff_h_pft_negateunary_reflect_tablepointentry. ff_h_pft_negateunary_reflect_tablepointentry + S (pft_value_negateunary_reflect_table) = S ((S (pft_index_negateunary_reflect_table)) * C)) /\ exists ff_q_pft_negateunary_reflect_tablepointentry. B = ff_q_pft_negateunary_reflect_tablepointentry * S ((S (pft_index_negateunary_reflect_table)) * C) + (pft_value_negateunary_reflect_table))) /\ ((((exists pfa_gap_negateunary_reflect_tablepointvalueadditionleft. pfa_gap_negateunary_reflect_tablepointvalueadditionleft + S (pft_index_negateunary_reflect_table) = (p)) /\ (((exists pfa_gap_negateunary_reflect_tablepointvalueadditionright. pfa_gap_negateunary_reflect_tablepointvalueadditionright + S (pft_value_negateunary_reflect_table) = (p)) /\ ((((exists pfa_gap_negateunary_reflect_tablepointvalueadditionresultbound. pfa_gap_negateunary_reflect_tablepointvalueadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_negateunary_reflect_tablepointvalueadditionresultcongruence pfa_offset_right_negateunary_reflect_tablepointvalueadditionresultcongruence. ((pft_index_negateunary_reflect_table) + (pft_value_negateunary_reflect_table)) + (p) * pfa_offset_left_negateunary_reflect_tablepointvalueadditionresultcongruence = (0) + (p) * pfa_offset_right_negateunary_reflect_tablepointvalueadditionresultcongruence))))))))))))) -> (((exists pfa_gap_negateunary_reflect_graphadditionleft. pfa_gap_negateunary_reflect_graphadditionleft + S (a) = (p)) /\ (((exists pfa_gap_negateunary_reflect_graphadditionright. pfa_gap_negateunary_reflect_graphadditionright + S (v) = (p)) /\ ((((exists pfa_gap_negateunary_reflect_graphadditionresultbound. pfa_gap_negateunary_reflect_graphadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_negateunary_reflect_graphadditionresultcongruence pfa_offset_right_negateunary_reflect_graphadditionresultcongruence. ((a) + (v)) + (p) * pfa_offset_left_negateunary_reflect_graphadditionresultcongruence = (0) + (p) * pfa_offset_right_negateunary_reflect_graphadditionresultcongruence))))))))) -> (((exists ff_h_pft_negateunary_reflect_at. ff_h_pft_negateunary_reflect_at + S (v) = S ((S (a)) * C)) /\ exists ff_q_pft_negateunary_reflect_at. B = ff_q_pft_negateunary_reflect_at * S ((S (a)) * C) + (v)))Constructive proof overview
Generated structural guide
Every genuine negate value is stored at its actual unary table index.
The unchanged tactic script uses 3 declared prerequisites and contains 35 exact native proof lines.
Alpha v34 checked-use · first admitted v31 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_at_exists Stable theorem; checked-use authorized FP003E prime_field_negate_table_lookup FP001C prime_field_negate_functionalDirect 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 (2)
01Fix variables and assumptionsL1–7
02Separate the logical casesL8–8
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- 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.
- L9
have hat : exists w. (((exists ff_h_pft_negateunary_reflect_exists. ff_h_pft_negateunary_reflect_exists + S (w) = S ((S (a)) * C)) /\ exists ff_q_pft_negateunary_reflect_exists. B = ff_q_pft_negateunary_reflect_exists * S ((S (a)) * C) + (w))) - L10
specialize beta_at_exists (B) - L11
specialize beta_at_exists (C) - L12
specialize beta_at_exists (a) - L13
apply beta_at_exists
04Separate the logical casesL14–14
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- 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 negate table lookup.
- L15
have hout : FpAdd(p,a,x,0)Definitions: FpAdd - L16
specialize prime_field_negate_table_lookup (p) - L17
specialize prime_field_negate_table_lookup (B) - L18
specialize prime_field_negate_table_lookup (C) - L19
specialize prime_field_negate_table_lookup (a) - L20
specialize prime_field_negate_table_lookup (x) - L21
apply prime_field_negate_table_lookup - L22
exact htable - L23
exact hop_left - 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 negate functional.
- L25
have heq : x = v - L26
specialize prime_field_negate_functional (p) - L27
specialize prime_field_negate_functional (a) - L28
specialize prime_field_negate_functional (x) - L29
specialize prime_field_negate_functional (v) - L30
apply prime_field_negate_functional - L31
exact hout - L32
exact hop - L33
rewrite heq at hat_witness - L34
rewrite heq at hat_witness
07Use earlier factsL35–35
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L35
exact hat_witness
Original exact command ledger · 35 lines
- 0001
intro p - 0002
intro B - 0003
intro C - 0004
intro a - 0005
intro v - 0006
intro htable - 0007
intro hop - 0008
cases hop - 0009
have hat : exists w. (((exists ff_h_pft_negateunary_reflect_exists. ff_h_pft_negateunary_reflect_exists + S (w) = S ((S (a)) * C)) /\ exists ff_q_pft_negateunary_reflect_exists. B = ff_q_pft_negateunary_reflect_exists * S ((S (a)) * C) + (w))) - 0010
specialize beta_at_exists (B) - 0011
specialize beta_at_exists (C) - 0012
specialize beta_at_exists (a) - 0013
apply beta_at_exists - 0014
cases hat - 0015
have hout : ((exists pfa_gap_negateunary_reflect_lookupadditionleft. pfa_gap_negateunary_reflect_lookupadditionleft + S (a) = (p)) /\ (((exists pfa_gap_negateunary_reflect_lookupadditionright. pfa_gap_negateunary_reflect_lookupadditionright + S (x) = (p)) /\ ((((exists pfa_gap_negateunary_reflect_lookupadditionresultbound. pfa_gap_negateunary_reflect_lookupadditionresultbound + S (0) = (p)) /\ ((exists pfa_offset_left_negateunary_reflect_lookupadditionresultcongruence pfa_offset_right_negateunary_reflect_lookupadditionresultcongruence. ((a) + (x)) + (p) * pfa_offset_left_negateunary_reflect_lookupadditionresultcongruence = (0) + (p) * pfa_offset_right_negateunary_reflect_lookupadditionresultcongruence)))))))) - 0016
specialize prime_field_negate_table_lookup (p) - 0017
specialize prime_field_negate_table_lookup (B) - 0018
specialize prime_field_negate_table_lookup (C) - 0019
specialize prime_field_negate_table_lookup (a) - 0020
specialize prime_field_negate_table_lookup (x) - 0021
apply prime_field_negate_table_lookup - 0022
exact htable - 0023
exact hop_left - 0024
exact hat_witness - 0025
have heq : x = v - 0026
specialize prime_field_negate_functional (p) - 0027
specialize prime_field_negate_functional (a) - 0028
specialize prime_field_negate_functional (x) - 0029
specialize prime_field_negate_functional (v) - 0030
apply prime_field_negate_functional - 0031
exact hout - 0032
exact hop - 0033
rewrite heq at hat_witness - 0034
rewrite heq at hat_witness - 0035
exact hat_witness