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 gb gc hb hc ub uc vb vc Ub Uc Vb Vc l. (forall ics_index_prefix_rows_equal ics_value0_prefix_rows_equal ics_value1_prefix_rows_equal ics_value2_prefix_rows_equal ics_value3_prefix_rows_equal. (exists ics_gap_prefix_rows_equal_bound. ics_gap_prefix_rows_equal_bound + S (ics_index_prefix_rows_equal) = (l)) -> (((exists fs_h_ics_prefix_rows_equal_at0. fs_h_ics_prefix_rows_equal_at0 + S (ics_value0_prefix_rows_equal) = S ((S (ics_index_prefix_rows_equal)) * ac)) /\ exists fs_q_ics_prefix_rows_equal_at0. ab = fs_q_ics_prefix_rows_equal_at0 * S ((S (ics_index_prefix_rows_equal)) * ac) + (ics_value0_prefix_rows_equal))) -> (((exists fs_h_ics_prefix_rows_equal_at1. fs_h_ics_prefix_rows_equal_at1 + S (ics_value1_prefix_rows_equal) = S ((S (ics_index_prefix_rows_equal)) * bc)) /\ exists fs_q_ics_prefix_rows_equal_at1. bb = fs_q_ics_prefix_rows_equal_at1 * S ((S (ics_index_prefix_rows_equal)) * bc) + (ics_value1_prefix_rows_equal))) -> (((exists fs_h_ics_prefix_rows_equal_at2. fs_h_ics_prefix_rows_equal_at2 + S (ics_value2_prefix_rows_equal) = S ((S (ics_index_prefix_rows_equal)) * ec)) /\ exists fs_q_ics_prefix_rows_equal_at2. eb = fs_q_ics_prefix_rows_equal_at2 * S ((S (ics_index_prefix_rows_equal)) * ec) + (ics_value2_prefix_rows_equal))) -> (((exists fs_h_ics_prefix_rows_equal_at3. fs_h_ics_prefix_rows_equal_at3 + S (ics_value3_prefix_rows_equal) = S ((S (ics_index_prefix_rows_equal)) * fc)) /\ exists fs_q_ics_prefix_rows_equal_at3. fb = fs_q_ics_prefix_rows_equal_at3 * S ((S (ics_index_prefix_rows_equal)) * fc) + (ics_value3_prefix_rows_equal))) -> ics_value0_prefix_rows_equal + ics_value3_prefix_rows_equal = ics_value2_prefix_rows_equal + ics_value1_prefix_rows_equal) -> (forall ics_index_prefix_cofactors_equal ics_value0_prefix_cofactors_equal ics_value1_prefix_cofactors_equal ics_value2_prefix_cofactors_equal ics_value3_prefix_cofactors_equal. (exists ics_gap_prefix_cofactors_equal_bound. ics_gap_prefix_cofactors_equal_bound + S (ics_index_prefix_cofactors_equal) = (l)) -> (((exists fs_h_ics_prefix_cofactors_equal_at0. fs_h_ics_prefix_cofactors_equal_at0 + S (ics_value0_prefix_cofactors_equal) = S ((S (ics_index_prefix_cofactors_equal)) * cc)) /\ exists fs_q_ics_prefix_cofactors_equal_at0. cb = fs_q_ics_prefix_cofactors_equal_at0 * S ((S (ics_index_prefix_cofactors_equal)) * cc) + (ics_value0_prefix_cofactors_equal))) -> (((exists fs_h_ics_prefix_cofactors_equal_at1. fs_h_ics_prefix_cofactors_equal_at1 + S (ics_value1_prefix_cofactors_equal) = S ((S (ics_index_prefix_cofactors_equal)) * dc)) /\ exists fs_q_ics_prefix_cofactors_equal_at1. db = fs_q_ics_prefix_cofactors_equal_at1 * S ((S (ics_index_prefix_cofactors_equal)) * dc) + (ics_value1_prefix_cofactors_equal))) -> (((exists fs_h_ics_prefix_cofactors_equal_at2. fs_h_ics_prefix_cofactors_equal_at2 + S (ics_value2_prefix_cofactors_equal) = S ((S (ics_index_prefix_cofactors_equal)) * gc)) /\ exists fs_q_ics_prefix_cofactors_equal_at2. gb = fs_q_ics_prefix_cofactors_equal_at2 * S ((S (ics_index_prefix_cofactors_equal)) * gc) + (ics_value2_prefix_cofactors_equal))) -> (((exists fs_h_ics_prefix_cofactors_equal_at3. fs_h_ics_prefix_cofactors_equal_at3 + S (ics_value3_prefix_cofactors_equal) = S ((S (ics_index_prefix_cofactors_equal)) * hc)) /\ exists fs_q_ics_prefix_cofactors_equal_at3. hb = fs_q_ics_prefix_cofactors_equal_at3 * S ((S (ics_index_prefix_cofactors_equal)) * hc) + (ics_value3_prefix_cofactors_equal))) -> ics_value0_prefix_cofactors_equal + ics_value3_prefix_cofactors_equal = ics_value2_prefix_cofactors_equal + ics_value1_prefix_cofactors_equal) -> (forall ff_index_mce_alternating_integer_prefix_first. (exists ff_gap_mce_integer_prefix_first_index. ff_gap_mce_integer_prefix_first_index + S (ff_index_mce_alternating_integer_prefix_first) = (l)) -> exists ff_ap_mce_alternating_integer_prefix_first ff_an_mce_alternating_integer_prefix_first ff_bp_mce_alternating_integer_prefix_first ff_bn_mce_alternating_integer_prefix_first ff_p_mce_alternating_integer_prefix_first ff_n_mce_alternating_integer_prefix_first. ((((exists ff_h_mce_integer_prefix_first_ap. ff_h_mce_integer_prefix_first_ap + S (ff_ap_mce_alternating_integer_prefix_first) = S ((S (ff_index_mce_alternating_integer_prefix_first)) * ac)) /\ exists ff_q_mce_integer_prefix_first_ap. ab = ff_q_mce_integer_prefix_first_ap * S ((S (ff_index_mce_alternating_integer_prefix_first)) * ac) + (ff_ap_mce_alternating_integer_prefix_first))) /\ ((((exists ff_h_mce_integer_prefix_first_an. ff_h_mce_integer_prefix_first_an + S (ff_an_mce_alternating_integer_prefix_first) = S ((S (ff_index_mce_alternating_integer_prefix_first)) * bc)) /\ exists ff_q_mce_integer_prefix_first_an. bb = ff_q_mce_integer_prefix_first_an * S ((S (ff_index_mce_alternating_integer_prefix_first)) * bc) + (ff_an_mce_alternating_integer_prefix_first))) /\ ((((exists ff_h_mce_integer_prefix_first_bp. ff_h_mce_integer_prefix_first_bp + S (ff_bp_mce_alternating_integer_prefix_first) = S ((S (ff_index_mce_alternating_integer_prefix_first)) * cc)) /\ exists ff_q_mce_integer_prefix_first_bp. cb = ff_q_mce_integer_prefix_first_bp * S ((S (ff_index_mce_alternating_integer_prefix_first)) * cc) + (ff_bp_mce_alternating_integer_prefix_first))) /\ ((((exists ff_h_mce_integer_prefix_first_bn. ff_h_mce_integer_prefix_first_bn + S (ff_bn_mce_alternating_integer_prefix_first) = S ((S (ff_index_mce_alternating_integer_prefix_first)) * dc)) /\ exists ff_q_mce_integer_prefix_first_bn. db = ff_q_mce_integer_prefix_first_bn * S ((S (ff_index_mce_alternating_integer_prefix_first)) * dc) + (ff_bn_mce_alternating_integer_prefix_first))) /\ ((((exists ff_h_mce_integer_prefix_first_positive. ff_h_mce_integer_prefix_first_positive + S (ff_p_mce_alternating_integer_prefix_first) = S ((S (ff_index_mce_alternating_integer_prefix_first)) * uc)) /\ exists ff_q_mce_integer_prefix_first_positive. ub = ff_q_mce_integer_prefix_first_positive * S ((S (ff_index_mce_alternating_integer_prefix_first)) * uc) + (ff_p_mce_alternating_integer_prefix_first))) /\ ((((exists ff_h_mce_integer_prefix_first_negative. ff_h_mce_integer_prefix_first_negative + S (ff_n_mce_alternating_integer_prefix_first) = S ((S (ff_index_mce_alternating_integer_prefix_first)) * vc)) /\ exists ff_q_mce_integer_prefix_first_negative. vb = ff_q_mce_integer_prefix_first_negative * S ((S (ff_index_mce_alternating_integer_prefix_first)) * vc) + (ff_n_mce_alternating_integer_prefix_first))) /\ (((exists ff_even_mce_term_integer_prefix_first_term. ff_index_mce_alternating_integer_prefix_first = 2 * ff_even_mce_term_integer_prefix_first_term) /\ (ff_p_mce_alternating_integer_prefix_first = (ff_ap_mce_alternating_integer_prefix_first) * (ff_bp_mce_alternating_integer_prefix_first) + (ff_an_mce_alternating_integer_prefix_first) * (ff_bn_mce_alternating_integer_prefix_first) /\ ff_n_mce_alternating_integer_prefix_first = (ff_ap_mce_alternating_integer_prefix_first) * (ff_bn_mce_alternating_integer_prefix_first) + (ff_an_mce_alternating_integer_prefix_first) * (ff_bp_mce_alternating_integer_prefix_first))) \/ ((exists ff_odd_mce_term_integer_prefix_first_term. ff_index_mce_alternating_integer_prefix_first = 2 * ff_odd_mce_term_integer_prefix_first_term + 1) /\ (ff_p_mce_alternating_integer_prefix_first = (ff_ap_mce_alternating_integer_prefix_first) * (ff_bn_mce_alternating_integer_prefix_first) + (ff_an_mce_alternating_integer_prefix_first) * (ff_bp_mce_alternating_integer_prefix_first) /\ ff_n_mce_alternating_integer_prefix_first = (ff_ap_mce_alternating_integer_prefix_first) * (ff_bp_mce_alternating_integer_prefix_first) + (ff_an_mce_alternating_integer_prefix_first) * (ff_bn_mce_alternating_integer_prefix_first))))))))))) -> (forall ff_index_mce_alternating_integer_prefix_second. (exists ff_gap_mce_integer_prefix_second_index. ff_gap_mce_integer_prefix_second_index + S (ff_index_mce_alternating_integer_prefix_second) = (l)) -> exists ff_ap_mce_alternating_integer_prefix_second ff_an_mce_alternating_integer_prefix_second ff_bp_mce_alternating_integer_prefix_second ff_bn_mce_alternating_integer_prefix_second ff_p_mce_alternating_integer_prefix_second ff_n_mce_alternating_integer_prefix_second. ((((exists ff_h_mce_integer_prefix_second_ap. ff_h_mce_integer_prefix_second_ap + S (ff_ap_mce_alternating_integer_prefix_second) = S ((S (ff_index_mce_alternating_integer_prefix_second)) * ec)) /\ exists ff_q_mce_integer_prefix_second_ap. eb = ff_q_mce_integer_prefix_second_ap * S ((S (ff_index_mce_alternating_integer_prefix_second)) * ec) + (ff_ap_mce_alternating_integer_prefix_second))) /\ ((((exists ff_h_mce_integer_prefix_second_an. ff_h_mce_integer_prefix_second_an + S (ff_an_mce_alternating_integer_prefix_second) = S ((S (ff_index_mce_alternating_integer_prefix_second)) * fc)) /\ exists ff_q_mce_integer_prefix_second_an. fb = ff_q_mce_integer_prefix_second_an * S ((S (ff_index_mce_alternating_integer_prefix_second)) * fc) + (ff_an_mce_alternating_integer_prefix_second))) /\ ((((exists ff_h_mce_integer_prefix_second_bp. ff_h_mce_integer_prefix_second_bp + S (ff_bp_mce_alternating_integer_prefix_second) = S ((S (ff_index_mce_alternating_integer_prefix_second)) * gc)) /\ exists ff_q_mce_integer_prefix_second_bp. gb = ff_q_mce_integer_prefix_second_bp * S ((S (ff_index_mce_alternating_integer_prefix_second)) * gc) + (ff_bp_mce_alternating_integer_prefix_second))) /\ ((((exists ff_h_mce_integer_prefix_second_bn. ff_h_mce_integer_prefix_second_bn + S (ff_bn_mce_alternating_integer_prefix_second) = S ((S (ff_index_mce_alternating_integer_prefix_second)) * hc)) /\ exists ff_q_mce_integer_prefix_second_bn. hb = ff_q_mce_integer_prefix_second_bn * S ((S (ff_index_mce_alternating_integer_prefix_second)) * hc) + (ff_bn_mce_alternating_integer_prefix_second))) /\ ((((exists ff_h_mce_integer_prefix_second_positive. ff_h_mce_integer_prefix_second_positive + S (ff_p_mce_alternating_integer_prefix_second) = S ((S (ff_index_mce_alternating_integer_prefix_second)) * Uc)) /\ exists ff_q_mce_integer_prefix_second_positive. Ub = ff_q_mce_integer_prefix_second_positive * S ((S (ff_index_mce_alternating_integer_prefix_second)) * Uc) + (ff_p_mce_alternating_integer_prefix_second))) /\ ((((exists ff_h_mce_integer_prefix_second_negative. ff_h_mce_integer_prefix_second_negative + S (ff_n_mce_alternating_integer_prefix_second) = S ((S (ff_index_mce_alternating_integer_prefix_second)) * Vc)) /\ exists ff_q_mce_integer_prefix_second_negative. Vb = ff_q_mce_integer_prefix_second_negative * S ((S (ff_index_mce_alternating_integer_prefix_second)) * Vc) + (ff_n_mce_alternating_integer_prefix_second))) /\ (((exists ff_even_mce_term_integer_prefix_second_term. ff_index_mce_alternating_integer_prefix_second = 2 * ff_even_mce_term_integer_prefix_second_term) /\ (ff_p_mce_alternating_integer_prefix_second = (ff_ap_mce_alternating_integer_prefix_second) * (ff_bp_mce_alternating_integer_prefix_second) + (ff_an_mce_alternating_integer_prefix_second) * (ff_bn_mce_alternating_integer_prefix_second) /\ ff_n_mce_alternating_integer_prefix_second = (ff_ap_mce_alternating_integer_prefix_second) * (ff_bn_mce_alternating_integer_prefix_second) + (ff_an_mce_alternating_integer_prefix_second) * (ff_bp_mce_alternating_integer_prefix_second))) \/ ((exists ff_odd_mce_term_integer_prefix_second_term. ff_index_mce_alternating_integer_prefix_second = 2 * ff_odd_mce_term_integer_prefix_second_term + 1) /\ (ff_p_mce_alternating_integer_prefix_second = (ff_ap_mce_alternating_integer_prefix_second) * (ff_bn_mce_alternating_integer_prefix_second) + (ff_an_mce_alternating_integer_prefix_second) * (ff_bp_mce_alternating_integer_prefix_second) /\ ff_n_mce_alternating_integer_prefix_second = (ff_ap_mce_alternating_integer_prefix_second) * (ff_bp_mce_alternating_integer_prefix_second) + (ff_an_mce_alternating_integer_prefix_second) * (ff_bn_mce_alternating_integer_prefix_second))))))))))) -> (forall ics_index_prefix_outputs_equal ics_value0_prefix_outputs_equal ics_value1_prefix_outputs_equal ics_value2_prefix_outputs_equal ics_value3_prefix_outputs_equal. (exists ics_gap_prefix_outputs_equal_bound. ics_gap_prefix_outputs_equal_bound + S (ics_index_prefix_outputs_equal) = (l)) -> (((exists fs_h_ics_prefix_outputs_equal_at0. fs_h_ics_prefix_outputs_equal_at0 + S (ics_value0_prefix_outputs_equal) = S ((S (ics_index_prefix_outputs_equal)) * uc)) /\ exists fs_q_ics_prefix_outputs_equal_at0. ub = fs_q_ics_prefix_outputs_equal_at0 * S ((S (ics_index_prefix_outputs_equal)) * uc) + (ics_value0_prefix_outputs_equal))) -> (((exists fs_h_ics_prefix_outputs_equal_at1. fs_h_ics_prefix_outputs_equal_at1 + S (ics_value1_prefix_outputs_equal) = S ((S (ics_index_prefix_outputs_equal)) * vc)) /\ exists fs_q_ics_prefix_outputs_equal_at1. vb = fs_q_ics_prefix_outputs_equal_at1 * S ((S (ics_index_prefix_outputs_equal)) * vc) + (ics_value1_prefix_outputs_equal))) -> (((exists fs_h_ics_prefix_outputs_equal_at2. fs_h_ics_prefix_outputs_equal_at2 + S (ics_value2_prefix_outputs_equal) = S ((S (ics_index_prefix_outputs_equal)) * Uc)) /\ exists fs_q_ics_prefix_outputs_equal_at2. Ub = fs_q_ics_prefix_outputs_equal_at2 * S ((S (ics_index_prefix_outputs_equal)) * Uc) + (ics_value2_prefix_outputs_equal))) -> (((exists fs_h_ics_prefix_outputs_equal_at3. fs_h_ics_prefix_outputs_equal_at3 + S (ics_value3_prefix_outputs_equal) = S ((S (ics_index_prefix_outputs_equal)) * Vc)) /\ exists fs_q_ics_prefix_outputs_equal_at3. Vb = fs_q_ics_prefix_outputs_equal_at3 * S ((S (ics_index_prefix_outputs_equal)) * Vc) + (ics_value3_prefix_outputs_equal))) -> ics_value0_prefix_outputs_equal + ics_value3_prefix_outputs_equal = ics_value2_prefix_outputs_equal + ics_value1_prefix_outputs_equal)Constructive proof overview
Generated structural guide
Every actual alternating-product stream respects integer equality, including all decoded input and output streams and the parity-correct product rule.
The unchanged tactic script uses 2 declared prerequisites and contains 151 exact native proof lines.
Alpha v34 checked-use · first admitted v27 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
DL0089 matrix_integer_cofactor_term_balance beta_at_unique 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.
Named ingredients (1)
01Fix variables and assumptionsL1–10
02Fix variables and assumptionsL11–20
03Fix variables and assumptionsL21–30
04Fix variables and assumptionsL31–39
05Establish hfirstentryL40–43
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hfirst.
- L40
have hfirstentry : ∃ ap. ∃ an. ∃ bp. ∃ bn. ∃ tp. ∃ tn. BetaAt(ab,ac,i,ap) ∧ (BetaAt(bb,bc,i,an) ∧ (BetaAt(cb,cc,i,bp) ∧ (BetaAt(db,dc,i,bn) ∧ (BetaAt(ub,uc,i,tp) ∧ (BetaAt(vb,vc,i,tn) ∧ SignedAlternatingCofactorTerm(ap,an,bp,bn,i,tp,tn))))))Definitions: SignedAlternatingCofactorTermBetaAt - L41
specialize hfirst (i) - L42
apply hfirst - L43
exact hi
06Separate the logical casesL44–53
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L44
cases hfirstentry - L45
cases hfirstentry_witness - L46
cases hfirstentry_witness_witness - L47
cases hfirstentry_witness_witness_witness - L48
cases hfirstentry_witness_witness_witness_witness - L49
cases hfirstentry_witness_witness_witness_witness_witness - L50
cases hfirstentry_witness_witness_witness_witness_witness_witness - L51
cases hfirstentry_witness_witness_witness_witness_witness_witness_right - L52
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right - L53
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right
07Separate the logical casesL54–55
08Establish hsecondentryL56–59
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply hsecond.
- L56
have hsecondentry : ∃ ap. ∃ an. ∃ bp. ∃ bn. ∃ tp. ∃ tn. BetaAt(eb,ec,i,ap) ∧ (BetaAt(fb,fc,i,an) ∧ (BetaAt(gb,gc,i,bp) ∧ (BetaAt(hb,hc,i,bn) ∧ (BetaAt(Ub,Uc,i,tp) ∧ (BetaAt(Vb,Vc,i,tn) ∧ SignedAlternatingCofactorTerm(ap,an,bp,bn,i,tp,tn))))))Definitions: SignedAlternatingCofactorTermBetaAt - L57
specialize hsecond (i) - L58
apply hsecond - L59
exact hi
09Separate the logical casesL60–69
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L60
cases hsecondentry - L61
cases hsecondentry_witness - L62
cases hsecondentry_witness_witness - L63
cases hsecondentry_witness_witness_witness - L64
cases hsecondentry_witness_witness_witness_witness - L65
cases hsecondentry_witness_witness_witness_witness_witness - L66
cases hsecondentry_witness_witness_witness_witness_witness_witness - L67
cases hsecondentry_witness_witness_witness_witness_witness_witness_right - L68
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right - L69
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right
10Separate the logical casesL70–71
11Establish hbalanceL72–81
Establish this local claim before using it. It is not an additional assumption.
- L72
have hbalance : x4 + x11 = x10 + x5 - L73
specialize matrix_integer_cofactor_term_balance (x) - L74
specialize matrix_integer_cofactor_term_balance (x1) - L75
specialize matrix_integer_cofactor_term_balance (x2) - L76
specialize matrix_integer_cofactor_term_balance (x3) - L77
specialize matrix_integer_cofactor_term_balance (x6) - L78
specialize matrix_integer_cofactor_term_balance (x7) - L79
specialize matrix_integer_cofactor_term_balance (x8) - L80
specialize matrix_integer_cofactor_term_balance (x9) - L81
specialize matrix_integer_cofactor_term_balance (i)
12Use earlier factsL82–91
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L82
specialize matrix_integer_cofactor_term_balance (x4) - L83
specialize matrix_integer_cofactor_term_balance (x5) - L84
specialize matrix_integer_cofactor_term_balance (x10) - L85
specialize matrix_integer_cofactor_term_balance (x11) - L86
apply matrix_integer_cofactor_term_balance - L87
specialize hrows (i) - L88
specialize hrows (x) - L89
specialize hrows (x1) - L90
specialize hrows (x6) - L91
specialize hrows (x7)
13Use earlier factsL92–101
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L92
apply hrows - L93
exact hi - L94
exact hfirstentry_witness_witness_witness_witness_witness_witness_left - L95
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_left - L96
exact hsecondentry_witness_witness_witness_witness_witness_witness_left - L97
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_left - L98
specialize hcofactors (i) - L99
specialize hcofactors (x2) - L100
specialize hcofactors (x3) - L101
specialize hcofactors (x8)
14Use earlier factsL102–110
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L102
specialize hcofactors (x9) - L103
apply hcofactors - L104
exact hi - L105
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_left - L106
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_left - L107
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_left - L108
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_left - L109
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right - L110
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right
15Establish hpositiveL111–119
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L111
have hpositive : p = x4 - L112
specialize beta_at_unique (ub) - L113
specialize beta_at_unique (uc) - L114
specialize beta_at_unique (i) - L115
specialize beta_at_unique (p) - L116
specialize beta_at_unique (x4) - L117
apply beta_at_unique - L118
exact hp - L119
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_left
16Establish hnegativeL120–128
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L120
have hnegative : n = x5 - L121
specialize beta_at_unique (vb) - L122
specialize beta_at_unique (vc) - L123
specialize beta_at_unique (i) - L124
specialize beta_at_unique (n) - L125
specialize beta_at_unique (x5) - L126
apply beta_at_unique - L127
exact hn - L128
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_left
17Establish hotherpositiveL129–137
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L129
have hotherpositive : P = x10 - L130
specialize beta_at_unique (Ub) - L131
specialize beta_at_unique (Uc) - L132
specialize beta_at_unique (i) - L133
specialize beta_at_unique (P) - L134
specialize beta_at_unique (x10) - L135
apply beta_at_unique - L136
exact hP - L137
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_left
18Establish hothernegativeL138–147
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply beta at unique.
- L138
have hothernegative : N = x11 - L139
specialize beta_at_unique (Vb) - L140
specialize beta_at_unique (Vc) - L141
specialize beta_at_unique (i) - L142
specialize beta_at_unique (N) - L143
specialize beta_at_unique (x11) - L144
apply beta_at_unique - L145
exact hN - L146
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_left - L147
rewrite hpositive
19Calculate and transport equalitiesL148–150
20Use earlier factsL151–151
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L151
exact hbalance
Original exact command ledger · 151 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 gb - 0014
intro gc - 0015
intro hb - 0016
intro hc - 0017
intro ub - 0018
intro uc - 0019
intro vb - 0020
intro vc - 0021
intro Ub - 0022
intro Uc - 0023
intro Vb - 0024
intro Vc - 0025
intro l - 0026
intro hrows - 0027
intro hcofactors - 0028
intro hfirst - 0029
intro hsecond - 0030
intro i - 0031
intro p - 0032
intro n - 0033
intro P - 0034
intro N - 0035
intro hi - 0036
intro hp - 0037
intro hn - 0038
intro hP - 0039
intro hN - 0040
have hfirstentry : exists ap an bp bn tp tn. ((((exists ff_h_mdr_integer_first_entry0. ff_h_mdr_integer_first_entry0 + S (ap) = S ((S (i)) * ac)) /\ exists ff_q_mdr_integer_first_entry0. ab = ff_q_mdr_integer_first_entry0 * S ((S (i)) * ac) + (ap))) /\ ((((exists ff_h_mdr_integer_first_entry1. ff_h_mdr_integer_first_entry1 + S (an) = S ((S (i)) * bc)) /\ exists ff_q_mdr_integer_first_entry1. bb = ff_q_mdr_integer_first_entry1 * S ((S (i)) * bc) + (an))) /\ ((((exists ff_h_mdr_integer_first_entry2. ff_h_mdr_integer_first_entry2 + S (bp) = S ((S (i)) * cc)) /\ exists ff_q_mdr_integer_first_entry2. cb = ff_q_mdr_integer_first_entry2 * S ((S (i)) * cc) + (bp))) /\ ((((exists ff_h_mdr_integer_first_entry3. ff_h_mdr_integer_first_entry3 + S (bn) = S ((S (i)) * dc)) /\ exists ff_q_mdr_integer_first_entry3. db = ff_q_mdr_integer_first_entry3 * S ((S (i)) * dc) + (bn))) /\ ((((exists ff_h_mdr_integer_first_entrypositive. ff_h_mdr_integer_first_entrypositive + S (tp) = S ((S (i)) * uc)) /\ exists ff_q_mdr_integer_first_entrypositive. ub = ff_q_mdr_integer_first_entrypositive * S ((S (i)) * uc) + (tp))) /\ ((((exists ff_h_mdr_integer_first_entrynegative. ff_h_mdr_integer_first_entrynegative + S (tn) = S ((S (i)) * vc)) /\ exists ff_q_mdr_integer_first_entrynegative. vb = ff_q_mdr_integer_first_entrynegative * S ((S (i)) * vc) + (tn))) /\ (((exists ff_even_mce_term_integer_first_entryterm. i = 2 * ff_even_mce_term_integer_first_entryterm) /\ (tp = (ap) * (bp) + (an) * (bn) /\ tn = (ap) * (bn) + (an) * (bp))) \/ ((exists ff_odd_mce_term_integer_first_entryterm. i = 2 * ff_odd_mce_term_integer_first_entryterm + 1) /\ (tp = (ap) * (bn) + (an) * (bp) /\ tn = (ap) * (bp) + (an) * (bn)))))))))) - 0041
specialize hfirst (i) - 0042
apply hfirst - 0043
exact hi - 0044
cases hfirstentry - 0045
cases hfirstentry_witness - 0046
cases hfirstentry_witness_witness - 0047
cases hfirstentry_witness_witness_witness - 0048
cases hfirstentry_witness_witness_witness_witness - 0049
cases hfirstentry_witness_witness_witness_witness_witness - 0050
cases hfirstentry_witness_witness_witness_witness_witness_witness - 0051
cases hfirstentry_witness_witness_witness_witness_witness_witness_right - 0052
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right - 0053
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right - 0054
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right - 0055
cases hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right - 0056
have hsecondentry : exists ap an bp bn tp tn. ((((exists ff_h_mdr_integer_second_entry0. ff_h_mdr_integer_second_entry0 + S (ap) = S ((S (i)) * ec)) /\ exists ff_q_mdr_integer_second_entry0. eb = ff_q_mdr_integer_second_entry0 * S ((S (i)) * ec) + (ap))) /\ ((((exists ff_h_mdr_integer_second_entry1. ff_h_mdr_integer_second_entry1 + S (an) = S ((S (i)) * fc)) /\ exists ff_q_mdr_integer_second_entry1. fb = ff_q_mdr_integer_second_entry1 * S ((S (i)) * fc) + (an))) /\ ((((exists ff_h_mdr_integer_second_entry2. ff_h_mdr_integer_second_entry2 + S (bp) = S ((S (i)) * gc)) /\ exists ff_q_mdr_integer_second_entry2. gb = ff_q_mdr_integer_second_entry2 * S ((S (i)) * gc) + (bp))) /\ ((((exists ff_h_mdr_integer_second_entry3. ff_h_mdr_integer_second_entry3 + S (bn) = S ((S (i)) * hc)) /\ exists ff_q_mdr_integer_second_entry3. hb = ff_q_mdr_integer_second_entry3 * S ((S (i)) * hc) + (bn))) /\ ((((exists ff_h_mdr_integer_second_entrypositive. ff_h_mdr_integer_second_entrypositive + S (tp) = S ((S (i)) * Uc)) /\ exists ff_q_mdr_integer_second_entrypositive. Ub = ff_q_mdr_integer_second_entrypositive * S ((S (i)) * Uc) + (tp))) /\ ((((exists ff_h_mdr_integer_second_entrynegative. ff_h_mdr_integer_second_entrynegative + S (tn) = S ((S (i)) * Vc)) /\ exists ff_q_mdr_integer_second_entrynegative. Vb = ff_q_mdr_integer_second_entrynegative * S ((S (i)) * Vc) + (tn))) /\ (((exists ff_even_mce_term_integer_second_entryterm. i = 2 * ff_even_mce_term_integer_second_entryterm) /\ (tp = (ap) * (bp) + (an) * (bn) /\ tn = (ap) * (bn) + (an) * (bp))) \/ ((exists ff_odd_mce_term_integer_second_entryterm. i = 2 * ff_odd_mce_term_integer_second_entryterm + 1) /\ (tp = (ap) * (bn) + (an) * (bp) /\ tn = (ap) * (bp) + (an) * (bn)))))))))) - 0057
specialize hsecond (i) - 0058
apply hsecond - 0059
exact hi - 0060
cases hsecondentry - 0061
cases hsecondentry_witness - 0062
cases hsecondentry_witness_witness - 0063
cases hsecondentry_witness_witness_witness - 0064
cases hsecondentry_witness_witness_witness_witness - 0065
cases hsecondentry_witness_witness_witness_witness_witness - 0066
cases hsecondentry_witness_witness_witness_witness_witness_witness - 0067
cases hsecondentry_witness_witness_witness_witness_witness_witness_right - 0068
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right - 0069
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right - 0070
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right - 0071
cases hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right - 0072
have hbalance : x4 + x11 = x10 + x5 - 0073
specialize matrix_integer_cofactor_term_balance (x) - 0074
specialize matrix_integer_cofactor_term_balance (x1) - 0075
specialize matrix_integer_cofactor_term_balance (x2) - 0076
specialize matrix_integer_cofactor_term_balance (x3) - 0077
specialize matrix_integer_cofactor_term_balance (x6) - 0078
specialize matrix_integer_cofactor_term_balance (x7) - 0079
specialize matrix_integer_cofactor_term_balance (x8) - 0080
specialize matrix_integer_cofactor_term_balance (x9) - 0081
specialize matrix_integer_cofactor_term_balance (i) - 0082
specialize matrix_integer_cofactor_term_balance (x4) - 0083
specialize matrix_integer_cofactor_term_balance (x5) - 0084
specialize matrix_integer_cofactor_term_balance (x10) - 0085
specialize matrix_integer_cofactor_term_balance (x11) - 0086
apply matrix_integer_cofactor_term_balance - 0087
specialize hrows (i) - 0088
specialize hrows (x) - 0089
specialize hrows (x1) - 0090
specialize hrows (x6) - 0091
specialize hrows (x7) - 0092
apply hrows - 0093
exact hi - 0094
exact hfirstentry_witness_witness_witness_witness_witness_witness_left - 0095
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_left - 0096
exact hsecondentry_witness_witness_witness_witness_witness_witness_left - 0097
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_left - 0098
specialize hcofactors (i) - 0099
specialize hcofactors (x2) - 0100
specialize hcofactors (x3) - 0101
specialize hcofactors (x8) - 0102
specialize hcofactors (x9) - 0103
apply hcofactors - 0104
exact hi - 0105
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_left - 0106
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_left - 0107
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_left - 0108
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_left - 0109
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right - 0110
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_right - 0111
have hpositive : p = x4 - 0112
specialize beta_at_unique (ub) - 0113
specialize beta_at_unique (uc) - 0114
specialize beta_at_unique (i) - 0115
specialize beta_at_unique (p) - 0116
specialize beta_at_unique (x4) - 0117
apply beta_at_unique - 0118
exact hp - 0119
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_left - 0120
have hnegative : n = x5 - 0121
specialize beta_at_unique (vb) - 0122
specialize beta_at_unique (vc) - 0123
specialize beta_at_unique (i) - 0124
specialize beta_at_unique (n) - 0125
specialize beta_at_unique (x5) - 0126
apply beta_at_unique - 0127
exact hn - 0128
exact hfirstentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_left - 0129
have hotherpositive : P = x10 - 0130
specialize beta_at_unique (Ub) - 0131
specialize beta_at_unique (Uc) - 0132
specialize beta_at_unique (i) - 0133
specialize beta_at_unique (P) - 0134
specialize beta_at_unique (x10) - 0135
apply beta_at_unique - 0136
exact hP - 0137
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_left - 0138
have hothernegative : N = x11 - 0139
specialize beta_at_unique (Vb) - 0140
specialize beta_at_unique (Vc) - 0141
specialize beta_at_unique (i) - 0142
specialize beta_at_unique (N) - 0143
specialize beta_at_unique (x11) - 0144
apply beta_at_unique - 0145
exact hN - 0146
exact hsecondentry_witness_witness_witness_witness_witness_witness_right_right_right_right_right_left - 0147
rewrite hpositive - 0148
rewrite hnegative - 0149
rewrite hotherpositive - 0150
rewrite hothernegative - 0151
exact hbalance