File: Mathlib/Algebra/ContinuedFractions/Translations.lean

full_name: GenContFract.terminatedAt_iff_s_terminatedAt
code: theorem terminatedAt_iff_s_terminatedAt : g.TerminatedAt n ↔ g.s.TerminatedAt n 
goal: g.TerminatedAt n ↔ g.s.TerminatedAt n

full_name: GenContFract.terminatedAt_iff_s_none
code: theorem terminatedAt_iff_s_none : g.TerminatedAt n ↔ g.s.get? n = none 
goal: g.TerminatedAt n ↔ g.s.get? n = none

full_name: GenContFract.partNum_none_iff_s_none
code: theorem partNum_none_iff_s_none : g.partNums.get? n = none ↔ g.s.get? n = none 
goal: g.partNums.get? n = none ↔ g.s.get? n = none

full_name: GenContFract.terminatedAt_iff_partNum_none
code: theorem terminatedAt_iff_partNum_none : g.TerminatedAt n ↔ g.partNums.get? n = none 
goal: g.TerminatedAt n ↔ g.partNums.get? n = none

full_name: GenContFract.partDen_none_iff_s_none
code: theorem partDen_none_iff_s_none : g.partDens.get? n = none ↔ g.s.get? n = none 
goal: g.partDens.get? n = none ↔ g.s.get? n = none

full_name: GenContFract.terminatedAt_iff_partDen_none
code: theorem terminatedAt_iff_partDen_none : g.TerminatedAt n ↔ g.partDens.get? n = none 
goal: g.TerminatedAt n ↔ g.partDens.get? n = none

full_name: GenContFract.partNum_eq_s_a
code: theorem partNum_eq_s_a {gp : Pair α} (s_nth_eq : g.s.get? n = some gp) :
    g.partNums.get? n = some gp.a 
goal: g.partNums.get? n = some gp.a

full_name: GenContFract.partDen_eq_s_b
code: theorem partDen_eq_s_b {gp : Pair α} (s_nth_eq : g.s.get? n = some gp) :
    g.partDens.get? n = some gp.b 
goal: g.partDens.get? n = some gp.b

full_name: GenContFract.exists_s_a_of_partNum
code: theorem exists_s_a_of_partNum {a : α} (nth_partNum_eq : g.partNums.get? n = some a) :
    ∃ gp, g.s.get? n = some gp ∧ gp.a = a 
goal: ∃ gp, g.s.get? n = some gp ∧ gp.a = a

full_name: GenContFract.exists_s_b_of_partDen
code: theorem exists_s_b_of_partDen {b : α}
    (nth_partDen_eq : g.partDens.get? n = some b) :
    ∃ gp, g.s.get? n = some gp ∧ gp.b = b 
goal: ∃ gp, g.s.get? n = some gp ∧ gp.b = b

full_name: GenContFract.nth_cont_eq_succ_nth_contAux
code: theorem nth_cont_eq_succ_nth_contAux : g.conts n = g.contsAux (n + 1) 
goal: g.conts n = g.contsAux (n + 1)

full_name: GenContFract.num_eq_conts_a
code: theorem num_eq_conts_a : g.nums n = (g.conts n).a 
goal: g.nums n = (g.conts n).a

full_name: GenContFract.den_eq_conts_b
code: theorem den_eq_conts_b : g.dens n = (g.conts n).b 
goal: g.dens n = (g.conts n).b

full_name: GenContFract.conv_eq_num_div_den
code: theorem conv_eq_num_div_den : g.convs n = g.nums n / g.dens n 
goal: g.convs n = g.nums n / g.dens n

full_name: GenContFract.conv_eq_conts_a_div_conts_b
code: theorem conv_eq_conts_a_div_conts_b :
    g.convs n = (g.conts n).a / (g.conts n).b 
goal: g.convs n = (g.conts n).a / (g.conts n).b

full_name: GenContFract.exists_conts_a_of_num
code: theorem exists_conts_a_of_num {A : K} (nth_num_eq : g.nums n = A) :
    ∃ conts, g.conts n = conts ∧ conts.a = A 
goal: ∃ conts, g.conts n = conts ∧ conts.a = A

full_name: GenContFract.exists_conts_b_of_den
code: theorem exists_conts_b_of_den {B : K} (nth_denom_eq : g.dens n = B) :
    ∃ conts, g.conts n = conts ∧ conts.b = B 
goal: ∃ conts, g.conts n = conts ∧ conts.b = B

full_name: GenContFract.zeroth_contAux_eq_one_zero
code: @[simp]
theorem zeroth_contAux_eq_one_zero : g.contsAux 0 = ⟨1, 0⟩ 
goal: g.contsAux 0 = { a := 1, b := 0 }

full_name: GenContFract.first_contAux_eq_h_one
code: @[simp]
theorem first_contAux_eq_h_one : g.contsAux 1 = ⟨g.h, 1⟩ 
goal: g.contsAux 1 = { a := g.h, b := 1 }

full_name: GenContFract.zeroth_cont_eq_h_one
code: @[simp]
theorem zeroth_cont_eq_h_one : g.conts 0 = ⟨g.h, 1⟩ 
goal: g.conts 0 = { a := g.h, b := 1 }

full_name: GenContFract.zeroth_num_eq_h
code: @[simp]
theorem zeroth_num_eq_h : g.nums 0 = g.h 
goal: g.nums 0 = g.h

full_name: GenContFract.zeroth_den_eq_one
code: @[simp]
theorem zeroth_den_eq_one : g.dens 0 = 1 
goal: g.dens 0 = 1

full_name: GenContFract.zeroth_conv_eq_h
code: @[simp]
theorem zeroth_conv_eq_h : g.convs 0 = g.h 
goal: g.convs 0 = g.h

full_name: GenContFract.second_contAux_eq
code: theorem second_contAux_eq {gp : Pair K} (zeroth_s_eq : g.s.get? 0 = some gp) :
    g.contsAux 2 = ⟨gp.b * g.h + gp.a, gp.b⟩ 
goal: g.contsAux 2 = { a := gp.b * g.h + gp.a, b := gp.b }

full_name: GenContFract.first_cont_eq
code: theorem first_cont_eq {gp : Pair K} (zeroth_s_eq : g.s.get? 0 = some gp) :
    g.conts 1 = ⟨gp.b * g.h + gp.a, gp.b⟩ 
goal: g.conts 1 = { a := gp.b * g.h + gp.a, b := gp.b }

full_name: GenContFract.first_num_eq
code: theorem first_num_eq {gp : Pair K} (zeroth_s_eq : g.s.get? 0 = some gp) :
    g.nums 1 = gp.b * g.h + gp.a 
goal: g.nums 1 = gp.b * g.h + gp.a

full_name: GenContFract.first_den_eq
code: theorem first_den_eq {gp : Pair K} (zeroth_s_eq : g.s.get? 0 = some gp) :
    g.dens 1 = gp.b 
goal: g.dens 1 = gp.b

full_name: GenContFract.zeroth_conv'Aux_eq_zero
code: @[simp]
theorem zeroth_conv'Aux_eq_zero {s : Stream'.Seq <| Pair K} :
    convs'Aux s 0 = (0 : K) 
goal: GenContFract.convs'Aux s 0 = 0

full_name: GenContFract.zeroth_conv'_eq_h
code: @[simp]
theorem zeroth_conv'_eq_h : g.convs' 0 = g.h 
goal: g.convs' 0 = g.h

full_name: GenContFract.convs'Aux_succ_none
code: theorem convs'Aux_succ_none {s : Stream'.Seq (Pair K)} (h : s.head = none) (n : ℕ) :
    convs'Aux s (n + 1) = 0 
goal: GenContFract.convs'Aux s (n + 1) = 0

full_name: GenContFract.convs'Aux_succ_some
code: theorem convs'Aux_succ_some {s : Stream'.Seq (Pair K)} {p : Pair K} (h : s.head = some p)
    (n : ℕ) : convs'Aux s (n + 1) = p.a / (p.b + convs'Aux s.tail n) 
goal: GenContFract.convs'Aux s (n + 1) = p.a / (p.b + GenContFract.convs'Aux s.tail n)