ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- GenContFract.partDen_eq_s_b
theorem partDen_eq_s_b {gp : Pair α} (s_nth_eq : g.s.get? n = some gp) :
    g.partDens.get? n = some gp.b 
Arguments: {α : Type u_1} {g : GenContFract α} {n : ℕ} {gp : GenContFract.Pair α} (s_nth_eq : g.s.get? n = some gp)
Goal: g.partDens.get? n = some gp.b
-- GenContFract.exists_s_a_of_partNum
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 
Arguments: {α : Type u_1} {g : GenContFract α} {n : ℕ} {a : α} (nth_partNum_eq : g.partNums.get? n = some a)
Goal: ∃ gp, g.s.get? n = some gp ∧ gp.a = a
-- GenContFract.exists_s_b_of_partDen
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 
Arguments: {α : Type u_1} {g : GenContFract α} {n : ℕ} {b : α} (nth_partDen_eq : g.partDens.get? n = some b)
Goal: ∃ gp, g.s.get? n = some gp ∧ gp.b = b
-- GenContFract.nth_cont_eq_succ_nth_contAux
theorem nth_cont_eq_succ_nth_contAux : g.conts n = g.contsAux (n + 1) 
Arguments: {K : Type u_1} {g : GenContFract K} {n : ℕ} [DivisionRing K]
Goal: g.conts n = g.contsAux (n + 1)
-- GenContFract.num_eq_conts_a
theorem num_eq_conts_a : g.nums n = (g.conts n).a 
Arguments: {K : Type u_1} {g : GenContFract K} {n : ℕ} [DivisionRing K]
Goal: g.nums n = (g.conts n).a
-- GenContFract.den_eq_conts_b
theorem den_eq_conts_b : g.dens n = (g.conts n).b 
Arguments: {K : Type u_1} {g : GenContFract K} {n : ℕ} [DivisionRing K]
Goal: g.dens n = (g.conts n).b
-- GenContFract.conv_eq_num_div_den
theorem conv_eq_num_div_den : g.convs n = g.nums n / g.dens n 
Arguments: {K : Type u_1} {g : GenContFract K} {n : ℕ} [DivisionRing K]
Goal: g.convs n = g.nums n / g.dens n
-- GenContFract.conv_eq_conts_a_div_conts_b
theorem conv_eq_conts_a_div_conts_b :
    g.convs n = (g.conts n).a / (g.conts n).b 
Arguments: {K : Type u_1} {g : GenContFract K} {n : ℕ} [DivisionRing K]
Goal: g.convs n = (g.conts n).a / (g.conts n).b
-- GenContFract.exists_conts_a_of_num
theorem exists_conts_a_of_num {A : K} (nth_num_eq : g.nums n = A) :
    ∃ conts, g.conts n = conts ∧ conts.a = A 
Arguments: {K : Type u_1} {g : GenContFract K} {n : ℕ} [DivisionRing K] {A : K} (nth_num_eq : g.nums n = A)
Goal: ∃ conts, g.conts n = conts ∧ conts.a = A
-- GenContFract.exists_conts_b_of_den
theorem exists_conts_b_of_den {B : K} (nth_denom_eq : g.dens n = B) :
    ∃ conts, g.conts n = conts ∧ conts.b = B 
Arguments: {K : Type u_1} {g : GenContFract K} {n : ℕ} [DivisionRing K] {B : K} (nth_denom_eq : g.dens n = B)
Goal: ∃ conts, g.conts n = conts ∧ conts.b = B
-- GenContFract.zeroth_contAux_eq_one_zero
@[simp]
theorem zeroth_contAux_eq_one_zero : g.contsAux 0 = ⟨1, 0⟩ 
Arguments: {K : Type u_1} {g : GenContFract K} [DivisionRing K]
Goal: g.contsAux 0 = { a := 1, b := 0 }
-- GenContFract.first_contAux_eq_h_one
@[simp]
theorem first_contAux_eq_h_one : g.contsAux 1 = ⟨g.h, 1⟩ 
Arguments: {K : Type u_1} {g : GenContFract K} [DivisionRing K]
Goal: g.contsAux 1 = { a := g.h, b := 1 }
-- GenContFract.zeroth_cont_eq_h_one
@[simp]
theorem zeroth_cont_eq_h_one : g.conts 0 = ⟨g.h, 1⟩ 
Arguments: {K : Type u_1} {g : GenContFract K} [DivisionRing K]
Goal: g.conts 0 = { a := g.h, b := 1 }
-- GenContFract.zeroth_num_eq_h
@[simp]
theorem zeroth_num_eq_h : g.nums 0 = g.h 
Arguments: {K : Type u_1} {g : GenContFract K} [DivisionRing K]
Goal: g.nums 0 = g.h
-- GenContFract.zeroth_den_eq_one
@[simp]
theorem zeroth_den_eq_one : g.dens 0 = 1 
Arguments: {K : Type u_1} {g : GenContFract K} [DivisionRing K]
Goal: g.dens 0 = 1
-- GenContFract.zeroth_conv_eq_h
@[simp]
theorem zeroth_conv_eq_h : g.convs 0 = g.h 
Arguments: {K : Type u_1} {g : GenContFract K} [DivisionRing K]
Goal: g.convs 0 = g.h
-- GenContFract.second_contAux_eq
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⟩ 
Arguments: {K : Type u_1} {g : GenContFract K} [DivisionRing K] {gp : GenContFract.Pair K} (zeroth_s_eq : g.s.get? 0 = some gp)
Goal: g.contsAux 2 = { a := gp.b * g.h + gp.a, b := gp.b }
-- GenContFract.first_cont_eq
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⟩ 
Arguments: {K : Type u_1} {g : GenContFract K} [DivisionRing K] {gp : GenContFract.Pair K} (zeroth_s_eq : g.s.get? 0 = some gp)
Goal: g.conts 1 = { a := gp.b * g.h + gp.a, b := gp.b }
-- GenContFract.first_num_eq
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 
Arguments: {K : Type u_1} {g : GenContFract K} [DivisionRing K] {gp : GenContFract.Pair K} (zeroth_s_eq : g.s.get? 0 = some gp)
Goal: g.nums 1 = gp.b * g.h + gp.a
-- GenContFract.first_den_eq
theorem first_den_eq {gp : Pair K} (zeroth_s_eq : g.s.get? 0 = some gp) :
    g.dens 1 = gp.b 
Arguments: {K : Type u_1} {g : GenContFract K} [DivisionRing K] {gp : GenContFract.Pair K} (zeroth_s_eq : g.s.get? 0 = some gp)
Goal: g.dens 1 = gp.b
-- GenContFract.zeroth_conv'Aux_eq_zero
@[simp]
theorem zeroth_conv'Aux_eq_zero {s : Stream'.Seq <| Pair K} :
    convs'Aux s 0 = (0 : K) 
Arguments: {K : Type u_1} [DivisionRing K] {s : Stream'.Seq (GenContFract.Pair K)}
Goal: GenContFract.convs'Aux s 0 = 0
-- GenContFract.zeroth_conv'_eq_h
@[simp]
theorem zeroth_conv'_eq_h : g.convs' 0 = g.h 
Arguments: {K : Type u_1} {g : GenContFract K} [DivisionRing K]
Goal: g.convs' 0 = g.h
-- GenContFract.convs'Aux_succ_none
theorem convs'Aux_succ_none {s : Stream'.Seq (Pair K)} (h : s.head = none) (n : ℕ) :
    convs'Aux s (n + 1) = 0 
Arguments: {K : Type u_1} [DivisionRing K] {s : Stream'.Seq (GenContFract.Pair K)} (h : s.head = none) (n : ℕ)
Goal: GenContFract.convs'Aux s (n + 1) = 0
-- GenContFract.convs'Aux_succ_some
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) 
Arguments: {K : Type u_1} [DivisionRing K] {s : Stream'.Seq (GenContFract.Pair K)} {p : GenContFract.Pair K} (h : s.head = some p) (n : ℕ)
Goal: GenContFract.convs'Aux s (n + 1) = p.a / (p.b + GenContFract.convs'Aux s.tail n)
-- DirectSum.Decomposition.left_inv
class Decomposition where
  decompose' : M → ⨁ i, ℳ i
  left_inv : Function.LeftInverse (DirectSum.coeAddMonoidHom ℳ) decompose'
  right_inv : Function.RightInverse (DirectSum.coeAddMonoidHom ℳ) decompose'
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] {ℳ : ι → σ} [self : DirectSum.Decomposition ℳ]
Goal: Function.LeftInverse (⇑(DirectSum.coeAddMonoidHom ℳ)) DirectSum.Decomposition.decompose'
-- DirectSum.Decomposition.right_inv
class Decomposition where
  decompose' : M → ⨁ i, ℳ i
  left_inv : Function.LeftInverse (DirectSum.coeAddMonoidHom ℳ) decompose'
  right_inv : Function.RightInverse (DirectSum.coeAddMonoidHom ℳ) decompose'
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] {ℳ : ι → σ} [self : DirectSum.Decomposition ℳ]
Goal: Function.RightInverse (⇑(DirectSum.coeAddMonoidHom ℳ)) DirectSum.Decomposition.decompose'
-- DirectSum.Decomposition.isInternal
protected theorem Decomposition.isInternal : DirectSum.IsInternal ℳ 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ]
Goal: DirectSum.IsInternal ℳ
-- DirectSum.Decomposition.inductionOn
protected theorem Decomposition.inductionOn {p : M → Prop} (h_zero : p 0)
    (h_homogeneous : ∀ {i} (m : ℳ i), p (m : M)) (h_add : ∀ m m' : M, p m → p m' → p (m + m')) :
    ∀ m, p m 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] {p : M → Prop} (h_zero : p 0) (h_homogeneous : ∀ {i : ι} (m : ↥(ℳ i)), p ↑m) (h_add : ∀ (m m' : M), p m → p m' → p (m + m')) (m : M)
Goal: p m
-- DirectSum.Decomposition.decompose'_eq
@[simp]
theorem Decomposition.decompose'_eq : Decomposition.decompose' = decompose ℳ 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ]
Goal: DirectSum.Decomposition.decompose' = ⇑(DirectSum.decompose ℳ)
-- DirectSum.decompose_symm_of
@[simp]
theorem decompose_symm_of {i : ι} (x : ℳ i) : (decompose ℳ).symm (DirectSum.of _ i x) = x 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] {i : ι} (x : ↥(ℳ i))
Goal: (DirectSum.decompose ℳ).symm ((DirectSum.of (fun i => ↥(ℳ i)) i) x) = ↑x
-- DirectSum.decompose_coe
@[simp]
theorem decompose_coe {i : ι} (x : ℳ i) : decompose ℳ (x : M) = DirectSum.of _ i x 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] {i : ι} (x : ↥(ℳ i))
Goal: (DirectSum.decompose ℳ) ↑x = (DirectSum.of (fun i => ↥(ℳ i)) i) x
-- DirectSum.decompose_of_mem
theorem decompose_of_mem {x : M} {i : ι} (hx : x ∈ ℳ i) :
    decompose ℳ x = DirectSum.of (fun i ↦ ℳ i) i ⟨x, hx⟩ 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] {x : M} {i : ι} (hx : x ∈ ℳ i)
Goal: (DirectSum.decompose ℳ) x = (DirectSum.of (fun i => ↥(ℳ i)) i) ⟨x, hx⟩
-- DirectSum.decompose_of_mem_same
theorem decompose_of_mem_same {x : M} {i : ι} (hx : x ∈ ℳ i) : (decompose ℳ x i : M) = x 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] {x : M} {i : ι} (hx : x ∈ ℳ i)
Goal: ↑(((DirectSum.decompose ℳ) x) i) = x
-- DirectSum.decompose_of_mem_ne
theorem decompose_of_mem_ne {x : M} {i j : ι} (hx : x ∈ ℳ i) (hij : i ≠ j) :
    (decompose ℳ x j : M) = 0 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] {x : M} {i j : ι} (hx : x ∈ ℳ i) (hij : i ≠ j)
Goal: ↑(((DirectSum.decompose ℳ) x) j) = 0
-- DirectSum.degree_eq_of_mem_mem
theorem degree_eq_of_mem_mem {x : M} {i j : ι} (hxi : x ∈ ℳ i) (hxj : x ∈ ℳ j) (hx : x ≠ 0) :
    i = j 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] {x : M} {i j : ι} (hxi : x ∈ ℳ i) (hxj : x ∈ ℳ j) (hx : x ≠ 0)
Goal: i = j
-- DirectSum.decomposeAddEquiv_apply
@[simp]
lemma decomposeAddEquiv_apply (a : M) :
    decomposeAddEquiv ℳ a = decompose ℳ a 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] (a : M)
Goal: (DirectSum.decomposeAddEquiv ℳ) a = (DirectSum.decompose ℳ) a
-- DirectSum.decomposeAddEquiv_symm_apply
@[simp]
lemma decomposeAddEquiv_symm_apply (a : ⨁ i, ℳ i) :
    (decomposeAddEquiv ℳ).symm a = (decompose ℳ).symm a 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] (a : ⨁ (i : ι), ↥(ℳ i))
Goal: (DirectSum.decomposeAddEquiv ℳ).symm a = (DirectSum.decompose ℳ).symm a
-- DirectSum.decompose_zero
@[simp]
theorem decompose_zero : decompose ℳ (0 : M) = 0 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ]
Goal: (DirectSum.decompose ℳ) 0 = 0
-- DirectSum.decompose_symm_zero
@[simp]
theorem decompose_symm_zero : (decompose ℳ).symm 0 = (0 : M) 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ]
Goal: (DirectSum.decompose ℳ).symm 0 = 0
-- DirectSum.decompose_add
@[simp]
theorem decompose_add (x y : M) : decompose ℳ (x + y) = decompose ℳ x + decompose ℳ y 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] (x y : M)
Goal: (DirectSum.decompose ℳ) (x + y) = (DirectSum.decompose ℳ) x + (DirectSum.decompose ℳ) y
-- DirectSum.decompose_symm_add
@[simp]
theorem decompose_symm_add (x y : ⨁ i, ℳ i) :
    (decompose ℳ).symm (x + y) = (decompose ℳ).symm x + (decompose ℳ).symm y 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] (x y : ⨁ (i : ι), ↥(ℳ i))
Goal: (DirectSum.decompose ℳ).symm (x + y) = (DirectSum.decompose ℳ).symm x + (DirectSum.decompose ℳ).symm y
-- DirectSum.decompose_sum
@[simp]
theorem decompose_sum {ι'} (s : Finset ι') (f : ι' → M) :
    decompose ℳ (∑ i ∈ s, f i) = ∑ i ∈ s, decompose ℳ (f i) 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] {ι' : Type u_5} (s : Finset ι') (f : ι' → M)
Goal: (DirectSum.decompose ℳ) (∑ i ∈ s, f i) = ∑ i ∈ s, (DirectSum.decompose ℳ) (f i)
-- DirectSum.decompose_symm_sum
@[simp]
theorem decompose_symm_sum {ι'} (s : Finset ι') (f : ι' → ⨁ i, ℳ i) :
    (decompose ℳ).symm (∑ i ∈ s, f i) = ∑ i ∈ s, (decompose ℳ).symm (f i) 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] {ι' : Type u_5} (s : Finset ι') (f : ι' → ⨁ (i : ι), ↥(ℳ i))
Goal: (DirectSum.decompose ℳ).symm (∑ i ∈ s, f i) = ∑ i ∈ s, (DirectSum.decompose ℳ).symm (f i)
-- DirectSum.sum_support_decompose
theorem sum_support_decompose [∀ (i) (x : ℳ i), Decidable (x ≠ 0)] (r : M) :
    (∑ i ∈ (decompose ℳ r).support, (decompose ℳ r i : M)) = r 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommMonoid M] [SetLike σ M] [AddSubmonoidClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] [(i : ι) → (x : ↥(ℳ i)) → Decidable (x ≠ 0)] (r : M)
Goal: ∑ i ∈ DFinsupp.support ((DirectSum.decompose ℳ) r), ↑(((DirectSum.decompose ℳ) r) i) = r
-- DirectSum.decompose_neg
@[simp]
theorem decompose_neg (x : M) : decompose ℳ (-x) = -decompose ℳ x 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommGroup M] [SetLike σ M] [AddSubgroupClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] (x : M)
Goal: (DirectSum.decompose ℳ) (-x) = -(DirectSum.decompose ℳ) x
-- DirectSum.decompose_symm_neg
@[simp]
theorem decompose_symm_neg (x : ⨁ i, ℳ i) : (decompose ℳ).symm (-x) = -(decompose ℳ).symm x 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommGroup M] [SetLike σ M] [AddSubgroupClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] (x : ⨁ (i : ι), ↥(ℳ i))
Goal: (DirectSum.decompose ℳ).symm (-x) = -(DirectSum.decompose ℳ).symm x
-- DirectSum.decompose_sub
@[simp]
theorem decompose_sub (x y : M) : decompose ℳ (x - y) = decompose ℳ x - decompose ℳ y 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommGroup M] [SetLike σ M] [AddSubgroupClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] (x y : M)
Goal: (DirectSum.decompose ℳ) (x - y) = (DirectSum.decompose ℳ) x - (DirectSum.decompose ℳ) y
-- DirectSum.decompose_symm_sub
@[simp]
theorem decompose_symm_sub (x y : ⨁ i, ℳ i) :
    (decompose ℳ).symm (x - y) = (decompose ℳ).symm x - (decompose ℳ).symm y 
Arguments: {ι : Type u_1} {M : Type u_3} {σ : Type u_4} [DecidableEq ι] [AddCommGroup M] [SetLike σ M] [AddSubgroupClass σ M] (ℳ : ι → σ) [DirectSum.Decomposition ℳ] (x y : ⨁ (i : ι), ↥(ℳ i))
Goal: (DirectSum.decompose ℳ).symm (x - y) = (DirectSum.decompose ℳ).symm x - (DirectSum.decompose ℳ).symm y
-- DirectSum.decomposeLinearEquiv_apply
@[simp] theorem decomposeLinearEquiv_apply (m : M) :
    decomposeLinearEquiv ℳ m = decompose ℳ m 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} [DecidableEq ι] [Semiring R] [AddCommMonoid M] [Module R M] (ℳ : ι → Submodule R M) [DirectSum.Decomposition ℳ] (m : M)
Goal: (DirectSum.decomposeLinearEquiv ℳ) m = (DirectSum.decompose ℳ) m
-- DirectSum.decomposeLinearEquiv_symm_apply
@[simp] theorem decomposeLinearEquiv_symm_apply (m : ⨁ i, ℳ i) :
    (decomposeLinearEquiv ℳ).symm m = (decompose ℳ).symm m 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} [DecidableEq ι] [Semiring R] [AddCommMonoid M] [Module R M] (ℳ : ι → Submodule R M) [DirectSum.Decomposition ℳ] (m : ⨁ (i : ι), ↥(ℳ i))
Goal: (DirectSum.decomposeLinearEquiv ℳ).symm m = (DirectSum.decompose ℳ).symm m
-- DirectSum.decompose_smul
@[simp]
theorem decompose_smul (r : R) (x : M) : decompose ℳ (r • x) = r • decompose ℳ x 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} [DecidableEq ι] [Semiring R] [AddCommMonoid M] [Module R M] (ℳ : ι → Submodule R M) [DirectSum.Decomposition ℳ] (r : R) (x : M)
Goal: (DirectSum.decompose ℳ) (r • x) = r • (DirectSum.decompose ℳ) x
-- DirectSum.decomposeLinearEquiv_symm_comp_lof
@[simp] theorem decomposeLinearEquiv_symm_comp_lof (i : ι) :
    (decomposeLinearEquiv ℳ).symm ∘ₗ lof R ι (ℳ ·) i = (ℳ i).subtype 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} [DecidableEq ι] [Semiring R] [AddCommMonoid M] [Module R M] (ℳ : ι → Submodule R M) [DirectSum.Decomposition ℳ] (i : ι)
Goal: ↑(DirectSum.decomposeLinearEquiv ℳ).symm ∘ₗ DirectSum.lof R ι (fun x => ↥(ℳ x)) i = (ℳ i).subtype
-- DirectSum.decompose_lhom_ext
theorem decompose_lhom_ext {N} [AddCommMonoid N] [Module R N] ⦃f g : M →ₗ[R] N⦄
    (h : ∀ i, f ∘ₗ (ℳ i).subtype = g ∘ₗ (ℳ i).subtype) : f = g 
Arguments: {ι : Type u_1} {R : Type u_2} {M : Type u_3} [DecidableEq ι] [Semiring R] [AddCommMonoid M] [Module R M] (ℳ : ι → Submodule R M) [DirectSum.Decomposition ℳ] {N : Type u_5} [AddCommMonoid N] [Module R N] ⦃f g : M →ₗ[R] N⦄ (h : ∀ (i : ι), f ∘ₗ (ℳ i).subtype = g ∘ₗ (ℳ i).subtype)
Goal: f = g
-- GenContFract.exists_gcf_pair_rat_eq_of_nth_contsAux
nonrec theorem exists_gcf_pair_rat_eq_of_nth_contsAux :
    ∃ conts : Pair ℚ, (of v).contsAux n = (conts.map (↑) : Pair K) 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] (v : K) (n : ℕ)
Goal: ∃ conts, (GenContFract.of v).contsAux n = GenContFract.Pair.map Rat.cast conts
-- GenContFract.exists_gcf_pair_rat_eq_nth_conts
theorem exists_gcf_pair_rat_eq_nth_conts :
    ∃ conts : Pair ℚ, (of v).conts n = (conts.map (↑) : Pair K) 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] (v : K) (n : ℕ)
Goal: ∃ conts, (GenContFract.of v).conts n = GenContFract.Pair.map Rat.cast conts
-- GenContFract.exists_rat_eq_nth_num
theorem exists_rat_eq_nth_num : ∃ q : ℚ, (of v).nums n = (q : K) 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] (v : K) (n : ℕ)
Goal: ∃ q, (GenContFract.of v).nums n = ↑q
-- GenContFract.exists_rat_eq_nth_den
theorem exists_rat_eq_nth_den : ∃ q : ℚ, (of v).dens n = (q : K) 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] (v : K) (n : ℕ)
Goal: ∃ q, (GenContFract.of v).dens n = ↑q
-- GenContFract.exists_rat_eq_nth_conv
theorem exists_rat_eq_nth_conv : ∃ q : ℚ, (of v).convs n = (q : K) 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] (v : K) (n : ℕ)
Goal: ∃ q, (GenContFract.of v).convs n = ↑q
-- GenContFract.exists_rat_eq_of_terminates
theorem exists_rat_eq_of_terminates (terminates : (of v).Terminates) : ∃ q : ℚ, v = ↑q 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] {v : K} (terminates : (GenContFract.of v).Terminates)
Goal: ∃ q, v = ↑q
-- GenContFract.IntFractPair.coe_of_rat_eq
theorem coe_of_rat_eq : ((IntFractPair.of q).mapFr (↑) : IntFractPair K) = IntFractPair.of v 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] {v : K} {q : ℚ} (v_eq_q : v = ↑q)
Goal: GenContFract.IntFractPair.mapFr Rat.cast (GenContFract.IntFractPair.of q) = GenContFract.IntFractPair.of v
-- GenContFract.IntFractPair.coe_stream_nth_rat_eq
theorem coe_stream_nth_rat_eq :
    ((IntFractPair.stream q n).map (mapFr (↑)) : Option <| IntFractPair K) =
      IntFractPair.stream v n 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] {v : K} {q : ℚ} (v_eq_q : v = ↑q) (n : ℕ)
Goal: Option.map (GenContFract.IntFractPair.mapFr Rat.cast) (GenContFract.IntFractPair.stream q n) =
  GenContFract.IntFractPair.stream v n
-- GenContFract.IntFractPair.coe_stream'_rat_eq
theorem coe_stream'_rat_eq :
    ((IntFractPair.stream q).map (Option.map (mapFr (↑))) : Stream' <| Option <| IntFractPair K) =
      IntFractPair.stream v 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] {v : K} {q : ℚ} (v_eq_q : v = ↑q)
Goal: Stream'.map (Option.map (GenContFract.IntFractPair.mapFr Rat.cast)) (GenContFract.IntFractPair.stream q) =
  GenContFract.IntFractPair.stream v
-- GenContFract.coe_of_h_rat_eq
theorem coe_of_h_rat_eq : (↑((of q).h : ℚ) : K) = (of v).h 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] {v : K} {q : ℚ} (v_eq_q : v = ↑q)
Goal: ↑(GenContFract.of q).h = (GenContFract.of v).h
-- GenContFract.coe_of_s_get?_rat_eq
theorem coe_of_s_get?_rat_eq :
    (((of q).s.get? n).map (Pair.map (↑)) : Option <| Pair K) = (of v).s.get? n 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] {v : K} {q : ℚ} (v_eq_q : v = ↑q) (n : ℕ)
Goal: Option.map (GenContFract.Pair.map Rat.cast) ((GenContFract.of q).s.get? n) = (GenContFract.of v).s.get? n
-- GenContFract.coe_of_s_rat_eq
theorem coe_of_s_rat_eq : ((of q).s.map (Pair.map ((↑))) : Stream'.Seq <| Pair K) = (of v).s 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] {v : K} {q : ℚ} (v_eq_q : v = ↑q)
Goal: Stream'.Seq.map (GenContFract.Pair.map Rat.cast) (GenContFract.of q).s = (GenContFract.of v).s
-- GenContFract.coe_of_rat_eq
theorem coe_of_rat_eq :
    (⟨(of q).h, (of q).s.map (Pair.map (↑))⟩ : GenContFract K) = of v 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] {v : K} {q : ℚ} (v_eq_q : v = ↑q)
Goal: { h := ↑(GenContFract.of q).h, s := Stream'.Seq.map (GenContFract.Pair.map Rat.cast) (GenContFract.of q).s } =
  GenContFract.of v
-- GenContFract.of_terminates_iff_of_rat_terminates
theorem of_terminates_iff_of_rat_terminates {v : K} {q : ℚ} (v_eq_q : v = (q : K)) :
    (of v).Terminates ↔ (of q).Terminates 
Arguments: {K : Type u_1} [LinearOrderedField K] [FloorRing K] {v : K} {q : ℚ} (v_eq_q : v = ↑q)
Goal: (GenContFract.of v).Terminates ↔ (GenContFract.of q).Terminates
-- GenContFract.IntFractPair.of_inv_fr_num_lt_num_of_pos
theorem of_inv_fr_num_lt_num_of_pos (q_pos : 0 < q) : (IntFractPair.of q⁻¹).fr.num < q.num 
Arguments: {q : ℚ} (q_pos : 0 < q)
Goal: (GenContFract.IntFractPair.of q⁻¹).fr.num < q.num
-- GenContFract.IntFractPair.stream_succ_nth_fr_num_lt_nth_fr_num_rat
theorem stream_succ_nth_fr_num_lt_nth_fr_num_rat {ifp_n ifp_succ_n : IntFractPair ℚ}
    (stream_nth_eq : IntFractPair.stream q n = some ifp_n)
    (stream_succ_nth_eq : IntFractPair.stream q (n + 1) = some ifp_succ_n) :
    ifp_succ_n.fr.num < ifp_n.fr.num 
Arguments: {q : ℚ} {n : ℕ} {ifp_n ifp_succ_n : GenContFract.IntFractPair ℚ} (stream_nth_eq : GenContFract.IntFractPair.stream q n = some ifp_n) (stream_succ_nth_eq : GenContFract.IntFractPair.stream q (n + 1) = some ifp_succ_n)
Goal: ifp_succ_n.fr.num < ifp_n.fr.num
-- GenContFract.IntFractPair.stream_nth_fr_num_le_fr_num_sub_n_rat
theorem stream_nth_fr_num_le_fr_num_sub_n_rat :
    ∀ {ifp_n : IntFractPair ℚ},
      IntFractPair.stream q n = some ifp_n → ifp_n.fr.num ≤ (IntFractPair.of q).fr.num - n 
Arguments: {q : ℚ} {n : ℕ} {ifp_n : GenContFract.IntFractPair ℚ}
Goal: GenContFract.IntFractPair.stream q n = some ifp_n → ifp_n.fr.num ≤ (GenContFract.IntFractPair.of q).fr.num - ↑n
-- GenContFract.IntFractPair.exists_nth_stream_eq_none_of_rat
theorem exists_nth_stream_eq_none_of_rat (q : ℚ) : ∃ n : ℕ, IntFractPair.stream q n = none 
Arguments: (q : ℚ)
Goal: ∃ n, GenContFract.IntFractPair.stream q n = none
-- GenContFract.terminates_of_rat
theorem terminates_of_rat (q : ℚ) : (of q).Terminates 
Arguments: (q : ℚ)
Goal: (GenContFract.of q).Terminates