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. ¬a = 0 → ¬b = 0 → ∃ x. ContinuedFraction(a,b,x)
Every linked abbreviation expands hygienically to the identical original native formula.
Definition DAG
Actual proof prerequisites
Complete unchanged native tactic proof
All 14 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 (1)
01Fix variables and assumptionsL1–4
02Use earlier factsL5–6
03Establish hpositiveL7–10
Establish this local claim before using it. It is not an additional assumption. The following proof commands apply continued fraction positive nonempty exists.
- L7
have hpositive : ∃ s. ContinuedFraction(a,b,s) ∧ ¬s = 0Definitions: ContinuedFractionOriginal native command in the exact edition - L8
apply continued_fraction_positive_nonempty_exists - L9
exact ha - L10
exact hb
04Separate the logical casesL11–12
05Construct an explicit witnessL13–13
Supply the displayed value, then prove that it has the required property.
- L13
exists x
06Use earlier factsL14–14
Instantiate or apply named facts and discharge the corresponding proof obligations.
- L14
exact hpositive_witness_left
Original defined command ledger · 14 lines
- 0001
intro a - 0002
intro b - 0003
intro ha - 0004
intro hb - 0005
specialize continued_fraction_positive_nonempty_exists a - 0006
specialize continued_fraction_positive_nonempty_exists b - 0007
have hpositive : exists s. ((exists cf_a_pred_positive_result cf_b_pred_positive_result cf_code_positive_result cf_scale_positive_result cf_length_pred_positive_result. (a = S cf_a_pred_positive_result /\ (b = S cf_b_pred_positive_result /\ (exists cf_gcd_positive_result_trace. ((((exists ff_h_cf_positive_result_trace_initial_state. ff_h_cf_positive_result_trace_initial_state + S (((cf_gcd_positive_result_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_positive_result_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_positive_result)) /\ exists ff_q_cf_positive_result_trace_initial_state. cf_code_positive_result = ff_q_cf_positive_result_trace_initial_state * S ((S (0)) * cf_scale_positive_result) + (((cf_gcd_positive_result_trace) + (((0) + (0)) * S ((0) + (0)) + ((0) + (0)))) * S ((cf_gcd_positive_result_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_positive_result_trace_terminal_state. ff_h_cf_positive_result_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_positive_result)) * cf_scale_positive_result)) /\ exists ff_q_cf_positive_result_trace_terminal_state. cf_code_positive_result = ff_q_cf_positive_result_trace_terminal_state * S ((S (S cf_length_pred_positive_result)) * cf_scale_positive_result) + (((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_positive_result_trace. (exists ff_lt_cf_positive_result_trace_index. ff_lt_cf_positive_result_trace_index + S cf_index_positive_result_trace = S cf_length_pred_positive_result) -> exists cf_old_a_positive_result_trace cf_old_b_positive_result_trace cf_tail_positive_result_trace cf_new_a_positive_result_trace cf_new_b_positive_result_trace cf_head_positive_result_trace cf_quotient_positive_result_trace. ((((exists ff_h_cf_positive_result_trace_previous_state. ff_h_cf_positive_result_trace_previous_state + S (((cf_old_a_positive_result_trace) + (((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) * S ((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) + ((cf_tail_positive_result_trace) + (cf_tail_positive_result_trace)))) * S ((cf_old_a_positive_result_trace) + (((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) * S ((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) + ((cf_tail_positive_result_trace) + (cf_tail_positive_result_trace)))) + ((((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) * S ((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) + ((cf_tail_positive_result_trace) + (cf_tail_positive_result_trace))) + (((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) * S ((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) + ((cf_tail_positive_result_trace) + (cf_tail_positive_result_trace))))) = S ((S (cf_index_positive_result_trace)) * cf_scale_positive_result)) /\ exists ff_q_cf_positive_result_trace_previous_state. cf_code_positive_result = ff_q_cf_positive_result_trace_previous_state * S ((S (cf_index_positive_result_trace)) * cf_scale_positive_result) + (((cf_old_a_positive_result_trace) + (((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) * S ((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) + ((cf_tail_positive_result_trace) + (cf_tail_positive_result_trace)))) * S ((cf_old_a_positive_result_trace) + (((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) * S ((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) + ((cf_tail_positive_result_trace) + (cf_tail_positive_result_trace)))) + ((((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) * S ((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) + ((cf_tail_positive_result_trace) + (cf_tail_positive_result_trace))) + (((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) * S ((cf_old_b_positive_result_trace) + (cf_tail_positive_result_trace)) + ((cf_tail_positive_result_trace) + (cf_tail_positive_result_trace))))))) /\ ((((exists ff_h_cf_positive_result_trace_following_state. ff_h_cf_positive_result_trace_following_state + S (((cf_new_a_positive_result_trace) + (((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) * S ((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) + ((cf_head_positive_result_trace) + (cf_head_positive_result_trace)))) * S ((cf_new_a_positive_result_trace) + (((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) * S ((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) + ((cf_head_positive_result_trace) + (cf_head_positive_result_trace)))) + ((((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) * S ((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) + ((cf_head_positive_result_trace) + (cf_head_positive_result_trace))) + (((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) * S ((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) + ((cf_head_positive_result_trace) + (cf_head_positive_result_trace))))) = S ((S (S cf_index_positive_result_trace)) * cf_scale_positive_result)) /\ exists ff_q_cf_positive_result_trace_following_state. cf_code_positive_result = ff_q_cf_positive_result_trace_following_state * S ((S (S cf_index_positive_result_trace)) * cf_scale_positive_result) + (((cf_new_a_positive_result_trace) + (((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) * S ((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) + ((cf_head_positive_result_trace) + (cf_head_positive_result_trace)))) * S ((cf_new_a_positive_result_trace) + (((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) * S ((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) + ((cf_head_positive_result_trace) + (cf_head_positive_result_trace)))) + ((((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) * S ((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) + ((cf_head_positive_result_trace) + (cf_head_positive_result_trace))) + (((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) * S ((cf_new_b_positive_result_trace) + (cf_head_positive_result_trace)) + ((cf_head_positive_result_trace) + (cf_head_positive_result_trace))))))) /\ (cf_new_b_positive_result_trace = cf_old_a_positive_result_trace /\ (cf_new_a_positive_result_trace = cf_new_b_positive_result_trace * cf_quotient_positive_result_trace + cf_old_b_positive_result_trace /\ ((exists ff_lt_cf_positive_result_trace_remainder. ff_lt_cf_positive_result_trace_remainder + S cf_old_b_positive_result_trace = cf_new_b_positive_result_trace) /\ (cf_head_positive_result_trace = S ((cf_quotient_positive_result_trace + cf_tail_positive_result_trace) * S (cf_quotient_positive_result_trace + cf_tail_positive_result_trace) + (cf_tail_positive_result_trace + cf_tail_positive_result_trace)))))))))))))) /\ ~(s = 0)) - 0008
apply continued_fraction_positive_nonempty_exists - 0009
exact ha - 0010
exact hb - 0011
cases hpositive - 0012
cases hpositive_witness - 0013
exists x - 0014
exact hpositive_witness_left