ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- EuclideanGeometry.cos_oangle_right_of_oangle_eq_pi_div_two
theorem cos_oangle_right_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) :
    Real.Angle.cos (∡ p₂ p₃ p₁) = dist p₃ p₂ / dist p₁ p₃ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₂ p₃ p₁).cos = dist p₃ p₂ / dist p₁ p₃
-- EuclideanGeometry.cos_oangle_left_of_oangle_eq_pi_div_two
theorem cos_oangle_left_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) :
    Real.Angle.cos (∡ p₃ p₁ p₂) = dist p₁ p₂ / dist p₁ p₃ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₃ p₁ p₂).cos = dist p₁ p₂ / dist p₁ p₃
-- EuclideanGeometry.sin_oangle_right_of_oangle_eq_pi_div_two
theorem sin_oangle_right_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) :
    Real.Angle.sin (∡ p₂ p₃ p₁) = dist p₁ p₂ / dist p₁ p₃ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₂ p₃ p₁).sin = dist p₁ p₂ / dist p₁ p₃
-- EuclideanGeometry.sin_oangle_left_of_oangle_eq_pi_div_two
theorem sin_oangle_left_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) :
    Real.Angle.sin (∡ p₃ p₁ p₂) = dist p₃ p₂ / dist p₁ p₃ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₃ p₁ p₂).sin = dist p₃ p₂ / dist p₁ p₃
-- EuclideanGeometry.tan_oangle_right_of_oangle_eq_pi_div_two
theorem tan_oangle_right_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) :
    Real.Angle.tan (∡ p₂ p₃ p₁) = dist p₁ p₂ / dist p₃ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₂ p₃ p₁).tan = dist p₁ p₂ / dist p₃ p₂
-- EuclideanGeometry.tan_oangle_left_of_oangle_eq_pi_div_two
theorem tan_oangle_left_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) :
    Real.Angle.tan (∡ p₃ p₁ p₂) = dist p₃ p₂ / dist p₁ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₃ p₁ p₂).tan = dist p₃ p₂ / dist p₁ p₂
-- EuclideanGeometry.cos_oangle_right_mul_dist_of_oangle_eq_pi_div_two
theorem cos_oangle_right_mul_dist_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : Real.Angle.cos (∡ p₂ p₃ p₁) * dist p₁ p₃ = dist p₃ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₂ p₃ p₁).cos * dist p₁ p₃ = dist p₃ p₂
-- EuclideanGeometry.cos_oangle_left_mul_dist_of_oangle_eq_pi_div_two
theorem cos_oangle_left_mul_dist_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : Real.Angle.cos (∡ p₃ p₁ p₂) * dist p₁ p₃ = dist p₁ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₃ p₁ p₂).cos * dist p₁ p₃ = dist p₁ p₂
-- EuclideanGeometry.sin_oangle_right_mul_dist_of_oangle_eq_pi_div_two
theorem sin_oangle_right_mul_dist_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : Real.Angle.sin (∡ p₂ p₃ p₁) * dist p₁ p₃ = dist p₁ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₂ p₃ p₁).sin * dist p₁ p₃ = dist p₁ p₂
-- EuclideanGeometry.sin_oangle_left_mul_dist_of_oangle_eq_pi_div_two
theorem sin_oangle_left_mul_dist_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : Real.Angle.sin (∡ p₃ p₁ p₂) * dist p₁ p₃ = dist p₃ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₃ p₁ p₂).sin * dist p₁ p₃ = dist p₃ p₂
-- EuclideanGeometry.tan_oangle_right_mul_dist_of_oangle_eq_pi_div_two
theorem tan_oangle_right_mul_dist_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : Real.Angle.tan (∡ p₂ p₃ p₁) * dist p₃ p₂ = dist p₁ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₂ p₃ p₁).tan * dist p₃ p₂ = dist p₁ p₂
-- EuclideanGeometry.tan_oangle_left_mul_dist_of_oangle_eq_pi_div_two
theorem tan_oangle_left_mul_dist_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : Real.Angle.tan (∡ p₃ p₁ p₂) * dist p₁ p₂ = dist p₃ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: (∡ p₃ p₁ p₂).tan * dist p₁ p₂ = dist p₃ p₂
-- EuclideanGeometry.dist_div_cos_oangle_right_of_oangle_eq_pi_div_two
theorem dist_div_cos_oangle_right_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : dist p₃ p₂ / Real.Angle.cos (∡ p₂ p₃ p₁) = dist p₁ p₃ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: dist p₃ p₂ / (∡ p₂ p₃ p₁).cos = dist p₁ p₃
-- EuclideanGeometry.dist_div_cos_oangle_left_of_oangle_eq_pi_div_two
theorem dist_div_cos_oangle_left_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : dist p₁ p₂ / Real.Angle.cos (∡ p₃ p₁ p₂) = dist p₁ p₃ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: dist p₁ p₂ / (∡ p₃ p₁ p₂).cos = dist p₁ p₃
-- EuclideanGeometry.dist_div_sin_oangle_right_of_oangle_eq_pi_div_two
theorem dist_div_sin_oangle_right_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : dist p₁ p₂ / Real.Angle.sin (∡ p₂ p₃ p₁) = dist p₁ p₃ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: dist p₁ p₂ / (∡ p₂ p₃ p₁).sin = dist p₁ p₃
-- EuclideanGeometry.dist_div_sin_oangle_left_of_oangle_eq_pi_div_two
theorem dist_div_sin_oangle_left_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : dist p₃ p₂ / Real.Angle.sin (∡ p₃ p₁ p₂) = dist p₁ p₃ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: dist p₃ p₂ / (∡ p₃ p₁ p₂).sin = dist p₁ p₃
-- EuclideanGeometry.dist_div_tan_oangle_right_of_oangle_eq_pi_div_two
theorem dist_div_tan_oangle_right_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : dist p₁ p₂ / Real.Angle.tan (∡ p₂ p₃ p₁) = dist p₃ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: dist p₁ p₂ / (∡ p₂ p₃ p₁).tan = dist p₃ p₂
-- EuclideanGeometry.dist_div_tan_oangle_left_of_oangle_eq_pi_div_two
theorem dist_div_tan_oangle_left_of_oangle_eq_pi_div_two {p₁ p₂ p₃ : P}
    (h : ∡ p₁ p₂ p₃ = ↑(π / 2)) : dist p₃ p₂ / Real.Angle.tan (∡ p₃ p₁ p₂) = dist p₁ p₂ 
Arguments: {V : Type u_1} {P : Type u_2} [NormedAddCommGroup V] [InnerProductSpace ℝ V] [MetricSpace P] [NormedAddTorsor V P] [hd2 : Fact (FiniteDimensional.finrank ℝ V = 2)] [Module.Oriented ℝ V (Fin 2)] {p₁ p₂ p₃ : P} (h : ∡ p₁ p₂ p₃ = ↑(π / 2))
Goal: dist p₃ p₂ / (∡ p₃ p₁ p₂).tan = dist p₁ p₂
-- Denumerable.decode_inv
class Denumerable (α : Type*) extends Encodable α where
    decode_inv : ∀ n, ∃ a ∈ decode n, encode a = n
Arguments: {α : Type u_3} [self : Denumerable α] (n : ℕ)
Goal: ∃ a ∈ Encodable.decode n, Encodable.encode a = n
-- Denumerable.decode_isSome
theorem decode_isSome (α) [Denumerable α] (n : ℕ) : (decode (α := α) n).isSome 
Arguments: (α : Type u_3) [Denumerable α] (n : ℕ)
Goal: (Encodable.decode n).isSome = true
-- Denumerable.decode_eq_ofNat
@[simp]
theorem decode_eq_ofNat (α) [Denumerable α] (n : ℕ) : decode (α := α) n = some (ofNat α n) 
Arguments: (α : Type u_3) [Denumerable α] (n : ℕ)
Goal: Encodable.decode n = some (Denumerable.ofNat α n)
-- Denumerable.ofNat_of_decode
@[simp]
theorem ofNat_of_decode {n b} (h : decode (α := α) n = some b) : ofNat (α := α) n = b 
Arguments: {α : Type u_1} [Denumerable α] {n : ℕ} {b : α} (h : Encodable.decode n = some b)
Goal: Denumerable.ofNat α n = b
-- Denumerable.encode_ofNat
@[simp]
theorem encode_ofNat (n) : encode (ofNat α n) = n 
Arguments: {α : Type u_1} [Denumerable α] (n : ℕ)
Goal: Encodable.encode (Denumerable.ofNat α n) = n
-- Denumerable.ofNat_encode
@[simp]
theorem ofNat_encode (a) : ofNat α (encode a) = a 
Arguments: {α : Type u_1} [Denumerable α] (a : α)
Goal: Denumerable.ofNat α (Encodable.encode a) = a
-- Denumerable.ofEquiv_ofNat
@[simp]
theorem ofEquiv_ofNat (α) {β} [Denumerable α] (e : β ≃ α) (n) :
    @ofNat β (ofEquiv _ e) n = e.symm (ofNat α n) 
Arguments: (α : Type u_3) {β : Type u_4} [Denumerable α] (e : β ≃ α) (n : ℕ)
Goal: Denumerable.ofNat β n = e.symm (Denumerable.ofNat α n)
-- Denumerable.ofNat_nat
@[simp]
theorem ofNat_nat (n) : ofNat ℕ n = n 
Arguments: (n : ℕ)
Goal: Denumerable.ofNat ℕ n = n
-- Denumerable.sigma_ofNat_val
@[simp]
theorem sigma_ofNat_val (n : ℕ) :
    ofNat (Sigma γ) n = ⟨ofNat α (unpair n).1, ofNat (γ _) (unpair n).2⟩ 
Arguments: {α : Type u_1} [Denumerable α] {γ : α → Type u_3} [(a : α) → Denumerable (γ a)] (n : ℕ)
Goal: Denumerable.ofNat (Sigma γ) n =
  ⟨Denumerable.ofNat α (Nat.unpair n).1, Denumerable.ofNat (γ (Denumerable.ofNat α (Nat.unpair n).1)) (Nat.unpair n).2⟩
-- Denumerable.prod_ofNat_val
theorem prod_ofNat_val (n : ℕ) :
    ofNat (α × β) n = (ofNat α (unpair n).1, ofNat β (unpair n).2) 
Arguments: {α : Type u_1} {β : Type u_2} [Denumerable α] [Denumerable β] (n : ℕ)
Goal: Denumerable.ofNat (α × β) n = (Denumerable.ofNat α (Nat.unpair n).1, Denumerable.ofNat β (Nat.unpair n).2)
-- Denumerable.prod_nat_ofNat
@[simp]
theorem prod_nat_ofNat : ofNat (ℕ × ℕ) = unpair 
Goal: Denumerable.ofNat (ℕ × ℕ) = Nat.unpair
-- Nat.Subtype.exists_succ
theorem exists_succ (x : s) : ∃ n, (x : ℕ) + n + 1 ∈ s 
Arguments: {s : Set ℕ} [Infinite ↑s] (x : ↑s)
Goal: ∃ n, ↑x + n + 1 ∈ s
-- Nat.Subtype.succ_le_of_lt
theorem succ_le_of_lt {x y : s} (h : y < x) : succ y ≤ x 
Arguments: {s : Set ℕ} [Infinite ↑s] [DecidablePred fun x => x ∈ s] {x y : ↑s} (h : y < x)
Goal: Nat.Subtype.succ y ≤ x
-- Nat.Subtype.le_succ_of_forall_lt_le
theorem le_succ_of_forall_lt_le {x y : s} (h : ∀ z < x, z ≤ y) : x ≤ succ y 
Arguments: {s : Set ℕ} [Infinite ↑s] [DecidablePred fun x => x ∈ s] {x y : ↑s} (h : ∀ z < x, z ≤ y)
Goal: x ≤ Nat.Subtype.succ y
-- Nat.Subtype.lt_succ_self
theorem lt_succ_self (x : s) : x < succ x 
Arguments: {s : Set ℕ} [Infinite ↑s] [DecidablePred fun x => x ∈ s] (x : ↑s)
Goal: x < Nat.Subtype.succ x
-- Nat.Subtype.lt_succ_iff_le
theorem lt_succ_iff_le {x y : s} : x < succ y ↔ x ≤ y 
Arguments: {s : Set ℕ} [Infinite ↑s] [DecidablePred fun x => x ∈ s] {x y : ↑s}
Goal: x < Nat.Subtype.succ y ↔ x ≤ y
-- Nat.Subtype.ofNat_surjective_aux
theorem ofNat_surjective_aux : ∀ {x : ℕ} (hx : x ∈ s), ∃ n, ofNat s n = ⟨x, hx⟩
  
Arguments: {s : Set ℕ} [Infinite ↑s] [DecidablePred fun x => x ∈ s] {x : ℕ} (hx : x ∈ s)
Goal: ∃ n, Nat.Subtype.ofNat s n = ⟨x, hx⟩
-- Nat.Subtype.ofNat_surjective
theorem ofNat_surjective : Surjective (ofNat s) 
Arguments: {s : Set ℕ} [Infinite ↑s] [DecidablePred fun x => x ∈ s]
Goal: Function.Surjective (Nat.Subtype.ofNat s)
-- Nat.Subtype.ofNat_range
@[simp]
theorem ofNat_range : Set.range (ofNat s) = Set.univ 
Arguments: {s : Set ℕ} [Infinite ↑s] [DecidablePred fun x => x ∈ s]
Goal: Set.range (Nat.Subtype.ofNat s) = Set.univ
-- Nat.Subtype.coe_comp_ofNat_range
@[simp]
theorem coe_comp_ofNat_range : Set.range ((↑) ∘ ofNat s : ℕ → ℕ) = s 
Arguments: {s : Set ℕ} [Infinite ↑s] [DecidablePred fun x => x ∈ s]
Goal: Set.range (Subtype.val ∘ Nat.Subtype.ofNat s) = s
-- _private.Mathlib.Logic.Denumerable.0.Nat.Subtype.toFunAux_eq
private theorem toFunAux_eq {s : Set ℕ} [DecidablePred (· ∈ s)] (x : s) :
    toFunAux x = ((Finset.range x).filter (· ∈ s)).card 
Arguments: {s : Set ℕ} [DecidablePred fun x => x ∈ s] (x : ↑s)
Goal: Nat.Subtype.toFunAux x = (Finset.filter (fun x => x ∈ s) (Finset.range ↑x)).card
-- _private.Mathlib.Logic.Denumerable.0.Nat.Subtype.right_inverse_aux
private theorem right_inverse_aux : ∀ n, toFunAux (ofNat s n) = n
  
Arguments: {s : Set ℕ} [Infinite ↑s] [DecidablePred fun x => x ∈ s] (n : ℕ)
Goal: Nat.Subtype.toFunAux (Nat.Subtype.ofNat s n) = n
-- nonempty_denumerable
theorem nonempty_denumerable (α : Type*) [Countable α] [Infinite α] : Nonempty (Denumerable α) 
Arguments: (α : Type u_3) [Countable α] [Infinite α]
Goal: Nonempty (Denumerable α)
-- nonempty_denumerable_iff
theorem nonempty_denumerable_iff {α : Type*} :
    Nonempty (Denumerable α) ↔ Countable α ∧ Infinite α 
Arguments: {α : Type u_3}
Goal: Nonempty (Denumerable α) ↔ Countable α ∧ Infinite α
-- Function.Embedding.toEquivRange_apply
@[simp]
theorem Function.Embedding.toEquivRange_apply (a : α) :
    f.toEquivRange a = ⟨f a, Set.mem_range_self a⟩ 
Arguments: {α : Type u_1} {β : Type u_2} [Fintype α] [DecidableEq β] (f : α ↪ β) (a : α)
Goal: f.toEquivRange a = ⟨f a, ⋯⟩
-- Function.Embedding.toEquivRange_symm_apply_self
@[simp]
theorem Function.Embedding.toEquivRange_symm_apply_self (a : α) :
    f.toEquivRange.symm ⟨f a, Set.mem_range_self a⟩ = a 
Arguments: {α : Type u_1} {β : Type u_2} [Fintype α] [DecidableEq β] (f : α ↪ β) (a : α)
Goal: f.toEquivRange.symm ⟨f a, ⋯⟩ = a
-- Function.Embedding.toEquivRange_eq_ofInjective
theorem Function.Embedding.toEquivRange_eq_ofInjective :
    f.toEquivRange = Equiv.ofInjective f f.injective 
Arguments: {α : Type u_1} {β : Type u_2} [Fintype α] [DecidableEq β] (f : α ↪ β)
Goal: f.toEquivRange = Equiv.ofInjective ⇑f ⋯
-- Equiv.Perm.viaFintypeEmbedding_apply_image
@[simp]
theorem Equiv.Perm.viaFintypeEmbedding_apply_image (a : α) :
    e.viaFintypeEmbedding f (f a) = f (e a) 
Arguments: {α : Type u_1} {β : Type u_2} [Fintype α] [DecidableEq β] (e : Equiv.Perm α) (f : α ↪ β) (a : α)
Goal: (e.viaFintypeEmbedding f) (f a) = f (e a)
-- Equiv.Perm.viaFintypeEmbedding_apply_mem_range
theorem Equiv.Perm.viaFintypeEmbedding_apply_mem_range {b : β} (h : b ∈ Set.range f) :
    e.viaFintypeEmbedding f b = f (e (f.invOfMemRange ⟨b, h⟩)) 
Arguments: {α : Type u_1} {β : Type u_2} [Fintype α] [DecidableEq β] (e : Equiv.Perm α) (f : α ↪ β) {b : β} (h : b ∈ Set.range ⇑f)
Goal: (e.viaFintypeEmbedding f) b = f (e (f.invOfMemRange ⟨b, h⟩))
-- Equiv.Perm.viaFintypeEmbedding_apply_not_mem_range
theorem Equiv.Perm.viaFintypeEmbedding_apply_not_mem_range {b : β} (h : b ∉ Set.range f) :
    e.viaFintypeEmbedding f b = b 
Arguments: {α : Type u_1} {β : Type u_2} [Fintype α] [DecidableEq β] (e : Equiv.Perm α) (f : α ↪ β) {b : β} (h : b ∉ Set.range ⇑f)
Goal: (e.viaFintypeEmbedding f) b = b
-- Equiv.Perm.viaFintypeEmbedding_sign
@[simp]
theorem Equiv.Perm.viaFintypeEmbedding_sign [DecidableEq α] [Fintype β] :
    Equiv.Perm.sign (e.viaFintypeEmbedding f) = Equiv.Perm.sign e 
Arguments: {α : Type u_1} {β : Type u_2} [Fintype α] [DecidableEq β] (e : Equiv.Perm α) (f : α ↪ β) [DecidableEq α] [Fintype β]
Goal: Equiv.Perm.sign (e.viaFintypeEmbedding f) = Equiv.Perm.sign e
-- Equiv.extendSubtype_apply_of_mem
theorem extendSubtype_apply_of_mem (e : { x // p x } ≃ { x // q x }) (x) (hx : p x) :
    e.extendSubtype x = e ⟨x, hx⟩ 
Arguments: {α : Type u_1} [Finite α] {p q : α → Prop} [DecidablePred p] [DecidablePred q] (e : { x // p x } ≃ { x // q x }) (x : α) (hx : p x)
Goal: e.extendSubtype x = ↑(e ⟨x, hx⟩)
-- Equiv.extendSubtype_mem
theorem extendSubtype_mem (e : { x // p x } ≃ { x // q x }) (x) (hx : p x) :
    q (e.extendSubtype x) 
Arguments: {α : Type u_1} [Finite α] {p q : α → Prop} [DecidablePred p] [DecidablePred q] (e : { x // p x } ≃ { x // q x }) (x : α) (hx : p x)
Goal: q (e.extendSubtype x)
-- Equiv.extendSubtype_apply_of_not_mem
theorem extendSubtype_apply_of_not_mem (e : { x // p x } ≃ { x // q x }) (x) (hx : ¬p x) :
    e.extendSubtype x = e.toCompl ⟨x, hx⟩ 
Arguments: {α : Type u_1} [Finite α] {p q : α → Prop} [DecidablePred p] [DecidablePred q] (e : { x // p x } ≃ { x // q x }) (x : α) (hx : ¬p x)
Goal: e.extendSubtype x = ↑(e.toCompl ⟨x, hx⟩)
-- Equiv.extendSubtype_not_mem
theorem extendSubtype_not_mem (e : { x // p x } ≃ { x // q x }) (x) (hx : ¬p x) :
    ¬q (e.extendSubtype x) 
Arguments: {α : Type u_1} [Finite α] {p q : α → Prop} [DecidablePred p] [DecidablePred q] (e : { x // p x } ≃ { x // q x }) (x : α) (hx : ¬p x)
Goal: ¬q (e.extendSubtype x)
-- Equiv.boolProdNatEquivNat_apply
@[simps]
def boolProdNatEquivNat : Bool × ℕ ≃ ℕ 
Goal: ∀ (a : Bool × ℕ), Equiv.boolProdNatEquivNat a = Function.uncurry Nat.bit a
-- Equiv.boolProdNatEquivNat_symm_apply
@[simps]
def boolProdNatEquivNat : Bool × ℕ ≃ ℕ 
Goal: ∀ (a : ℕ), Equiv.boolProdNatEquivNat.symm a = a.boddDiv2
-- Equiv.natSumNatEquivNat_symm_apply
@[simps! symm_apply]
def natSumNatEquivNat : ℕ ⊕ ℕ ≃ ℕ 
Goal: ∀ (a : ℕ), Equiv.natSumNatEquivNat.symm a = Bool.rec (Sum.inl a.div2) (Sum.inr a.div2) a.bodd
-- Equiv.natSumNatEquivNat_apply
@[simp]
theorem natSumNatEquivNat_apply : ⇑natSumNatEquivNat = Sum.elim (2 * ·) (2 * · + 1) 
Goal: ⇑Equiv.natSumNatEquivNat = Sum.elim (fun x => 2 * x) fun x => 2 * x + 1
-- Equiv.asEmbedding_range
@[simp]
theorem Equiv.asEmbedding_range {α β : Sort _} {p : β → Prop} (e : α ≃ Subtype p) :
    Set.range e.asEmbedding = setOf p 
Arguments: {α : Sort u_1} {β : Type u_2} {p : β → Prop} (e : α ≃ Subtype p)
Goal: Set.range ⇑e.asEmbedding = setOf p
-- Function.Embedding.coeWithTop_apply
@[simps]
def coeWithTop {α} : α ↪ WithTop α 
Arguments: {α : Type u_1}
Goal: ∀ (a : α), Function.Embedding.coeWithTop a = ↑a
-- Function.Embedding.optionElim_apply
@[simps]
def optionElim {α β} (f : α ↪ β) (x : β) (h : x ∉ Set.range f) : Option α ↪ β 
Arguments: {α : Type u_1} {β : Type u_2} (f : α ↪ β) (x : β) (h : x ∉ Set.range ⇑f)
Goal: ∀ (a : Option α), (f.optionElim x h) a = Option.elim' x (⇑f) a
-- Function.Embedding.optionEmbeddingEquiv_symm_apply
@[simps]
def optionEmbeddingEquiv (α β) : (Option α ↪ β) ≃ Σ f : α ↪ β, ↥(Set.range f)ᶜ 
Arguments: (α : Type u_1) (β : Type u_2) (f : (f : α ↪ β) × ↑(Set.range ⇑f)ᶜ)
Goal: (Function.Embedding.optionEmbeddingEquiv α β).symm f = f.fst.optionElim ↑f.snd ⋯
-- Function.Embedding.optionEmbeddingEquiv_apply_snd_coe
@[simps]
def optionEmbeddingEquiv (α β) : (Option α ↪ β) ≃ Σ f : α ↪ β, ↥(Set.range f)ᶜ 
Arguments: (α : Type u_1) (β : Type u_2) (f : Option α ↪ β)
Goal: ↑((Function.Embedding.optionEmbeddingEquiv α β) f).snd = f none
-- Function.Embedding.optionEmbeddingEquiv_apply_fst
@[simps]
def optionEmbeddingEquiv (α β) : (Option α ↪ β) ≃ Σ f : α ↪ β, ↥(Set.range f)ᶜ 
Arguments: (α : Type u_1) (β : Type u_2) (f : Option α ↪ β)
Goal: ((Function.Embedding.optionEmbeddingEquiv α β) f).fst = Function.Embedding.coeWithTop.trans f
-- Function.Embedding.codRestrict_apply
@[simp]
theorem codRestrict_apply {α β} (p) (f : α ↪ β) (H a) : codRestrict p f H a = ⟨f a, H a⟩ 
Arguments: {α : Sort u_1} {β : Type u_2} (p : Set β) (f : α ↪ β) (H : ∀ (a : α), f a ∈ p) (a : α)
Goal: (Function.Embedding.codRestrict p f H) a = ⟨f a, ⋯⟩
-- Function.Embedding.image_apply
@[simps apply]
protected def image {α β} (f : α ↪ β) : Set α ↪ Set β 
Arguments: {α : Type u_1} {β : Type u_2} (f : α ↪ β) (s : Set α)
Goal: f.image s = ⇑f '' s
-- Set.embeddingOfSubset_apply_coe
@[simps apply_coe]
def embeddingOfSubset {α} (s t : Set α) (h : s ⊆ t) : s ↪ t 
Arguments: {α : Type u_1} (s t : Set α) (h : s ⊆ t) (x : ↑s)
Goal: ↑((s.embeddingOfSubset t h) x) = ↑x
-- subtypeOrEquiv_apply
@[simps apply]
def subtypeOrEquiv (p q : α → Prop) [DecidablePred p] (h : Disjoint p q) :
    { x // p x ∨ q x } ≃ { x // p x } ⊕ { x // q x } 
Arguments: {α : Type u_1} (p q : α → Prop) [DecidablePred p] (h : Disjoint p q) (a : { x // p x ∨ q x })
Goal: (subtypeOrEquiv p q h) a = (subtypeOrLeftEmbedding p q) a
-- subtypeOrEquiv_symm_inl
@[simp]
theorem subtypeOrEquiv_symm_inl (p q : α → Prop) [DecidablePred p] (h : Disjoint p q)
    (x : { x // p x }) : (subtypeOrEquiv p q h).symm (Sum.inl x) = ⟨x, Or.inl x.prop⟩ 
Arguments: {α : Type u_1} (p q : α → Prop) [DecidablePred p] (h : Disjoint p q) (x : { x // p x })
Goal: (subtypeOrEquiv p q h).symm (Sum.inl x) = ⟨↑x, ⋯⟩
-- subtypeOrEquiv_symm_inr
@[simp]
theorem subtypeOrEquiv_symm_inr (p q : α → Prop) [DecidablePred p] (h : Disjoint p q)
    (x : { x // q x }) : (subtypeOrEquiv p q h).symm (Sum.inr x) = ⟨x, Or.inr x.prop⟩ 
Arguments: {α : Type u_1} (p q : α → Prop) [DecidablePred p] (h : Disjoint p q) (x : { x // q x })
Goal: (subtypeOrEquiv p q h).symm (Sum.inr x) = ⟨↑x, ⋯⟩
-- Function.Embedding.sumSet_apply
@[simps] def Function.Embedding.sumSet (h : Disjoint s t) : s ⊕ t ↪ α 
Arguments: {α : Type u_1} {s t : Set α} (h : Disjoint s t)
Goal: ∀ (a : ↑s ⊕ ↑t), (Function.Embedding.sumSet h) a = Sum.elim Subtype.val Subtype.val a
-- Function.Embedding.coe_sumSet
@[norm_cast] lemma Function.Embedding.coe_sumSet (h : Disjoint s t) :
    (Function.Embedding.sumSet h : s ⊕ t → α) = Sum.elim (↑) (↑) 
Arguments: {α : Type u_1} {s t : Set α} (h : Disjoint s t)
Goal: ⇑(Function.Embedding.sumSet h) = Sum.elim Subtype.val Subtype.val
-- Function.Embedding.sumSet_preimage_inl
@[simp] theorem Function.Embedding.sumSet_preimage_inl (h : Disjoint s t) :
    .inl ⁻¹' (Function.Embedding.sumSet h ⁻¹' r) = r ∩ s 
Arguments: {α : Type u_1} {s t r : Set α} (h : Disjoint s t)
Goal: ↑(Sum.inl ⁻¹' (⇑(Function.Embedding.sumSet h) ⁻¹' r)) = r ∩ s
-- Function.Embedding.sumSet_preimage_inr
@[simp] theorem Function.Embedding.sumSet_preimage_inr (h : Disjoint s t) :
    .inr ⁻¹' (Function.Embedding.sumSet h ⁻¹' r) = r ∩ t 
Arguments: {α : Type u_1} {s t r : Set α} (h : Disjoint s t)
Goal: ↑(Sum.inr ⁻¹' (⇑(Function.Embedding.sumSet h) ⁻¹' r)) = r ∩ t
-- Function.Embedding.sumSet_range
@[simp] theorem Function.Embedding.sumSet_range {s t : Set α} (h : Disjoint s t) :
    range (Function.Embedding.sumSet h) = s ∪ t 
Arguments: {α : Type u_1} {s t : Set α} (h : Disjoint s t)
Goal: Set.range ⇑(Function.Embedding.sumSet h) = s ∪ t
-- Function.Embedding.sigmaSet_apply
@[simps] def Function.Embedding.sigmaSet {s : ι → Set α} (h : Pairwise (Disjoint on s)) :
    (i : ι) × s i ↪ α 
Arguments: {α : Type u_1} {ι : Type u_2} {s : ι → Set α} (h : Pairwise (Disjoint on s)) (x : (i : ι) × ↑(s i))
Goal: (Function.Embedding.sigmaSet h) x = ↑x.snd