ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- SimpleGraph.cliqueSet_mono'
theorem cliqueSet_mono' (h : G ≤ H) : G.cliqueSet ≤ H.cliqueSet 
Arguments: {α : Type u_1} {G H : SimpleGraph α} (h : G ≤ H)
Goal: G.cliqueSet ≤ H.cliqueSet
-- SimpleGraph.cliqueSet_zero
@[simp]
theorem cliqueSet_zero (G : SimpleGraph α) : G.cliqueSet 0 = {∅} 
Arguments: {α : Type u_1} (G : SimpleGraph α)
Goal: G.cliqueSet 0 = {∅}
-- SimpleGraph.cliqueSet_one
@[simp]
theorem cliqueSet_one (G : SimpleGraph α) : G.cliqueSet 1 = Set.range singleton 
Arguments: {α : Type u_1} (G : SimpleGraph α)
Goal: G.cliqueSet 1 = Set.range singleton
-- SimpleGraph.cliqueSet_bot
@[simp]
theorem cliqueSet_bot (hn : 1 < n) : (⊥ : SimpleGraph α).cliqueSet n = ∅ 
Arguments: {α : Type u_1} {n : ℕ} (hn : 1 < n)
Goal: ⊥.cliqueSet n = ∅
-- SimpleGraph.cliqueSet_map
@[simp]
theorem cliqueSet_map (hn : n ≠ 1) (G : SimpleGraph α) (f : α ↪ β) :
    (G.map f).cliqueSet n = map f '' G.cliqueSet n 
Arguments: {α : Type u_1} {β : Type u_2} {n : ℕ} (hn : n ≠ 1) (G : SimpleGraph α) (f : α ↪ β)
Goal: (SimpleGraph.map f G).cliqueSet n = Finset.map f '' G.cliqueSet n
-- SimpleGraph.cliqueSet_map_of_equiv
@[simp]
theorem cliqueSet_map_of_equiv (G : SimpleGraph α) (e : α ≃ β) (n : ℕ) :
    (G.map e.toEmbedding).cliqueSet n = map e.toEmbedding '' G.cliqueSet n 
Arguments: {α : Type u_1} {β : Type u_2} (G : SimpleGraph α) (e : α ≃ β) (n : ℕ)
Goal: (SimpleGraph.map e.toEmbedding G).cliqueSet n = Finset.map e.toEmbedding '' G.cliqueSet n
-- SimpleGraph.mem_cliqueFinset_iff
@[simp]
theorem mem_cliqueFinset_iff : s ∈ G.cliqueFinset n ↔ G.IsNClique n s 
Arguments: {α : Type u_1} {G : SimpleGraph α} [Fintype α] [DecidableEq α] [DecidableRel G.Adj] {n : ℕ} {s : Finset α}
Goal: s ∈ G.cliqueFinset n ↔ G.IsNClique n s
-- SimpleGraph.coe_cliqueFinset
@[simp, norm_cast]
theorem coe_cliqueFinset (n : ℕ) : (G.cliqueFinset n : Set (Finset α)) = G.cliqueSet n 
Arguments: {α : Type u_1} (G : SimpleGraph α) [Fintype α] [DecidableEq α] [DecidableRel G.Adj] (n : ℕ)
Goal: ↑(G.cliqueFinset n) = G.cliqueSet n
-- SimpleGraph.cliqueFinset_eq_empty_iff
@[simp]
theorem cliqueFinset_eq_empty_iff : G.cliqueFinset n = ∅ ↔ G.CliqueFree n 
Arguments: {α : Type u_1} {G : SimpleGraph α} [Fintype α] [DecidableEq α] [DecidableRel G.Adj] {n : ℕ}
Goal: G.cliqueFinset n = ∅ ↔ G.CliqueFree n
-- SimpleGraph.card_cliqueFinset_le
theorem card_cliqueFinset_le : (G.cliqueFinset n).card ≤ (card α).choose n 
Arguments: {α : Type u_1} {G : SimpleGraph α} [Fintype α] [DecidableEq α] [DecidableRel G.Adj] {n : ℕ}
Goal: (G.cliqueFinset n).card ≤ (Fintype.card α).choose n
-- SimpleGraph.cliqueFinset_mono
@[mono]
theorem cliqueFinset_mono (h : G ≤ H) : G.cliqueFinset n ⊆ H.cliqueFinset n 
Arguments: {α : Type u_1} {G : SimpleGraph α} (H : SimpleGraph α) [Fintype α] [DecidableEq α] [DecidableRel G.Adj] {n : ℕ} [DecidableRel H.Adj] (h : G ≤ H)
Goal: G.cliqueFinset n ⊆ H.cliqueFinset n
-- SimpleGraph.cliqueFinset_map
@[simp]
theorem cliqueFinset_map (f : α ↪ β) (hn : n ≠ 1) :
    (G.map f).cliqueFinset n = (G.cliqueFinset n).map ⟨map f, Finset.map_injective _⟩ 
Arguments: {α : Type u_1} {β : Type u_2} (G : SimpleGraph α) [Fintype α] [DecidableEq α] [DecidableRel G.Adj] {n : ℕ} [Fintype β] [DecidableEq β] (f : α ↪ β) (hn : n ≠ 1)
Goal: (SimpleGraph.map f G).cliqueFinset n = Finset.map { toFun := Finset.map f, inj' := ⋯ } (G.cliqueFinset n)
-- SimpleGraph.cliqueFinset_map_of_equiv
@[simp]
theorem cliqueFinset_map_of_equiv (e : α ≃ β) (n : ℕ) :
    (G.map e.toEmbedding).cliqueFinset n =
      (G.cliqueFinset n).map ⟨map e.toEmbedding, Finset.map_injective _⟩ 
Arguments: {α : Type u_1} {β : Type u_2} (G : SimpleGraph α) [Fintype α] [DecidableEq α] [DecidableRel G.Adj] [Fintype β] [DecidableEq β] (e : α ≃ β) (n : ℕ)
Goal: (SimpleGraph.map e.toEmbedding G).cliqueFinset n =
  Finset.map { toFun := Finset.map e.toEmbedding, inj' := ⋯ } (G.cliqueFinset n)
-- SimpleGraph.set_walk_self_length_zero_eq
theorem set_walk_self_length_zero_eq (u : V) : {p : G.Walk u u | p.length = 0} = {Walk.nil} 
Arguments: {V : Type u} (G : SimpleGraph V) (u : V)
Goal: {p | p.length = 0} = {SimpleGraph.Walk.nil}
-- SimpleGraph.set_walk_length_zero_eq_of_ne
theorem set_walk_length_zero_eq_of_ne {u v : V} (h : u ≠ v) :
    {p : G.Walk u v | p.length = 0} = ∅ 
Arguments: {V : Type u} (G : SimpleGraph V) {u v : V} (h : u ≠ v)
Goal: {p | p.length = 0} = ∅
-- SimpleGraph.set_walk_length_succ_eq
theorem set_walk_length_succ_eq (u v : V) (n : ℕ) :
    {p : G.Walk u v | p.length = n.succ} =
      ⋃ (w : V) (h : G.Adj u w), Walk.cons h '' {p' : G.Walk w v | p'.length = n} 
Arguments: {V : Type u} (G : SimpleGraph V) (u v : V) (n : ℕ)
Goal: {p | p.length = n.succ} = ⋃ w, ⋃ (h : G.Adj u w), SimpleGraph.Walk.cons h '' {p' | p'.length = n}
-- SimpleGraph.walkLengthTwoEquivCommonNeighbors_apply_coe
@[simps]
def walkLengthTwoEquivCommonNeighbors (u v : V) :
    {p : G.Walk u v // p.length = 2} ≃ G.commonNeighbors u v 
Arguments: {V : Type u} (G : SimpleGraph V) (u v : V) (p : { p // p.length = 2 })
Goal: ↑((G.walkLengthTwoEquivCommonNeighbors u v) p) = (↑p).getVert 1
-- SimpleGraph.walkLengthTwoEquivCommonNeighbors_symm_apply_coe
@[simps]
def walkLengthTwoEquivCommonNeighbors (u v : V) :
    {p : G.Walk u v // p.length = 2} ≃ G.commonNeighbors u v 
Arguments: {V : Type u} (G : SimpleGraph V) (u v : V) (w : ↑(G.commonNeighbors u v))
Goal: ↑((G.walkLengthTwoEquivCommonNeighbors u v).symm w) = (SimpleGraph.Adj.toWalk ⋯).concat ⋯
-- SimpleGraph.coe_finsetWalkLength_eq
theorem coe_finsetWalkLength_eq (n : ℕ) (u v : V) :
    (G.finsetWalkLength n u v : Set (G.Walk u v)) = {p : G.Walk u v | p.length = n} 
Arguments: {V : Type u} (G : SimpleGraph V) [DecidableEq V] [G.LocallyFinite] (n : ℕ) (u v : V)
Goal: ↑(G.finsetWalkLength n u v) = {p | p.length = n}
-- SimpleGraph.Walk.mem_finsetWalkLength_iff_length_eq
theorem Walk.mem_finsetWalkLength_iff_length_eq {n : ℕ} {u v : V} (p : G.Walk u v) :
    p ∈ G.finsetWalkLength n u v ↔ p.length = n 
Arguments: {V : Type u} {G : SimpleGraph V} [DecidableEq V] [G.LocallyFinite] {n : ℕ} {u v : V} (p : G.Walk u v)
Goal: p ∈ G.finsetWalkLength n u v ↔ p.length = n
-- SimpleGraph.set_walk_length_toFinset_eq
theorem set_walk_length_toFinset_eq (n : ℕ) (u v : V) :
    {p : G.Walk u v | p.length = n}.toFinset = G.finsetWalkLength n u v 
Arguments: {V : Type u} (G : SimpleGraph V) [DecidableEq V] [G.LocallyFinite] (n : ℕ) (u v : V)
Goal: {p | p.length = n}.toFinset = G.finsetWalkLength n u v
-- SimpleGraph.card_set_walk_length_eq
theorem card_set_walk_length_eq (u v : V) (n : ℕ) :
    Fintype.card {p : G.Walk u v | p.length = n} = (G.finsetWalkLength n u v).card 
Arguments: {V : Type u} (G : SimpleGraph V) [DecidableEq V] [G.LocallyFinite] (u v : V) (n : ℕ)
Goal: Fintype.card ↑{p | p.length = n} = (G.finsetWalkLength n u v).card
-- SimpleGraph.reachable_iff_exists_finsetWalkLength_nonempty
theorem reachable_iff_exists_finsetWalkLength_nonempty (u v : V) :
    G.Reachable u v ↔ ∃ n : Fin (Fintype.card V), (G.finsetWalkLength n u v).Nonempty 
Arguments: {V : Type u} (G : SimpleGraph V) [DecidableEq V] [Fintype V] [DecidableRel G.Adj] (u v : V)
Goal: G.Reachable u v ↔ ∃ n, (G.finsetWalkLength (↑n) u v).Nonempty
-- SimpleGraph.odd_card_iff_odd_components
lemma odd_card_iff_odd_components : Odd (Nat.card V) ↔
    Odd (Nat.card ({(c : ConnectedComponent G) | Odd (Nat.card c.supp)})) 
Arguments: {V : Type u} (G : SimpleGraph V) [DecidableEq V] [Fintype V] [DecidableRel G.Adj]
Goal: Odd (Nat.card V) ↔ Odd (Nat.card ↑{c | Odd (Nat.card ↑c.supp)})
-- SimpleGraph.isTree_iff
@[mk_iff]
structure IsTree : Prop where
    protected isConnected : G.Connected
    protected IsAcyclic : G.IsAcyclic
Arguments: {V : Type u} (G : SimpleGraph V)
Goal: G.IsTree ↔ G.Connected ∧ G.IsAcyclic
-- SimpleGraph.IsTree.isConnected
@[mk_iff]
structure IsTree : Prop where
    protected isConnected : G.Connected
    protected IsAcyclic : G.IsAcyclic
Arguments: {V : Type u} {G : SimpleGraph V} (self : G.IsTree)
Goal: G.Connected
-- SimpleGraph.IsTree.IsAcyclic
@[mk_iff]
structure IsTree : Prop where
    protected isConnected : G.Connected
    protected IsAcyclic : G.IsAcyclic
Arguments: {V : Type u} {G : SimpleGraph V} (self : G.IsTree)
Goal: G.IsAcyclic
-- SimpleGraph.isAcyclic_bot
@[simp] lemma isAcyclic_bot : IsAcyclic (⊥ : SimpleGraph V) 
Arguments: {V : Type u}
Goal: ⊥.IsAcyclic
-- SimpleGraph.isAcyclic_iff_forall_adj_isBridge
theorem isAcyclic_iff_forall_adj_isBridge :
    G.IsAcyclic ↔ ∀ ⦃v w : V⦄, G.Adj v w → G.IsBridge s(v, w) 
Arguments: {V : Type u} {G : SimpleGraph V}
Goal: G.IsAcyclic ↔ ∀ ⦃v w : V⦄, G.Adj v w → G.IsBridge s(v, w)
-- SimpleGraph.isAcyclic_iff_forall_edge_isBridge
theorem isAcyclic_iff_forall_edge_isBridge :
    G.IsAcyclic ↔ ∀ ⦃e⦄, e ∈ (G.edgeSet) → G.IsBridge e 
Arguments: {V : Type u} {G : SimpleGraph V}
Goal: G.IsAcyclic ↔ ∀ ⦃e : Sym2 V⦄, e ∈ G.edgeSet → G.IsBridge e
-- SimpleGraph.IsAcyclic.path_unique
theorem IsAcyclic.path_unique {G : SimpleGraph V} (h : G.IsAcyclic) {v w : V} (p q : G.Path v w) :
    p = q 
Arguments: {V : Type u} {G : SimpleGraph V} (h : G.IsAcyclic) {v w : V} (p q : G.Path v w)
Goal: p = q
-- SimpleGraph.isAcyclic_of_path_unique
theorem isAcyclic_of_path_unique (h : ∀ (v w : V) (p q : G.Path v w), p = q) : G.IsAcyclic 
Arguments: {V : Type u} {G : SimpleGraph V} (h : ∀ (v w : V) (p q : G.Path v w), p = q)
Goal: G.IsAcyclic
-- SimpleGraph.isAcyclic_iff_path_unique
theorem isAcyclic_iff_path_unique : G.IsAcyclic ↔ ∀ ⦃v w : V⦄ (p q : G.Path v w), p = q 
Arguments: {V : Type u} {G : SimpleGraph V}
Goal: G.IsAcyclic ↔ ∀ ⦃v w : V⦄ (p q : G.Path v w), p = q
-- SimpleGraph.isTree_iff_existsUnique_path
theorem isTree_iff_existsUnique_path :
    G.IsTree ↔ Nonempty V ∧ ∀ v w : V, ∃! p : G.Walk v w, p.IsPath 
Arguments: {V : Type u} {G : SimpleGraph V}
Goal: G.IsTree ↔ Nonempty V ∧ ∀ (v w : V), ∃! p, p.IsPath
-- SimpleGraph.IsTree.existsUnique_path
lemma IsTree.existsUnique_path (hG : G.IsTree) : ∀ v w, ∃! p : G.Walk v w, p.IsPath 
Arguments: {V : Type u} {G : SimpleGraph V} (hG : G.IsTree) (v w : V)
Goal: ∃! p, p.IsPath
-- SimpleGraph.IsTree.card_edgeFinset
lemma IsTree.card_edgeFinset [Fintype V] [Fintype G.edgeSet] (hG : G.IsTree) :
    Finset.card G.edgeFinset + 1 = Fintype.card V 
Arguments: {V : Type u} {G : SimpleGraph V} [Fintype V] [Fintype ↑G.edgeSet] (hG : G.IsTree)
Goal: G.edgeFinset.card + 1 = Fintype.card V
-- Finpartition.equitabilise_aux
theorem equitabilise_aux (hs : a * m + b * (m + 1) = s.card) :
    ∃ Q : Finpartition s,
      (∀ x : Finset α, x ∈ Q.parts → x.card = m ∨ x.card = m + 1) ∧
        (∀ x, x ∈ P.parts → (x \ (Q.parts.filter fun y => y ⊆ x).biUnion id).card ≤ m) ∧
          (Q.parts.filter fun i => card i = m + 1).card = b 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {m a b : ℕ} {P : Finpartition s} (hs : a * m + b * (m + 1) = s.card)
Goal: ∃ Q,
  (∀ x ∈ Q.parts, x.card = m ∨ x.card = m + 1) ∧
    (∀ x ∈ P.parts, (x \ (Finset.filter (fun y => y ⊆ x) Q.parts).biUnion id).card ≤ m) ∧
      (Finset.filter (fun i => i.card = m + 1) Q.parts).card = b
-- Finpartition.card_eq_of_mem_parts_equitabilise
theorem card_eq_of_mem_parts_equitabilise :
    t ∈ (P.equitabilise h).parts → t.card = m ∨ t.card = m + 1 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {m a b : ℕ} {P : Finpartition s} {h : a * m + b * (m + 1) = s.card}
Goal: t ∈ (Finpartition.equitabilise h).parts → t.card = m ∨ t.card = m + 1
-- Finpartition.equitabilise_isEquipartition
theorem equitabilise_isEquipartition : (P.equitabilise h).IsEquipartition 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {m a b : ℕ} {P : Finpartition s} {h : a * m + b * (m + 1) = s.card}
Goal: (Finpartition.equitabilise h).IsEquipartition
-- Finpartition.card_filter_equitabilise_big
theorem card_filter_equitabilise_big :
    ((P.equitabilise h).parts.filter fun u : Finset α => u.card = m + 1).card = b 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {m a b : ℕ} (P : Finpartition s) (h : a * m + b * (m + 1) = s.card)
Goal: (Finset.filter (fun u => u.card = m + 1) (Finpartition.equitabilise h).parts).card = b
-- Finpartition.card_filter_equitabilise_small
theorem card_filter_equitabilise_small (hm : m ≠ 0) :
    ((P.equitabilise h).parts.filter fun u : Finset α => u.card = m).card = a 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {m a b : ℕ} (P : Finpartition s) (h : a * m + b * (m + 1) = s.card) (hm : m ≠ 0)
Goal: (Finset.filter (fun u => u.card = m) (Finpartition.equitabilise h).parts).card = a
-- Finpartition.card_parts_equitabilise
theorem card_parts_equitabilise (hm : m ≠ 0) : (P.equitabilise h).parts.card = a + b 
Arguments: {α : Type u_1} [DecidableEq α] {s : Finset α} {m a b : ℕ} (P : Finpartition s) (h : a * m + b * (m + 1) = s.card) (hm : m ≠ 0)
Goal: (Finpartition.equitabilise h).parts.card = a + b
-- Finpartition.card_parts_equitabilise_subset_le
theorem card_parts_equitabilise_subset_le :
    t ∈ P.parts → (t \ ((P.equitabilise h).parts.filter fun u => u ⊆ t).biUnion id).card ≤ m 
Arguments: {α : Type u_1} [DecidableEq α] {s t : Finset α} {m a b : ℕ} (P : Finpartition s) (h : a * m + b * (m + 1) = s.card)
Goal: t ∈ P.parts → (t \ (Finset.filter (fun u => u ⊆ t) (Finpartition.equitabilise h).parts).biUnion id).card ≤ m
-- Finpartition.exists_equipartition_card_eq
theorem exists_equipartition_card_eq (hn : n ≠ 0) (hs : n ≤ s.card) :
    ∃ P : Finpartition s, P.IsEquipartition ∧ P.parts.card = n 
Arguments: {α : Type u_1} [DecidableEq α] (s : Finset α) {n : ℕ} (hn : n ≠ 0) (hs : n ≤ s.card)
Goal: ∃ P, P.IsEquipartition ∧ P.parts.card = n
-- Rel.mem_interedges_iff
theorem mem_interedges_iff {x : α × β} : x ∈ interedges r s t ↔ x.1 ∈ s ∧ x.2 ∈ t ∧ r x.1 x.2 
Arguments: {α : Type u_4} {β : Type u_5} {r : α → β → Prop} [(a : α) → DecidablePred (r a)] {s : Finset α} {t : Finset β} {x : α × β}
Goal: x ∈ Rel.interedges r s t ↔ x.1 ∈ s ∧ x.2 ∈ t ∧ r x.1 x.2
-- Rel.mk_mem_interedges_iff
theorem mk_mem_interedges_iff : (a, b) ∈ interedges r s t ↔ a ∈ s ∧ b ∈ t ∧ r a b 
Arguments: {α : Type u_4} {β : Type u_5} {r : α → β → Prop} [(a : α) → DecidablePred (r a)] {s : Finset α} {t : Finset β} {a : α} {b : β}
Goal: (a, b) ∈ Rel.interedges r s t ↔ a ∈ s ∧ b ∈ t ∧ r a b
-- Rel.interedges_empty_left
@[simp]
theorem interedges_empty_left (t : Finset β) : interedges r ∅ t = ∅ 
Arguments: {α : Type u_4} {β : Type u_5} {r : α → β → Prop} [(a : α) → DecidablePred (r a)] (t : Finset β)
Goal: Rel.interedges r ∅ t = ∅
-- Rel.interedges_mono
theorem interedges_mono (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁) : interedges r s₂ t₂ ⊆ interedges r s₁ t₁ 
Arguments: {α : Type u_4} {β : Type u_5} {r : α → β → Prop} [(a : α) → DecidablePred (r a)] {s₁ s₂ : Finset α} {t₁ t₂ : Finset β} (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁)
Goal: Rel.interedges r s₂ t₂ ⊆ Rel.interedges r s₁ t₁
-- Rel.card_interedges_add_card_interedges_compl
theorem card_interedges_add_card_interedges_compl (s : Finset α) (t : Finset β) :
    (interedges r s t).card + (interedges (fun x y ↦ ¬r x y) s t).card = s.card * t.card 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] (s : Finset α) (t : Finset β)
Goal: (Rel.interedges r s t).card + (Rel.interedges (fun x y => ¬r x y) s t).card = s.card * t.card
-- Rel.interedges_disjoint_left
theorem interedges_disjoint_left {s s' : Finset α} (hs : Disjoint s s') (t : Finset β) :
    Disjoint (interedges r s t) (interedges r s' t) 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] {s s' : Finset α} (hs : Disjoint s s') (t : Finset β)
Goal: Disjoint (Rel.interedges r s t) (Rel.interedges r s' t)
-- Rel.interedges_disjoint_right
theorem interedges_disjoint_right (s : Finset α) {t t' : Finset β} (ht : Disjoint t t') :
    Disjoint (interedges r s t) (interedges r s t') 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] (s : Finset α) {t t' : Finset β} (ht : Disjoint t t')
Goal: Disjoint (Rel.interedges r s t) (Rel.interedges r s t')
-- Rel.interedges_eq_biUnion
lemma interedges_eq_biUnion :
    interedges r s t = s.biUnion (fun x ↦ (t.filter (r x)).map ⟨(x, ·), Prod.mk.inj_left x⟩) 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] {s : Finset α} {t : Finset β} [DecidableEq α] [DecidableEq β]
Goal: Rel.interedges r s t = s.biUnion fun x => Finset.map { toFun := fun x_1 => (x, x_1), inj' := ⋯ } (Finset.filter (r x) t)
-- Rel.interedges_biUnion_left
theorem interedges_biUnion_left (s : Finset ι) (t : Finset β) (f : ι → Finset α) :
    interedges r (s.biUnion f) t = s.biUnion fun a ↦ interedges r (f a) t 
Arguments: {ι : Type u_2} {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] [DecidableEq α] [DecidableEq β] (s : Finset ι) (t : Finset β) (f : ι → Finset α)
Goal: Rel.interedges r (s.biUnion f) t = s.biUnion fun a => Rel.interedges r (f a) t
-- Rel.interedges_biUnion_right
theorem interedges_biUnion_right (s : Finset α) (t : Finset ι) (f : ι → Finset β) :
    interedges r s (t.biUnion f) = t.biUnion fun b ↦ interedges r s (f b) 
Arguments: {ι : Type u_2} {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] [DecidableEq α] [DecidableEq β] (s : Finset α) (t : Finset ι) (f : ι → Finset β)
Goal: Rel.interedges r s (t.biUnion f) = t.biUnion fun b => Rel.interedges r s (f b)
-- Rel.interedges_biUnion
theorem interedges_biUnion (s : Finset ι) (t : Finset κ) (f : ι → Finset α) (g : κ → Finset β) :
    interedges r (s.biUnion f) (t.biUnion g) =
      (s ×ˢ t).biUnion fun ab ↦ interedges r (f ab.1) (g ab.2) 
Arguments: {ι : Type u_2} {κ : Type u_3} {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] [DecidableEq α] [DecidableEq β] (s : Finset ι) (t : Finset κ) (f : ι → Finset α) (g : κ → Finset β)
Goal: Rel.interedges r (s.biUnion f) (t.biUnion g) = (s ×ˢ t).biUnion fun ab => Rel.interedges r (f ab.1) (g ab.2)
-- Rel.card_interedges_le_mul
theorem card_interedges_le_mul (s : Finset α) (t : Finset β) :
    (interedges r s t).card ≤ s.card * t.card 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] (s : Finset α) (t : Finset β)
Goal: (Rel.interedges r s t).card ≤ s.card * t.card
-- Rel.edgeDensity_nonneg
theorem edgeDensity_nonneg (s : Finset α) (t : Finset β) : 0 ≤ edgeDensity r s t 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] (s : Finset α) (t : Finset β)
Goal: 0 ≤ Rel.edgeDensity r s t
-- Rel.edgeDensity_le_one
theorem edgeDensity_le_one (s : Finset α) (t : Finset β) : edgeDensity r s t ≤ 1 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] (s : Finset α) (t : Finset β)
Goal: Rel.edgeDensity r s t ≤ 1
-- Rel.edgeDensity_add_edgeDensity_compl
theorem edgeDensity_add_edgeDensity_compl (hs : s.Nonempty) (ht : t.Nonempty) :
    edgeDensity r s t + edgeDensity (fun x y ↦ ¬r x y) s t = 1 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] {s : Finset α} {t : Finset β} (hs : s.Nonempty) (ht : t.Nonempty)
Goal: Rel.edgeDensity r s t + Rel.edgeDensity (fun x y => ¬r x y) s t = 1
-- Rel.edgeDensity_empty_left
@[simp]
theorem edgeDensity_empty_left (t : Finset β) : edgeDensity r ∅ t = 0 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] (t : Finset β)
Goal: Rel.edgeDensity r ∅ t = 0
-- Rel.edgeDensity_empty_right
@[simp]
theorem edgeDensity_empty_right (s : Finset α) : edgeDensity r s ∅ = 0 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] (s : Finset α)
Goal: Rel.edgeDensity r s ∅ = 0
-- Rel.card_interedges_finpartition_left
theorem card_interedges_finpartition_left [DecidableEq α] (P : Finpartition s) (t : Finset β) :
    (interedges r s t).card = ∑ a ∈ P.parts, (interedges r a t).card 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] {s : Finset α} [DecidableEq α] (P : Finpartition s) (t : Finset β)
Goal: (Rel.interedges r s t).card = ∑ a ∈ P.parts, (Rel.interedges r a t).card
-- Rel.card_interedges_finpartition_right
theorem card_interedges_finpartition_right [DecidableEq β] (s : Finset α) (P : Finpartition t) :
    (interedges r s t).card = ∑ b ∈ P.parts, (interedges r s b).card 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] {t : Finset β} [DecidableEq β] (s : Finset α) (P : Finpartition t)
Goal: (Rel.interedges r s t).card = ∑ b ∈ P.parts, (Rel.interedges r s b).card
-- Rel.card_interedges_finpartition
theorem card_interedges_finpartition [DecidableEq α] [DecidableEq β] (P : Finpartition s)
    (Q : Finpartition t) :
    (interedges r s t).card = ∑ ab ∈ P.parts ×ˢ Q.parts, (interedges r ab.1 ab.2).card 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] {s : Finset α} {t : Finset β} [DecidableEq α] [DecidableEq β] (P : Finpartition s) (Q : Finpartition t)
Goal: (Rel.interedges r s t).card = ∑ ab ∈ P.parts ×ˢ Q.parts, (Rel.interedges r ab.1 ab.2).card
-- Rel.mul_edgeDensity_le_edgeDensity
theorem mul_edgeDensity_le_edgeDensity (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁) (hs₂ : s₂.Nonempty)
    (ht₂ : t₂.Nonempty) :
    (s₂.card : ℚ) / s₁.card * (t₂.card / t₁.card) * edgeDensity r s₂ t₂ ≤ edgeDensity r s₁ t₁ 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] {s₁ s₂ : Finset α} {t₁ t₂ : Finset β} (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁) (hs₂ : s₂.Nonempty) (ht₂ : t₂.Nonempty)
Goal: ↑s₂.card / ↑s₁.card * (↑t₂.card / ↑t₁.card) * Rel.edgeDensity r s₂ t₂ ≤ Rel.edgeDensity r s₁ t₁
-- Rel.edgeDensity_sub_edgeDensity_le_one_sub_mul
theorem edgeDensity_sub_edgeDensity_le_one_sub_mul (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁) (hs₂ : s₂.Nonempty)
    (ht₂ : t₂.Nonempty) :
    edgeDensity r s₂ t₂ - edgeDensity r s₁ t₁ ≤ 1 - s₂.card / s₁.card * (t₂.card / t₁.card) 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] {s₁ s₂ : Finset α} {t₁ t₂ : Finset β} (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁) (hs₂ : s₂.Nonempty) (ht₂ : t₂.Nonempty)
Goal: Rel.edgeDensity r s₂ t₂ - Rel.edgeDensity r s₁ t₁ ≤ 1 - ↑s₂.card / ↑s₁.card * (↑t₂.card / ↑t₁.card)
-- Rel.abs_edgeDensity_sub_edgeDensity_le_one_sub_mul
theorem abs_edgeDensity_sub_edgeDensity_le_one_sub_mul (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁)
    (hs₂ : s₂.Nonempty) (ht₂ : t₂.Nonempty) :
    |edgeDensity r s₂ t₂ - edgeDensity r s₁ t₁| ≤ 1 - s₂.card / s₁.card * (t₂.card / t₁.card) 
Arguments: {α : Type u_4} {β : Type u_5} (r : α → β → Prop) [(a : α) → DecidablePred (r a)] {s₁ s₂ : Finset α} {t₁ t₂ : Finset β} (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁) (hs₂ : s₂.Nonempty) (ht₂ : t₂.Nonempty)
Goal: |Rel.edgeDensity r s₂ t₂ - Rel.edgeDensity r s₁ t₁| ≤ 1 - ↑s₂.card / ↑s₁.card * (↑t₂.card / ↑t₁.card)
-- Rel.abs_edgeDensity_sub_edgeDensity_le_two_mul_sub_sq
theorem abs_edgeDensity_sub_edgeDensity_le_two_mul_sub_sq (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁)
    (hδ₀ : 0 ≤ δ) (hδ₁ : δ < 1) (hs₂ : (1 - δ) * s₁.card ≤ s₂.card)
    (ht₂ : (1 - δ) * t₁.card ≤ t₂.card) :
    |(edgeDensity r s₂ t₂ : 𝕜) - edgeDensity r s₁ t₁| ≤ 2 * δ - δ ^ 2 
Arguments: {𝕜 : Type u_1} {α : Type u_4} {β : Type u_5} [LinearOrderedField 𝕜] (r : α → β → Prop) [(a : α) → DecidablePred (r a)] {s₁ s₂ : Finset α} {t₁ t₂ : Finset β} {δ : 𝕜} (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁) (hδ₀ : 0 ≤ δ) (hδ₁ : δ < 1) (hs₂ : (1 - δ) * ↑s₁.card ≤ ↑s₂.card) (ht₂ : (1 - δ) * ↑t₁.card ≤ ↑t₂.card)
Goal: |↑(Rel.edgeDensity r s₂ t₂) - ↑(Rel.edgeDensity r s₁ t₁)| ≤ 2 * δ - δ ^ 2
-- Rel.abs_edgeDensity_sub_edgeDensity_le_two_mul
theorem abs_edgeDensity_sub_edgeDensity_le_two_mul (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁) (hδ : 0 ≤ δ)
    (hscard : (1 - δ) * s₁.card ≤ s₂.card) (htcard : (1 - δ) * t₁.card ≤ t₂.card) :
    |(edgeDensity r s₂ t₂ : 𝕜) - edgeDensity r s₁ t₁| ≤ 2 * δ 
Arguments: {𝕜 : Type u_1} {α : Type u_4} {β : Type u_5} [LinearOrderedField 𝕜] (r : α → β → Prop) [(a : α) → DecidablePred (r a)] {s₁ s₂ : Finset α} {t₁ t₂ : Finset β} {δ : 𝕜} (hs : s₂ ⊆ s₁) (ht : t₂ ⊆ t₁) (hδ : 0 ≤ δ) (hscard : (1 - δ) * ↑s₁.card ≤ ↑s₂.card) (htcard : (1 - δ) * ↑t₁.card ≤ ↑t₂.card)
Goal: |↑(Rel.edgeDensity r s₂ t₂) - ↑(Rel.edgeDensity r s₁ t₁)| ≤ 2 * δ