ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- smul_nonpos_iff_neg_imp_nonneg
lemma smul_nonpos_iff_neg_imp_nonneg : a • b ≤ 0 ↔ (a < 0 → 0 ≤ b) ∧ (0 < b → a ≤ 0) 
Arguments: {α : Type u_1} {β : Type u_2} [LinearOrderedRing α] [LinearOrderedAddCommGroup β] [Module α β] [PosSMulStrictMono α β] {a : α} {b : β}
Goal: a • b ≤ 0 ↔ (a < 0 → 0 ≤ b) ∧ (0 < b → a ≤ 0)
-- inv_smul_le_iff_of_neg
lemma inv_smul_le_iff_of_neg (h : a < 0) : a⁻¹ • b₁ ≤ b₂ ↔ a • b₂ ≤ b₁ 
Arguments: {α : Type u_1} {β : Type u_2} [LinearOrderedField α] [OrderedAddCommGroup β] [Module α β] {a : α} {b₁ b₂ : β} [PosSMulMono α β] (h : a < 0)
Goal: a⁻¹ • b₁ ≤ b₂ ↔ a • b₂ ≤ b₁
-- smul_inv_le_iff_of_neg
lemma smul_inv_le_iff_of_neg (h : a < 0) : b₁ ≤ a⁻¹ • b₂ ↔ b₂ ≤ a • b₁ 
Arguments: {α : Type u_1} {β : Type u_2} [LinearOrderedField α] [OrderedAddCommGroup β] [Module α β] {a : α} {b₁ b₂ : β} [PosSMulMono α β] (h : a < 0)
Goal: b₁ ≤ a⁻¹ • b₂ ↔ b₂ ≤ a • b₁
-- OrderIso.smulRightDual_symm_apply
@[simps!]
def OrderIso.smulRightDual (ha : a < 0) : β ≃o βᵒᵈ 
Arguments: {α : Type u_1} (β : Type u_2) [LinearOrderedField α] [OrderedAddCommGroup β] [Module α β] {a : α} [PosSMulMono α β] (ha : a < 0)
Goal: ∀ (a_1 : βᵒᵈ), (RelIso.symm (OrderIso.smulRightDual β ha)) a_1 = a⁻¹ • OrderDual.ofDual a_1
-- OrderIso.smulRightDual_apply
@[simps!]
def OrderIso.smulRightDual (ha : a < 0) : β ≃o βᵒᵈ 
Arguments: {α : Type u_1} (β : Type u_2) [LinearOrderedField α] [OrderedAddCommGroup β] [Module α β] {a : α} [PosSMulMono α β] (ha : a < 0)
Goal: ∀ (a_1 : β), (OrderIso.smulRightDual β ha) a_1 = a • OrderDual.toDual a_1
-- inv_smul_lt_iff_of_neg
lemma inv_smul_lt_iff_of_neg (h : a < 0) : a⁻¹ • b₁ < b₂ ↔ a • b₂ < b₁ 
Arguments: {α : Type u_1} {β : Type u_2} [LinearOrderedField α] [OrderedAddCommGroup β] [Module α β] {a : α} {b₁ b₂ : β} [PosSMulStrictMono α β] (h : a < 0)
Goal: a⁻¹ • b₁ < b₂ ↔ a • b₂ < b₁
-- smul_inv_lt_iff_of_neg
lemma smul_inv_lt_iff_of_neg (h : a < 0) : b₁ < a⁻¹ • b₂ ↔ b₂ < a • b₁ 
Arguments: {α : Type u_1} {β : Type u_2} [LinearOrderedField α] [OrderedAddCommGroup β] [Module α β] {a : α} {b₁ b₂ : β} [PosSMulStrictMono α β] (h : a < 0)
Goal: b₁ < a⁻¹ • b₂ ↔ b₂ < a • b₁
-- PosSMulMono.lift
lemma PosSMulMono.lift [PosSMulMono α γ]
    (hf : ∀ {b₁ b₂}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂)
    (smul : ∀ (a : α) b, f (a • b) = a • f b) : PosSMulMono α β 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Zero α] [Preorder α] [Preorder β] [Preorder γ] [SMul α β] [SMul α γ] (f : β → γ) [PosSMulMono α γ] (hf : ∀ {b₁ b₂ : β}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂) (smul : ∀ (a : α) (b : β), f (a • b) = a • f b)
Goal: PosSMulMono α β
-- PosSMulStrictMono.lift
lemma PosSMulStrictMono.lift [PosSMulStrictMono α γ]
    (hf : ∀ {b₁ b₂}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂)
    (smul : ∀ (a : α) b, f (a • b) = a • f b) : PosSMulStrictMono α β 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Zero α] [Preorder α] [Preorder β] [Preorder γ] [SMul α β] [SMul α γ] (f : β → γ) [PosSMulStrictMono α γ] (hf : ∀ {b₁ b₂ : β}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂) (smul : ∀ (a : α) (b : β), f (a • b) = a • f b)
Goal: PosSMulStrictMono α β
-- PosSMulReflectLE.lift
lemma PosSMulReflectLE.lift [PosSMulReflectLE α γ]
    (hf : ∀ {b₁ b₂}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂)
    (smul : ∀ (a : α) b, f (a • b) = a • f b) : PosSMulReflectLE α β 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Zero α] [Preorder α] [Preorder β] [Preorder γ] [SMul α β] [SMul α γ] (f : β → γ) [PosSMulReflectLE α γ] (hf : ∀ {b₁ b₂ : β}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂) (smul : ∀ (a : α) (b : β), f (a • b) = a • f b)
Goal: PosSMulReflectLE α β
-- PosSMulReflectLT.lift
lemma PosSMulReflectLT.lift [PosSMulReflectLT α γ]
    (hf : ∀ {b₁ b₂}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂)
    (smul : ∀ (a : α) b, f (a • b) = a • f b) : PosSMulReflectLT α β 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Zero α] [Preorder α] [Preorder β] [Preorder γ] [SMul α β] [SMul α γ] (f : β → γ) [PosSMulReflectLT α γ] (hf : ∀ {b₁ b₂ : β}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂) (smul : ∀ (a : α) (b : β), f (a • b) = a • f b)
Goal: PosSMulReflectLT α β
-- SMulPosMono.lift
lemma SMulPosMono.lift [SMulPosMono α γ]
    (hf : ∀ {b₁ b₂}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂)
    (smul : ∀ (a : α) b, f (a • b) = a • f b)
    (zero : f 0 = 0) : SMulPosMono α β 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Preorder α] [Zero β] [Preorder β] [Zero γ] [Preorder γ] [SMul α β] [SMul α γ] (f : β → γ) [SMulPosMono α γ] (hf : ∀ {b₁ b₂ : β}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂) (smul : ∀ (a : α) (b : β), f (a • b) = a • f b) (zero : f 0 = 0)
Goal: SMulPosMono α β
-- SMulPosStrictMono.lift
lemma SMulPosStrictMono.lift [SMulPosStrictMono α γ]
    (hf : ∀ {b₁ b₂}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂)
    (smul : ∀ (a : α) b, f (a • b) = a • f b)
    (zero : f 0 = 0) : SMulPosStrictMono α β 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Preorder α] [Zero β] [Preorder β] [Zero γ] [Preorder γ] [SMul α β] [SMul α γ] (f : β → γ) [SMulPosStrictMono α γ] (hf : ∀ {b₁ b₂ : β}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂) (smul : ∀ (a : α) (b : β), f (a • b) = a • f b) (zero : f 0 = 0)
Goal: SMulPosStrictMono α β
-- SMulPosReflectLE.lift
lemma SMulPosReflectLE.lift [SMulPosReflectLE α γ]
    (hf : ∀ {b₁ b₂}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂)
    (smul : ∀ (a : α) b, f (a • b) = a • f b)
    (zero : f 0 = 0) : SMulPosReflectLE α β 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Preorder α] [Zero β] [Preorder β] [Zero γ] [Preorder γ] [SMul α β] [SMul α γ] (f : β → γ) [SMulPosReflectLE α γ] (hf : ∀ {b₁ b₂ : β}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂) (smul : ∀ (a : α) (b : β), f (a • b) = a • f b) (zero : f 0 = 0)
Goal: SMulPosReflectLE α β
-- SMulPosReflectLT.lift
lemma SMulPosReflectLT.lift [SMulPosReflectLT α γ]
    (hf : ∀ {b₁ b₂}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂)
    (smul : ∀ (a : α) b, f (a • b) = a • f b)
    (zero : f 0 = 0) : SMulPosReflectLT α β 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} [Preorder α] [Zero β] [Preorder β] [Zero γ] [Preorder γ] [SMul α β] [SMul α γ] (f : β → γ) [SMulPosReflectLT α γ] (hf : ∀ {b₁ b₂ : β}, f b₁ ≤ f b₂ ↔ b₁ ≤ b₂) (smul : ∀ (a : α) (b : β), f (a • b) = a • f b) (zero : f 0 = 0)
Goal: SMulPosReflectLT α β
-- _private.Mathlib.Algebra.Order.Module.Defs.0.Mathlib.Meta.Positivity.smul_nonneg_of_pos_of_nonneg
private theorem smul_nonneg_of_pos_of_nonneg (ha : 0 < a) (hb : 0 ≤ b) : 0 ≤ a • b 
Arguments: {α : Type u_1} {β : Type u_2} [Zero α] [Zero β] [SMulZeroClass α β] [Preorder α] [Preorder β] [PosSMulMono α β] {a : α} {b : β} (ha : 0 < a) (hb : 0 ≤ b)
Goal: 0 ≤ a • b
-- _private.Mathlib.Algebra.Order.Module.Defs.0.Mathlib.Meta.Positivity.smul_nonneg_of_nonneg_of_pos
private theorem smul_nonneg_of_nonneg_of_pos (ha : 0 ≤ a) (hb : 0 < b) : 0 ≤ a • b 
Arguments: {α : Type u_1} {β : Type u_2} [Zero α] [Zero β] [SMulZeroClass α β] [Preorder α] [Preorder β] [PosSMulMono α β] {a : α} {b : β} (ha : 0 ≤ a) (hb : 0 < b)
Goal: 0 ≤ a • b
-- _private.Mathlib.Algebra.Order.Module.Defs.0.Mathlib.Meta.Positivity.smul_ne_zero_of_pos_of_ne_zero
private theorem smul_ne_zero_of_pos_of_ne_zero [Preorder α] (ha : 0 < a) (hb : b ≠ 0) : a • b ≠ 0 
Arguments: {α : Type u_1} {β : Type u_2} [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] {a : α} {b : β} [Preorder α] (ha : 0 < a) (hb : b ≠ 0)
Goal: a • b ≠ 0
-- _private.Mathlib.Algebra.Order.Module.Defs.0.Mathlib.Meta.Positivity.smul_ne_zero_of_ne_zero_of_pos
private theorem smul_ne_zero_of_ne_zero_of_pos [Preorder β] (ha : a ≠ 0) (hb : 0 < b) : a • b ≠ 0 
Arguments: {α : Type u_1} {β : Type u_2} [Zero α] [Zero β] [SMul α β] [NoZeroSMulDivisors α β] {a : α} {b : β} [Preorder β] (ha : a ≠ 0) (hb : 0 < b)
Goal: a • b ≠ 0
-- Finset.sup_mul_le_mul_sup_of_nonneg
theorem sup_mul_le_mul_sup_of_nonneg [OrderBot R] (s : Finset ι) (ha : ∀ i ∈ s, 0 ≤ a i)
    (hb : ∀ i ∈ s, 0 ≤ b i) : s.sup (a * b) ≤ s.sup a * s.sup b 
Arguments: {ι : Type u_1} {R : Type u_2} [LinearOrderedSemiring R] {a b : ι → R} [OrderBot R] (s : Finset ι) (ha : ∀ i ∈ s, 0 ≤ a i) (hb : ∀ i ∈ s, 0 ≤ b i)
Goal: s.sup (a * b) ≤ s.sup a * s.sup b
-- Finset.mul_inf_le_inf_mul_of_nonneg
theorem mul_inf_le_inf_mul_of_nonneg [OrderTop R] (s : Finset ι) (ha : ∀ i ∈ s, 0 ≤ a i)
    (hb : ∀ i ∈ s, 0 ≤ b i) : s.inf a * s.inf b ≤ s.inf (a * b) 
Arguments: {ι : Type u_1} {R : Type u_2} [LinearOrderedSemiring R] {a b : ι → R} [OrderTop R] (s : Finset ι) (ha : ∀ i ∈ s, 0 ≤ a i) (hb : ∀ i ∈ s, 0 ≤ b i)
Goal: s.inf a * s.inf b ≤ s.inf (a * b)
-- Finset.sup'_mul_le_mul_sup'_of_nonneg
theorem sup'_mul_le_mul_sup'_of_nonneg (s : Finset ι) (H : s.Nonempty) (ha : ∀ i ∈ s, 0 ≤ a i)
    (hb : ∀ i ∈ s, 0 ≤ b i) : s.sup' H (a * b) ≤ s.sup' H a * s.sup' H b 
Arguments: {ι : Type u_1} {R : Type u_2} [LinearOrderedSemiring R] {a b : ι → R} (s : Finset ι) (H : s.Nonempty) (ha : ∀ i ∈ s, 0 ≤ a i) (hb : ∀ i ∈ s, 0 ≤ b i)
Goal: s.sup' H (a * b) ≤ s.sup' H a * s.sup' H b
-- Finset.inf'_mul_le_mul_inf'_of_nonneg
theorem inf'_mul_le_mul_inf'_of_nonneg (s : Finset ι) (H : s.Nonempty) (ha : ∀ i ∈ s, 0 ≤ a i)
    (hb : ∀ i ∈ s, 0 ≤ b i) : s.inf' H a * s.inf' H b ≤ s.inf' H (a * b) 
Arguments: {ι : Type u_1} {R : Type u_2} [LinearOrderedSemiring R] {a b : ι → R} (s : Finset ι) (H : s.Nonempty) (ha : ∀ i ∈ s, 0 ≤ a i) (hb : ∀ i ∈ s, 0 ≤ b i)
Goal: s.inf' H a * s.inf' H b ≤ s.inf' H (a * b)
-- FloorSemiring.floor_of_neg
class FloorSemiring (α) [OrderedSemiring α] where
    floor : α → ℕ
    ceil : α → ℕ
    floor_of_neg {a : α} (ha : a < 0) : floor a = 0
    gc_floor {a : α} {n : ℕ} (ha : 0 ≤ a) : n ≤ floor a ↔ (n : α) ≤ a
    gc_ceil : GaloisConnection ceil (↑)
Arguments: {α : Type u_4} [OrderedSemiring α] [self : FloorSemiring α] {a : α} (ha : a < 0)
Goal: FloorSemiring.floor a = 0
-- FloorSemiring.gc_floor
class FloorSemiring (α) [OrderedSemiring α] where
    floor : α → ℕ
    ceil : α → ℕ
    floor_of_neg {a : α} (ha : a < 0) : floor a = 0
    gc_floor {a : α} {n : ℕ} (ha : 0 ≤ a) : n ≤ floor a ↔ (n : α) ≤ a
    gc_ceil : GaloisConnection ceil (↑)
Arguments: {α : Type u_4} [OrderedSemiring α] [self : FloorSemiring α] {a : α} {n : ℕ} (ha : 0 ≤ a)
Goal: n ≤ FloorSemiring.floor a ↔ ↑n ≤ a
-- FloorSemiring.gc_ceil
class FloorSemiring (α) [OrderedSemiring α] where
    floor : α → ℕ
    ceil : α → ℕ
    floor_of_neg {a : α} (ha : a < 0) : floor a = 0
    gc_floor {a : α} {n : ℕ} (ha : 0 ≤ a) : n ≤ floor a ↔ (n : α) ≤ a
    gc_ceil : GaloisConnection ceil (↑)
Arguments: {α : Type u_4} [OrderedSemiring α] [self : FloorSemiring α]
Goal: GaloisConnection FloorSemiring.ceil Nat.cast
-- Nat.floor_nat
@[simp]
theorem floor_nat : (Nat.floor : ℕ → ℕ) = id 
Goal: Nat.floor = id
-- Nat.ceil_nat
@[simp]
theorem ceil_nat : (Nat.ceil : ℕ → ℕ) = id 
Goal: Nat.ceil = id
-- Nat.le_floor_iff
theorem le_floor_iff (ha : 0 ≤ a) : n ≤ ⌊a⌋₊ ↔ (n : α) ≤ a 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (ha : 0 ≤ a)
Goal: n ≤ ⌊a⌋₊ ↔ ↑n ≤ a
-- Nat.le_floor
theorem le_floor (h : (n : α) ≤ a) : n ≤ ⌊a⌋₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (h : ↑n ≤ a)
Goal: n ≤ ⌊a⌋₊
-- Nat.floor_lt
theorem floor_lt (ha : 0 ≤ a) : ⌊a⌋₊ < n ↔ a < n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (ha : 0 ≤ a)
Goal: ⌊a⌋₊ < n ↔ a < ↑n
-- Nat.floor_lt_one
theorem floor_lt_one (ha : 0 ≤ a) : ⌊a⌋₊ < 1 ↔ a < 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} (ha : 0 ≤ a)
Goal: ⌊a⌋₊ < 1 ↔ a < 1
-- Nat.lt_of_floor_lt
theorem lt_of_floor_lt (h : ⌊a⌋₊ < n) : a < n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (h : ⌊a⌋₊ < n)
Goal: a < ↑n
-- Nat.lt_one_of_floor_lt_one
theorem lt_one_of_floor_lt_one (h : ⌊a⌋₊ < 1) : a < 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} (h : ⌊a⌋₊ < 1)
Goal: a < 1
-- Nat.floor_le
theorem floor_le (ha : 0 ≤ a) : (⌊a⌋₊ : α) ≤ a 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} (ha : 0 ≤ a)
Goal: ↑⌊a⌋₊ ≤ a
-- Nat.lt_succ_floor
theorem lt_succ_floor (a : α) : a < ⌊a⌋₊.succ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (a : α)
Goal: a < ↑⌊a⌋₊.succ
-- Nat.lt_floor_add_one
theorem lt_floor_add_one (a : α) : a < ⌊a⌋₊ + 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (a : α)
Goal: a < ↑⌊a⌋₊ + 1
-- Nat.floor_natCast
@[simp]
theorem floor_natCast (n : ℕ) : ⌊(n : α)⌋₊ = n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (n : ℕ)
Goal: ⌊↑n⌋₊ = n
-- Nat.floor_zero
@[simp]
theorem floor_zero : ⌊(0 : α)⌋₊ = 0 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α]
Goal: ⌊0⌋₊ = 0
-- Nat.floor_one
@[simp]
theorem floor_one : ⌊(1 : α)⌋₊ = 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α]
Goal: ⌊1⌋₊ = 1
-- Nat.floor_ofNat
@[simp]
theorem floor_ofNat (n : ℕ) [n.AtLeastTwo] : ⌊no_index (OfNat.ofNat n : α)⌋₊ = n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (n : ℕ) [n.AtLeastTwo]
Goal: ⌊OfNat.ofNat n⌋₊ = n
-- Nat.floor_of_nonpos
theorem floor_of_nonpos (ha : a ≤ 0) : ⌊a⌋₊ = 0 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} (ha : a ≤ 0)
Goal: ⌊a⌋₊ = 0
-- Nat.floor_mono
theorem floor_mono : Monotone (floor : α → ℕ) 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α]
Goal: Monotone Nat.floor
-- Nat.floor_le_floor
@[gcongr]
theorem floor_le_floor : ∀ x y : α, x ≤ y → ⌊x⌋₊ ≤ ⌊y⌋₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (x y : α)
Goal: x ≤ y → ⌊x⌋₊ ≤ ⌊y⌋₊
-- Nat.le_floor_iff'
theorem le_floor_iff' (hn : n ≠ 0) : n ≤ ⌊a⌋₊ ↔ (n : α) ≤ a 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (hn : n ≠ 0)
Goal: n ≤ ⌊a⌋₊ ↔ ↑n ≤ a
-- Nat.one_le_floor_iff
@[simp]
theorem one_le_floor_iff (x : α) : 1 ≤ ⌊x⌋₊ ↔ 1 ≤ x 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (x : α)
Goal: 1 ≤ ⌊x⌋₊ ↔ 1 ≤ x
-- Nat.floor_lt'
theorem floor_lt' (hn : n ≠ 0) : ⌊a⌋₊ < n ↔ a < n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (hn : n ≠ 0)
Goal: ⌊a⌋₊ < n ↔ a < ↑n
-- Nat.floor_pos
theorem floor_pos : 0 < ⌊a⌋₊ ↔ 1 ≤ a 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α}
Goal: 0 < ⌊a⌋₊ ↔ 1 ≤ a
-- Nat.pos_of_floor_pos
theorem pos_of_floor_pos (h : 0 < ⌊a⌋₊) : 0 < a 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} (h : 0 < ⌊a⌋₊)
Goal: 0 < a
-- Nat.lt_of_lt_floor
theorem lt_of_lt_floor (h : n < ⌊a⌋₊) : ↑n < a 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (h : n < ⌊a⌋₊)
Goal: ↑n < a
-- Nat.floor_le_of_le
theorem floor_le_of_le (h : a ≤ n) : ⌊a⌋₊ ≤ n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (h : a ≤ ↑n)
Goal: ⌊a⌋₊ ≤ n
-- Nat.floor_le_one_of_le_one
theorem floor_le_one_of_le_one (h : a ≤ 1) : ⌊a⌋₊ ≤ 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} (h : a ≤ 1)
Goal: ⌊a⌋₊ ≤ 1
-- Nat.floor_eq_zero
@[simp]
theorem floor_eq_zero : ⌊a⌋₊ = 0 ↔ a < 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α}
Goal: ⌊a⌋₊ = 0 ↔ a < 1
-- Nat.floor_eq_iff
theorem floor_eq_iff (ha : 0 ≤ a) : ⌊a⌋₊ = n ↔ ↑n ≤ a ∧ a < ↑n + 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (ha : 0 ≤ a)
Goal: ⌊a⌋₊ = n ↔ ↑n ≤ a ∧ a < ↑n + 1
-- Nat.floor_eq_iff'
theorem floor_eq_iff' (hn : n ≠ 0) : ⌊a⌋₊ = n ↔ ↑n ≤ a ∧ a < ↑n + 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (hn : n ≠ 0)
Goal: ⌊a⌋₊ = n ↔ ↑n ≤ a ∧ a < ↑n + 1
-- Nat.floor_eq_on_Ico
theorem floor_eq_on_Ico (n : ℕ) : ∀ a ∈ (Set.Ico n (n + 1) : Set α), ⌊a⌋₊ = n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (n : ℕ) (a : α)
Goal: a ∈ Set.Ico (↑n) (↑n + 1) → ⌊a⌋₊ = n
-- Nat.floor_eq_on_Ico'
theorem floor_eq_on_Ico' (n : ℕ) :
    ∀ a ∈ (Set.Ico n (n + 1) : Set α), (⌊a⌋₊ : α) = n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (n : ℕ) (a : α)
Goal: a ∈ Set.Ico (↑n) (↑n + 1) → ↑⌊a⌋₊ = ↑n
-- Nat.preimage_floor_zero
@[simp]
theorem preimage_floor_zero : (floor : α → ℕ) ⁻¹' {0} = Iio 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α]
Goal: Nat.floor ⁻¹' {0} = Set.Iio 1
-- Nat.preimage_floor_of_ne_zero
theorem preimage_floor_of_ne_zero {n : ℕ} (hn : n ≠ 0) :
    (floor : α → ℕ) ⁻¹' {n} = Ico (n : α) (n + 1) 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {n : ℕ} (hn : n ≠ 0)
Goal: Nat.floor ⁻¹' {n} = Set.Ico (↑n) (↑n + 1)
-- Nat.gc_ceil_coe
theorem gc_ceil_coe : GaloisConnection (ceil : α → ℕ) (↑) 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α]
Goal: GaloisConnection Nat.ceil Nat.cast
-- Nat.ceil_le
@[simp]
theorem ceil_le : ⌈a⌉₊ ≤ n ↔ a ≤ n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ}
Goal: ⌈a⌉₊ ≤ n ↔ a ≤ ↑n
-- Nat.lt_ceil
theorem lt_ceil : n < ⌈a⌉₊ ↔ (n : α) < a 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ}
Goal: n < ⌈a⌉₊ ↔ ↑n < a
-- Nat.add_one_le_ceil_iff
theorem add_one_le_ceil_iff : n + 1 ≤ ⌈a⌉₊ ↔ (n : α) < a 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ}
Goal: n + 1 ≤ ⌈a⌉₊ ↔ ↑n < a
-- Nat.one_le_ceil_iff
@[simp]
theorem one_le_ceil_iff : 1 ≤ ⌈a⌉₊ ↔ 0 < a 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α}
Goal: 1 ≤ ⌈a⌉₊ ↔ 0 < a
-- Nat.ceil_le_floor_add_one
theorem ceil_le_floor_add_one (a : α) : ⌈a⌉₊ ≤ ⌊a⌋₊ + 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (a : α)
Goal: ⌈a⌉₊ ≤ ⌊a⌋₊ + 1
-- Nat.le_ceil
theorem le_ceil (a : α) : a ≤ ⌈a⌉₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (a : α)
Goal: a ≤ ↑⌈a⌉₊
-- Nat.ceil_intCast
@[simp]
theorem ceil_intCast {α : Type*} [LinearOrderedRing α] [FloorSemiring α] (z : ℤ) :
    ⌈(z : α)⌉₊ = z.toNat 
Arguments: {α : Type u_4} [LinearOrderedRing α] [FloorSemiring α] (z : ℤ)
Goal: ⌈↑z⌉₊ = z.toNat
-- Nat.ceil_natCast
@[simp]
theorem ceil_natCast (n : ℕ) : ⌈(n : α)⌉₊ = n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (n : ℕ)
Goal: ⌈↑n⌉₊ = n
-- Nat.ceil_mono
theorem ceil_mono : Monotone (ceil : α → ℕ) 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α]
Goal: Monotone Nat.ceil
-- Nat.ceil_le_ceil
@[gcongr]
theorem ceil_le_ceil : ∀ x y : α, x ≤ y → ⌈x⌉₊ ≤ ⌈y⌉₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (x y : α)
Goal: x ≤ y → ⌈x⌉₊ ≤ ⌈y⌉₊
-- Nat.ceil_zero
@[simp]
theorem ceil_zero : ⌈(0 : α)⌉₊ = 0 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α]
Goal: ⌈0⌉₊ = 0
-- Nat.ceil_one
@[simp]
theorem ceil_one : ⌈(1 : α)⌉₊ = 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α]
Goal: ⌈1⌉₊ = 1
-- Nat.ceil_ofNat
@[simp]
theorem ceil_ofNat (n : ℕ) [n.AtLeastTwo] : ⌈no_index (OfNat.ofNat n : α)⌉₊ = n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (n : ℕ) [n.AtLeastTwo]
Goal: ⌈OfNat.ofNat n⌉₊ = n
-- Nat.ceil_eq_zero
@[simp]
theorem ceil_eq_zero : ⌈a⌉₊ = 0 ↔ a ≤ 0 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α}
Goal: ⌈a⌉₊ = 0 ↔ a ≤ 0
-- Nat.ceil_pos
@[simp]
theorem ceil_pos : 0 < ⌈a⌉₊ ↔ 0 < a 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α}
Goal: 0 < ⌈a⌉₊ ↔ 0 < a
-- Nat.lt_of_ceil_lt
theorem lt_of_ceil_lt (h : ⌈a⌉₊ < n) : a < n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (h : ⌈a⌉₊ < n)
Goal: a < ↑n
-- Nat.le_of_ceil_le
theorem le_of_ceil_le (h : ⌈a⌉₊ ≤ n) : a ≤ n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (h : ⌈a⌉₊ ≤ n)
Goal: a ≤ ↑n
-- Nat.floor_le_ceil
theorem floor_le_ceil (a : α) : ⌊a⌋₊ ≤ ⌈a⌉₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] (a : α)
Goal: ⌊a⌋₊ ≤ ⌈a⌉₊
-- Nat.floor_lt_ceil_of_lt_of_pos
theorem floor_lt_ceil_of_lt_of_pos {a b : α} (h : a < b) (h' : 0 < b) : ⌊a⌋₊ < ⌈b⌉₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a b : α} (h : a < b) (h' : 0 < b)
Goal: ⌊a⌋₊ < ⌈b⌉₊
-- Nat.ceil_eq_iff
theorem ceil_eq_iff (hn : n ≠ 0) : ⌈a⌉₊ = n ↔ ↑(n - 1) < a ∧ a ≤ n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} {n : ℕ} (hn : n ≠ 0)
Goal: ⌈a⌉₊ = n ↔ ↑(n - 1) < a ∧ a ≤ ↑n
-- Nat.preimage_ceil_zero
@[simp]
theorem preimage_ceil_zero : (Nat.ceil : α → ℕ) ⁻¹' {0} = Iic 0 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α]
Goal: Nat.ceil ⁻¹' {0} = Set.Iic 0
-- Nat.preimage_ceil_of_ne_zero
theorem preimage_ceil_of_ne_zero (hn : n ≠ 0) : (Nat.ceil : α → ℕ) ⁻¹' {n} = Ioc (↑(n - 1) : α) n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {n : ℕ} (hn : n ≠ 0)
Goal: Nat.ceil ⁻¹' {n} = Set.Ioc ↑(n - 1) ↑n
-- Nat.preimage_Ioo
@[simp]
theorem preimage_Ioo {a b : α} (ha : 0 ≤ a) :
    (Nat.cast : ℕ → α) ⁻¹' Set.Ioo a b = Set.Ioo ⌊a⌋₊ ⌈b⌉₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a b : α} (ha : 0 ≤ a)
Goal: Nat.cast ⁻¹' Set.Ioo a b = Set.Ioo ⌊a⌋₊ ⌈b⌉₊
-- Nat.preimage_Ico
@[simp]
theorem preimage_Ico {a b : α} : (Nat.cast : ℕ → α) ⁻¹' Set.Ico a b = Set.Ico ⌈a⌉₊ ⌈b⌉₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a b : α}
Goal: Nat.cast ⁻¹' Set.Ico a b = Set.Ico ⌈a⌉₊ ⌈b⌉₊
-- Nat.preimage_Ioc
@[simp]
theorem preimage_Ioc {a b : α} (ha : 0 ≤ a) (hb : 0 ≤ b) :
    (Nat.cast : ℕ → α) ⁻¹' Set.Ioc a b = Set.Ioc ⌊a⌋₊ ⌊b⌋₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a b : α} (ha : 0 ≤ a) (hb : 0 ≤ b)
Goal: Nat.cast ⁻¹' Set.Ioc a b = Set.Ioc ⌊a⌋₊ ⌊b⌋₊
-- Nat.preimage_Icc
@[simp]
theorem preimage_Icc {a b : α} (hb : 0 ≤ b) :
    (Nat.cast : ℕ → α) ⁻¹' Set.Icc a b = Set.Icc ⌈a⌉₊ ⌊b⌋₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a b : α} (hb : 0 ≤ b)
Goal: Nat.cast ⁻¹' Set.Icc a b = Set.Icc ⌈a⌉₊ ⌊b⌋₊
-- Nat.preimage_Ioi
@[simp]
theorem preimage_Ioi {a : α} (ha : 0 ≤ a) : (Nat.cast : ℕ → α) ⁻¹' Set.Ioi a = Set.Ioi ⌊a⌋₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} (ha : 0 ≤ a)
Goal: Nat.cast ⁻¹' Set.Ioi a = Set.Ioi ⌊a⌋₊
-- Nat.preimage_Ici
@[simp]
theorem preimage_Ici {a : α} : (Nat.cast : ℕ → α) ⁻¹' Set.Ici a = Set.Ici ⌈a⌉₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α}
Goal: Nat.cast ⁻¹' Set.Ici a = Set.Ici ⌈a⌉₊
-- Nat.preimage_Iio
@[simp]
theorem preimage_Iio {a : α} : (Nat.cast : ℕ → α) ⁻¹' Set.Iio a = Set.Iio ⌈a⌉₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α}
Goal: Nat.cast ⁻¹' Set.Iio a = Set.Iio ⌈a⌉₊
-- Nat.preimage_Iic
@[simp]
theorem preimage_Iic {a : α} (ha : 0 ≤ a) : (Nat.cast : ℕ → α) ⁻¹' Set.Iic a = Set.Iic ⌊a⌋₊ 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} (ha : 0 ≤ a)
Goal: Nat.cast ⁻¹' Set.Iic a = Set.Iic ⌊a⌋₊
-- Nat.floor_add_nat
theorem floor_add_nat (ha : 0 ≤ a) (n : ℕ) : ⌊a + n⌋₊ = ⌊a⌋₊ + n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} (ha : 0 ≤ a) (n : ℕ)
Goal: ⌊a + ↑n⌋₊ = ⌊a⌋₊ + n
-- Nat.floor_add_one
theorem floor_add_one (ha : 0 ≤ a) : ⌊a + 1⌋₊ = ⌊a⌋₊ + 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} (ha : 0 ≤ a)
Goal: ⌊a + 1⌋₊ = ⌊a⌋₊ + 1
-- Nat.floor_add_ofNat
theorem floor_add_ofNat (ha : 0 ≤ a) (n : ℕ) [n.AtLeastTwo] :
    ⌊a + (no_index (OfNat.ofNat n))⌋₊ = ⌊a⌋₊ + OfNat.ofNat n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] {a : α} (ha : 0 ≤ a) (n : ℕ) [n.AtLeastTwo]
Goal: ⌊a + OfNat.ofNat n⌋₊ = ⌊a⌋₊ + OfNat.ofNat n
-- Nat.floor_sub_nat
@[simp]
theorem floor_sub_nat [Sub α] [OrderedSub α] [ExistsAddOfLE α] (a : α) (n : ℕ) :
    ⌊a - n⌋₊ = ⌊a⌋₊ - n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] [Sub α] [OrderedSub α] [ExistsAddOfLE α] (a : α) (n : ℕ)
Goal: ⌊a - ↑n⌋₊ = ⌊a⌋₊ - n
-- Nat.floor_sub_one
@[simp]
theorem floor_sub_one [Sub α] [OrderedSub α] [ExistsAddOfLE α] (a : α) : ⌊a - 1⌋₊ = ⌊a⌋₊ - 1 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] [Sub α] [OrderedSub α] [ExistsAddOfLE α] (a : α)
Goal: ⌊a - 1⌋₊ = ⌊a⌋₊ - 1
-- Nat.floor_sub_ofNat
@[simp]
theorem floor_sub_ofNat [Sub α] [OrderedSub α] [ExistsAddOfLE α] (a : α) (n : ℕ) [n.AtLeastTwo] :
    ⌊a - (no_index (OfNat.ofNat n))⌋₊ = ⌊a⌋₊ - OfNat.ofNat n 
Arguments: {α : Type u_2} [LinearOrderedSemiring α] [FloorSemiring α] [Sub α] [OrderedSub α] [ExistsAddOfLE α] (a : α) (n : ℕ) [n.AtLeastTwo]
Goal: ⌊a - OfNat.ofNat n⌋₊ = ⌊a⌋₊ - OfNat.ofNat n