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 ab ac bb bc cb cc db dc eb ec fb fc l L M N. (exists ff_code_dot_ics_dot_first ff_scale_dot_ics_dot_first. ((forall fpmp_index_dot_ics_dot_first_pointwise fpmp_left_dot_ics_dot_first_pointwise fpmp_right_dot_ics_dot_first_pointwise fpmp_target_dot_ics_dot_first_pointwise. (exists fpmp_gap_dot_ics_dot_first_pointwise. fpmp_gap_dot_ics_dot_first_pointwise + S fpmp_index_dot_ics_dot_first_pointwise = l) -> (((exists ff_h_fpmp_dot_ics_dot_first_pointwise_left. ff_h_fpmp_dot_ics_dot_first_pointwise_left + S (fpmp_left_dot_ics_dot_first_pointwise) = S ((S (fpmp_index_dot_ics_dot_first_pointwise)) * ac)) /\ exists ff_q_fpmp_dot_ics_dot_first_pointwise_left. ab = ff_q_fpmp_dot_ics_dot_first_pointwise_left * S ((S (fpmp_index_dot_ics_dot_first_pointwise)) * ac) + (fpmp_left_dot_ics_dot_first_pointwise))) -> (((exists ff_h_fpmp_dot_ics_dot_first_pointwise_right. ff_h_fpmp_dot_ics_dot_first_pointwise_right + S (fpmp_right_dot_ics_dot_first_pointwise) = S ((S (fpmp_index_dot_ics_dot_first_pointwise)) * bc)) /\ exists ff_q_fpmp_dot_ics_dot_first_pointwise_right. bb = ff_q_fpmp_dot_ics_dot_first_pointwise_right * S ((S (fpmp_index_dot_ics_dot_first_pointwise)) * bc) + (fpmp_right_dot_ics_dot_first_pointwise))) -> (((exists ff_h_fpmp_dot_ics_dot_first_pointwise_target. ff_h_fpmp_dot_ics_dot_first_pointwise_target + S (fpmp_target_dot_ics_dot_first_pointwise) = S ((S (fpmp_index_dot_ics_dot_first_pointwise)) * ff_scale_dot_ics_dot_first)) /\ exists ff_q_fpmp_dot_ics_dot_first_pointwise_target. ff_code_dot_ics_dot_first = ff_q_fpmp_dot_ics_dot_first_pointwise_target * S ((S (fpmp_index_dot_ics_dot_first_pointwise)) * ff_scale_dot_ics_dot_first) + (fpmp_target_dot_ics_dot_first_pointwise))) -> fpmp_target_dot_ics_dot_first_pointwise = fpmp_left_dot_ics_dot_first_pointwise * fpmp_right_dot_ics_dot_first_pointwise) /\ (exists ff_u_dot_ics_dot_first_sum ff_v_dot_ics_dot_first_sum. ((((exists ff_h_dot_ics_dot_first_sum_start. ff_h_dot_ics_dot_first_sum_start + S (0) = S ((S (0)) * ff_v_dot_ics_dot_first_sum)) /\ exists ff_q_dot_ics_dot_first_sum_start. ff_u_dot_ics_dot_first_sum = ff_q_dot_ics_dot_first_sum_start * S ((S (0)) * ff_v_dot_ics_dot_first_sum) + (0))) /\ ((((exists ff_h_dot_ics_dot_first_sum_terminal. ff_h_dot_ics_dot_first_sum_terminal + S (L) = S ((S (l)) * ff_v_dot_ics_dot_first_sum)) /\ exists ff_q_dot_ics_dot_first_sum_terminal. ff_u_dot_ics_dot_first_sum = ff_q_dot_ics_dot_first_sum_terminal * S ((S (l)) * ff_v_dot_ics_dot_first_sum) + (L))) /\ forall ff_i_dot_ics_dot_first_sum. (exists ff_lt_dot_ics_dot_first_sum_bound. ff_lt_dot_ics_dot_first_sum_bound + S ff_i_dot_ics_dot_first_sum = l) -> exists ff_a_dot_ics_dot_first_sum ff_r_dot_ics_dot_first_sum ff_s_dot_ics_dot_first_sum. ((((exists ff_h_dot_ics_dot_first_sum_summand. ff_h_dot_ics_dot_first_sum_summand + S (ff_a_dot_ics_dot_first_sum) = S ((S (ff_i_dot_ics_dot_first_sum)) * ff_scale_dot_ics_dot_first)) /\ exists ff_q_dot_ics_dot_first_sum_summand. ff_code_dot_ics_dot_first = ff_q_dot_ics_dot_first_sum_summand * S ((S (ff_i_dot_ics_dot_first_sum)) * ff_scale_dot_ics_dot_first) + (ff_a_dot_ics_dot_first_sum))) /\ ((((exists ff_h_dot_ics_dot_first_sum_partial. ff_h_dot_ics_dot_first_sum_partial + S (ff_r_dot_ics_dot_first_sum) = S ((S (ff_i_dot_ics_dot_first_sum)) * ff_v_dot_ics_dot_first_sum)) /\ exists ff_q_dot_ics_dot_first_sum_partial. ff_u_dot_ics_dot_first_sum = ff_q_dot_ics_dot_first_sum_partial * S ((S (ff_i_dot_ics_dot_first_sum)) * ff_v_dot_ics_dot_first_sum) + (ff_r_dot_ics_dot_first_sum))) /\ ((((exists ff_h_dot_ics_dot_first_sum_successor. ff_h_dot_ics_dot_first_sum_successor + S (ff_s_dot_ics_dot_first_sum) = S ((S (S ff_i_dot_ics_dot_first_sum)) * ff_v_dot_ics_dot_first_sum)) /\ exists ff_q_dot_ics_dot_first_sum_successor. ff_u_dot_ics_dot_first_sum = ff_q_dot_ics_dot_first_sum_successor * S ((S (S ff_i_dot_ics_dot_first_sum)) * ff_v_dot_ics_dot_first_sum) + (ff_s_dot_ics_dot_first_sum))) /\ ff_s_dot_ics_dot_first_sum = ff_r_dot_ics_dot_first_sum + ff_a_dot_ics_dot_first_sum)))))))) -> (exists ff_code_dot_ics_dot_second ff_scale_dot_ics_dot_second. ((forall fpmp_index_dot_ics_dot_second_pointwise fpmp_left_dot_ics_dot_second_pointwise fpmp_right_dot_ics_dot_second_pointwise fpmp_target_dot_ics_dot_second_pointwise. (exists fpmp_gap_dot_ics_dot_second_pointwise. fpmp_gap_dot_ics_dot_second_pointwise + S fpmp_index_dot_ics_dot_second_pointwise = l) -> (((exists ff_h_fpmp_dot_ics_dot_second_pointwise_left. ff_h_fpmp_dot_ics_dot_second_pointwise_left + S (fpmp_left_dot_ics_dot_second_pointwise) = S ((S (fpmp_index_dot_ics_dot_second_pointwise)) * cc)) /\ exists ff_q_fpmp_dot_ics_dot_second_pointwise_left. cb = ff_q_fpmp_dot_ics_dot_second_pointwise_left * S ((S (fpmp_index_dot_ics_dot_second_pointwise)) * cc) + (fpmp_left_dot_ics_dot_second_pointwise))) -> (((exists ff_h_fpmp_dot_ics_dot_second_pointwise_right. ff_h_fpmp_dot_ics_dot_second_pointwise_right + S (fpmp_right_dot_ics_dot_second_pointwise) = S ((S (fpmp_index_dot_ics_dot_second_pointwise)) * dc)) /\ exists ff_q_fpmp_dot_ics_dot_second_pointwise_right. db = ff_q_fpmp_dot_ics_dot_second_pointwise_right * S ((S (fpmp_index_dot_ics_dot_second_pointwise)) * dc) + (fpmp_right_dot_ics_dot_second_pointwise))) -> (((exists ff_h_fpmp_dot_ics_dot_second_pointwise_target. ff_h_fpmp_dot_ics_dot_second_pointwise_target + S (fpmp_target_dot_ics_dot_second_pointwise) = S ((S (fpmp_index_dot_ics_dot_second_pointwise)) * ff_scale_dot_ics_dot_second)) /\ exists ff_q_fpmp_dot_ics_dot_second_pointwise_target. ff_code_dot_ics_dot_second = ff_q_fpmp_dot_ics_dot_second_pointwise_target * S ((S (fpmp_index_dot_ics_dot_second_pointwise)) * ff_scale_dot_ics_dot_second) + (fpmp_target_dot_ics_dot_second_pointwise))) -> fpmp_target_dot_ics_dot_second_pointwise = fpmp_left_dot_ics_dot_second_pointwise * fpmp_right_dot_ics_dot_second_pointwise) /\ (exists ff_u_dot_ics_dot_second_sum ff_v_dot_ics_dot_second_sum. ((((exists ff_h_dot_ics_dot_second_sum_start. ff_h_dot_ics_dot_second_sum_start + S (0) = S ((S (0)) * ff_v_dot_ics_dot_second_sum)) /\ exists ff_q_dot_ics_dot_second_sum_start. ff_u_dot_ics_dot_second_sum = ff_q_dot_ics_dot_second_sum_start * S ((S (0)) * ff_v_dot_ics_dot_second_sum) + (0))) /\ ((((exists ff_h_dot_ics_dot_second_sum_terminal. ff_h_dot_ics_dot_second_sum_terminal + S (M) = S ((S (l)) * ff_v_dot_ics_dot_second_sum)) /\ exists ff_q_dot_ics_dot_second_sum_terminal. ff_u_dot_ics_dot_second_sum = ff_q_dot_ics_dot_second_sum_terminal * S ((S (l)) * ff_v_dot_ics_dot_second_sum) + (M))) /\ forall ff_i_dot_ics_dot_second_sum. (exists ff_lt_dot_ics_dot_second_sum_bound. ff_lt_dot_ics_dot_second_sum_bound + S ff_i_dot_ics_dot_second_sum = l) -> exists ff_a_dot_ics_dot_second_sum ff_r_dot_ics_dot_second_sum ff_s_dot_ics_dot_second_sum. ((((exists ff_h_dot_ics_dot_second_sum_summand. ff_h_dot_ics_dot_second_sum_summand + S (ff_a_dot_ics_dot_second_sum) = S ((S (ff_i_dot_ics_dot_second_sum)) * ff_scale_dot_ics_dot_second)) /\ exists ff_q_dot_ics_dot_second_sum_summand. ff_code_dot_ics_dot_second = ff_q_dot_ics_dot_second_sum_summand * S ((S (ff_i_dot_ics_dot_second_sum)) * ff_scale_dot_ics_dot_second) + (ff_a_dot_ics_dot_second_sum))) /\ ((((exists ff_h_dot_ics_dot_second_sum_partial. ff_h_dot_ics_dot_second_sum_partial + S (ff_r_dot_ics_dot_second_sum) = S ((S (ff_i_dot_ics_dot_second_sum)) * ff_v_dot_ics_dot_second_sum)) /\ exists ff_q_dot_ics_dot_second_sum_partial. ff_u_dot_ics_dot_second_sum = ff_q_dot_ics_dot_second_sum_partial * S ((S (ff_i_dot_ics_dot_second_sum)) * ff_v_dot_ics_dot_second_sum) + (ff_r_dot_ics_dot_second_sum))) /\ ((((exists ff_h_dot_ics_dot_second_sum_successor. ff_h_dot_ics_dot_second_sum_successor + S (ff_s_dot_ics_dot_second_sum) = S ((S (S ff_i_dot_ics_dot_second_sum)) * ff_v_dot_ics_dot_second_sum)) /\ exists ff_q_dot_ics_dot_second_sum_successor. ff_u_dot_ics_dot_second_sum = ff_q_dot_ics_dot_second_sum_successor * S ((S (S ff_i_dot_ics_dot_second_sum)) * ff_v_dot_ics_dot_second_sum) + (ff_s_dot_ics_dot_second_sum))) /\ ff_s_dot_ics_dot_second_sum = ff_r_dot_ics_dot_second_sum + ff_a_dot_ics_dot_second_sum)))))))) -> (exists ff_code_dot_ics_dot_third ff_scale_dot_ics_dot_third. ((forall fpmp_index_dot_ics_dot_third_pointwise fpmp_left_dot_ics_dot_third_pointwise fpmp_right_dot_ics_dot_third_pointwise fpmp_target_dot_ics_dot_third_pointwise. (exists fpmp_gap_dot_ics_dot_third_pointwise. fpmp_gap_dot_ics_dot_third_pointwise + S fpmp_index_dot_ics_dot_third_pointwise = l) -> (((exists ff_h_fpmp_dot_ics_dot_third_pointwise_left. ff_h_fpmp_dot_ics_dot_third_pointwise_left + S (fpmp_left_dot_ics_dot_third_pointwise) = S ((S (fpmp_index_dot_ics_dot_third_pointwise)) * ec)) /\ exists ff_q_fpmp_dot_ics_dot_third_pointwise_left. eb = ff_q_fpmp_dot_ics_dot_third_pointwise_left * S ((S (fpmp_index_dot_ics_dot_third_pointwise)) * ec) + (fpmp_left_dot_ics_dot_third_pointwise))) -> (((exists ff_h_fpmp_dot_ics_dot_third_pointwise_right. ff_h_fpmp_dot_ics_dot_third_pointwise_right + S (fpmp_right_dot_ics_dot_third_pointwise) = S ((S (fpmp_index_dot_ics_dot_third_pointwise)) * fc)) /\ exists ff_q_fpmp_dot_ics_dot_third_pointwise_right. fb = ff_q_fpmp_dot_ics_dot_third_pointwise_right * S ((S (fpmp_index_dot_ics_dot_third_pointwise)) * fc) + (fpmp_right_dot_ics_dot_third_pointwise))) -> (((exists ff_h_fpmp_dot_ics_dot_third_pointwise_target. ff_h_fpmp_dot_ics_dot_third_pointwise_target + S (fpmp_target_dot_ics_dot_third_pointwise) = S ((S (fpmp_index_dot_ics_dot_third_pointwise)) * ff_scale_dot_ics_dot_third)) /\ exists ff_q_fpmp_dot_ics_dot_third_pointwise_target. ff_code_dot_ics_dot_third = ff_q_fpmp_dot_ics_dot_third_pointwise_target * S ((S (fpmp_index_dot_ics_dot_third_pointwise)) * ff_scale_dot_ics_dot_third) + (fpmp_target_dot_ics_dot_third_pointwise))) -> fpmp_target_dot_ics_dot_third_pointwise = fpmp_left_dot_ics_dot_third_pointwise * fpmp_right_dot_ics_dot_third_pointwise) /\ (exists ff_u_dot_ics_dot_third_sum ff_v_dot_ics_dot_third_sum. ((((exists ff_h_dot_ics_dot_third_sum_start. ff_h_dot_ics_dot_third_sum_start + S (0) = S ((S (0)) * ff_v_dot_ics_dot_third_sum)) /\ exists ff_q_dot_ics_dot_third_sum_start. ff_u_dot_ics_dot_third_sum = ff_q_dot_ics_dot_third_sum_start * S ((S (0)) * ff_v_dot_ics_dot_third_sum) + (0))) /\ ((((exists ff_h_dot_ics_dot_third_sum_terminal. ff_h_dot_ics_dot_third_sum_terminal + S (N) = S ((S (l)) * ff_v_dot_ics_dot_third_sum)) /\ exists ff_q_dot_ics_dot_third_sum_terminal. ff_u_dot_ics_dot_third_sum = ff_q_dot_ics_dot_third_sum_terminal * S ((S (l)) * ff_v_dot_ics_dot_third_sum) + (N))) /\ forall ff_i_dot_ics_dot_third_sum. (exists ff_lt_dot_ics_dot_third_sum_bound. ff_lt_dot_ics_dot_third_sum_bound + S ff_i_dot_ics_dot_third_sum = l) -> exists ff_a_dot_ics_dot_third_sum ff_r_dot_ics_dot_third_sum ff_s_dot_ics_dot_third_sum. ((((exists ff_h_dot_ics_dot_third_sum_summand. ff_h_dot_ics_dot_third_sum_summand + S (ff_a_dot_ics_dot_third_sum) = S ((S (ff_i_dot_ics_dot_third_sum)) * ff_scale_dot_ics_dot_third)) /\ exists ff_q_dot_ics_dot_third_sum_summand. ff_code_dot_ics_dot_third = ff_q_dot_ics_dot_third_sum_summand * S ((S (ff_i_dot_ics_dot_third_sum)) * ff_scale_dot_ics_dot_third) + (ff_a_dot_ics_dot_third_sum))) /\ ((((exists ff_h_dot_ics_dot_third_sum_partial. ff_h_dot_ics_dot_third_sum_partial + S (ff_r_dot_ics_dot_third_sum) = S ((S (ff_i_dot_ics_dot_third_sum)) * ff_v_dot_ics_dot_third_sum)) /\ exists ff_q_dot_ics_dot_third_sum_partial. ff_u_dot_ics_dot_third_sum = ff_q_dot_ics_dot_third_sum_partial * S ((S (ff_i_dot_ics_dot_third_sum)) * ff_v_dot_ics_dot_third_sum) + (ff_r_dot_ics_dot_third_sum))) /\ ((((exists ff_h_dot_ics_dot_third_sum_successor. ff_h_dot_ics_dot_third_sum_successor + S (ff_s_dot_ics_dot_third_sum) = S ((S (S ff_i_dot_ics_dot_third_sum)) * ff_v_dot_ics_dot_third_sum)) /\ exists ff_q_dot_ics_dot_third_sum_successor. ff_u_dot_ics_dot_third_sum = ff_q_dot_ics_dot_third_sum_successor * S ((S (S ff_i_dot_ics_dot_third_sum)) * ff_v_dot_ics_dot_third_sum) + (ff_s_dot_ics_dot_third_sum))) /\ ff_s_dot_ics_dot_third_sum = ff_r_dot_ics_dot_third_sum + ff_a_dot_ics_dot_third_sum)))))))) -> (forall ics_index_dot_alignment ics_value0_dot_alignment ics_value1_dot_alignment ics_value2_dot_alignment ics_value3_dot_alignment ics_value4_dot_alignment ics_value5_dot_alignment. (exists ics_gap_dot_alignment_bound. ics_gap_dot_alignment_bound + S (ics_index_dot_alignment) = (l)) -> (((exists fs_h_ics_dot_alignment_at0. fs_h_ics_dot_alignment_at0 + S (ics_value0_dot_alignment) = S ((S (ics_index_dot_alignment)) * ac)) /\ exists fs_q_ics_dot_alignment_at0. ab = fs_q_ics_dot_alignment_at0 * S ((S (ics_index_dot_alignment)) * ac) + (ics_value0_dot_alignment))) -> (((exists fs_h_ics_dot_alignment_at1. fs_h_ics_dot_alignment_at1 + S (ics_value1_dot_alignment) = S ((S (ics_index_dot_alignment)) * bc)) /\ exists fs_q_ics_dot_alignment_at1. bb = fs_q_ics_dot_alignment_at1 * S ((S (ics_index_dot_alignment)) * bc) + (ics_value1_dot_alignment))) -> (((exists fs_h_ics_dot_alignment_at2. fs_h_ics_dot_alignment_at2 + S (ics_value2_dot_alignment) = S ((S (ics_index_dot_alignment)) * cc)) /\ exists fs_q_ics_dot_alignment_at2. cb = fs_q_ics_dot_alignment_at2 * S ((S (ics_index_dot_alignment)) * cc) + (ics_value2_dot_alignment))) -> (((exists fs_h_ics_dot_alignment_at3. fs_h_ics_dot_alignment_at3 + S (ics_value3_dot_alignment) = S ((S (ics_index_dot_alignment)) * dc)) /\ exists fs_q_ics_dot_alignment_at3. db = fs_q_ics_dot_alignment_at3 * S ((S (ics_index_dot_alignment)) * dc) + (ics_value3_dot_alignment))) -> (((exists fs_h_ics_dot_alignment_at4. fs_h_ics_dot_alignment_at4 + S (ics_value4_dot_alignment) = S ((S (ics_index_dot_alignment)) * ec)) /\ exists fs_q_ics_dot_alignment_at4. eb = fs_q_ics_dot_alignment_at4 * S ((S (ics_index_dot_alignment)) * ec) + (ics_value4_dot_alignment))) -> (((exists fs_h_ics_dot_alignment_at5. fs_h_ics_dot_alignment_at5 + S (ics_value5_dot_alignment) = S ((S (ics_index_dot_alignment)) * fc)) /\ exists fs_q_ics_dot_alignment_at5. fb = fs_q_ics_dot_alignment_at5 * S ((S (ics_index_dot_alignment)) * fc) + (ics_value5_dot_alignment))) -> ics_value4_dot_alignment * ics_value5_dot_alignment = ics_value0_dot_alignment * ics_value1_dot_alignment + ics_value2_dot_alignment * ics_value3_dot_alignment) -> L + M = NConstructive proof overview
Generated structural guide
Actual finite dot products add whenever their decoded multiplicands satisfy the displayed pointwise distributive equation; checked finite-sum additivity supplies the full arbitrary-length result.
The unchanged tactic script uses 2 declared prerequisites and contains 136 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
beta_sum_pointwise_add Alpha theorem; checked-use authorized beta_at_exists 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–10
02Fix variables and assumptionsL11–20
03Separate the logical casesL21–29
04Use earlier factsL30–39
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L30
specialize beta_sum_pointwise_add (x) - L31
specialize beta_sum_pointwise_add (x1) - L32
specialize beta_sum_pointwise_add (x2) - L33
specialize beta_sum_pointwise_add (x3) - L34
specialize beta_sum_pointwise_add (x4) - L35
specialize beta_sum_pointwise_add (x5) - L36
specialize beta_sum_pointwise_add (l) - L37
specialize beta_sum_pointwise_add (L) - L38
specialize beta_sum_pointwise_add (M) - L39
specialize beta_sum_pointwise_add (N)
05Use earlier factsL40–43
06Fix variables and assumptionsL44–51
07Establish ha0L52–56
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L52
have ha0 : exists value. (((exists fs_h_ics_dot_value0. fs_h_ics_dot_value0 + S (value) = S ((S (i)) * ac)) /\ exists fs_q_ics_dot_value0. ab = fs_q_ics_dot_value0 * S ((S (i)) * ac) + (value))) - L53
specialize beta_at_exists (ab) - L54
specialize beta_at_exists (ac) - L55
specialize beta_at_exists (i) - L56
apply beta_at_exists
08Separate the logical casesL57–57
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L57
cases ha0
09Establish ha1L58–62
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L58
have ha1 : exists value. (((exists fs_h_ics_dot_value1. fs_h_ics_dot_value1 + S (value) = S ((S (i)) * bc)) /\ exists fs_q_ics_dot_value1. bb = fs_q_ics_dot_value1 * S ((S (i)) * bc) + (value))) - L59
specialize beta_at_exists (bb) - L60
specialize beta_at_exists (bc) - L61
specialize beta_at_exists (i) - L62
apply beta_at_exists
10Separate the logical casesL63–63
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L63
cases ha1
11Establish ha2L64–68
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L64
have ha2 : exists value. (((exists fs_h_ics_dot_value2. fs_h_ics_dot_value2 + S (value) = S ((S (i)) * cc)) /\ exists fs_q_ics_dot_value2. cb = fs_q_ics_dot_value2 * S ((S (i)) * cc) + (value))) - L65
specialize beta_at_exists (cb) - L66
specialize beta_at_exists (cc) - L67
specialize beta_at_exists (i) - L68
apply beta_at_exists
12Separate the logical casesL69–69
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L69
cases ha2
13Establish ha3L70–74
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L70
have ha3 : exists value. (((exists fs_h_ics_dot_value3. fs_h_ics_dot_value3 + S (value) = S ((S (i)) * dc)) /\ exists fs_q_ics_dot_value3. db = fs_q_ics_dot_value3 * S ((S (i)) * dc) + (value))) - L71
specialize beta_at_exists (db) - L72
specialize beta_at_exists (dc) - L73
specialize beta_at_exists (i) - L74
apply beta_at_exists
14Separate the logical casesL75–75
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L75
cases ha3
15Establish ha4L76–80
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L76
have ha4 : exists value. (((exists fs_h_ics_dot_value4. fs_h_ics_dot_value4 + S (value) = S ((S (i)) * ec)) /\ exists fs_q_ics_dot_value4. eb = fs_q_ics_dot_value4 * S ((S (i)) * ec) + (value))) - L77
specialize beta_at_exists (eb) - L78
specialize beta_at_exists (ec) - L79
specialize beta_at_exists (i) - L80
apply beta_at_exists
16Separate the logical casesL81–81
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L81
cases ha4
17Establish ha5L82–86
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at exists.
- L82
have ha5 : exists value. (((exists fs_h_ics_dot_value5. fs_h_ics_dot_value5 + S (value) = S ((S (i)) * fc)) /\ exists fs_q_ics_dot_value5. fb = fs_q_ics_dot_value5 * S ((S (i)) * fc) + (value))) - L83
specialize beta_at_exists (fb) - L84
specialize beta_at_exists (fc) - L85
specialize beta_at_exists (i) - L86
apply beta_at_exists
18Separate the logical casesL87–87
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L87
cases ha5
19Establish heqL88–97
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hpoint.
20Use earlier factsL98–103
21Calculate and transport equalitiesL104–104
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L104
trans x10 * x11
22Use earlier factsL105–113
Instantiate or apply named facts and discharge the corresponding proof obligations.
23Calculate and transport equalitiesL114–114
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L114
trans x6 * x7 + x8 * x9
24Use earlier factsL115–115
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L115
exact heq
25Calculate and transport equalitiesL116–117
26Use earlier factsL118–126
Instantiate or apply named facts and discharge the corresponding proof obligations.
27Calculate and transport equalitiesL127–127
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L127
symm
28Use earlier factsL128–136
Instantiate or apply named facts and discharge the corresponding proof obligations.
Original exact command ledger · 136 lines
- 0001
intro ab - 0002
intro ac - 0003
intro bb - 0004
intro bc - 0005
intro cb - 0006
intro cc - 0007
intro db - 0008
intro dc - 0009
intro eb - 0010
intro ec - 0011
intro fb - 0012
intro fc - 0013
intro l - 0014
intro L - 0015
intro M - 0016
intro N - 0017
intro hf - 0018
intro hg - 0019
intro hh - 0020
intro hpoint - 0021
cases hf - 0022
cases hf_witness - 0023
cases hf_witness_witness - 0024
cases hg - 0025
cases hg_witness - 0026
cases hg_witness_witness - 0027
cases hh - 0028
cases hh_witness - 0029
cases hh_witness_witness - 0030
specialize beta_sum_pointwise_add (x) - 0031
specialize beta_sum_pointwise_add (x1) - 0032
specialize beta_sum_pointwise_add (x2) - 0033
specialize beta_sum_pointwise_add (x3) - 0034
specialize beta_sum_pointwise_add (x4) - 0035
specialize beta_sum_pointwise_add (x5) - 0036
specialize beta_sum_pointwise_add (l) - 0037
specialize beta_sum_pointwise_add (L) - 0038
specialize beta_sum_pointwise_add (M) - 0039
specialize beta_sum_pointwise_add (N) - 0040
apply beta_sum_pointwise_add - 0041
exact hf_witness_witness_right - 0042
exact hg_witness_witness_right - 0043
exact hh_witness_witness_right - 0044
intro i - 0045
intro v - 0046
intro w - 0047
intro z - 0048
intro hi - 0049
intro hv - 0050
intro hw - 0051
intro hz - 0052
have ha0 : exists value. (((exists fs_h_ics_dot_value0. fs_h_ics_dot_value0 + S (value) = S ((S (i)) * ac)) /\ exists fs_q_ics_dot_value0. ab = fs_q_ics_dot_value0 * S ((S (i)) * ac) + (value))) - 0053
specialize beta_at_exists (ab) - 0054
specialize beta_at_exists (ac) - 0055
specialize beta_at_exists (i) - 0056
apply beta_at_exists - 0057
cases ha0 - 0058
have ha1 : exists value. (((exists fs_h_ics_dot_value1. fs_h_ics_dot_value1 + S (value) = S ((S (i)) * bc)) /\ exists fs_q_ics_dot_value1. bb = fs_q_ics_dot_value1 * S ((S (i)) * bc) + (value))) - 0059
specialize beta_at_exists (bb) - 0060
specialize beta_at_exists (bc) - 0061
specialize beta_at_exists (i) - 0062
apply beta_at_exists - 0063
cases ha1 - 0064
have ha2 : exists value. (((exists fs_h_ics_dot_value2. fs_h_ics_dot_value2 + S (value) = S ((S (i)) * cc)) /\ exists fs_q_ics_dot_value2. cb = fs_q_ics_dot_value2 * S ((S (i)) * cc) + (value))) - 0065
specialize beta_at_exists (cb) - 0066
specialize beta_at_exists (cc) - 0067
specialize beta_at_exists (i) - 0068
apply beta_at_exists - 0069
cases ha2 - 0070
have ha3 : exists value. (((exists fs_h_ics_dot_value3. fs_h_ics_dot_value3 + S (value) = S ((S (i)) * dc)) /\ exists fs_q_ics_dot_value3. db = fs_q_ics_dot_value3 * S ((S (i)) * dc) + (value))) - 0071
specialize beta_at_exists (db) - 0072
specialize beta_at_exists (dc) - 0073
specialize beta_at_exists (i) - 0074
apply beta_at_exists - 0075
cases ha3 - 0076
have ha4 : exists value. (((exists fs_h_ics_dot_value4. fs_h_ics_dot_value4 + S (value) = S ((S (i)) * ec)) /\ exists fs_q_ics_dot_value4. eb = fs_q_ics_dot_value4 * S ((S (i)) * ec) + (value))) - 0077
specialize beta_at_exists (eb) - 0078
specialize beta_at_exists (ec) - 0079
specialize beta_at_exists (i) - 0080
apply beta_at_exists - 0081
cases ha4 - 0082
have ha5 : exists value. (((exists fs_h_ics_dot_value5. fs_h_ics_dot_value5 + S (value) = S ((S (i)) * fc)) /\ exists fs_q_ics_dot_value5. fb = fs_q_ics_dot_value5 * S ((S (i)) * fc) + (value))) - 0083
specialize beta_at_exists (fb) - 0084
specialize beta_at_exists (fc) - 0085
specialize beta_at_exists (i) - 0086
apply beta_at_exists - 0087
cases ha5 - 0088
have heq : x10 * x11 = x6 * x7 + x8 * x9 - 0089
specialize hpoint (i) - 0090
specialize hpoint (x6) - 0091
specialize hpoint (x7) - 0092
specialize hpoint (x8) - 0093
specialize hpoint (x9) - 0094
specialize hpoint (x10) - 0095
specialize hpoint (x11) - 0096
apply hpoint - 0097
exact hi - 0098
exact ha0_witness - 0099
exact ha1_witness - 0100
exact ha2_witness - 0101
exact ha3_witness - 0102
exact ha4_witness - 0103
exact ha5_witness - 0104
trans x10 * x11 - 0105
specialize hh_witness_witness_left (i) - 0106
specialize hh_witness_witness_left (x10) - 0107
specialize hh_witness_witness_left (x11) - 0108
specialize hh_witness_witness_left (z) - 0109
apply hh_witness_witness_left - 0110
exact hi - 0111
exact ha4_witness - 0112
exact ha5_witness - 0113
exact hz - 0114
trans x6 * x7 + x8 * x9 - 0115
exact heq - 0116
congr - 0117
symm - 0118
specialize hf_witness_witness_left (i) - 0119
specialize hf_witness_witness_left (x6) - 0120
specialize hf_witness_witness_left (x7) - 0121
specialize hf_witness_witness_left (v) - 0122
apply hf_witness_witness_left - 0123
exact hi - 0124
exact ha0_witness - 0125
exact ha1_witness - 0126
exact hv - 0127
symm - 0128
specialize hg_witness_witness_left (i) - 0129
specialize hg_witness_witness_left (x8) - 0130
specialize hg_witness_witness_left (x9) - 0131
specialize hg_witness_witness_left (w) - 0132
apply hg_witness_witness_left - 0133
exact hi - 0134
exact ha2_witness - 0135
exact ha3_witness - 0136
exact hw