BA0046

continued_fraction_initial_zero_over_one

Alpha v34 independently verified · alpha_closed; checked-use authorized; not Stable

For every positive G071 fraction below one, the genuine initial convergent is 0/1. This checked theorem explicitly corrects the old planning-only numerator-positivity error.

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 a b s. (exists cf_a_pred_zero_initial_fraction cf_b_pred_zero_initial_fraction cf_code_zero_initial_fraction cf_scale_zero_initial_fraction cf_length_pred_zero_initial_fraction. (a = S cf_a_pred_zero_initial_fraction /\ (b = S cf_b_pred_zero_initial_fraction /\ (exists cf_gcd_zero_initial_fraction_trace. ((((exists ff_h_cf_zero_initial_fraction_trace_initial_state. ff_h_cf_zero_initial_fraction_trace_initial_state + S (((cf_gcd_zero_initial_fraction_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_zero_initial_fraction_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))) = S ((S (0)) * cf_scale_zero_initial_fraction)) /\ exists ff_q_cf_zero_initial_fraction_trace_initial_state. cf_code_zero_initial_fraction = ff_q_cf_zero_initial_fraction_trace_initial_state * S ((S (0)) * cf_scale_zero_initial_fraction) + (((cf_gcd_zero_initial_fraction_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_zero_initial_fraction_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))))) /\ ((((exists ff_h_cf_zero_initial_fraction_trace_terminal_state. ff_h_cf_zero_initial_fraction_trace_terminal_state + S (((a) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s)))) * S ((a) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s)))) + ((((b) + (s)) * S ((b) + (s)) + ((s) + (s))) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s))))) = S ((S (S cf_length_pred_zero_initial_fraction)) * cf_scale_zero_initial_fraction)) /\ exists ff_q_cf_zero_initial_fraction_trace_terminal_state. cf_code_zero_initial_fraction = ff_q_cf_zero_initial_fraction_trace_terminal_state * S ((S (S cf_length_pred_zero_initial_fraction)) * cf_scale_zero_initial_fraction) + (((a) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s)))) * S ((a) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s)))) + ((((b) + (s)) * S ((b) + (s)) + ((s) + (s))) + (((b) + (s)) * S ((b) + (s)) + ((s) + (s))))))) /\ forall cf_index_zero_initial_fraction_trace. (exists ff_lt_cf_zero_initial_fraction_trace_index. ff_lt_cf_zero_initial_fraction_trace_index + S cf_index_zero_initial_fraction_trace = S cf_length_pred_zero_initial_fraction) -> exists cf_old_a_zero_initial_fraction_trace cf_old_b_zero_initial_fraction_trace cf_tail_zero_initial_fraction_trace cf_new_a_zero_initial_fraction_trace cf_new_b_zero_initial_fraction_trace cf_head_zero_initial_fraction_trace cf_quotient_zero_initial_fraction_trace. ((((exists ff_h_cf_zero_initial_fraction_trace_previous_state. ff_h_cf_zero_initial_fraction_trace_previous_state + S (((cf_old_a_zero_initial_fraction_trace) + (((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) * S ((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) + ((cf_tail_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)))) * S ((cf_old_a_zero_initial_fraction_trace) + (((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) * S ((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) + ((cf_tail_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)))) + ((((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) * S ((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) + ((cf_tail_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace))) + (((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) * S ((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) + ((cf_tail_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace))))) = S ((S (cf_index_zero_initial_fraction_trace)) * cf_scale_zero_initial_fraction)) /\ exists ff_q_cf_zero_initial_fraction_trace_previous_state. cf_code_zero_initial_fraction = ff_q_cf_zero_initial_fraction_trace_previous_state * S ((S (cf_index_zero_initial_fraction_trace)) * cf_scale_zero_initial_fraction) + (((cf_old_a_zero_initial_fraction_trace) + (((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) * S ((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) + ((cf_tail_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)))) * S ((cf_old_a_zero_initial_fraction_trace) + (((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) * S ((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) + ((cf_tail_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)))) + ((((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) * S ((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) + ((cf_tail_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace))) + (((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) * S ((cf_old_b_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace)) + ((cf_tail_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace))))))) /\ ((((exists ff_h_cf_zero_initial_fraction_trace_following_state. ff_h_cf_zero_initial_fraction_trace_following_state + S (((cf_new_a_zero_initial_fraction_trace) + (((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) * S ((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) + ((cf_head_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)))) * S ((cf_new_a_zero_initial_fraction_trace) + (((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) * S ((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) + ((cf_head_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)))) + ((((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) * S ((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) + ((cf_head_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace))) + (((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) * S ((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) + ((cf_head_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace))))) = S ((S (S cf_index_zero_initial_fraction_trace)) * cf_scale_zero_initial_fraction)) /\ exists ff_q_cf_zero_initial_fraction_trace_following_state. cf_code_zero_initial_fraction = ff_q_cf_zero_initial_fraction_trace_following_state * S ((S (S cf_index_zero_initial_fraction_trace)) * cf_scale_zero_initial_fraction) + (((cf_new_a_zero_initial_fraction_trace) + (((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) * S ((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) + ((cf_head_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)))) * S ((cf_new_a_zero_initial_fraction_trace) + (((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) * S ((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) + ((cf_head_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)))) + ((((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) * S ((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) + ((cf_head_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace))) + (((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) * S ((cf_new_b_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace)) + ((cf_head_zero_initial_fraction_trace) + (cf_head_zero_initial_fraction_trace))))))) /\ (cf_new_b_zero_initial_fraction_trace = cf_old_a_zero_initial_fraction_trace /\ (cf_new_a_zero_initial_fraction_trace = cf_new_b_zero_initial_fraction_trace * cf_quotient_zero_initial_fraction_trace + cf_old_b_zero_initial_fraction_trace /\ ((exists ff_lt_cf_zero_initial_fraction_trace_remainder. ff_lt_cf_zero_initial_fraction_trace_remainder + S cf_old_b_zero_initial_fraction_trace = cf_new_b_zero_initial_fraction_trace) /\ (cf_head_zero_initial_fraction_trace = S ((cf_quotient_zero_initial_fraction_trace + cf_tail_zero_initial_fraction_trace) * S (cf_quotient_zero_initial_fraction_trace + cf_tail_zero_initial_fraction_trace) + (cf_tail_zero_initial_fraction_trace + cf_tail_zero_initial_fraction_trace)))))))))))))) -> (exists cfba_gap_zero_initial_input. cfba_gap_zero_initial_input + S (a) = (b)) -> (exists cfc_previous_numerator_zero_initial_actual cfc_previous_denominator_zero_initial_actual cfc_code_zero_initial_actual cfc_scale_zero_initial_actual. ((~(1 = 0)) /\ (exists cfc_tail_zero_initial_actualcomputation. ((exists cfc_state_zero_initial_actualcomputationinitial. ((exists cfc_left_zero_initial_actualcomputationinitialcode cfc_right_zero_initial_actualcomputationinitialcode cfc_matrix_zero_initial_actualcomputationinitialcode. ((cfc_left_zero_initial_actualcomputationinitialcode = ((1) + (0)) * S ((1) + (0)) + ((0) + (0))) /\ ((cfc_right_zero_initial_actualcomputationinitialcode = ((0) + (1)) * S ((0) + (1)) + ((1) + (1))) /\ ((cfc_matrix_zero_initial_actualcomputationinitialcode = ((cfc_left_zero_initial_actualcomputationinitialcode) + (cfc_right_zero_initial_actualcomputationinitialcode)) * S ((cfc_left_zero_initial_actualcomputationinitialcode) + (cfc_right_zero_initial_actualcomputationinitialcode)) + ((cfc_right_zero_initial_actualcomputationinitialcode) + (cfc_right_zero_initial_actualcomputationinitialcode))) /\ ((cfc_state_zero_initial_actualcomputationinitial) = ((cfc_tail_zero_initial_actualcomputation) + (cfc_matrix_zero_initial_actualcomputationinitialcode)) * S ((cfc_tail_zero_initial_actualcomputation) + (cfc_matrix_zero_initial_actualcomputationinitialcode)) + ((cfc_matrix_zero_initial_actualcomputationinitialcode) + (cfc_matrix_zero_initial_actualcomputationinitialcode))))))) /\ (((exists ff_h_zero_initial_actualcomputationinitialentry. ff_h_zero_initial_actualcomputationinitialentry + S (cfc_state_zero_initial_actualcomputationinitial) = S ((S (0)) * cfc_scale_zero_initial_actual)) /\ exists ff_q_zero_initial_actualcomputationinitialentry. cfc_code_zero_initial_actual = ff_q_zero_initial_actualcomputationinitialentry * S ((S (0)) * cfc_scale_zero_initial_actual) + (cfc_state_zero_initial_actualcomputationinitial))))) /\ ((exists cfc_state_zero_initial_actualcomputationterminal. ((exists cfc_left_zero_initial_actualcomputationterminalcode cfc_right_zero_initial_actualcomputationterminalcode cfc_matrix_zero_initial_actualcomputationterminalcode. ((cfc_left_zero_initial_actualcomputationterminalcode = ((0) + (cfc_previous_numerator_zero_initial_actual)) * S ((0) + (cfc_previous_numerator_zero_initial_actual)) + ((cfc_previous_numerator_zero_initial_actual) + (cfc_previous_numerator_zero_initial_actual))) /\ ((cfc_right_zero_initial_actualcomputationterminalcode = ((1) + (cfc_previous_denominator_zero_initial_actual)) * S ((1) + (cfc_previous_denominator_zero_initial_actual)) + ((cfc_previous_denominator_zero_initial_actual) + (cfc_previous_denominator_zero_initial_actual))) /\ ((cfc_matrix_zero_initial_actualcomputationterminalcode = ((cfc_left_zero_initial_actualcomputationterminalcode) + (cfc_right_zero_initial_actualcomputationterminalcode)) * S ((cfc_left_zero_initial_actualcomputationterminalcode) + (cfc_right_zero_initial_actualcomputationterminalcode)) + ((cfc_right_zero_initial_actualcomputationterminalcode) + (cfc_right_zero_initial_actualcomputationterminalcode))) /\ ((cfc_state_zero_initial_actualcomputationterminal) = ((s) + (cfc_matrix_zero_initial_actualcomputationterminalcode)) * S ((s) + (cfc_matrix_zero_initial_actualcomputationterminalcode)) + ((cfc_matrix_zero_initial_actualcomputationterminalcode) + (cfc_matrix_zero_initial_actualcomputationterminalcode))))))) /\ (((exists ff_h_zero_initial_actualcomputationterminalentry. ff_h_zero_initial_actualcomputationterminalentry + S (cfc_state_zero_initial_actualcomputationterminal) = S ((S (S (0))) * cfc_scale_zero_initial_actual)) /\ exists ff_q_zero_initial_actualcomputationterminalentry. cfc_code_zero_initial_actual = ff_q_zero_initial_actualcomputationterminalentry * S ((S (S (0))) * cfc_scale_zero_initial_actual) + (cfc_state_zero_initial_actualcomputationterminal))))) /\ (forall cfc_index_zero_initial_actualcomputation. (exists cfba_gap_zero_initial_actualcomputationbound. cfba_gap_zero_initial_actualcomputationbound + S (cfc_index_zero_initial_actualcomputation) = (S (0))) -> exists cfc_old_zero_initial_actualcomputation cfc_a_zero_initial_actualcomputation cfc_b_zero_initial_actualcomputation cfc_c_zero_initial_actualcomputation cfc_d_zero_initial_actualcomputation cfc_new_zero_initial_actualcomputation cfc_quotient_zero_initial_actualcomputation. ((exists cfc_state_zero_initial_actualcomputationprevious. ((exists cfc_left_zero_initial_actualcomputationpreviouscode cfc_right_zero_initial_actualcomputationpreviouscode cfc_matrix_zero_initial_actualcomputationpreviouscode. ((cfc_left_zero_initial_actualcomputationpreviouscode = ((cfc_a_zero_initial_actualcomputation) + (cfc_b_zero_initial_actualcomputation)) * S ((cfc_a_zero_initial_actualcomputation) + (cfc_b_zero_initial_actualcomputation)) + ((cfc_b_zero_initial_actualcomputation) + (cfc_b_zero_initial_actualcomputation))) /\ ((cfc_right_zero_initial_actualcomputationpreviouscode = ((cfc_c_zero_initial_actualcomputation) + (cfc_d_zero_initial_actualcomputation)) * S ((cfc_c_zero_initial_actualcomputation) + (cfc_d_zero_initial_actualcomputation)) + ((cfc_d_zero_initial_actualcomputation) + (cfc_d_zero_initial_actualcomputation))) /\ ((cfc_matrix_zero_initial_actualcomputationpreviouscode = ((cfc_left_zero_initial_actualcomputationpreviouscode) + (cfc_right_zero_initial_actualcomputationpreviouscode)) * S ((cfc_left_zero_initial_actualcomputationpreviouscode) + (cfc_right_zero_initial_actualcomputationpreviouscode)) + ((cfc_right_zero_initial_actualcomputationpreviouscode) + (cfc_right_zero_initial_actualcomputationpreviouscode))) /\ ((cfc_state_zero_initial_actualcomputationprevious) = ((cfc_old_zero_initial_actualcomputation) + (cfc_matrix_zero_initial_actualcomputationpreviouscode)) * S ((cfc_old_zero_initial_actualcomputation) + (cfc_matrix_zero_initial_actualcomputationpreviouscode)) + ((cfc_matrix_zero_initial_actualcomputationpreviouscode) + (cfc_matrix_zero_initial_actualcomputationpreviouscode))))))) /\ (((exists ff_h_zero_initial_actualcomputationpreviousentry. ff_h_zero_initial_actualcomputationpreviousentry + S (cfc_state_zero_initial_actualcomputationprevious) = S ((S (cfc_index_zero_initial_actualcomputation)) * cfc_scale_zero_initial_actual)) /\ exists ff_q_zero_initial_actualcomputationpreviousentry. cfc_code_zero_initial_actual = ff_q_zero_initial_actualcomputationpreviousentry * S ((S (cfc_index_zero_initial_actualcomputation)) * cfc_scale_zero_initial_actual) + (cfc_state_zero_initial_actualcomputationprevious))))) /\ ((exists cfc_state_zero_initial_actualcomputationfollowing. ((exists cfc_left_zero_initial_actualcomputationfollowingcode cfc_right_zero_initial_actualcomputationfollowingcode cfc_matrix_zero_initial_actualcomputationfollowingcode. ((cfc_left_zero_initial_actualcomputationfollowingcode = (((cfc_quotient_zero_initial_actualcomputation * cfc_a_zero_initial_actualcomputation + cfc_c_zero_initial_actualcomputation)) + ((cfc_quotient_zero_initial_actualcomputation * cfc_b_zero_initial_actualcomputation + cfc_d_zero_initial_actualcomputation))) * S (((cfc_quotient_zero_initial_actualcomputation * cfc_a_zero_initial_actualcomputation + cfc_c_zero_initial_actualcomputation)) + ((cfc_quotient_zero_initial_actualcomputation * cfc_b_zero_initial_actualcomputation + cfc_d_zero_initial_actualcomputation))) + (((cfc_quotient_zero_initial_actualcomputation * cfc_b_zero_initial_actualcomputation + cfc_d_zero_initial_actualcomputation)) + ((cfc_quotient_zero_initial_actualcomputation * cfc_b_zero_initial_actualcomputation + cfc_d_zero_initial_actualcomputation)))) /\ ((cfc_right_zero_initial_actualcomputationfollowingcode = ((cfc_a_zero_initial_actualcomputation) + (cfc_b_zero_initial_actualcomputation)) * S ((cfc_a_zero_initial_actualcomputation) + (cfc_b_zero_initial_actualcomputation)) + ((cfc_b_zero_initial_actualcomputation) + (cfc_b_zero_initial_actualcomputation))) /\ ((cfc_matrix_zero_initial_actualcomputationfollowingcode = ((cfc_left_zero_initial_actualcomputationfollowingcode) + (cfc_right_zero_initial_actualcomputationfollowingcode)) * S ((cfc_left_zero_initial_actualcomputationfollowingcode) + (cfc_right_zero_initial_actualcomputationfollowingcode)) + ((cfc_right_zero_initial_actualcomputationfollowingcode) + (cfc_right_zero_initial_actualcomputationfollowingcode))) /\ ((cfc_state_zero_initial_actualcomputationfollowing) = ((cfc_new_zero_initial_actualcomputation) + (cfc_matrix_zero_initial_actualcomputationfollowingcode)) * S ((cfc_new_zero_initial_actualcomputation) + (cfc_matrix_zero_initial_actualcomputationfollowingcode)) + ((cfc_matrix_zero_initial_actualcomputationfollowingcode) + (cfc_matrix_zero_initial_actualcomputationfollowingcode))))))) /\ (((exists ff_h_zero_initial_actualcomputationfollowingentry. ff_h_zero_initial_actualcomputationfollowingentry + S (cfc_state_zero_initial_actualcomputationfollowing) = S ((S (S cfc_index_zero_initial_actualcomputation)) * cfc_scale_zero_initial_actual)) /\ exists ff_q_zero_initial_actualcomputationfollowingentry. cfc_code_zero_initial_actual = ff_q_zero_initial_actualcomputationfollowingentry * S ((S (S cfc_index_zero_initial_actualcomputation)) * cfc_scale_zero_initial_actual) + (cfc_state_zero_initial_actualcomputationfollowing))))) /\ (cfc_new_zero_initial_actualcomputation = S ((cfc_quotient_zero_initial_actualcomputation + cfc_old_zero_initial_actualcomputation) * S (cfc_quotient_zero_initial_actualcomputation + cfc_old_zero_initial_actualcomputation) + (cfc_old_zero_initial_actualcomputation + cfc_old_zero_initial_actualcomputation)))))))))))

Constructive proof overview

Generated structural guide

For every positive G071 fraction below one, the genuine initial convergent is 0/1. This checked theorem explicitly corrects the old planning-only numerator-positivity error.

The unchanged tactic script uses 5 declared prerequisites and contains 52 exact native proof lines.

Alpha v34 checked-use · first admitted v29 · independently kernel and Lean verified; not Stable

Proof neighborhood

Direct dependencies

BA002A cf_convergent_old_history_successor_elimination division_remainder_unique Stable theorem; checked-use authorized zero_add Stable theorem; checked-use authorized BA0045 cf_convergent_numerator_transport BA0044 continued_fraction_first_cell_is_initial_convergent

Direct dependents

none

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

52 script commands · 10 reading checkpoints · 2 local claims

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 (3)

Long local formulas use this family’s existing definitions. Each new abbreviation was expanded back to the identical native formula, including its free-variable context. The original edition is preserved below.

01Fix variables and assumptionsL1–5

Work with arbitrary variables or the premises of the current implication.

  1. L1
    intro a
  2. L2
    intro b
  3. L3
    intro s
  4. L4
    intro hcf
  5. L5
    intro hlt
02Separate the logical casesL6–12

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L6
    cases hcf
  2. L7
    cases hcf_witness
  3. L8
    cases hcf_witness_witness
  4. L9
    cases hcf_witness_witness_witness
  5. L10
    cases hcf_witness_witness_witness_witness
  6. L11
    cases hcf_witness_witness_witness_witness_witness
  7. L12
    cases hcf_witness_witness_witness_witness_witness_right
03Establish hpL13–21

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply cf convergent old history successor elimination.

  1. L13
    have hp : ∃ q. ∃ r. ∃ t. a = b · q + r ∧ (Lt(r,b) ∧ (ListCell(s,q,t) ∧ ContinuedFractionTrace(b,r,t,x2,x3,x4)))Definitions: ListCellContinuedFractionTraceLt
  2. L14
    specialize cf_convergent_old_history_successor_elimination (a)
  3. L15
    specialize cf_convergent_old_history_successor_elimination (b)
  4. L16
    specialize cf_convergent_old_history_successor_elimination (s)
  5. L17
    specialize cf_convergent_old_history_successor_elimination (x2)
  6. L18
    specialize cf_convergent_old_history_successor_elimination (x3)
  7. L19
    specialize cf_convergent_old_history_successor_elimination (x4)
  8. L20
    apply cf_convergent_old_history_successor_elimination
  9. L21
    exact hcf_witness_witness_witness_witness_witness_right_right
04Separate the logical casesL22–27

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L22
    cases hp
  2. L23
    cases hp_witness
  3. L24
    cases hp_witness_witness
  4. L25
    cases hp_witness_witness_witness
  5. L26
    cases hp_witness_witness_witness_right
  6. L27
    cases hp_witness_witness_witness_right_right
05Establish hqL28–37

Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder unique.

  1. L28
    have hq : x5 = 0 /\ x6 = a
  2. L29
    specialize division_remainder_unique (b)
  3. L30
    specialize division_remainder_unique (a)
  4. L31
    specialize division_remainder_unique (x5)
  5. L32
    specialize division_remainder_unique (x6)
  6. L33
    specialize division_remainder_unique (0)
  7. L34
    specialize division_remainder_unique (a)
  8. L35
    apply division_remainder_unique
  9. L36
    exact hp_witness_witness_witness_left
  10. L37
    exact hp_witness_witness_witness_right_left
06Calculate and transport equalitiesL38–38

Carry out the recorded arithmetic or equality steps; inspect the exact commands for their direction and premises.

  1. L38
    simp [zero_add]
07Use earlier factsL39–39

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L39
    exact hlt
08Separate the logical casesL40–40

Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.

  1. L40
    cases hq
09Use earlier factsL41–50

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L41
    specialize cf_convergent_numerator_transport (s)
  2. L42
    specialize cf_convergent_numerator_transport (0)
  3. L43
    specialize cf_convergent_numerator_transport (x5)
  4. L44
    specialize cf_convergent_numerator_transport (0)
  5. L45
    specialize cf_convergent_numerator_transport (1)
  6. L46
    apply cf_convergent_numerator_transport
  7. L47
    exact hq_left
  8. L48
    specialize continued_fraction_first_cell_is_initial_convergent (s)
  9. L49
    specialize continued_fraction_first_cell_is_initial_convergent (x5)
  10. L50
    specialize continued_fraction_first_cell_is_initial_convergent (x7)
10Use earlier factsL51–52

Instantiate or apply named facts and discharge the corresponding proof obligations.

  1. L51
    apply continued_fraction_first_cell_is_initial_convergent
  2. L52
    exact hp_witness_witness_witness_right_right_left

Library-wide reading audit

Original exact command ledger · 52 lines
  1. 0001intro a
  2. 0002intro b
  3. 0003intro s
  4. 0004intro hcf
  5. 0005intro hlt
  6. 0006cases hcf
  7. 0007cases hcf_witness
  8. 0008cases hcf_witness_witness
  9. 0009cases hcf_witness_witness_witness
  10. 0010cases hcf_witness_witness_witness_witness
  11. 0011cases hcf_witness_witness_witness_witness_witness
  12. 0012cases hcf_witness_witness_witness_witness_witness_right
  13. 0013have hp : exists q r t. ((a = b * q + r) /\ ((exists cfba_gap_zero_initial_remainder. cfba_gap_zero_initial_remainder + S (r) = (b)) /\ ((s = S ((q + t) * S (q + t) + (t + t))) /\ (exists cf_gcd_zero_initial_history. ((((exists ff_h_cf_zero_initial_history_initial_state. ff_h_cf_zero_initial_history_initial_state + S (((cf_gcd_zero_initial_history) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_zero_initial_history) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))) = S ((S (0)) * x3)) /\ exists ff_q_cf_zero_initial_history_initial_state. x2 = ff_q_cf_zero_initial_history_initial_state * S ((S (0)) * x3) + (((cf_gcd_zero_initial_history) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_zero_initial_history) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))))) /\ ((((exists ff_h_cf_zero_initial_history_terminal_state. ff_h_cf_zero_initial_history_terminal_state + S (((b) + (((r) + (t)) * S ((r) + (t)) + ((t) + (t)))) * S ((b) + (((r) + (t)) * S ((r) + (t)) + ((t) + (t)))) + ((((r) + (t)) * S ((r) + (t)) + ((t) + (t))) + (((r) + (t)) * S ((r) + (t)) + ((t) + (t))))) = S ((S (x4)) * x3)) /\ exists ff_q_cf_zero_initial_history_terminal_state. x2 = ff_q_cf_zero_initial_history_terminal_state * S ((S (x4)) * x3) + (((b) + (((r) + (t)) * S ((r) + (t)) + ((t) + (t)))) * S ((b) + (((r) + (t)) * S ((r) + (t)) + ((t) + (t)))) + ((((r) + (t)) * S ((r) + (t)) + ((t) + (t))) + (((r) + (t)) * S ((r) + (t)) + ((t) + (t))))))) /\ forall cf_index_zero_initial_history. (exists ff_lt_cf_zero_initial_history_index. ff_lt_cf_zero_initial_history_index + S cf_index_zero_initial_history = x4) -> exists cf_old_a_zero_initial_history cf_old_b_zero_initial_history cf_tail_zero_initial_history cf_new_a_zero_initial_history cf_new_b_zero_initial_history cf_head_zero_initial_history cf_quotient_zero_initial_history. ((((exists ff_h_cf_zero_initial_history_previous_state. ff_h_cf_zero_initial_history_previous_state + S (((cf_old_a_zero_initial_history) + (((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) * S ((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) + ((cf_tail_zero_initial_history) + (cf_tail_zero_initial_history)))) * S ((cf_old_a_zero_initial_history) + (((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) * S ((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) + ((cf_tail_zero_initial_history) + (cf_tail_zero_initial_history)))) + ((((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) * S ((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) + ((cf_tail_zero_initial_history) + (cf_tail_zero_initial_history))) + (((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) * S ((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) + ((cf_tail_zero_initial_history) + (cf_tail_zero_initial_history))))) = S ((S (cf_index_zero_initial_history)) * x3)) /\ exists ff_q_cf_zero_initial_history_previous_state. x2 = ff_q_cf_zero_initial_history_previous_state * S ((S (cf_index_zero_initial_history)) * x3) + (((cf_old_a_zero_initial_history) + (((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) * S ((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) + ((cf_tail_zero_initial_history) + (cf_tail_zero_initial_history)))) * S ((cf_old_a_zero_initial_history) + (((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) * S ((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) + ((cf_tail_zero_initial_history) + (cf_tail_zero_initial_history)))) + ((((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) * S ((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) + ((cf_tail_zero_initial_history) + (cf_tail_zero_initial_history))) + (((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) * S ((cf_old_b_zero_initial_history) + (cf_tail_zero_initial_history)) + ((cf_tail_zero_initial_history) + (cf_tail_zero_initial_history))))))) /\ ((((exists ff_h_cf_zero_initial_history_following_state. ff_h_cf_zero_initial_history_following_state + S (((cf_new_a_zero_initial_history) + (((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) * S ((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) + ((cf_head_zero_initial_history) + (cf_head_zero_initial_history)))) * S ((cf_new_a_zero_initial_history) + (((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) * S ((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) + ((cf_head_zero_initial_history) + (cf_head_zero_initial_history)))) + ((((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) * S ((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) + ((cf_head_zero_initial_history) + (cf_head_zero_initial_history))) + (((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) * S ((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) + ((cf_head_zero_initial_history) + (cf_head_zero_initial_history))))) = S ((S (S cf_index_zero_initial_history)) * x3)) /\ exists ff_q_cf_zero_initial_history_following_state. x2 = ff_q_cf_zero_initial_history_following_state * S ((S (S cf_index_zero_initial_history)) * x3) + (((cf_new_a_zero_initial_history) + (((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) * S ((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) + ((cf_head_zero_initial_history) + (cf_head_zero_initial_history)))) * S ((cf_new_a_zero_initial_history) + (((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) * S ((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) + ((cf_head_zero_initial_history) + (cf_head_zero_initial_history)))) + ((((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) * S ((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) + ((cf_head_zero_initial_history) + (cf_head_zero_initial_history))) + (((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) * S ((cf_new_b_zero_initial_history) + (cf_head_zero_initial_history)) + ((cf_head_zero_initial_history) + (cf_head_zero_initial_history))))))) /\ (cf_new_b_zero_initial_history = cf_old_a_zero_initial_history /\ (cf_new_a_zero_initial_history = cf_new_b_zero_initial_history * cf_quotient_zero_initial_history + cf_old_b_zero_initial_history /\ ((exists ff_lt_cf_zero_initial_history_remainder. ff_lt_cf_zero_initial_history_remainder + S cf_old_b_zero_initial_history = cf_new_b_zero_initial_history) /\ (cf_head_zero_initial_history = S ((cf_quotient_zero_initial_history + cf_tail_zero_initial_history) * S (cf_quotient_zero_initial_history + cf_tail_zero_initial_history) + (cf_tail_zero_initial_history + cf_tail_zero_initial_history))))))))))))))
  14. 0014specialize cf_convergent_old_history_successor_elimination (a)
  15. 0015specialize cf_convergent_old_history_successor_elimination (b)
  16. 0016specialize cf_convergent_old_history_successor_elimination (s)
  17. 0017specialize cf_convergent_old_history_successor_elimination (x2)
  18. 0018specialize cf_convergent_old_history_successor_elimination (x3)
  19. 0019specialize cf_convergent_old_history_successor_elimination (x4)
  20. 0020apply cf_convergent_old_history_successor_elimination
  21. 0021exact hcf_witness_witness_witness_witness_witness_right_right
  22. 0022cases hp
  23. 0023cases hp_witness
  24. 0024cases hp_witness_witness
  25. 0025cases hp_witness_witness_witness
  26. 0026cases hp_witness_witness_witness_right
  27. 0027cases hp_witness_witness_witness_right_right
  28. 0028have hq : x5 = 0 /\ x6 = a
  29. 0029specialize division_remainder_unique (b)
  30. 0030specialize division_remainder_unique (a)
  31. 0031specialize division_remainder_unique (x5)
  32. 0032specialize division_remainder_unique (x6)
  33. 0033specialize division_remainder_unique (0)
  34. 0034specialize division_remainder_unique (a)
  35. 0035apply division_remainder_unique
  36. 0036exact hp_witness_witness_witness_left
  37. 0037exact hp_witness_witness_witness_right_left
  38. 0038simp [zero_add]
  39. 0039exact hlt
  40. 0040cases hq
  41. 0041specialize cf_convergent_numerator_transport (s)
  42. 0042specialize cf_convergent_numerator_transport (0)
  43. 0043specialize cf_convergent_numerator_transport (x5)
  44. 0044specialize cf_convergent_numerator_transport (0)
  45. 0045specialize cf_convergent_numerator_transport (1)
  46. 0046apply cf_convergent_numerator_transport
  47. 0047exact hq_left
  48. 0048specialize continued_fraction_first_cell_is_initial_convergent (s)
  49. 0049specialize continued_fraction_first_cell_is_initial_convergent (x5)
  50. 0050specialize continued_fraction_first_cell_is_initial_convergent (x7)
  51. 0051apply continued_fraction_first_cell_is_initial_convergent
  52. 0052exact hp_witness_witness_witness_right_right_left