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 n qb qc r h v. (~((p) = 1) /\ forall pfa_factor_left_final_prime pfa_factor_right_final_prime. (p) = pfa_factor_left_final_prime * pfa_factor_right_final_prime -> pfa_factor_left_final_prime = 1 \/ pfa_factor_right_final_prime = 1) -> (exists pfs_history_code_final_division pfs_history_scale_final_division. ((((exists pfa_gap_final_divisiontracebase. pfa_gap_final_divisiontracebase + S (a) = (p)) /\ (((((exists ff_h_pfp_final_divisiontraceinitial. ff_h_pfp_final_divisiontraceinitial + S (0) = S ((S (0)) * pfs_history_scale_final_division)) /\ exists ff_q_pfp_final_divisiontraceinitial. pfs_history_code_final_division = ff_q_pfp_final_divisiontraceinitial * S ((S (0)) * pfs_history_scale_final_division) + (0))) /\ (((((exists ff_h_pfp_final_divisiontraceterminal. ff_h_pfp_final_divisiontraceterminal + S (r) = S ((S (S (S n))) * pfs_history_scale_final_division)) /\ exists ff_q_pfp_final_divisiontraceterminal. pfs_history_code_final_division = ff_q_pfp_final_divisiontraceterminal * S ((S (S (S n))) * pfs_history_scale_final_division) + (r))) /\ ((forall pfh_index_final_divisiontracesteps. (exists pfa_gap_final_divisiontracestepsindex. pfa_gap_final_divisiontracestepsindex + S (pfh_index_final_divisiontracesteps) = (S (S n))) -> (exists pfh_coefficient_final_divisiontracestepsstep pfh_before_final_divisiontracestepsstep pfh_after_final_divisiontracestepsstep pfh_product_final_divisiontracestepsstep. ((((exists ff_h_pfp_final_divisiontracestepsstepcoefficient. ff_h_pfp_final_divisiontracestepsstepcoefficient + S (pfh_coefficient_final_divisiontracestepsstep) = S ((S (pfh_index_final_divisiontracesteps)) * c)) /\ exists ff_q_pfp_final_divisiontracestepsstepcoefficient. b = ff_q_pfp_final_divisiontracestepsstepcoefficient * S ((S (pfh_index_final_divisiontracesteps)) * c) + (pfh_coefficient_final_divisiontracestepsstep))) /\ (((((exists ff_h_pfp_final_divisiontracestepsstepbefore. ff_h_pfp_final_divisiontracestepsstepbefore + S (pfh_before_final_divisiontracestepsstep) = S ((S (pfh_index_final_divisiontracesteps)) * pfs_history_scale_final_division)) /\ exists ff_q_pfp_final_divisiontracestepsstepbefore. pfs_history_code_final_division = ff_q_pfp_final_divisiontracestepsstepbefore * S ((S (pfh_index_final_divisiontracesteps)) * pfs_history_scale_final_division) + (pfh_before_final_divisiontracestepsstep))) /\ (((((exists ff_h_pfp_final_divisiontracestepsstepafter. ff_h_pfp_final_divisiontracestepsstepafter + S (pfh_after_final_divisiontracestepsstep) = S ((S (S (pfh_index_final_divisiontracesteps))) * pfs_history_scale_final_division)) /\ exists ff_q_pfp_final_divisiontracestepsstepafter. pfs_history_code_final_division = ff_q_pfp_final_divisiontracestepsstepafter * S ((S (S (pfh_index_final_divisiontracesteps))) * pfs_history_scale_final_division) + (pfh_after_final_divisiontracestepsstep))) /\ (((((exists pfa_gap_final_divisiontracestepsstepmultiplyleft. pfa_gap_final_divisiontracestepsstepmultiplyleft + S (pfh_before_final_divisiontracestepsstep) = (p)) /\ (((exists pfa_gap_final_divisiontracestepsstepmultiplyright. pfa_gap_final_divisiontracestepsstepmultiplyright + S (a) = (p)) /\ ((((exists pfa_gap_final_divisiontracestepsstepmultiplyresultbound. pfa_gap_final_divisiontracestepsstepmultiplyresultbound + S (pfh_product_final_divisiontracestepsstep) = (p)) /\ ((exists pfa_offset_left_final_divisiontracestepsstepmultiplyresultcongruence pfa_offset_right_final_divisiontracestepsstepmultiplyresultcongruence. ((pfh_before_final_divisiontracestepsstep) * (a)) + (p) * pfa_offset_left_final_divisiontracestepsstepmultiplyresultcongruence = (pfh_product_final_divisiontracestepsstep) + (p) * pfa_offset_right_final_divisiontracestepsstepmultiplyresultcongruence))))))))) /\ ((((exists pfa_gap_final_divisiontracestepsstepaddleft. pfa_gap_final_divisiontracestepsstepaddleft + S (pfh_product_final_divisiontracestepsstep) = (p)) /\ (((exists pfa_gap_final_divisiontracestepsstepaddright. pfa_gap_final_divisiontracestepsstepaddright + S (pfh_coefficient_final_divisiontracestepsstep) = (p)) /\ ((((exists pfa_gap_final_divisiontracestepsstepaddresultbound. pfa_gap_final_divisiontracestepsstepaddresultbound + S (pfh_after_final_divisiontracestepsstep) = (p)) /\ ((exists pfa_offset_left_final_divisiontracestepsstepaddresultcongruence pfa_offset_right_final_divisiontracestepsstepaddresultcongruence. ((pfh_product_final_divisiontracestepsstep) + (pfh_coefficient_final_divisiontracestepsstep)) + (p) * pfa_offset_left_final_divisiontracestepsstepaddresultcongruence = (pfh_after_final_divisiontracestepsstep) + (p) * pfa_offset_right_final_divisiontracestepsstepaddresultcongruence)))))))))))))))))))))))))) /\ ((forall ff_index_mcp_pfs_final_divisionquotient ff_source_mcp_pfs_final_divisionquotient ff_target_mcp_pfs_final_divisionquotient. (exists mcp_gap_pfs_final_divisionquotient_bound. mcp_gap_pfs_final_divisionquotient_bound + S (ff_index_mcp_pfs_final_divisionquotient) = (S n)) -> (((exists fs_h_mcp_pfs_final_divisionquotient_source. fs_h_mcp_pfs_final_divisionquotient_source + S (ff_source_mcp_pfs_final_divisionquotient) = S ((S ((1) + (1) * ff_index_mcp_pfs_final_divisionquotient)) * pfs_history_scale_final_division)) /\ exists fs_q_mcp_pfs_final_divisionquotient_source. pfs_history_code_final_division = fs_q_mcp_pfs_final_divisionquotient_source * S ((S ((1) + (1) * ff_index_mcp_pfs_final_divisionquotient)) * pfs_history_scale_final_division) + (ff_source_mcp_pfs_final_divisionquotient))) -> (((exists fs_h_mcp_pfs_final_divisionquotient_target. fs_h_mcp_pfs_final_divisionquotient_target + S (ff_target_mcp_pfs_final_divisionquotient) = S ((S (ff_index_mcp_pfs_final_divisionquotient)) * qc)) /\ exists fs_q_mcp_pfs_final_divisionquotient_target. qb = fs_q_mcp_pfs_final_divisionquotient_target * S ((S (ff_index_mcp_pfs_final_divisionquotient)) * qc) + (ff_target_mcp_pfs_final_divisionquotient))) -> ff_target_mcp_pfs_final_divisionquotient = ff_source_mcp_pfs_final_divisionquotient)))) -> (((exists ff_h_pfp_final_quotient. ff_h_pfp_final_quotient + S (h) = S ((S (n)) * qc)) /\ exists ff_q_pfp_final_quotient. qb = ff_q_pfp_final_quotient * S ((S (n)) * qc) + (h))) -> (((exists ff_h_pfp_final_input. ff_h_pfp_final_input + S (v) = S ((S (S n)) * c)) /\ exists ff_q_pfp_final_input. b = ff_q_pfp_final_input * S ((S (S n)) * c) + (v))) -> exists k. ((((exists pfa_gap_final_productleft. pfa_gap_final_productleft + S (h) = (p)) /\ (((exists pfa_gap_final_productright. pfa_gap_final_productright + S (a) = (p)) /\ ((((exists pfa_gap_final_productresultbound. pfa_gap_final_productresultbound + S (k) = (p)) /\ ((exists pfa_offset_left_final_productresultcongruence pfa_offset_right_final_productresultcongruence. ((h) * (a)) + (p) * pfa_offset_left_final_productresultcongruence = (k) + (p) * pfa_offset_right_final_productresultcongruence))))))))) /\ ((((exists pfa_gap_final_sumleft. pfa_gap_final_sumleft + S (k) = (p)) /\ (((exists pfa_gap_final_sumright. pfa_gap_final_sumright + S (v) = (p)) /\ ((((exists pfa_gap_final_sumresultbound. pfa_gap_final_sumresultbound + S (r) = (p)) /\ ((exists pfa_offset_left_final_sumresultcongruence pfa_offset_right_final_sumresultcongruence. ((k) + (v)) + (p) * pfa_offset_left_final_sumresultcongruence = (r) + (p) * pfa_offset_right_final_sumresultcongruence)))))))))))Constructive proof overview
Generated structural guide
The remainder satisfies r=a*q[last]+f[last] by genuine canonical multiplication and addition.
The unchanged tactic script uses 4 declared prerequisites and contains 50 exact native proof lines.
Alpha v34 checked-use · first admitted v32 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
PQ004E prime_field_polynomial_horner_transition_values PQ0049 prime_field_polynomial_synthetic_quotient_entry zero_add Stable theorem; checked-use authorized PQ0048 prime_field_polynomial_synthetic_remainder_executionDirect 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 (3)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–14
03Use earlier factsL15–24
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L15
specialize prime_field_polynomial_horner_transition_values (p) - L16
specialize prime_field_polynomial_horner_transition_values (b) - L17
specialize prime_field_polynomial_horner_transition_values (c) - L18
specialize prime_field_polynomial_horner_transition_values (a) - L19
specialize prime_field_polynomial_horner_transition_values (S n) - L20
specialize prime_field_polynomial_horner_transition_values (h) - L21
specialize prime_field_polynomial_horner_transition_values (v) - L22
specialize prime_field_polynomial_horner_transition_values (r) - L23
apply prime_field_polynomial_horner_transition_values - L24
exact hp
04Use earlier factsL25–34
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L25
specialize prime_field_polynomial_synthetic_quotient_entry (p) - L26
specialize prime_field_polynomial_synthetic_quotient_entry (b) - L27
specialize prime_field_polynomial_synthetic_quotient_entry (c) - L28
specialize prime_field_polynomial_synthetic_quotient_entry (a) - L29
specialize prime_field_polynomial_synthetic_quotient_entry (S n) - L30
specialize prime_field_polynomial_synthetic_quotient_entry (qb) - L31
specialize prime_field_polynomial_synthetic_quotient_entry (qc) - L32
specialize prime_field_polynomial_synthetic_quotient_entry (r) - L33
specialize prime_field_polynomial_synthetic_quotient_entry (n) - L34
specialize prime_field_polynomial_synthetic_quotient_entry (h)
05Use earlier factsL35–36
06Construct an explicit witnessL37–37
Supply the displayed value, then prove that it has the required property.
- L37
exists 0
07Use earlier factsL38–47
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L38
apply zero_add - L39
exact hh - L40
specialize prime_field_polynomial_synthetic_remainder_execution (p) - L41
specialize prime_field_polynomial_synthetic_remainder_execution (b) - L42
specialize prime_field_polynomial_synthetic_remainder_execution (c) - L43
specialize prime_field_polynomial_synthetic_remainder_execution (a) - L44
specialize prime_field_polynomial_synthetic_remainder_execution (S n) - L45
specialize prime_field_polynomial_synthetic_remainder_execution (qb) - L46
specialize prime_field_polynomial_synthetic_remainder_execution (qc) - L47
specialize prime_field_polynomial_synthetic_remainder_execution (r)
Original exact command ledger · 50 lines
- 0001
intro p - 0002
intro b - 0003
intro c - 0004
intro a - 0005
intro n - 0006
intro qb - 0007
intro qc - 0008
intro r - 0009
intro h - 0010
intro v - 0011
intro hp - 0012
intro hs - 0013
intro hh - 0014
intro hv - 0015
specialize prime_field_polynomial_horner_transition_values (p) - 0016
specialize prime_field_polynomial_horner_transition_values (b) - 0017
specialize prime_field_polynomial_horner_transition_values (c) - 0018
specialize prime_field_polynomial_horner_transition_values (a) - 0019
specialize prime_field_polynomial_horner_transition_values (S n) - 0020
specialize prime_field_polynomial_horner_transition_values (h) - 0021
specialize prime_field_polynomial_horner_transition_values (v) - 0022
specialize prime_field_polynomial_horner_transition_values (r) - 0023
apply prime_field_polynomial_horner_transition_values - 0024
exact hp - 0025
specialize prime_field_polynomial_synthetic_quotient_entry (p) - 0026
specialize prime_field_polynomial_synthetic_quotient_entry (b) - 0027
specialize prime_field_polynomial_synthetic_quotient_entry (c) - 0028
specialize prime_field_polynomial_synthetic_quotient_entry (a) - 0029
specialize prime_field_polynomial_synthetic_quotient_entry (S n) - 0030
specialize prime_field_polynomial_synthetic_quotient_entry (qb) - 0031
specialize prime_field_polynomial_synthetic_quotient_entry (qc) - 0032
specialize prime_field_polynomial_synthetic_quotient_entry (r) - 0033
specialize prime_field_polynomial_synthetic_quotient_entry (n) - 0034
specialize prime_field_polynomial_synthetic_quotient_entry (h) - 0035
apply prime_field_polynomial_synthetic_quotient_entry - 0036
exact hs - 0037
exists 0 - 0038
apply zero_add - 0039
exact hh - 0040
specialize prime_field_polynomial_synthetic_remainder_execution (p) - 0041
specialize prime_field_polynomial_synthetic_remainder_execution (b) - 0042
specialize prime_field_polynomial_synthetic_remainder_execution (c) - 0043
specialize prime_field_polynomial_synthetic_remainder_execution (a) - 0044
specialize prime_field_polynomial_synthetic_remainder_execution (S n) - 0045
specialize prime_field_polynomial_synthetic_remainder_execution (qb) - 0046
specialize prime_field_polynomial_synthetic_remainder_execution (qc) - 0047
specialize prime_field_polynomial_synthetic_remainder_execution (r) - 0048
apply prime_field_polynomial_synthetic_remainder_execution - 0049
exact hs - 0050
exact hv