Exact expanded first-order arithmetic statement
forall n b c k. ~(n=0) -> exists d e. ((forall jt_index_normalizebound. (exists jt_gap_normalizeboundindex. jt_gap_normalizeboundindex+S (jt_index_normalizebound)=(k)) -> exists jt_value_normalizebound. ((((exists fs_h_jt_normalizeboundat. fs_h_jt_normalizeboundat + S (jt_value_normalizebound) = S ((S (jt_index_normalizebound)) * e)) /\ exists fs_q_jt_normalizeboundat. d = fs_q_jt_normalizeboundat * S ((S (jt_index_normalizebound)) * e) + (jt_value_normalizebound))) /\ (exists jt_gap_normalizeboundvalue. jt_gap_normalizeboundvalue+S (jt_value_normalizebound)=(n)))) /\ (forall jt_index_normalizemod jt_left_normalizemod jt_right_normalizemod. (exists jt_gap_normalizemodindex. jt_gap_normalizemodindex+S (jt_index_normalizemod)=(k)) -> (((exists fs_h_jt_normalizemodleft. fs_h_jt_normalizemodleft + S (jt_left_normalizemod) = S ((S (jt_index_normalizemod)) * c)) /\ exists fs_q_jt_normalizemodleft. b = fs_q_jt_normalizemodleft * S ((S (jt_index_normalizemod)) * c) + (jt_left_normalizemod))) -> (((exists fs_h_jt_normalizemodright. fs_h_jt_normalizemodright + S (jt_right_normalizemod) = S ((S (jt_index_normalizemod)) * e)) /\ exists fs_q_jt_normalizemodright. d = fs_q_jt_normalizemodright * S ((S (jt_index_normalizemod)) * e) + (jt_right_normalizemod))) -> (exists jt_left_normalizemodmod jt_right_normalizemodmod. (jt_left_normalizemod)+(n)*jt_left_normalizemodmod=(jt_right_normalizemod)+(n)*jt_right_normalizemodmod)))Constructive proof overview
Generated structural guide
Canonical coordinate reduction works for every nonzero modulus, not just fields.
The unchanged tactic script uses 3 declared prerequisites and contains 48 exact native proof lines.
Alpha v35 checked-use · first admitted v35 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
prime_field_polynomial_normalization_exists Alpha theorem; checked-use authorized prime_field_polynomial_normalization_bounded Alpha theorem; checked-use authorized prime_field_polynomial_normalization_entry Alpha theorem; checked-use authorizedDirect 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.
01Fix variables and assumptionsL1–5
02Establish hnormL6–12
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply prime field polynomial normalization exists.
- L6
have hnorm : ∃ d. ∃ e. FpCoefficientReduction(n,b,c,d,e,k)Definitions: FpCoefficientReduction - L7
specialize prime_field_polynomial_normalization_exists (n) - L8
specialize prime_field_polynomial_normalization_exists (b) - L9
specialize prime_field_polynomial_normalization_exists (c) - L10
specialize prime_field_polynomial_normalization_exists (k) - L11
apply prime_field_polynomial_normalization_exists - L12
exact hn
03Separate the logical casesL13–14
04Construct an explicit witnessL15–16
05Separate the logical casesL17–17
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L17
split
06Use earlier factsL18–25
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L18
specialize prime_field_polynomial_normalization_bounded (n) - L19
specialize prime_field_polynomial_normalization_bounded (b) - L20
specialize prime_field_polynomial_normalization_bounded (c) - L21
specialize prime_field_polynomial_normalization_bounded (x) - L22
specialize prime_field_polynomial_normalization_bounded (x1) - L23
specialize prime_field_polynomial_normalization_bounded (k) - L24
apply prime_field_polynomial_normalization_bounded - L25
exact hnorm_witness_witness
07Fix variables and assumptionsL26–31
08Establish hvalueL32–41
Establish this local claim before using it. It is not an additional assumption.
- L32
have hvalue : ((exists jt_gap_normalizeresiduebound. jt_gap_normalizeresiduebound+S (r)=(n)) /\ (exists jt_left_normalizeresiduemod jt_right_normalizeresiduemod. (a)+(n)*jt_left_normalizeresiduemod=(r)+(n)*jt_right_normalizeresiduemod)) - L33
specialize prime_field_polynomial_normalization_entry (n) - L34
specialize prime_field_polynomial_normalization_entry (b) - L35
specialize prime_field_polynomial_normalization_entry (c) - L36
specialize prime_field_polynomial_normalization_entry (x) - L37
specialize prime_field_polynomial_normalization_entry (x1) - L38
specialize prime_field_polynomial_normalization_entry (k) - L39
specialize prime_field_polynomial_normalization_entry (i) - L40
specialize prime_field_polynomial_normalization_entry (a) - L41
specialize prime_field_polynomial_normalization_entry (r)
09Use earlier factsL42–46
10Separate the logical casesL47–47
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L47
cases hvalue
11Use earlier factsL48–48
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L48
exact hvalue_right
Original exact command ledger · 48 lines
- 0001
intro n - 0002
intro b - 0003
intro c - 0004
intro k - 0005
intro hn - 0006
have hnorm : exists d e. forall jt_index_normalizeactual. (exists jt_gap_normalizeactualindex. jt_gap_normalizeactualindex+S (jt_index_normalizeactual)=(k)) -> exists jt_input_normalizeactual jt_output_normalizeactual. ((((exists fs_h_jt_normalizeactualinput. fs_h_jt_normalizeactualinput + S (jt_input_normalizeactual) = S ((S (jt_index_normalizeactual)) * c)) /\ exists fs_q_jt_normalizeactualinput. b = fs_q_jt_normalizeactualinput * S ((S (jt_index_normalizeactual)) * c) + (jt_input_normalizeactual))) /\ (((((exists fs_h_jt_normalizeactualoutput. fs_h_jt_normalizeactualoutput + S (jt_output_normalizeactual) = S ((S (jt_index_normalizeactual)) * e)) /\ exists fs_q_jt_normalizeactualoutput. d = fs_q_jt_normalizeactualoutput * S ((S (jt_index_normalizeactual)) * e) + (jt_output_normalizeactual))) /\ (((exists jt_gap_normalizeactualbound. jt_gap_normalizeactualbound+S (jt_output_normalizeactual)=(n)) /\ (exists jt_left_normalizeactualmod jt_right_normalizeactualmod. (jt_input_normalizeactual)+(n)*jt_left_normalizeactualmod=(jt_output_normalizeactual)+(n)*jt_right_normalizeactualmod)))))) - 0007
specialize prime_field_polynomial_normalization_exists (n) - 0008
specialize prime_field_polynomial_normalization_exists (b) - 0009
specialize prime_field_polynomial_normalization_exists (c) - 0010
specialize prime_field_polynomial_normalization_exists (k) - 0011
apply prime_field_polynomial_normalization_exists - 0012
exact hn - 0013
cases hnorm - 0014
cases hnorm_witness - 0015
exists x - 0016
exists x1 - 0017
split - 0018
specialize prime_field_polynomial_normalization_bounded (n) - 0019
specialize prime_field_polynomial_normalization_bounded (b) - 0020
specialize prime_field_polynomial_normalization_bounded (c) - 0021
specialize prime_field_polynomial_normalization_bounded (x) - 0022
specialize prime_field_polynomial_normalization_bounded (x1) - 0023
specialize prime_field_polynomial_normalization_bounded (k) - 0024
apply prime_field_polynomial_normalization_bounded - 0025
exact hnorm_witness_witness - 0026
intro i - 0027
intro a - 0028
intro r - 0029
intro hi - 0030
intro ha - 0031
intro hr - 0032
have hvalue : ((exists jt_gap_normalizeresiduebound. jt_gap_normalizeresiduebound+S (r)=(n)) /\ (exists jt_left_normalizeresiduemod jt_right_normalizeresiduemod. (a)+(n)*jt_left_normalizeresiduemod=(r)+(n)*jt_right_normalizeresiduemod)) - 0033
specialize prime_field_polynomial_normalization_entry (n) - 0034
specialize prime_field_polynomial_normalization_entry (b) - 0035
specialize prime_field_polynomial_normalization_entry (c) - 0036
specialize prime_field_polynomial_normalization_entry (x) - 0037
specialize prime_field_polynomial_normalization_entry (x1) - 0038
specialize prime_field_polynomial_normalization_entry (k) - 0039
specialize prime_field_polynomial_normalization_entry (i) - 0040
specialize prime_field_polynomial_normalization_entry (a) - 0041
specialize prime_field_polynomial_normalization_entry (r) - 0042
apply prime_field_polynomial_normalization_entry - 0043
exact hnorm_witness_witness - 0044
exact hi - 0045
exact ha - 0046
exact hr - 0047
cases hvalue - 0048
exact hvalue_right