ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- SimpleGraph.IsRegularOfDegree.degree_eq
theorem IsRegularOfDegree.degree_eq {d : ℕ} (h : G.IsRegularOfDegree d) (v : V) : G.degree v = d 
Arguments: {V : Type u_1} {G : SimpleGraph V} [G.LocallyFinite] {d : ℕ} (h : G.IsRegularOfDegree d) (v : V)
Goal: G.degree v = d
-- SimpleGraph.IsRegularOfDegree.compl
theorem IsRegularOfDegree.compl [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj]
    {k : ℕ} (h : G.IsRegularOfDegree k) : Gᶜ.IsRegularOfDegree (Fintype.card V - 1 - k) 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {k : ℕ} (h : G.IsRegularOfDegree k)
Goal: Gᶜ.IsRegularOfDegree (Fintype.card V - 1 - k)
-- SimpleGraph.neighborFinset_eq_filter
theorem neighborFinset_eq_filter {v : V} [DecidableRel G.Adj] :
    G.neighborFinset v = Finset.univ.filter (G.Adj v) 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] {v : V} [DecidableRel G.Adj]
Goal: G.neighborFinset v = Finset.filter (G.Adj v) Finset.univ
-- SimpleGraph.neighborFinset_compl
theorem neighborFinset_compl [DecidableEq V] [DecidableRel G.Adj] (v : V) :
    Gᶜ.neighborFinset v = (G.neighborFinset v)ᶜ \ {v} 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableEq V] [DecidableRel G.Adj] (v : V)
Goal: Gᶜ.neighborFinset v = (G.neighborFinset v)ᶜ \ {v}
-- SimpleGraph.complete_graph_degree
@[simp]
theorem complete_graph_degree [DecidableEq V] (v : V) :
    (⊤ : SimpleGraph V).degree v = Fintype.card V - 1 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] (v : V)
Goal: ⊤.degree v = Fintype.card V - 1
-- SimpleGraph.bot_degree
theorem bot_degree (v : V) : (⊥ : SimpleGraph V).degree v = 0 
Arguments: {V : Type u_1} [Fintype V] (v : V)
Goal: ⊥.degree v = 0
-- SimpleGraph.IsRegularOfDegree.top
theorem IsRegularOfDegree.top [DecidableEq V] :
    (⊤ : SimpleGraph V).IsRegularOfDegree (Fintype.card V - 1) 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V]
Goal: ⊤.IsRegularOfDegree (Fintype.card V - 1)
-- SimpleGraph.exists_minimal_degree_vertex
theorem exists_minimal_degree_vertex [DecidableRel G.Adj] [Nonempty V] :
    ∃ v, G.minDegree = G.degree v 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] [Nonempty V]
Goal: ∃ v, G.minDegree = G.degree v
-- SimpleGraph.minDegree_le_degree
theorem minDegree_le_degree [DecidableRel G.Adj] (v : V) : G.minDegree ≤ G.degree v 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] (v : V)
Goal: G.minDegree ≤ G.degree v
-- SimpleGraph.le_minDegree_of_forall_le_degree
theorem le_minDegree_of_forall_le_degree [DecidableRel G.Adj] [Nonempty V] (k : ℕ)
    (h : ∀ v, k ≤ G.degree v) : k ≤ G.minDegree 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] [Nonempty V] (k : ℕ) (h : ∀ (v : V), k ≤ G.degree v)
Goal: k ≤ G.minDegree
-- SimpleGraph.exists_maximal_degree_vertex
theorem exists_maximal_degree_vertex [DecidableRel G.Adj] [Nonempty V] :
    ∃ v, G.maxDegree = G.degree v 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] [Nonempty V]
Goal: ∃ v, G.maxDegree = G.degree v
-- SimpleGraph.degree_le_maxDegree
theorem degree_le_maxDegree [DecidableRel G.Adj] (v : V) : G.degree v ≤ G.maxDegree 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] (v : V)
Goal: G.degree v ≤ G.maxDegree
-- SimpleGraph.maxDegree_le_of_forall_degree_le
theorem maxDegree_le_of_forall_degree_le [DecidableRel G.Adj] (k : ℕ) (h : ∀ v, G.degree v ≤ k) :
    G.maxDegree ≤ k 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] (k : ℕ) (h : ∀ (v : V), G.degree v ≤ k)
Goal: G.maxDegree ≤ k
-- SimpleGraph.degree_lt_card_verts
theorem degree_lt_card_verts [DecidableRel G.Adj] (v : V) : G.degree v < Fintype.card V 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] (v : V)
Goal: G.degree v < Fintype.card V
-- SimpleGraph.maxDegree_lt_card_verts
theorem maxDegree_lt_card_verts [DecidableRel G.Adj] [Nonempty V] :
    G.maxDegree < Fintype.card V 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] [Nonempty V]
Goal: G.maxDegree < Fintype.card V
-- SimpleGraph.card_commonNeighbors_le_degree_left
theorem card_commonNeighbors_le_degree_left [DecidableRel G.Adj] (v w : V) :
    Fintype.card (G.commonNeighbors v w) ≤ G.degree v 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] (v w : V)
Goal: Fintype.card ↑(G.commonNeighbors v w) ≤ G.degree v
-- SimpleGraph.card_commonNeighbors_le_degree_right
theorem card_commonNeighbors_le_degree_right [DecidableRel G.Adj] (v w : V) :
    Fintype.card (G.commonNeighbors v w) ≤ G.degree w 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] (v w : V)
Goal: Fintype.card ↑(G.commonNeighbors v w) ≤ G.degree w
-- SimpleGraph.card_commonNeighbors_lt_card_verts
theorem card_commonNeighbors_lt_card_verts [DecidableRel G.Adj] (v w : V) :
    Fintype.card (G.commonNeighbors v w) < Fintype.card V 
Arguments: {V : Type u_1} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] (v w : V)
Goal: Fintype.card ↑(G.commonNeighbors v w) < Fintype.card V
-- SimpleGraph.Adj.card_commonNeighbors_lt_degree
theorem Adj.card_commonNeighbors_lt_degree {G : SimpleGraph V} [DecidableRel G.Adj] {v w : V}
    (h : G.Adj v w) : Fintype.card (G.commonNeighbors v w) < G.degree v 
Arguments: {V : Type u_1} [Fintype V] {G : SimpleGraph V} [DecidableRel G.Adj] {v w : V} (h : G.Adj v w)
Goal: Fintype.card ↑(G.commonNeighbors v w) < G.degree v
-- SimpleGraph.card_commonNeighbors_top
theorem card_commonNeighbors_top [DecidableEq V] {v w : V} (h : v ≠ w) :
    Fintype.card ((⊤ : SimpleGraph V).commonNeighbors v w) = Fintype.card V - 2 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {v w : V} (h : v ≠ w)
Goal: Fintype.card ↑(⊤.commonNeighbors v w) = Fintype.card V - 2
-- _private.Mathlib.Combinatorics.SetFamily.FourFunctions.0.ineq
private lemma ineq {a₀ a₁ b₀ b₁ c₀ c₁ d₀ d₁ : β}
    (ha₀ : 0 ≤ a₀) (ha₁ : 0 ≤ a₁) (hb₀ : 0 ≤ b₀) (hb₁ : 0 ≤ b₁)
    (hc₀ : 0 ≤ c₀) (hc₁ : 0 ≤ c₁) (hd₀ : 0 ≤ d₀) (hd₁ : 0 ≤ d₁)
    (h₀₀ : a₀ * b₀ ≤ c₀ * d₀) (h₁₀ : a₁ * b₀ ≤ c₀ * d₁)
    (h₀₁ : a₀ * b₁ ≤ c₀ * d₁) (h₁₁ : a₁ * b₁ ≤ c₁ * d₁) :
    (a₀ + a₁) * (b₀ + b₁) ≤ (c₀ + c₁) * (d₀ + d₁) 
Arguments: {β : Type u_2} [LinearOrderedCommSemiring β] [ExistsAddOfLE β] {a₀ a₁ b₀ b₁ c₀ c₁ d₀ d₁ : β} (ha₀ : 0 ≤ a₀) (ha₁ : 0 ≤ a₁) (hb₀ : 0 ≤ b₀) (hb₁ : 0 ≤ b₁) (hc₀ : 0 ≤ c₀) (hc₁ : 0 ≤ c₁) (hd₀ : 0 ≤ d₀) (hd₁ : 0 ≤ d₁) (h₀₀ : a₀ * b₀ ≤ c₀ * d₀) (h₁₀ : a₁ * b₀ ≤ c₀ * d₁) (h₀₁ : a₀ * b₁ ≤ c₀ * d₁) (h₁₁ : a₁ * b₁ ≤ c₁ * d₁)
Goal: (a₀ + a₁) * (b₀ + b₁) ≤ (c₀ + c₁) * (d₀ + d₁)
-- _private.Mathlib.Combinatorics.SetFamily.FourFunctions.0.erase_eq_iff
private lemma erase_eq_iff (hs : a ∉ s) : t.erase a = s ↔ t = s ∨ t = insert a s 
Arguments: {α : Type u_1} [DecidableEq α] {a : α} {s t : Finset α} (hs : a ∉ s)
Goal: t.erase a = s ↔ t = s ∨ t = insert a s
-- _private.Mathlib.Combinatorics.SetFamily.FourFunctions.0.filter_collapse_eq
private lemma filter_collapse_eq (ha : a ∉ s) (𝒜 : Finset (Finset α)) :
    (𝒜.filter fun t ↦ t.erase a = s) =
      if s ∈ 𝒜 then
        (if insert a s ∈ 𝒜 then {s, insert a s} else {s})
      else
        (if insert a s ∈ 𝒜 then {insert a s} else ∅) 
Arguments: {α : Type u_1} [DecidableEq α] {a : α} {s : Finset α} (ha : a ∉ s) (𝒜 : Finset (Finset α))
Goal: Finset.filter (fun t => t.erase a = s) 𝒜 =
  if s ∈ 𝒜 then if insert a s ∈ 𝒜 then {s, insert a s} else {s} else if insert a s ∈ 𝒜 then {insert a s} else ∅
-- collapse_eq
lemma collapse_eq (ha : a ∉ s) (𝒜 : Finset (Finset α)) (f : Finset α → β) :
    collapse 𝒜 a f s = (if s ∈ 𝒜 then f s else 0) +
      if insert a s ∈ 𝒜 then f (insert a s) else 0 
Arguments: {α : Type u_1} {β : Type u_2} [DecidableEq α] [LinearOrderedCommSemiring β] {a : α} {s : Finset α} (ha : a ∉ s) (𝒜 : Finset (Finset α)) (f : Finset α → β)
Goal: collapse 𝒜 a f s = (if s ∈ 𝒜 then f s else 0) + if insert a s ∈ 𝒜 then f (insert a s) else 0
-- collapse_of_mem
lemma collapse_of_mem (ha : a ∉ s) (ht : t ∈ 𝒜) (hu : u ∈ 𝒜) (hts : t = s)
    (hus : u = insert a s) : collapse 𝒜 a f s = f t + f u 
Arguments: {α : Type u_1} {β : Type u_2} [DecidableEq α] [LinearOrderedCommSemiring β] {𝒜 : Finset (Finset α)} {a : α} {f : Finset α → β} {s t u : Finset α} (ha : a ∉ s) (ht : t ∈ 𝒜) (hu : u ∈ 𝒜) (hts : t = s) (hus : u = insert a s)
Goal: collapse 𝒜 a f s = f t + f u
-- le_collapse_of_mem
lemma le_collapse_of_mem (ha : a ∉ s) (hf : 0 ≤ f) (hts : t = s) (ht : t ∈ 𝒜) :
    f t ≤ collapse 𝒜 a f s 
Arguments: {α : Type u_1} {β : Type u_2} [DecidableEq α] [LinearOrderedCommSemiring β] {𝒜 : Finset (Finset α)} {a : α} {f : Finset α → β} {s t : Finset α} (ha : a ∉ s) (hf : 0 ≤ f) (hts : t = s) (ht : t ∈ 𝒜)
Goal: f t ≤ collapse 𝒜 a f s
-- le_collapse_of_insert_mem
lemma le_collapse_of_insert_mem (ha : a ∉ s) (hf : 0 ≤ f) (hts : t = insert a s) (ht : t ∈ 𝒜) :
    f t ≤ collapse 𝒜 a f s 
Arguments: {α : Type u_1} {β : Type u_2} [DecidableEq α] [LinearOrderedCommSemiring β] {𝒜 : Finset (Finset α)} {a : α} {f : Finset α → β} {s t : Finset α} (ha : a ∉ s) (hf : 0 ≤ f) (hts : t = insert a s) (ht : t ∈ 𝒜)
Goal: f t ≤ collapse 𝒜 a f s
-- collapse_nonneg
lemma collapse_nonneg (hf : 0 ≤ f) : 0 ≤ collapse 𝒜 a f 
Arguments: {α : Type u_1} {β : Type u_2} [DecidableEq α] [LinearOrderedCommSemiring β] {𝒜 : Finset (Finset α)} {a : α} {f : Finset α → β} (hf : 0 ≤ f)
Goal: 0 ≤ collapse 𝒜 a f
-- collapse_modular
lemma collapse_modular (hu : a ∉ u) (h₁ : 0 ≤ f₁) (h₂ : 0 ≤ f₂) (h₃ : 0 ≤ f₃) (h₄ : 0 ≤ f₄)
    (h : ∀ ⦃s⦄, s ⊆ insert a u → ∀ ⦃t⦄, t ⊆ insert a u →  f₁ s * f₂ t ≤ f₃ (s ∩ t) * f₄ (s ∪ t))
    (𝒜 ℬ : Finset (Finset α)) :
    ∀ ⦃s⦄, s ⊆ u → ∀ ⦃t⦄, t ⊆ u → collapse 𝒜 a f₁ s * collapse ℬ a f₂ t ≤
      collapse (𝒜 ⊼ ℬ) a f₃ (s ∩ t) * collapse (𝒜 ⊻ ℬ) a f₄ (s ∪ t) 
Arguments: {α : Type u_1} {β : Type u_2} [DecidableEq α] [LinearOrderedCommSemiring β] [ExistsAddOfLE β] {a : α} {f₁ f₂ f₃ f₄ : Finset α → β} {u : Finset α} (hu : a ∉ u) (h₁ : 0 ≤ f₁) (h₂ : 0 ≤ f₂) (h₃ : 0 ≤ f₃) (h₄ : 0 ≤ f₄) (h : ∀ ⦃s : Finset α⦄, s ⊆ insert a u → ∀ ⦃t : Finset α⦄, t ⊆ insert a u → f₁ s * f₂ t ≤ f₃ (s ∩ t) * f₄ (s ∪ t)) (𝒜 ℬ : Finset (Finset α)) ⦃s : Finset α⦄
Goal: s ⊆ u →
  ∀ ⦃t : Finset α⦄,
    t ⊆ u → collapse 𝒜 a f₁ s * collapse ℬ a f₂ t ≤ collapse (𝒜 ⊼ ℬ) a f₃ (s ∩ t) * collapse (𝒜 ⊻ ℬ) a f₄ (s ∪ t)
-- sum_collapse
lemma sum_collapse (h𝒜 : 𝒜 ⊆ (insert a u).powerset) (hu : a ∉ u) :
    ∑ s ∈ u.powerset, collapse 𝒜 a f s = ∑ s ∈ 𝒜, f s 
Arguments: {α : Type u_1} {β : Type u_2} [DecidableEq α] [LinearOrderedCommSemiring β] {𝒜 : Finset (Finset α)} {a : α} {f : Finset α → β} {u : Finset α} (h𝒜 : 𝒜 ⊆ (insert a u).powerset) (hu : a ∉ u)
Goal: ∑ s ∈ u.powerset, collapse 𝒜 a f s = ∑ s ∈ 𝒜, f s
-- Finset.four_functions_theorem
protected lemma Finset.four_functions_theorem (u : Finset α)
    (h₁ : 0 ≤ f₁) (h₂ : 0 ≤ f₂) (h₃ : 0 ≤ f₃) (h₄ : 0 ≤ f₄)
    (h : ∀ ⦃s⦄, s ⊆ u → ∀ ⦃t⦄, t ⊆ u → f₁ s * f₂ t ≤ f₃ (s ∩ t) * f₄ (s ∪ t))
    {𝒜 ℬ : Finset (Finset α)} (h𝒜 : 𝒜 ⊆ u.powerset) (hℬ : ℬ ⊆ u.powerset) :
    (∑ s ∈ 𝒜, f₁ s) * ∑ s ∈ ℬ, f₂ s ≤ (∑ s ∈ 𝒜 ⊼ ℬ, f₃ s) * ∑ s ∈ 𝒜 ⊻ ℬ, f₄ s 
Arguments: {α : Type u_1} {β : Type u_2} [DecidableEq α] [LinearOrderedCommSemiring β] [ExistsAddOfLE β] {f₁ f₂ f₃ f₄ : Finset α → β} (u : Finset α) (h₁ : 0 ≤ f₁) (h₂ : 0 ≤ f₂) (h₃ : 0 ≤ f₃) (h₄ : 0 ≤ f₄) (h : ∀ ⦃s : Finset α⦄, s ⊆ u → ∀ ⦃t : Finset α⦄, t ⊆ u → f₁ s * f₂ t ≤ f₃ (s ∩ t) * f₄ (s ∪ t)) {𝒜 ℬ : Finset (Finset α)} (h𝒜 : 𝒜 ⊆ u.powerset) (hℬ : ℬ ⊆ u.powerset)
Goal: (∑ s ∈ 𝒜, f₁ s) * ∑ s ∈ ℬ, f₂ s ≤ (∑ s ∈ 𝒜 ⊼ ℬ, f₃ s) * ∑ s ∈ 𝒜 ⊻ ℬ, f₄ s
-- _private.Mathlib.Combinatorics.SetFamily.FourFunctions.0.four_functions_theorem_aux
private lemma four_functions_theorem_aux (h₁ : 0 ≤ f₁) (h₂ : 0 ≤ f₂) (h₃ : 0 ≤ f₃) (h₄ : 0 ≤ f₄)
    (h : ∀ s t, f₁ s * f₂ t ≤ f₃ (s ∩ t) * f₄ (s ∪ t)) (𝒜 ℬ : Finset (Finset α)) :
    (∑ s ∈ 𝒜, f₁ s) * ∑ s ∈ ℬ, f₂ s ≤ (∑ s ∈ 𝒜 ⊼ ℬ, f₃ s) * ∑ s ∈ 𝒜 ⊻ ℬ, f₄ s 
Arguments: {α : Type u_1} {β : Type u_2} [DecidableEq α] [LinearOrderedCommSemiring β] [ExistsAddOfLE β] (f₁ f₂ f₃ f₄ : Finset α → β) [Fintype α] (h₁ : 0 ≤ f₁) (h₂ : 0 ≤ f₂) (h₃ : 0 ≤ f₃) (h₄ : 0 ≤ f₄) (h : ∀ (s t : Finset α), f₁ s * f₂ t ≤ f₃ (s ∩ t) * f₄ (s ∪ t)) (𝒜 ℬ : Finset (Finset α))
Goal: (∑ s ∈ 𝒜, f₁ s) * ∑ s ∈ ℬ, f₂ s ≤ (∑ s ∈ 𝒜 ⊼ ℬ, f₃ s) * ∑ s ∈ 𝒜 ⊻ ℬ, f₄ s
-- four_functions_theorem
lemma four_functions_theorem [DecidableEq α] (h₁ : 0 ≤ f₁) (h₂ : 0 ≤ f₂) (h₃ : 0 ≤ f₃) (h₄ : 0 ≤ f₄)
    (h : ∀ a b, f₁ a * f₂ b ≤ f₃ (a ⊓ b) * f₄ (a ⊔ b)) (s t : Finset α) :
    (∑ a ∈ s, f₁ a) * ∑ a ∈ t, f₂ a ≤ (∑ a ∈ s ⊼ t, f₃ a) * ∑ a ∈ s ⊻ t, f₄ a 
Arguments: {α : Type u_1} {β : Type u_2} [DistribLattice α] [LinearOrderedCommSemiring β] [ExistsAddOfLE β] (f₁ f₂ f₃ f₄ : α → β) [DecidableEq α] (h₁ : 0 ≤ f₁) (h₂ : 0 ≤ f₂) (h₃ : 0 ≤ f₃) (h₄ : 0 ≤ f₄) (h : ∀ (a b : α), f₁ a * f₂ b ≤ f₃ (a ⊓ b) * f₄ (a ⊔ b)) (s t : Finset α)
Goal: (∑ a ∈ s, f₁ a) * ∑ a ∈ t, f₂ a ≤ (∑ a ∈ s ⊼ t, f₃ a) * ∑ a ∈ s ⊻ t, f₄ a
-- Finset.le_card_infs_mul_card_sups
lemma Finset.le_card_infs_mul_card_sups [DecidableEq α] (s t : Finset α) :
    s.card * t.card ≤ (s ⊼ t).card * (s ⊻ t).card 
Arguments: {α : Type u_1} [DistribLattice α] [DecidableEq α] (s t : Finset α)
Goal: s.card * t.card ≤ (s ⊼ t).card * (s ⊻ t).card
-- four_functions_theorem_univ
lemma four_functions_theorem_univ (h₁ : 0 ≤ f₁) (h₂ : 0 ≤ f₂) (h₃ : 0 ≤ f₃) (h₄ : 0 ≤ f₄)
    (h : ∀ a b, f₁ a * f₂ b ≤ f₃ (a ⊓ b) * f₄ (a ⊔ b)) :
    (∑ a, f₁ a) * ∑ a, f₂ a ≤ (∑ a, f₃ a) * ∑ a, f₄ a 
Arguments: {α : Type u_1} {β : Type u_2} [DistribLattice α] [LinearOrderedCommSemiring β] [ExistsAddOfLE β] (f₁ f₂ f₃ f₄ : α → β) [Fintype α] (h₁ : 0 ≤ f₁) (h₂ : 0 ≤ f₂) (h₃ : 0 ≤ f₃) (h₄ : 0 ≤ f₄) (h : ∀ (a b : α), f₁ a * f₂ b ≤ f₃ (a ⊓ b) * f₄ (a ⊔ b))
Goal: (∑ a : α, f₁ a) * ∑ a : α, f₂ a ≤ (∑ a : α, f₃ a) * ∑ a : α, f₄ a
-- holley
lemma holley (hμ₀ : 0 ≤ μ) (hf : 0 ≤ f) (hg : 0 ≤ g) (hμ : Monotone μ)
    (hfg : ∑ a, f a = ∑ a, g a) (h : ∀ a b, f a * g b ≤ f (a ⊓ b) * g (a ⊔ b)) :
    ∑ a, μ a * f a ≤ ∑ a, μ a * g a 
Arguments: {α : Type u_1} {β : Type u_2} [DistribLattice α] [LinearOrderedCommSemiring β] [ExistsAddOfLE β] (f g μ : α → β) [Fintype α] (hμ₀ : 0 ≤ μ) (hf : 0 ≤ f) (hg : 0 ≤ g) (hμ : Monotone μ) (hfg : ∑ a : α, f a = ∑ a : α, g a) (h : ∀ (a b : α), f a * g b ≤ f (a ⊓ b) * g (a ⊔ b))
Goal: ∑ a : α, μ a * f a ≤ ∑ a : α, μ a * g a
-- fkg
lemma fkg (hμ₀ : 0 ≤ μ) (hf₀ : 0 ≤ f) (hg₀ : 0 ≤ g) (hf : Monotone f) (hg : Monotone g)
    (hμ : ∀ a b, μ a * μ b ≤ μ (a ⊓ b) * μ (a ⊔ b)) :
    (∑ a, μ a * f a) * ∑ a, μ a * g a ≤ (∑ a, μ a) * ∑ a, μ a * (f a * g a) 
Arguments: {α : Type u_1} {β : Type u_2} [DistribLattice α] [LinearOrderedCommSemiring β] [ExistsAddOfLE β] (f g μ : α → β) [Fintype α] (hμ₀ : 0 ≤ μ) (hf₀ : 0 ≤ f) (hg₀ : 0 ≤ g) (hf : Monotone f) (hg : Monotone g) (hμ : ∀ (a b : α), μ a * μ b ≤ μ (a ⊓ b) * μ (a ⊔ b))
Goal: (∑ a : α, μ a * f a) * ∑ a : α, μ a * g a ≤ (∑ a : α, μ a) * ∑ a : α, μ a * (f a * g a)
-- Finset.le_card_diffs_mul_card_diffs
lemma Finset.le_card_diffs_mul_card_diffs (s t : Finset α) :
    s.card * t.card ≤ (s \\ t).card * (t \\ s).card 
Arguments: {α : Type u_1} [DecidableEq α] [GeneralizedBooleanAlgebra α] (s t : Finset α)
Goal: s.card * t.card ≤ (s \\ t).card * (t \\ s).card
-- Finset.card_le_card_diffs
lemma Finset.card_le_card_diffs (s : Finset α) : s.card ≤ (s \\ s).card 
Arguments: {α : Type u_1} [DecidableEq α] [GeneralizedBooleanAlgebra α] (s : Finset α)
Goal: s.card ≤ (s \\ s).card
-- Finset.exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum
theorem exists_lt_sum_fiber_of_maps_to_of_nsmul_lt_sum (hf : ∀ a ∈ s, f a ∈ t)
    (hb : t.card • b < ∑ x ∈ s, w x) : ∃ y ∈ t, b < ∑ x ∈ s.filter fun x => f x = y, w x 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {w : α → M} {b : M} [LinearOrderedCancelAddCommMonoid M] (hf : ∀ a ∈ s, f a ∈ t) (hb : t.card • b < ∑ x ∈ s, w x)
Goal: ∃ y ∈ t, b < ∑ x ∈ Finset.filter (fun x => f x = y) s, w x
-- Finset.exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul
theorem exists_sum_fiber_lt_of_maps_to_of_sum_lt_nsmul (hf : ∀ a ∈ s, f a ∈ t)
    (hb : ∑ x ∈ s, w x < t.card • b) : ∃ y ∈ t, ∑ x ∈ s.filter fun x => f x = y, w x < b 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {w : α → M} {b : M} [LinearOrderedCancelAddCommMonoid M] (hf : ∀ a ∈ s, f a ∈ t) (hb : ∑ x ∈ s, w x < t.card • b)
Goal: ∃ y ∈ t, ∑ x ∈ Finset.filter (fun x => f x = y) s, w x < b
-- Finset.exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
theorem exists_lt_sum_fiber_of_sum_fiber_nonpos_of_nsmul_lt_sum
    (ht : ∀ y ∉ t, ∑ x ∈ s.filter fun x => f x = y, w x ≤ 0)
    (hb : t.card • b < ∑ x ∈ s, w x) : ∃ y ∈ t, b < ∑ x ∈ s.filter fun x => f x = y, w x 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {w : α → M} {b : M} [LinearOrderedCancelAddCommMonoid M] (ht : ∀ y ∉ t, ∑ x ∈ Finset.filter (fun x => f x = y) s, w x ≤ 0) (hb : t.card • b < ∑ x ∈ s, w x)
Goal: ∃ y ∈ t, b < ∑ x ∈ Finset.filter (fun x => f x = y) s, w x
-- Finset.exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
theorem exists_sum_fiber_lt_of_sum_fiber_nonneg_of_sum_lt_nsmul
    (ht : ∀ y ∉ t, (0 : M) ≤ ∑ x ∈ s.filter fun x => f x = y, w x)
    (hb : ∑ x ∈ s, w x < t.card • b) : ∃ y ∈ t, ∑ x ∈ s.filter fun x => f x = y, w x < b 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {w : α → M} {b : M} [LinearOrderedCancelAddCommMonoid M] (ht : ∀ y ∉ t, 0 ≤ ∑ x ∈ Finset.filter (fun x => f x = y) s, w x) (hb : ∑ x ∈ s, w x < t.card • b)
Goal: ∃ y ∈ t, ∑ x ∈ Finset.filter (fun x => f x = y) s, w x < b
-- Finset.exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum
theorem exists_le_sum_fiber_of_maps_to_of_nsmul_le_sum (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty)
    (hb : t.card • b ≤ ∑ x ∈ s, w x) : ∃ y ∈ t, b ≤ ∑ x ∈ s.filter fun x => f x = y, w x 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {w : α → M} {b : M} [LinearOrderedCancelAddCommMonoid M] (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty) (hb : t.card • b ≤ ∑ x ∈ s, w x)
Goal: ∃ y ∈ t, b ≤ ∑ x ∈ Finset.filter (fun x => f x = y) s, w x
-- Finset.exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul
theorem exists_sum_fiber_le_of_maps_to_of_sum_le_nsmul (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty)
    (hb : ∑ x ∈ s, w x ≤ t.card • b) : ∃ y ∈ t, ∑ x ∈ s.filter fun x => f x = y, w x ≤ b 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {w : α → M} {b : M} [LinearOrderedCancelAddCommMonoid M] (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty) (hb : ∑ x ∈ s, w x ≤ t.card • b)
Goal: ∃ y ∈ t, ∑ x ∈ Finset.filter (fun x => f x = y) s, w x ≤ b
-- Finset.exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
theorem exists_le_sum_fiber_of_sum_fiber_nonpos_of_nsmul_le_sum
    (hf : ∀ y ∉ t, ∑ x ∈ s.filter fun x => f x = y, w x ≤ 0) (ht : t.Nonempty)
    (hb : t.card • b ≤ ∑ x ∈ s, w x) : ∃ y ∈ t, b ≤ ∑ x ∈ s.filter fun x => f x = y, w x 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {w : α → M} {b : M} [LinearOrderedCancelAddCommMonoid M] (hf : ∀ y ∉ t, ∑ x ∈ Finset.filter (fun x => f x = y) s, w x ≤ 0) (ht : t.Nonempty) (hb : t.card • b ≤ ∑ x ∈ s, w x)
Goal: ∃ y ∈ t, b ≤ ∑ x ∈ Finset.filter (fun x => f x = y) s, w x
-- Finset.exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
theorem exists_sum_fiber_le_of_sum_fiber_nonneg_of_sum_le_nsmul
    (hf : ∀ y ∉ t, (0 : M) ≤ ∑ x ∈ s.filter fun x => f x = y, w x) (ht : t.Nonempty)
    (hb : ∑ x ∈ s, w x ≤ t.card • b) : ∃ y ∈ t, ∑ x ∈ s.filter fun x => f x = y, w x ≤ b 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {w : α → M} {b : M} [LinearOrderedCancelAddCommMonoid M] (hf : ∀ y ∉ t, 0 ≤ ∑ x ∈ Finset.filter (fun x => f x = y) s, w x) (ht : t.Nonempty) (hb : ∑ x ∈ s, w x ≤ t.card • b)
Goal: ∃ y ∈ t, ∑ x ∈ Finset.filter (fun x => f x = y) s, w x ≤ b
-- Finset.exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to
theorem exists_lt_card_fiber_of_nsmul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t)
    (ht : t.card • b < s.card) : ∃ y ∈ t, b < (s.filter fun x => f x = y).card 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {b : M} [LinearOrderedCommSemiring M] (hf : ∀ a ∈ s, f a ∈ t) (ht : t.card • b < ↑s.card)
Goal: ∃ y ∈ t, b < ↑(Finset.filter (fun x => f x = y) s).card
-- Finset.exists_lt_card_fiber_of_mul_lt_card_of_maps_to
theorem exists_lt_card_fiber_of_mul_lt_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t)
    (hn : t.card * n < s.card) : ∃ y ∈ t, n < (s.filter fun x => f x = y).card 
Arguments: {α : Type u} {β : Type v} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {n : ℕ} (hf : ∀ a ∈ s, f a ∈ t) (hn : t.card * n < s.card)
Goal: ∃ y ∈ t, n < (Finset.filter (fun x => f x = y) s).card
-- Finset.exists_card_fiber_lt_of_card_lt_nsmul
theorem exists_card_fiber_lt_of_card_lt_nsmul (ht : ↑s.card < t.card • b) :
    ∃ y ∈ t, ↑(s.filter fun x => f x = y).card < b 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {b : M} [LinearOrderedCommSemiring M] (ht : ↑s.card < t.card • b)
Goal: ∃ y ∈ t, ↑(Finset.filter (fun x => f x = y) s).card < b
-- Finset.exists_card_fiber_lt_of_card_lt_mul
theorem exists_card_fiber_lt_of_card_lt_mul (hn : s.card < t.card * n) :
    ∃ y ∈ t, (s.filter fun x => f x = y).card < n 
Arguments: {α : Type u} {β : Type v} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {n : ℕ} (hn : s.card < t.card * n)
Goal: ∃ y ∈ t, (Finset.filter (fun x => f x = y) s).card < n
-- Finset.exists_le_card_fiber_of_nsmul_le_card_of_maps_to
theorem exists_le_card_fiber_of_nsmul_le_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty)
    (hb : t.card • b ≤ s.card) : ∃ y ∈ t, b ≤ (s.filter fun x => f x = y).card 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {b : M} [LinearOrderedCommSemiring M] (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty) (hb : t.card • b ≤ ↑s.card)
Goal: ∃ y ∈ t, b ≤ ↑(Finset.filter (fun x => f x = y) s).card
-- Finset.exists_le_card_fiber_of_mul_le_card_of_maps_to
theorem exists_le_card_fiber_of_mul_le_card_of_maps_to (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty)
    (hn : t.card * n ≤ s.card) : ∃ y ∈ t, n ≤ (s.filter fun x => f x = y).card 
Arguments: {α : Type u} {β : Type v} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {n : ℕ} (hf : ∀ a ∈ s, f a ∈ t) (ht : t.Nonempty) (hn : t.card * n ≤ s.card)
Goal: ∃ y ∈ t, n ≤ (Finset.filter (fun x => f x = y) s).card
-- Finset.exists_card_fiber_le_of_card_le_nsmul
theorem exists_card_fiber_le_of_card_le_nsmul (ht : t.Nonempty) (hb : ↑s.card ≤ t.card • b) :
    ∃ y ∈ t, ↑(s.filter fun x => f x = y).card ≤ b 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {b : M} [LinearOrderedCommSemiring M] (ht : t.Nonempty) (hb : ↑s.card ≤ t.card • b)
Goal: ∃ y ∈ t, ↑(Finset.filter (fun x => f x = y) s).card ≤ b
-- Finset.exists_card_fiber_le_of_card_le_mul
theorem exists_card_fiber_le_of_card_le_mul (ht : t.Nonempty) (hn : s.card ≤ t.card * n) :
    ∃ y ∈ t, (s.filter fun x => f x = y).card ≤ n 
Arguments: {α : Type u} {β : Type v} [DecidableEq β] {s : Finset α} {t : Finset β} {f : α → β} {n : ℕ} (ht : t.Nonempty) (hn : s.card ≤ t.card * n)
Goal: ∃ y ∈ t, (Finset.filter (fun x => f x = y) s).card ≤ n
-- Fintype.exists_lt_sum_fiber_of_nsmul_lt_sum
theorem exists_lt_sum_fiber_of_nsmul_lt_sum (hb : card β • b < ∑ x, w x) :
    ∃ y, b < ∑ x ∈ univ.filter fun x => f x = y, w x 
Arguments: {α : Type u} {β : Type v} {M : Type w} [DecidableEq β] [Fintype α] [Fintype β] (f : α → β) {w : α → M} {b : M} [LinearOrderedCancelAddCommMonoid M] (hb : Fintype.card β • b < ∑ x : α, w x)
Goal: ∃ y, b < ∑ x ∈ Finset.filter (fun x => f x = y) Finset.univ, w x