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 theorem in conservative defined notation
∀ a. ∀ b. ¬b = 0 → ∃ x. ∃ y. ∃ z. ∃ n. ¬x = 0 ∧ ContinuedFractionTrace(a,b,x,y,z,S n)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 49 lines are the exact independently kernel-checked original script.
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 (2)
01Fix variables and assumptionsL1–3
02Establish hdivisionL4–8
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply division remainder exists.
03Separate the logical casesL9–11
04Establish htailL12–15
Establish this local claim before using it. It is not an additional assumption.
- L12
have htail : ∃ s. ∃ h. ∃ e. ∃ l. ContinuedFractionTrace(b,x1,s,h,e,l)Definitions: ContinuedFractionTraceOriginal native command in the exact edition - L13
specialize continued_fraction_trace_exists b - L14
specialize continued_fraction_trace_exists x1 - L15
exact continued_fraction_trace_exists
05Separate the logical casesL16–19
06Establish hextendL20–29
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply continued fraction trace extend.
- L20
have hextend : ∃ s. ∃ z. ∃ c. ListCell(s,x,x2) ∧ ContinuedFractionTrace(a,b,s,z,c,S x5)Definitions: ListCellContinuedFractionTraceOriginal native command in the exact edition - L21
specialize continued_fraction_trace_extend a - L22
specialize continued_fraction_trace_extend b - L23
specialize continued_fraction_trace_extend x - L24
specialize continued_fraction_trace_extend x1 - L25
specialize continued_fraction_trace_extend x2 - L26
specialize continued_fraction_trace_extend x3 - L27
specialize continued_fraction_trace_extend x4 - L28
specialize continued_fraction_trace_extend x5 - L29
apply continued_fraction_trace_extend
07Use earlier factsL30–32
08Separate the logical casesL33–36
09Construct an explicit witnessL37–40
10Separate the logical casesL41–41
Follow the explicit conjunction, disjunction, witness, or contradiction step recorded below.
- L41
split
11Fix variables and assumptionsL42–42
Work with arbitrary variables or the premises of the current implication.
- L42
intro hzero
12Use earlier factsL43–49
Original defined command ledger · 49 lines
- 0001
intro a - 0002
intro b - 0003
intro hb - 0004
have hdivision : exists q r. a = b * q + r /\ exists gap. gap + S r = b - 0005
specialize division_remainder_exists b - 0006
specialize division_remainder_exists a - 0007
apply division_remainder_exists - 0008
exact hb - 0009
cases hdivision - 0010
cases hdivision_witness - 0011
cases hdivision_witness_witness - 0012
have htail : exists s h e l. (exists cf_gcd_nonzero_tail. ((((exists ff_h_cf_nonzero_tail_initial_state. ff_h_cf_nonzero_tail_initial_state + S (((cf_gcd_nonzero_tail) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_nonzero_tail) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))) = S ((S (0)) * e)) /\ exists ff_q_cf_nonzero_tail_initial_state. h = ff_q_cf_nonzero_tail_initial_state * S ((S (0)) * e) + (((cf_gcd_nonzero_tail) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_nonzero_tail) + (((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_nonzero_tail_terminal_state. ff_h_cf_nonzero_tail_terminal_state + S (((b) + (((x1) + (s)) * S ((x1) + (s)) + ((s) + (s)))) * S ((b) + (((x1) + (s)) * S ((x1) + (s)) + ((s) + (s)))) + ((((x1) + (s)) * S ((x1) + (s)) + ((s) + (s))) + (((x1) + (s)) * S ((x1) + (s)) + ((s) + (s))))) = S ((S (l)) * e)) /\ exists ff_q_cf_nonzero_tail_terminal_state. h = ff_q_cf_nonzero_tail_terminal_state * S ((S (l)) * e) + (((b) + (((x1) + (s)) * S ((x1) + (s)) + ((s) + (s)))) * S ((b) + (((x1) + (s)) * S ((x1) + (s)) + ((s) + (s)))) + ((((x1) + (s)) * S ((x1) + (s)) + ((s) + (s))) + (((x1) + (s)) * S ((x1) + (s)) + ((s) + (s))))))) /\ forall cf_index_nonzero_tail. (exists ff_lt_cf_nonzero_tail_index. ff_lt_cf_nonzero_tail_index + S cf_index_nonzero_tail = l) -> exists cf_old_a_nonzero_tail cf_old_b_nonzero_tail cf_tail_nonzero_tail cf_new_a_nonzero_tail cf_new_b_nonzero_tail cf_head_nonzero_tail cf_quotient_nonzero_tail. ((((exists ff_h_cf_nonzero_tail_previous_state. ff_h_cf_nonzero_tail_previous_state + S (((cf_old_a_nonzero_tail) + (((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) * S ((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) + ((cf_tail_nonzero_tail) + (cf_tail_nonzero_tail)))) * S ((cf_old_a_nonzero_tail) + (((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) * S ((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) + ((cf_tail_nonzero_tail) + (cf_tail_nonzero_tail)))) + ((((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) * S ((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) + ((cf_tail_nonzero_tail) + (cf_tail_nonzero_tail))) + (((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) * S ((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) + ((cf_tail_nonzero_tail) + (cf_tail_nonzero_tail))))) = S ((S (cf_index_nonzero_tail)) * e)) /\ exists ff_q_cf_nonzero_tail_previous_state. h = ff_q_cf_nonzero_tail_previous_state * S ((S (cf_index_nonzero_tail)) * e) + (((cf_old_a_nonzero_tail) + (((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) * S ((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) + ((cf_tail_nonzero_tail) + (cf_tail_nonzero_tail)))) * S ((cf_old_a_nonzero_tail) + (((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) * S ((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) + ((cf_tail_nonzero_tail) + (cf_tail_nonzero_tail)))) + ((((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) * S ((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) + ((cf_tail_nonzero_tail) + (cf_tail_nonzero_tail))) + (((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) * S ((cf_old_b_nonzero_tail) + (cf_tail_nonzero_tail)) + ((cf_tail_nonzero_tail) + (cf_tail_nonzero_tail))))))) /\ ((((exists ff_h_cf_nonzero_tail_following_state. ff_h_cf_nonzero_tail_following_state + S (((cf_new_a_nonzero_tail) + (((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) * S ((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) + ((cf_head_nonzero_tail) + (cf_head_nonzero_tail)))) * S ((cf_new_a_nonzero_tail) + (((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) * S ((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) + ((cf_head_nonzero_tail) + (cf_head_nonzero_tail)))) + ((((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) * S ((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) + ((cf_head_nonzero_tail) + (cf_head_nonzero_tail))) + (((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) * S ((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) + ((cf_head_nonzero_tail) + (cf_head_nonzero_tail))))) = S ((S (S cf_index_nonzero_tail)) * e)) /\ exists ff_q_cf_nonzero_tail_following_state. h = ff_q_cf_nonzero_tail_following_state * S ((S (S cf_index_nonzero_tail)) * e) + (((cf_new_a_nonzero_tail) + (((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) * S ((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) + ((cf_head_nonzero_tail) + (cf_head_nonzero_tail)))) * S ((cf_new_a_nonzero_tail) + (((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) * S ((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) + ((cf_head_nonzero_tail) + (cf_head_nonzero_tail)))) + ((((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) * S ((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) + ((cf_head_nonzero_tail) + (cf_head_nonzero_tail))) + (((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) * S ((cf_new_b_nonzero_tail) + (cf_head_nonzero_tail)) + ((cf_head_nonzero_tail) + (cf_head_nonzero_tail))))))) /\ (cf_new_b_nonzero_tail = cf_old_a_nonzero_tail /\ (cf_new_a_nonzero_tail = cf_new_b_nonzero_tail * cf_quotient_nonzero_tail + cf_old_b_nonzero_tail /\ ((exists ff_lt_cf_nonzero_tail_remainder. ff_lt_cf_nonzero_tail_remainder + S cf_old_b_nonzero_tail = cf_new_b_nonzero_tail) /\ (cf_head_nonzero_tail = S ((cf_quotient_nonzero_tail + cf_tail_nonzero_tail) * S (cf_quotient_nonzero_tail + cf_tail_nonzero_tail) + (cf_tail_nonzero_tail + cf_tail_nonzero_tail))))))))))) - 0013
specialize continued_fraction_trace_exists b - 0014
specialize continued_fraction_trace_exists x1 - 0015
exact continued_fraction_trace_exists - 0016
cases htail - 0017
cases htail_witness - 0018
cases htail_witness_witness - 0019
cases htail_witness_witness_witness - 0020
have hextend : exists s z c. ((s = S ((x + x2) * S (x + x2) + (x2 + x2))) /\ (exists cf_gcd_nonzero_extension. ((((exists ff_h_cf_nonzero_extension_initial_state. ff_h_cf_nonzero_extension_initial_state + S (((cf_gcd_nonzero_extension) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_nonzero_extension) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) + ((((0) + (0)) * S ((0) + (0)) + ((0) + (0))) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0))))) = S ((S (0)) * c)) /\ exists ff_q_cf_nonzero_extension_initial_state. z = ff_q_cf_nonzero_extension_initial_state * S ((S (0)) * c) + (((cf_gcd_nonzero_extension) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_nonzero_extension) + (((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_nonzero_extension_terminal_state. ff_h_cf_nonzero_extension_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 x5)) * c)) /\ exists ff_q_cf_nonzero_extension_terminal_state. z = ff_q_cf_nonzero_extension_terminal_state * S ((S (S x5)) * c) + (((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_nonzero_extension. (exists ff_lt_cf_nonzero_extension_index. ff_lt_cf_nonzero_extension_index + S cf_index_nonzero_extension = S x5) -> exists cf_old_a_nonzero_extension cf_old_b_nonzero_extension cf_tail_nonzero_extension cf_new_a_nonzero_extension cf_new_b_nonzero_extension cf_head_nonzero_extension cf_quotient_nonzero_extension. ((((exists ff_h_cf_nonzero_extension_previous_state. ff_h_cf_nonzero_extension_previous_state + S (((cf_old_a_nonzero_extension) + (((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) * S ((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) + ((cf_tail_nonzero_extension) + (cf_tail_nonzero_extension)))) * S ((cf_old_a_nonzero_extension) + (((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) * S ((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) + ((cf_tail_nonzero_extension) + (cf_tail_nonzero_extension)))) + ((((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) * S ((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) + ((cf_tail_nonzero_extension) + (cf_tail_nonzero_extension))) + (((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) * S ((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) + ((cf_tail_nonzero_extension) + (cf_tail_nonzero_extension))))) = S ((S (cf_index_nonzero_extension)) * c)) /\ exists ff_q_cf_nonzero_extension_previous_state. z = ff_q_cf_nonzero_extension_previous_state * S ((S (cf_index_nonzero_extension)) * c) + (((cf_old_a_nonzero_extension) + (((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) * S ((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) + ((cf_tail_nonzero_extension) + (cf_tail_nonzero_extension)))) * S ((cf_old_a_nonzero_extension) + (((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) * S ((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) + ((cf_tail_nonzero_extension) + (cf_tail_nonzero_extension)))) + ((((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) * S ((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) + ((cf_tail_nonzero_extension) + (cf_tail_nonzero_extension))) + (((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) * S ((cf_old_b_nonzero_extension) + (cf_tail_nonzero_extension)) + ((cf_tail_nonzero_extension) + (cf_tail_nonzero_extension))))))) /\ ((((exists ff_h_cf_nonzero_extension_following_state. ff_h_cf_nonzero_extension_following_state + S (((cf_new_a_nonzero_extension) + (((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) * S ((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) + ((cf_head_nonzero_extension) + (cf_head_nonzero_extension)))) * S ((cf_new_a_nonzero_extension) + (((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) * S ((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) + ((cf_head_nonzero_extension) + (cf_head_nonzero_extension)))) + ((((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) * S ((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) + ((cf_head_nonzero_extension) + (cf_head_nonzero_extension))) + (((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) * S ((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) + ((cf_head_nonzero_extension) + (cf_head_nonzero_extension))))) = S ((S (S cf_index_nonzero_extension)) * c)) /\ exists ff_q_cf_nonzero_extension_following_state. z = ff_q_cf_nonzero_extension_following_state * S ((S (S cf_index_nonzero_extension)) * c) + (((cf_new_a_nonzero_extension) + (((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) * S ((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) + ((cf_head_nonzero_extension) + (cf_head_nonzero_extension)))) * S ((cf_new_a_nonzero_extension) + (((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) * S ((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) + ((cf_head_nonzero_extension) + (cf_head_nonzero_extension)))) + ((((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) * S ((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) + ((cf_head_nonzero_extension) + (cf_head_nonzero_extension))) + (((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) * S ((cf_new_b_nonzero_extension) + (cf_head_nonzero_extension)) + ((cf_head_nonzero_extension) + (cf_head_nonzero_extension))))))) /\ (cf_new_b_nonzero_extension = cf_old_a_nonzero_extension /\ (cf_new_a_nonzero_extension = cf_new_b_nonzero_extension * cf_quotient_nonzero_extension + cf_old_b_nonzero_extension /\ ((exists ff_lt_cf_nonzero_extension_remainder. ff_lt_cf_nonzero_extension_remainder + S cf_old_b_nonzero_extension = cf_new_b_nonzero_extension) /\ (cf_head_nonzero_extension = S ((cf_quotient_nonzero_extension + cf_tail_nonzero_extension) * S (cf_quotient_nonzero_extension + cf_tail_nonzero_extension) + (cf_tail_nonzero_extension + cf_tail_nonzero_extension)))))))))))) - 0021
specialize continued_fraction_trace_extend a - 0022
specialize continued_fraction_trace_extend b - 0023
specialize continued_fraction_trace_extend x - 0024
specialize continued_fraction_trace_extend x1 - 0025
specialize continued_fraction_trace_extend x2 - 0026
specialize continued_fraction_trace_extend x3 - 0027
specialize continued_fraction_trace_extend x4 - 0028
specialize continued_fraction_trace_extend x5 - 0029
apply continued_fraction_trace_extend - 0030
exact hdivision_witness_witness_left - 0031
exact hdivision_witness_witness_right - 0032
exact htail_witness_witness_witness_witness - 0033
cases hextend - 0034
cases hextend_witness - 0035
cases hextend_witness_witness - 0036
cases hextend_witness_witness_witness - 0037
exists x6 - 0038
exists x7 - 0039
exists x8 - 0040
exists x5 - 0041
split - 0042
intro hzero - 0043
specialize cell_nonzero x6 - 0044
specialize cell_nonzero x - 0045
specialize cell_nonzero x2 - 0046
apply cell_nonzero - 0047
exact hextend_witness_witness_witness_left - 0048
exact hzero - 0049
exact hextend_witness_witness_witness_right