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 s h e k u U v V. (exists cfc_tail_matrix_successor. ((exists cfc_state_matrix_successorinitial. ((exists cfc_left_matrix_successorinitialcode cfc_right_matrix_successorinitialcode cfc_matrix_matrix_successorinitialcode. ((cfc_left_matrix_successorinitialcode = ((1) + (0)) * S ((1) + (0)) + ((0) + (0))) /\ ((cfc_right_matrix_successorinitialcode = ((0) + (1)) * S ((0) + (1)) + ((1) + (1))) /\ ((cfc_matrix_matrix_successorinitialcode = ((cfc_left_matrix_successorinitialcode) + (cfc_right_matrix_successorinitialcode)) * S ((cfc_left_matrix_successorinitialcode) + (cfc_right_matrix_successorinitialcode)) + ((cfc_right_matrix_successorinitialcode) + (cfc_right_matrix_successorinitialcode))) /\ ((cfc_state_matrix_successorinitial) = ((cfc_tail_matrix_successor) + (cfc_matrix_matrix_successorinitialcode)) * S ((cfc_tail_matrix_successor) + (cfc_matrix_matrix_successorinitialcode)) + ((cfc_matrix_matrix_successorinitialcode) + (cfc_matrix_matrix_successorinitialcode))))))) /\ (((exists ff_h_matrix_successorinitialentry. ff_h_matrix_successorinitialentry + S (cfc_state_matrix_successorinitial) = S ((S (0)) * e)) /\ exists ff_q_matrix_successorinitialentry. h = ff_q_matrix_successorinitialentry * S ((S (0)) * e) + (cfc_state_matrix_successorinitial))))) /\ ((exists cfc_state_matrix_successorterminal. ((exists cfc_left_matrix_successorterminalcode cfc_right_matrix_successorterminalcode cfc_matrix_matrix_successorterminalcode. ((cfc_left_matrix_successorterminalcode = ((u) + (U)) * S ((u) + (U)) + ((U) + (U))) /\ ((cfc_right_matrix_successorterminalcode = ((v) + (V)) * S ((v) + (V)) + ((V) + (V))) /\ ((cfc_matrix_matrix_successorterminalcode = ((cfc_left_matrix_successorterminalcode) + (cfc_right_matrix_successorterminalcode)) * S ((cfc_left_matrix_successorterminalcode) + (cfc_right_matrix_successorterminalcode)) + ((cfc_right_matrix_successorterminalcode) + (cfc_right_matrix_successorterminalcode))) /\ ((cfc_state_matrix_successorterminal) = ((s) + (cfc_matrix_matrix_successorterminalcode)) * S ((s) + (cfc_matrix_matrix_successorterminalcode)) + ((cfc_matrix_matrix_successorterminalcode) + (cfc_matrix_matrix_successorterminalcode))))))) /\ (((exists ff_h_matrix_successorterminalentry. ff_h_matrix_successorterminalentry + S (cfc_state_matrix_successorterminal) = S ((S (S k)) * e)) /\ exists ff_q_matrix_successorterminalentry. h = ff_q_matrix_successorterminalentry * S ((S (S k)) * e) + (cfc_state_matrix_successorterminal))))) /\ (forall cfc_index_matrix_successor. (exists cfba_gap_matrix_successorbound. cfba_gap_matrix_successorbound + S (cfc_index_matrix_successor) = (S k)) -> exists cfc_old_matrix_successor cfc_a_matrix_successor cfc_b_matrix_successor cfc_c_matrix_successor cfc_d_matrix_successor cfc_new_matrix_successor cfc_quotient_matrix_successor. ((exists cfc_state_matrix_successorprevious. ((exists cfc_left_matrix_successorpreviouscode cfc_right_matrix_successorpreviouscode cfc_matrix_matrix_successorpreviouscode. ((cfc_left_matrix_successorpreviouscode = ((cfc_a_matrix_successor) + (cfc_b_matrix_successor)) * S ((cfc_a_matrix_successor) + (cfc_b_matrix_successor)) + ((cfc_b_matrix_successor) + (cfc_b_matrix_successor))) /\ ((cfc_right_matrix_successorpreviouscode = ((cfc_c_matrix_successor) + (cfc_d_matrix_successor)) * S ((cfc_c_matrix_successor) + (cfc_d_matrix_successor)) + ((cfc_d_matrix_successor) + (cfc_d_matrix_successor))) /\ ((cfc_matrix_matrix_successorpreviouscode = ((cfc_left_matrix_successorpreviouscode) + (cfc_right_matrix_successorpreviouscode)) * S ((cfc_left_matrix_successorpreviouscode) + (cfc_right_matrix_successorpreviouscode)) + ((cfc_right_matrix_successorpreviouscode) + (cfc_right_matrix_successorpreviouscode))) /\ ((cfc_state_matrix_successorprevious) = ((cfc_old_matrix_successor) + (cfc_matrix_matrix_successorpreviouscode)) * S ((cfc_old_matrix_successor) + (cfc_matrix_matrix_successorpreviouscode)) + ((cfc_matrix_matrix_successorpreviouscode) + (cfc_matrix_matrix_successorpreviouscode))))))) /\ (((exists ff_h_matrix_successorpreviousentry. ff_h_matrix_successorpreviousentry + S (cfc_state_matrix_successorprevious) = S ((S (cfc_index_matrix_successor)) * e)) /\ exists ff_q_matrix_successorpreviousentry. h = ff_q_matrix_successorpreviousentry * S ((S (cfc_index_matrix_successor)) * e) + (cfc_state_matrix_successorprevious))))) /\ ((exists cfc_state_matrix_successorfollowing. ((exists cfc_left_matrix_successorfollowingcode cfc_right_matrix_successorfollowingcode cfc_matrix_matrix_successorfollowingcode. ((cfc_left_matrix_successorfollowingcode = (((cfc_quotient_matrix_successor * cfc_a_matrix_successor + cfc_c_matrix_successor)) + ((cfc_quotient_matrix_successor * cfc_b_matrix_successor + cfc_d_matrix_successor))) * S (((cfc_quotient_matrix_successor * cfc_a_matrix_successor + cfc_c_matrix_successor)) + ((cfc_quotient_matrix_successor * cfc_b_matrix_successor + cfc_d_matrix_successor))) + (((cfc_quotient_matrix_successor * cfc_b_matrix_successor + cfc_d_matrix_successor)) + ((cfc_quotient_matrix_successor * cfc_b_matrix_successor + cfc_d_matrix_successor)))) /\ ((cfc_right_matrix_successorfollowingcode = ((cfc_a_matrix_successor) + (cfc_b_matrix_successor)) * S ((cfc_a_matrix_successor) + (cfc_b_matrix_successor)) + ((cfc_b_matrix_successor) + (cfc_b_matrix_successor))) /\ ((cfc_matrix_matrix_successorfollowingcode = ((cfc_left_matrix_successorfollowingcode) + (cfc_right_matrix_successorfollowingcode)) * S ((cfc_left_matrix_successorfollowingcode) + (cfc_right_matrix_successorfollowingcode)) + ((cfc_right_matrix_successorfollowingcode) + (cfc_right_matrix_successorfollowingcode))) /\ ((cfc_state_matrix_successorfollowing) = ((cfc_new_matrix_successor) + (cfc_matrix_matrix_successorfollowingcode)) * S ((cfc_new_matrix_successor) + (cfc_matrix_matrix_successorfollowingcode)) + ((cfc_matrix_matrix_successorfollowingcode) + (cfc_matrix_matrix_successorfollowingcode))))))) /\ (((exists ff_h_matrix_successorfollowingentry. ff_h_matrix_successorfollowingentry + S (cfc_state_matrix_successorfollowing) = S ((S (S cfc_index_matrix_successor)) * e)) /\ exists ff_q_matrix_successorfollowingentry. h = ff_q_matrix_successorfollowingentry * S ((S (S cfc_index_matrix_successor)) * e) + (cfc_state_matrix_successorfollowing))))) /\ (cfc_new_matrix_successor = S ((cfc_quotient_matrix_successor + cfc_old_matrix_successor) * S (cfc_quotient_matrix_successor + cfc_old_matrix_successor) + (cfc_old_matrix_successor + cfc_old_matrix_successor))))))))) -> (exists cfc_tail_matrix_predecessor cfc_a_matrix_predecessor cfc_b_matrix_predecessor cfc_c_matrix_predecessor cfc_d_matrix_predecessor cfc_q_matrix_predecessor. ((exists cfc_tail_matrix_predecessorprefix. ((exists cfc_state_matrix_predecessorprefixinitial. ((exists cfc_left_matrix_predecessorprefixinitialcode cfc_right_matrix_predecessorprefixinitialcode cfc_matrix_matrix_predecessorprefixinitialcode. ((cfc_left_matrix_predecessorprefixinitialcode = ((1) + (0)) * S ((1) + (0)) + ((0) + (0))) /\ ((cfc_right_matrix_predecessorprefixinitialcode = ((0) + (1)) * S ((0) + (1)) + ((1) + (1))) /\ ((cfc_matrix_matrix_predecessorprefixinitialcode = ((cfc_left_matrix_predecessorprefixinitialcode) + (cfc_right_matrix_predecessorprefixinitialcode)) * S ((cfc_left_matrix_predecessorprefixinitialcode) + (cfc_right_matrix_predecessorprefixinitialcode)) + ((cfc_right_matrix_predecessorprefixinitialcode) + (cfc_right_matrix_predecessorprefixinitialcode))) /\ ((cfc_state_matrix_predecessorprefixinitial) = ((cfc_tail_matrix_predecessorprefix) + (cfc_matrix_matrix_predecessorprefixinitialcode)) * S ((cfc_tail_matrix_predecessorprefix) + (cfc_matrix_matrix_predecessorprefixinitialcode)) + ((cfc_matrix_matrix_predecessorprefixinitialcode) + (cfc_matrix_matrix_predecessorprefixinitialcode))))))) /\ (((exists ff_h_matrix_predecessorprefixinitialentry. ff_h_matrix_predecessorprefixinitialentry + S (cfc_state_matrix_predecessorprefixinitial) = S ((S (0)) * e)) /\ exists ff_q_matrix_predecessorprefixinitialentry. h = ff_q_matrix_predecessorprefixinitialentry * S ((S (0)) * e) + (cfc_state_matrix_predecessorprefixinitial))))) /\ ((exists cfc_state_matrix_predecessorprefixterminal. ((exists cfc_left_matrix_predecessorprefixterminalcode cfc_right_matrix_predecessorprefixterminalcode cfc_matrix_matrix_predecessorprefixterminalcode. ((cfc_left_matrix_predecessorprefixterminalcode = ((cfc_a_matrix_predecessor) + (cfc_b_matrix_predecessor)) * S ((cfc_a_matrix_predecessor) + (cfc_b_matrix_predecessor)) + ((cfc_b_matrix_predecessor) + (cfc_b_matrix_predecessor))) /\ ((cfc_right_matrix_predecessorprefixterminalcode = ((cfc_c_matrix_predecessor) + (cfc_d_matrix_predecessor)) * S ((cfc_c_matrix_predecessor) + (cfc_d_matrix_predecessor)) + ((cfc_d_matrix_predecessor) + (cfc_d_matrix_predecessor))) /\ ((cfc_matrix_matrix_predecessorprefixterminalcode = ((cfc_left_matrix_predecessorprefixterminalcode) + (cfc_right_matrix_predecessorprefixterminalcode)) * S ((cfc_left_matrix_predecessorprefixterminalcode) + (cfc_right_matrix_predecessorprefixterminalcode)) + ((cfc_right_matrix_predecessorprefixterminalcode) + (cfc_right_matrix_predecessorprefixterminalcode))) /\ ((cfc_state_matrix_predecessorprefixterminal) = ((cfc_tail_matrix_predecessor) + (cfc_matrix_matrix_predecessorprefixterminalcode)) * S ((cfc_tail_matrix_predecessor) + (cfc_matrix_matrix_predecessorprefixterminalcode)) + ((cfc_matrix_matrix_predecessorprefixterminalcode) + (cfc_matrix_matrix_predecessorprefixterminalcode))))))) /\ (((exists ff_h_matrix_predecessorprefixterminalentry. ff_h_matrix_predecessorprefixterminalentry + S (cfc_state_matrix_predecessorprefixterminal) = S ((S (k)) * e)) /\ exists ff_q_matrix_predecessorprefixterminalentry. h = ff_q_matrix_predecessorprefixterminalentry * S ((S (k)) * e) + (cfc_state_matrix_predecessorprefixterminal))))) /\ (forall cfc_index_matrix_predecessorprefix. (exists cfba_gap_matrix_predecessorprefixbound. cfba_gap_matrix_predecessorprefixbound + S (cfc_index_matrix_predecessorprefix) = (k)) -> exists cfc_old_matrix_predecessorprefix cfc_a_matrix_predecessorprefix cfc_b_matrix_predecessorprefix cfc_c_matrix_predecessorprefix cfc_d_matrix_predecessorprefix cfc_new_matrix_predecessorprefix cfc_quotient_matrix_predecessorprefix. ((exists cfc_state_matrix_predecessorprefixprevious. ((exists cfc_left_matrix_predecessorprefixpreviouscode cfc_right_matrix_predecessorprefixpreviouscode cfc_matrix_matrix_predecessorprefixpreviouscode. ((cfc_left_matrix_predecessorprefixpreviouscode = ((cfc_a_matrix_predecessorprefix) + (cfc_b_matrix_predecessorprefix)) * S ((cfc_a_matrix_predecessorprefix) + (cfc_b_matrix_predecessorprefix)) + ((cfc_b_matrix_predecessorprefix) + (cfc_b_matrix_predecessorprefix))) /\ ((cfc_right_matrix_predecessorprefixpreviouscode = ((cfc_c_matrix_predecessorprefix) + (cfc_d_matrix_predecessorprefix)) * S ((cfc_c_matrix_predecessorprefix) + (cfc_d_matrix_predecessorprefix)) + ((cfc_d_matrix_predecessorprefix) + (cfc_d_matrix_predecessorprefix))) /\ ((cfc_matrix_matrix_predecessorprefixpreviouscode = ((cfc_left_matrix_predecessorprefixpreviouscode) + (cfc_right_matrix_predecessorprefixpreviouscode)) * S ((cfc_left_matrix_predecessorprefixpreviouscode) + (cfc_right_matrix_predecessorprefixpreviouscode)) + ((cfc_right_matrix_predecessorprefixpreviouscode) + (cfc_right_matrix_predecessorprefixpreviouscode))) /\ ((cfc_state_matrix_predecessorprefixprevious) = ((cfc_old_matrix_predecessorprefix) + (cfc_matrix_matrix_predecessorprefixpreviouscode)) * S ((cfc_old_matrix_predecessorprefix) + (cfc_matrix_matrix_predecessorprefixpreviouscode)) + ((cfc_matrix_matrix_predecessorprefixpreviouscode) + (cfc_matrix_matrix_predecessorprefixpreviouscode))))))) /\ (((exists ff_h_matrix_predecessorprefixpreviousentry. ff_h_matrix_predecessorprefixpreviousentry + S (cfc_state_matrix_predecessorprefixprevious) = S ((S (cfc_index_matrix_predecessorprefix)) * e)) /\ exists ff_q_matrix_predecessorprefixpreviousentry. h = ff_q_matrix_predecessorprefixpreviousentry * S ((S (cfc_index_matrix_predecessorprefix)) * e) + (cfc_state_matrix_predecessorprefixprevious))))) /\ ((exists cfc_state_matrix_predecessorprefixfollowing. ((exists cfc_left_matrix_predecessorprefixfollowingcode cfc_right_matrix_predecessorprefixfollowingcode cfc_matrix_matrix_predecessorprefixfollowingcode. ((cfc_left_matrix_predecessorprefixfollowingcode = (((cfc_quotient_matrix_predecessorprefix * cfc_a_matrix_predecessorprefix + cfc_c_matrix_predecessorprefix)) + ((cfc_quotient_matrix_predecessorprefix * cfc_b_matrix_predecessorprefix + cfc_d_matrix_predecessorprefix))) * S (((cfc_quotient_matrix_predecessorprefix * cfc_a_matrix_predecessorprefix + cfc_c_matrix_predecessorprefix)) + ((cfc_quotient_matrix_predecessorprefix * cfc_b_matrix_predecessorprefix + cfc_d_matrix_predecessorprefix))) + (((cfc_quotient_matrix_predecessorprefix * cfc_b_matrix_predecessorprefix + cfc_d_matrix_predecessorprefix)) + ((cfc_quotient_matrix_predecessorprefix * cfc_b_matrix_predecessorprefix + cfc_d_matrix_predecessorprefix)))) /\ ((cfc_right_matrix_predecessorprefixfollowingcode = ((cfc_a_matrix_predecessorprefix) + (cfc_b_matrix_predecessorprefix)) * S ((cfc_a_matrix_predecessorprefix) + (cfc_b_matrix_predecessorprefix)) + ((cfc_b_matrix_predecessorprefix) + (cfc_b_matrix_predecessorprefix))) /\ ((cfc_matrix_matrix_predecessorprefixfollowingcode = ((cfc_left_matrix_predecessorprefixfollowingcode) + (cfc_right_matrix_predecessorprefixfollowingcode)) * S ((cfc_left_matrix_predecessorprefixfollowingcode) + (cfc_right_matrix_predecessorprefixfollowingcode)) + ((cfc_right_matrix_predecessorprefixfollowingcode) + (cfc_right_matrix_predecessorprefixfollowingcode))) /\ ((cfc_state_matrix_predecessorprefixfollowing) = ((cfc_new_matrix_predecessorprefix) + (cfc_matrix_matrix_predecessorprefixfollowingcode)) * S ((cfc_new_matrix_predecessorprefix) + (cfc_matrix_matrix_predecessorprefixfollowingcode)) + ((cfc_matrix_matrix_predecessorprefixfollowingcode) + (cfc_matrix_matrix_predecessorprefixfollowingcode))))))) /\ (((exists ff_h_matrix_predecessorprefixfollowingentry. ff_h_matrix_predecessorprefixfollowingentry + S (cfc_state_matrix_predecessorprefixfollowing) = S ((S (S cfc_index_matrix_predecessorprefix)) * e)) /\ exists ff_q_matrix_predecessorprefixfollowingentry. h = ff_q_matrix_predecessorprefixfollowingentry * S ((S (S cfc_index_matrix_predecessorprefix)) * e) + (cfc_state_matrix_predecessorprefixfollowing))))) /\ (cfc_new_matrix_predecessorprefix = S ((cfc_quotient_matrix_predecessorprefix + cfc_old_matrix_predecessorprefix) * S (cfc_quotient_matrix_predecessorprefix + cfc_old_matrix_predecessorprefix) + (cfc_old_matrix_predecessorprefix + cfc_old_matrix_predecessorprefix))))))))) /\ ((s = S ((cfc_q_matrix_predecessor + cfc_tail_matrix_predecessor) * S (cfc_q_matrix_predecessor + cfc_tail_matrix_predecessor) + (cfc_tail_matrix_predecessor + cfc_tail_matrix_predecessor))) /\ (((u) = cfc_q_matrix_predecessor * cfc_a_matrix_predecessor + cfc_c_matrix_predecessor) /\ (((U) = cfc_q_matrix_predecessor * cfc_b_matrix_predecessor + cfc_d_matrix_predecessor) /\ (((v) = cfc_a_matrix_predecessor) /\ ((V) = cfc_b_matrix_predecessor)))))))Constructive proof overview
Generated structural guide
Every nonempty actual prefix computation exposes a tagged first quotient and the exact four matrix recurrence equations.
The unchanged tactic script uses 4 declared prerequisites and contains 80 exact native proof lines.
Alpha v34 checked-use · first admitted v29 · independently kernel and Lean verified; not Stable
Proof neighborhood
Direct dependencies
BA0031 cf_convergent_matrix_state_unique zero_add Stable theorem; checked-use authorized lt_of_lt_of_le Stable theorem; checked-use authorized le_succ_self 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–9
02Separate the logical casesL10–12
03Establish hsL13–15
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply ht witness right right.
- L13Definitions: ListCellConvergentMatrixAt
have hs · expand full local formula (672 characters)
have hs : ∃ cfc_old_matrix_last_step. ∃ cfc_a_matrix_last_step. ∃ cfc_b_matrix_last_step. ∃ cfc_c_matrix_last_step. ∃ cfc_d_matrix_last_step. ∃ cfc_new_matrix_last_step. ∃ cfc_q_matrix_last_step. ConvergentMatrixAt(h,e,k,cfc_old_matrix_last_step,cfc_a_matrix_last_step,cfc_b_matrix_last_step,cfc_c_matrix_last_step,cfc_d_matrix_last_step) ∧ (ConvergentMatrixAt(h,e,S k,cfc_new_matrix_last_step,cfc_q_matrix_last_step · cfc_a_matrix_last_step + cfc_c_matrix_last_step,cfc_q_matrix_last_step · cfc_b_matrix_last_step + cfc_d_matrix_last_step,cfc_a_matrix_last_step,cfc_b_matrix_last_step) ∧ ListCell(cfc_new_matrix_last_step,cfc_q_matrix_last_step,cfc_old_matrix_last_step)) - L14
specialize ht_witness_right_right (k) - L15
apply ht_witness_right_right
04Construct an explicit witnessL16–16
Supply the displayed value, then prove that it has the required property.
- L16
exists 0
05Use earlier factsL17–17
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L17
apply zero_add
06Separate the logical casesL18–26
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L18
cases hs - L19
cases hs_witness - L20
cases hs_witness_witness - L21
cases hs_witness_witness_witness - L22
cases hs_witness_witness_witness_witness - L23
cases hs_witness_witness_witness_witness_witness - L24
cases hs_witness_witness_witness_witness_witness_witness - L25
cases hs_witness_witness_witness_witness_witness_witness_witness - L26
cases hs_witness_witness_witness_witness_witness_witness_witness_right
07Establish heqL27–36
Establish this local claim before using it. It is not an additional assumption.
- L27
have heq : ((s = x6) /\ ((u = x7 * x2 + x4) /\ ((U = x7 * x3 + x5) /\ ((v = x2) /\ (V = x3))))) - L28
specialize cf_convergent_matrix_state_unique (h) - L29
specialize cf_convergent_matrix_state_unique (e) - L30
specialize cf_convergent_matrix_state_unique (S k) - L31
specialize cf_convergent_matrix_state_unique (s) - L32
specialize cf_convergent_matrix_state_unique (u) - L33
specialize cf_convergent_matrix_state_unique (U) - L34
specialize cf_convergent_matrix_state_unique (v) - L35
specialize cf_convergent_matrix_state_unique (V) - L36
specialize cf_convergent_matrix_state_unique (x6)
08Use earlier factsL37–43
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L37
specialize cf_convergent_matrix_state_unique (x7 * x2 + x4) - L38
specialize cf_convergent_matrix_state_unique (x7 * x3 + x5) - L39
specialize cf_convergent_matrix_state_unique (x2) - L40
specialize cf_convergent_matrix_state_unique (x3) - L41
apply cf_convergent_matrix_state_unique - L42
exact ht_witness_right_left - L43
exact hs_witness_witness_witness_witness_witness_witness_witness_right_left
09Separate the logical casesL44–47
10Construct an explicit witnessL48–53
11Separate the logical casesL54–54
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L54
split
12Construct an explicit witnessL55–55
Supply the displayed value, then prove that it has the required property.
- L55
exists x
13Separate the logical casesL56–56
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L56
split
14Use earlier factsL57–57
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L57
exact ht_witness_left
15Separate the logical casesL58–58
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L58
split
16Use earlier factsL59–59
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L59
exact hs_witness_witness_witness_witness_witness_witness_witness_left
17Fix variables and assumptionsL60–61
18Use earlier factsL62–70
Instantiate or apply named facts and discharge the corresponding proof obligations.
19Separate the logical casesL71–71
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L71
split
20Calculate and transport equalitiesL72–72
Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.
- L72
rewrite heq_left
21Use earlier factsL73–73
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L73
exact hs_witness_witness_witness_witness_witness_witness_witness_right_right
22Separate the logical casesL74–74
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L74
split
23Use earlier factsL75–75
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L75
exact heq_right_left
24Separate the logical casesL76–76
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L76
split
25Use earlier factsL77–77
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L77
exact heq_right_right_left
26Separate the logical casesL78–78
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L78
split
Original exact command ledger · 80 lines
- 0001
intro s - 0002
intro h - 0003
intro e - 0004
intro k - 0005
intro u - 0006
intro U - 0007
intro v - 0008
intro V - 0009
intro ht - 0010
cases ht - 0011
cases ht_witness - 0012
cases ht_witness_right - 0013
have hs : exists cfc_old_matrix_last_step cfc_a_matrix_last_step cfc_b_matrix_last_step cfc_c_matrix_last_step cfc_d_matrix_last_step cfc_new_matrix_last_step cfc_q_matrix_last_step. ((exists cfc_state_matrix_last_stepprevious. ((exists cfc_left_matrix_last_steppreviouscode cfc_right_matrix_last_steppreviouscode cfc_matrix_matrix_last_steppreviouscode. ((cfc_left_matrix_last_steppreviouscode = ((cfc_a_matrix_last_step) + (cfc_b_matrix_last_step)) * S ((cfc_a_matrix_last_step) + (cfc_b_matrix_last_step)) + ((cfc_b_matrix_last_step) + (cfc_b_matrix_last_step))) /\ ((cfc_right_matrix_last_steppreviouscode = ((cfc_c_matrix_last_step) + (cfc_d_matrix_last_step)) * S ((cfc_c_matrix_last_step) + (cfc_d_matrix_last_step)) + ((cfc_d_matrix_last_step) + (cfc_d_matrix_last_step))) /\ ((cfc_matrix_matrix_last_steppreviouscode = ((cfc_left_matrix_last_steppreviouscode) + (cfc_right_matrix_last_steppreviouscode)) * S ((cfc_left_matrix_last_steppreviouscode) + (cfc_right_matrix_last_steppreviouscode)) + ((cfc_right_matrix_last_steppreviouscode) + (cfc_right_matrix_last_steppreviouscode))) /\ ((cfc_state_matrix_last_stepprevious) = ((cfc_old_matrix_last_step) + (cfc_matrix_matrix_last_steppreviouscode)) * S ((cfc_old_matrix_last_step) + (cfc_matrix_matrix_last_steppreviouscode)) + ((cfc_matrix_matrix_last_steppreviouscode) + (cfc_matrix_matrix_last_steppreviouscode))))))) /\ (((exists ff_h_matrix_last_steppreviousentry. ff_h_matrix_last_steppreviousentry + S (cfc_state_matrix_last_stepprevious) = S ((S (k)) * e)) /\ exists ff_q_matrix_last_steppreviousentry. h = ff_q_matrix_last_steppreviousentry * S ((S (k)) * e) + (cfc_state_matrix_last_stepprevious))))) /\ ((exists cfc_state_matrix_last_stepfollowing. ((exists cfc_left_matrix_last_stepfollowingcode cfc_right_matrix_last_stepfollowingcode cfc_matrix_matrix_last_stepfollowingcode. ((cfc_left_matrix_last_stepfollowingcode = (((cfc_q_matrix_last_step * cfc_a_matrix_last_step + cfc_c_matrix_last_step)) + ((cfc_q_matrix_last_step * cfc_b_matrix_last_step + cfc_d_matrix_last_step))) * S (((cfc_q_matrix_last_step * cfc_a_matrix_last_step + cfc_c_matrix_last_step)) + ((cfc_q_matrix_last_step * cfc_b_matrix_last_step + cfc_d_matrix_last_step))) + (((cfc_q_matrix_last_step * cfc_b_matrix_last_step + cfc_d_matrix_last_step)) + ((cfc_q_matrix_last_step * cfc_b_matrix_last_step + cfc_d_matrix_last_step)))) /\ ((cfc_right_matrix_last_stepfollowingcode = ((cfc_a_matrix_last_step) + (cfc_b_matrix_last_step)) * S ((cfc_a_matrix_last_step) + (cfc_b_matrix_last_step)) + ((cfc_b_matrix_last_step) + (cfc_b_matrix_last_step))) /\ ((cfc_matrix_matrix_last_stepfollowingcode = ((cfc_left_matrix_last_stepfollowingcode) + (cfc_right_matrix_last_stepfollowingcode)) * S ((cfc_left_matrix_last_stepfollowingcode) + (cfc_right_matrix_last_stepfollowingcode)) + ((cfc_right_matrix_last_stepfollowingcode) + (cfc_right_matrix_last_stepfollowingcode))) /\ ((cfc_state_matrix_last_stepfollowing) = ((cfc_new_matrix_last_step) + (cfc_matrix_matrix_last_stepfollowingcode)) * S ((cfc_new_matrix_last_step) + (cfc_matrix_matrix_last_stepfollowingcode)) + ((cfc_matrix_matrix_last_stepfollowingcode) + (cfc_matrix_matrix_last_stepfollowingcode))))))) /\ (((exists ff_h_matrix_last_stepfollowingentry. ff_h_matrix_last_stepfollowingentry + S (cfc_state_matrix_last_stepfollowing) = S ((S (S (k))) * e)) /\ exists ff_q_matrix_last_stepfollowingentry. h = ff_q_matrix_last_stepfollowingentry * S ((S (S (k))) * e) + (cfc_state_matrix_last_stepfollowing))))) /\ (cfc_new_matrix_last_step = S ((cfc_q_matrix_last_step + cfc_old_matrix_last_step) * S (cfc_q_matrix_last_step + cfc_old_matrix_last_step) + (cfc_old_matrix_last_step + cfc_old_matrix_last_step))))) - 0014
specialize ht_witness_right_right (k) - 0015
apply ht_witness_right_right - 0016
exists 0 - 0017
apply zero_add - 0018
cases hs - 0019
cases hs_witness - 0020
cases hs_witness_witness - 0021
cases hs_witness_witness_witness - 0022
cases hs_witness_witness_witness_witness - 0023
cases hs_witness_witness_witness_witness_witness - 0024
cases hs_witness_witness_witness_witness_witness_witness - 0025
cases hs_witness_witness_witness_witness_witness_witness_witness - 0026
cases hs_witness_witness_witness_witness_witness_witness_witness_right - 0027
have heq : ((s = x6) /\ ((u = x7 * x2 + x4) /\ ((U = x7 * x3 + x5) /\ ((v = x2) /\ (V = x3))))) - 0028
specialize cf_convergent_matrix_state_unique (h) - 0029
specialize cf_convergent_matrix_state_unique (e) - 0030
specialize cf_convergent_matrix_state_unique (S k) - 0031
specialize cf_convergent_matrix_state_unique (s) - 0032
specialize cf_convergent_matrix_state_unique (u) - 0033
specialize cf_convergent_matrix_state_unique (U) - 0034
specialize cf_convergent_matrix_state_unique (v) - 0035
specialize cf_convergent_matrix_state_unique (V) - 0036
specialize cf_convergent_matrix_state_unique (x6) - 0037
specialize cf_convergent_matrix_state_unique (x7 * x2 + x4) - 0038
specialize cf_convergent_matrix_state_unique (x7 * x3 + x5) - 0039
specialize cf_convergent_matrix_state_unique (x2) - 0040
specialize cf_convergent_matrix_state_unique (x3) - 0041
apply cf_convergent_matrix_state_unique - 0042
exact ht_witness_right_left - 0043
exact hs_witness_witness_witness_witness_witness_witness_witness_right_left - 0044
cases heq - 0045
cases heq_right - 0046
cases heq_right_right - 0047
cases heq_right_right_right - 0048
exists x1 - 0049
exists x2 - 0050
exists x3 - 0051
exists x4 - 0052
exists x5 - 0053
exists x7 - 0054
split - 0055
exists x - 0056
split - 0057
exact ht_witness_left - 0058
split - 0059
exact hs_witness_witness_witness_witness_witness_witness_witness_left - 0060
intro j - 0061
intro hj - 0062
specialize ht_witness_right_right (j) - 0063
apply ht_witness_right_right - 0064
specialize lt_of_lt_of_le (j) - 0065
specialize lt_of_lt_of_le (k) - 0066
specialize lt_of_lt_of_le (S k) - 0067
apply lt_of_lt_of_le - 0068
exact hj - 0069
specialize le_succ_self (k) - 0070
apply le_succ_self - 0071
split - 0072
rewrite heq_left - 0073
exact hs_witness_witness_witness_witness_witness_witness_witness_right_right - 0074
split - 0075
exact heq_right_left - 0076
split - 0077
exact heq_right_right_left - 0078
split - 0079
exact heq_right_right_right_left - 0080
exact heq_right_right_right_right