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 original first-admission records.
Exact expanded first-order arithmetic statement
forall mb mc sb sc l n. (exists ff_code_dot_value ff_scale_dot_value. ((forall fpmp_index_dot_value_pointwise fpmp_left_dot_value_pointwise fpmp_right_dot_value_pointwise fpmp_target_dot_value_pointwise. (exists fpmp_gap_dot_value_pointwise. fpmp_gap_dot_value_pointwise + S fpmp_index_dot_value_pointwise = l) -> (((exists ff_h_fpmp_dot_value_pointwise_left. ff_h_fpmp_dot_value_pointwise_left + S (fpmp_left_dot_value_pointwise) = S ((S (fpmp_index_dot_value_pointwise)) * mc)) /\ exists ff_q_fpmp_dot_value_pointwise_left. mb = ff_q_fpmp_dot_value_pointwise_left * S ((S (fpmp_index_dot_value_pointwise)) * mc) + (fpmp_left_dot_value_pointwise))) -> (((exists ff_h_fpmp_dot_value_pointwise_right. ff_h_fpmp_dot_value_pointwise_right + S (fpmp_right_dot_value_pointwise) = S ((S (fpmp_index_dot_value_pointwise)) * sc)) /\ exists ff_q_fpmp_dot_value_pointwise_right. sb = ff_q_fpmp_dot_value_pointwise_right * S ((S (fpmp_index_dot_value_pointwise)) * sc) + (fpmp_right_dot_value_pointwise))) -> (((exists ff_h_fpmp_dot_value_pointwise_target. ff_h_fpmp_dot_value_pointwise_target + S (fpmp_target_dot_value_pointwise) = S ((S (fpmp_index_dot_value_pointwise)) * ff_scale_dot_value)) /\ exists ff_q_fpmp_dot_value_pointwise_target. ff_code_dot_value = ff_q_fpmp_dot_value_pointwise_target * S ((S (fpmp_index_dot_value_pointwise)) * ff_scale_dot_value) + (fpmp_target_dot_value_pointwise))) -> fpmp_target_dot_value_pointwise = fpmp_left_dot_value_pointwise * fpmp_right_dot_value_pointwise) /\ (exists ff_u_dot_value_sum ff_v_dot_value_sum. ((((exists ff_h_dot_value_sum_start. ff_h_dot_value_sum_start + S (0) = S ((S (0)) * ff_v_dot_value_sum)) /\ exists ff_q_dot_value_sum_start. ff_u_dot_value_sum = ff_q_dot_value_sum_start * S ((S (0)) * ff_v_dot_value_sum) + (0))) /\ ((((exists ff_h_dot_value_sum_terminal. ff_h_dot_value_sum_terminal + S (n) = S ((S (l)) * ff_v_dot_value_sum)) /\ exists ff_q_dot_value_sum_terminal. ff_u_dot_value_sum = ff_q_dot_value_sum_terminal * S ((S (l)) * ff_v_dot_value_sum) + (n))) /\ forall ff_i_dot_value_sum. (exists ff_lt_dot_value_sum_bound. ff_lt_dot_value_sum_bound + S ff_i_dot_value_sum = l) -> exists ff_a_dot_value_sum ff_r_dot_value_sum ff_s_dot_value_sum. ((((exists ff_h_dot_value_sum_summand. ff_h_dot_value_sum_summand + S (ff_a_dot_value_sum) = S ((S (ff_i_dot_value_sum)) * ff_scale_dot_value)) /\ exists ff_q_dot_value_sum_summand. ff_code_dot_value = ff_q_dot_value_sum_summand * S ((S (ff_i_dot_value_sum)) * ff_scale_dot_value) + (ff_a_dot_value_sum))) /\ ((((exists ff_h_dot_value_sum_partial. ff_h_dot_value_sum_partial + S (ff_r_dot_value_sum) = S ((S (ff_i_dot_value_sum)) * ff_v_dot_value_sum)) /\ exists ff_q_dot_value_sum_partial. ff_u_dot_value_sum = ff_q_dot_value_sum_partial * S ((S (ff_i_dot_value_sum)) * ff_v_dot_value_sum) + (ff_r_dot_value_sum))) /\ ((((exists ff_h_dot_value_sum_successor. ff_h_dot_value_sum_successor + S (ff_s_dot_value_sum) = S ((S (S ff_i_dot_value_sum)) * ff_v_dot_value_sum)) /\ exists ff_q_dot_value_sum_successor. ff_u_dot_value_sum = ff_q_dot_value_sum_successor * S ((S (S ff_i_dot_value_sum)) * ff_v_dot_value_sum) + (ff_s_dot_value_sum))) /\ ff_s_dot_value_sum = ff_r_dot_value_sum + ff_a_dot_value_sum)))))))) -> (exists ff_code_dot_reverse ff_scale_dot_reverse. ((forall fpmp_index_dot_reverse_pointwise fpmp_left_dot_reverse_pointwise fpmp_right_dot_reverse_pointwise fpmp_target_dot_reverse_pointwise. (exists fpmp_gap_dot_reverse_pointwise. fpmp_gap_dot_reverse_pointwise + S fpmp_index_dot_reverse_pointwise = l) -> (((exists ff_h_fpmp_dot_reverse_pointwise_left. ff_h_fpmp_dot_reverse_pointwise_left + S (fpmp_left_dot_reverse_pointwise) = S ((S (fpmp_index_dot_reverse_pointwise)) * sc)) /\ exists ff_q_fpmp_dot_reverse_pointwise_left. sb = ff_q_fpmp_dot_reverse_pointwise_left * S ((S (fpmp_index_dot_reverse_pointwise)) * sc) + (fpmp_left_dot_reverse_pointwise))) -> (((exists ff_h_fpmp_dot_reverse_pointwise_right. ff_h_fpmp_dot_reverse_pointwise_right + S (fpmp_right_dot_reverse_pointwise) = S ((S (fpmp_index_dot_reverse_pointwise)) * mc)) /\ exists ff_q_fpmp_dot_reverse_pointwise_right. mb = ff_q_fpmp_dot_reverse_pointwise_right * S ((S (fpmp_index_dot_reverse_pointwise)) * mc) + (fpmp_right_dot_reverse_pointwise))) -> (((exists ff_h_fpmp_dot_reverse_pointwise_target. ff_h_fpmp_dot_reverse_pointwise_target + S (fpmp_target_dot_reverse_pointwise) = S ((S (fpmp_index_dot_reverse_pointwise)) * ff_scale_dot_reverse)) /\ exists ff_q_fpmp_dot_reverse_pointwise_target. ff_code_dot_reverse = ff_q_fpmp_dot_reverse_pointwise_target * S ((S (fpmp_index_dot_reverse_pointwise)) * ff_scale_dot_reverse) + (fpmp_target_dot_reverse_pointwise))) -> fpmp_target_dot_reverse_pointwise = fpmp_left_dot_reverse_pointwise * fpmp_right_dot_reverse_pointwise) /\ (exists ff_u_dot_reverse_sum ff_v_dot_reverse_sum. ((((exists ff_h_dot_reverse_sum_start. ff_h_dot_reverse_sum_start + S (0) = S ((S (0)) * ff_v_dot_reverse_sum)) /\ exists ff_q_dot_reverse_sum_start. ff_u_dot_reverse_sum = ff_q_dot_reverse_sum_start * S ((S (0)) * ff_v_dot_reverse_sum) + (0))) /\ ((((exists ff_h_dot_reverse_sum_terminal. ff_h_dot_reverse_sum_terminal + S (n) = S ((S (l)) * ff_v_dot_reverse_sum)) /\ exists ff_q_dot_reverse_sum_terminal. ff_u_dot_reverse_sum = ff_q_dot_reverse_sum_terminal * S ((S (l)) * ff_v_dot_reverse_sum) + (n))) /\ forall ff_i_dot_reverse_sum. (exists ff_lt_dot_reverse_sum_bound. ff_lt_dot_reverse_sum_bound + S ff_i_dot_reverse_sum = l) -> exists ff_a_dot_reverse_sum ff_r_dot_reverse_sum ff_s_dot_reverse_sum. ((((exists ff_h_dot_reverse_sum_summand. ff_h_dot_reverse_sum_summand + S (ff_a_dot_reverse_sum) = S ((S (ff_i_dot_reverse_sum)) * ff_scale_dot_reverse)) /\ exists ff_q_dot_reverse_sum_summand. ff_code_dot_reverse = ff_q_dot_reverse_sum_summand * S ((S (ff_i_dot_reverse_sum)) * ff_scale_dot_reverse) + (ff_a_dot_reverse_sum))) /\ ((((exists ff_h_dot_reverse_sum_partial. ff_h_dot_reverse_sum_partial + S (ff_r_dot_reverse_sum) = S ((S (ff_i_dot_reverse_sum)) * ff_v_dot_reverse_sum)) /\ exists ff_q_dot_reverse_sum_partial. ff_u_dot_reverse_sum = ff_q_dot_reverse_sum_partial * S ((S (ff_i_dot_reverse_sum)) * ff_v_dot_reverse_sum) + (ff_r_dot_reverse_sum))) /\ ((((exists ff_h_dot_reverse_sum_successor. ff_h_dot_reverse_sum_successor + S (ff_s_dot_reverse_sum) = S ((S (S ff_i_dot_reverse_sum)) * ff_v_dot_reverse_sum)) /\ exists ff_q_dot_reverse_sum_successor. ff_u_dot_reverse_sum = ff_q_dot_reverse_sum_successor * S ((S (S ff_i_dot_reverse_sum)) * ff_v_dot_reverse_sum) + (ff_s_dot_reverse_sum))) /\ ff_s_dot_reverse_sum = ff_r_dot_reverse_sum + ff_a_dot_reverse_sum))))))))Constructive proof overview
Generated structural guide
Finite natural dot products are constructively symmetric.
The unchanged tactic script uses 1 declared prerequisite and contains 37 exact native proof lines.
Alpha v34 checked-use · first admitted v20 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
mul_comm Stable 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–7
02Separate the logical casesL8–10
03Construct an explicit witnessL11–12
04Separate the logical casesL13–13
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L13
split
05Fix variables and assumptionsL14–21
06Establish hproductL22–31
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hdot witness witness left.
07Calculate and transport equalitiesL32–32
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L32
trans b * a
Original exact command ledger · 37 lines
- 0001
intro mb - 0002
intro mc - 0003
intro sb - 0004
intro sc - 0005
intro l - 0006
intro n - 0007
intro hdot - 0008
cases hdot - 0009
cases hdot_witness - 0010
cases hdot_witness_witness - 0011
exists x - 0012
exists x1 - 0013
split - 0014
intro i - 0015
intro a - 0016
intro b - 0017
intro z - 0018
intro hi - 0019
intro ha - 0020
intro hb - 0021
intro hz - 0022
have hproduct : z = b * a - 0023
specialize hdot_witness_witness_left i - 0024
specialize hdot_witness_witness_left b - 0025
specialize hdot_witness_witness_left a - 0026
specialize hdot_witness_witness_left z - 0027
apply hdot_witness_witness_left - 0028
exact hi - 0029
exact hb - 0030
exact ha - 0031
exact hz - 0032
trans b * a - 0033
exact hproduct - 0034
specialize mul_comm b - 0035
specialize mul_comm a - 0036
exact mul_comm - 0037
exact hdot_witness_witness_right
Separate complete second-wave branches: Full T13 proof · Alpha v27.