ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- SimpleGraph.Subgraph.deleteEdges_deleteEdges
@[simp]
theorem deleteEdges_deleteEdges (s s' : Set (Sym2 V)) :
    (G'.deleteEdges s).deleteEdges s' = G'.deleteEdges (s ∪ s') 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} (s s' : Set (Sym2 V))
Goal: (G'.deleteEdges s).deleteEdges s' = G'.deleteEdges (s ∪ s')
-- SimpleGraph.Subgraph.deleteEdges_empty_eq
@[simp]
theorem deleteEdges_empty_eq : G'.deleteEdges ∅ = G' 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph}
Goal: G'.deleteEdges ∅ = G'
-- SimpleGraph.Subgraph.deleteEdges_spanningCoe_eq
@[simp]
theorem deleteEdges_spanningCoe_eq :
    G'.spanningCoe.deleteEdges s = (G'.deleteEdges s).spanningCoe 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} (s : Set (Sym2 V))
Goal: G'.spanningCoe.deleteEdges s = (G'.deleteEdges s).spanningCoe
-- SimpleGraph.Subgraph.deleteEdges_coe_eq
theorem deleteEdges_coe_eq (s : Set (Sym2 G'.verts)) :
    G'.coe.deleteEdges s = (G'.deleteEdges (Sym2.map (↑) '' s)).coe 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} (s : Set (Sym2 ↑G'.verts))
Goal: G'.coe.deleteEdges s = (G'.deleteEdges (Sym2.map Subtype.val '' s)).coe
-- SimpleGraph.Subgraph.coe_deleteEdges_eq
theorem coe_deleteEdges_eq (s : Set (Sym2 V)) :
    (G'.deleteEdges s).coe = G'.coe.deleteEdges (Sym2.map (↑) ⁻¹' s) 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} (s : Set (Sym2 V))
Goal: (G'.deleteEdges s).coe = G'.coe.deleteEdges (Sym2.map Subtype.val ⁻¹' s)
-- SimpleGraph.Subgraph.deleteEdges_le
theorem deleteEdges_le : G'.deleteEdges s ≤ G' 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} (s : Set (Sym2 V))
Goal: G'.deleteEdges s ≤ G'
-- SimpleGraph.Subgraph.deleteEdges_le_of_le
theorem deleteEdges_le_of_le {s s' : Set (Sym2 V)} (h : s ⊆ s') :
    G'.deleteEdges s' ≤ G'.deleteEdges s 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {s s' : Set (Sym2 V)} (h : s ⊆ s')
Goal: G'.deleteEdges s' ≤ G'.deleteEdges s
-- SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_left_eq
@[simp]
theorem deleteEdges_inter_edgeSet_left_eq :
    G'.deleteEdges (G'.edgeSet ∩ s) = G'.deleteEdges s 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} (s : Set (Sym2 V))
Goal: G'.deleteEdges (G'.edgeSet ∩ s) = G'.deleteEdges s
-- SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_right_eq
@[simp]
theorem deleteEdges_inter_edgeSet_right_eq :
    G'.deleteEdges (s ∩ G'.edgeSet) = G'.deleteEdges s 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} (s : Set (Sym2 V))
Goal: G'.deleteEdges (s ∩ G'.edgeSet) = G'.deleteEdges s
-- SimpleGraph.Subgraph.coe_deleteEdges_le
theorem coe_deleteEdges_le : (G'.deleteEdges s).coe ≤ (G'.coe : SimpleGraph G'.verts) 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} (s : Set (Sym2 V))
Goal: (G'.deleteEdges s).coe ≤ G'.coe
-- SimpleGraph.Subgraph.spanningCoe_deleteEdges_le
theorem spanningCoe_deleteEdges_le (G' : G.Subgraph) (s : Set (Sym2 V)) :
    (G'.deleteEdges s).spanningCoe ≤ G'.spanningCoe 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (s : Set (Sym2 V))
Goal: (G'.deleteEdges s).spanningCoe ≤ G'.spanningCoe
-- SimpleGraph.Subgraph.induce_adj
@[simps]
def induce (G' : G.Subgraph) (s : Set V) : G.Subgraph 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (s : Set V) (u v : V)
Goal: (G'.induce s).Adj u v = (u ∈ s ∧ v ∈ s ∧ G'.Adj u v)
-- SimpleGraph.Subgraph.induce_verts
@[simps]
def induce (G' : G.Subgraph) (s : Set V) : G.Subgraph 
Arguments: {V : Type u} {G : SimpleGraph V} (G' : G.Subgraph) (s : Set V)
Goal: (G'.induce s).verts = s
-- SimpleGraph.induce_eq_coe_induce_top
theorem _root_.SimpleGraph.induce_eq_coe_induce_top (s : Set V) :
    G.induce s = ((⊤ : G.Subgraph).induce s).coe 
Arguments: {V : Type u} {G : SimpleGraph V} (s : Set V)
Goal: SimpleGraph.induce s G = (⊤.induce s).coe
-- SimpleGraph.Subgraph.induce_mono
theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.induce s' 
Arguments: {V : Type u} {G : SimpleGraph V} {G' G'' : G.Subgraph} {s s' : Set V} (hg : G' ≤ G'') (hs : s ⊆ s')
Goal: G'.induce s ≤ G''.induce s'
-- SimpleGraph.Subgraph.induce_mono_left
@[mono]
theorem induce_mono_left (hg : G' ≤ G'') : G'.induce s ≤ G''.induce s 
Arguments: {V : Type u} {G : SimpleGraph V} {G' G'' : G.Subgraph} {s : Set V} (hg : G' ≤ G'')
Goal: G'.induce s ≤ G''.induce s
-- SimpleGraph.Subgraph.induce_mono_right
@[mono]
theorem induce_mono_right (hs : s ⊆ s') : G'.induce s ≤ G'.induce s' 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {s s' : Set V} (hs : s ⊆ s')
Goal: G'.induce s ≤ G'.induce s'
-- SimpleGraph.Subgraph.induce_empty
@[simp]
theorem induce_empty : G'.induce ∅ = ⊥ 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph}
Goal: G'.induce ∅ = ⊥
-- SimpleGraph.Subgraph.induce_self_verts
@[simp]
theorem induce_self_verts : G'.induce G'.verts = G' 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph}
Goal: G'.induce G'.verts = G'
-- SimpleGraph.Subgraph.le_induce_top_verts
lemma le_induce_top_verts : G' ≤ (⊤ : G.Subgraph).induce G'.verts 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph}
Goal: G' ≤ ⊤.induce G'.verts
-- SimpleGraph.Subgraph.le_induce_union
lemma le_induce_union : G'.induce s ⊔ G'.induce s' ≤ G'.induce (s ∪ s') 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {s s' : Set V}
Goal: G'.induce s ⊔ G'.induce s' ≤ G'.induce (s ∪ s')
-- SimpleGraph.Subgraph.le_induce_union_left
lemma le_induce_union_left : G'.induce s ≤ G'.induce (s ∪ s') 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {s s' : Set V}
Goal: G'.induce s ≤ G'.induce (s ∪ s')
-- SimpleGraph.Subgraph.le_induce_union_right
lemma le_induce_union_right : G'.induce s' ≤ G'.induce (s ∪ s') 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {s s' : Set V}
Goal: G'.induce s' ≤ G'.induce (s ∪ s')
-- SimpleGraph.Subgraph.singletonSubgraph_eq_induce
theorem singletonSubgraph_eq_induce {v : V} :
    G.singletonSubgraph v = (⊤ : G.Subgraph).induce {v} 
Arguments: {V : Type u} {G : SimpleGraph V} {v : V}
Goal: G.singletonSubgraph v = ⊤.induce {v}
-- SimpleGraph.Subgraph.subgraphOfAdj_eq_induce
theorem subgraphOfAdj_eq_induce {v w : V} (hvw : G.Adj v w) :
    G.subgraphOfAdj hvw = (⊤ : G.Subgraph).induce {v, w} 
Arguments: {V : Type u} {G : SimpleGraph V} {v w : V} (hvw : G.Adj v w)
Goal: G.subgraphOfAdj hvw = ⊤.induce {v, w}
-- SimpleGraph.Subgraph.deleteVerts_verts
theorem deleteVerts_verts : (G'.deleteVerts s).verts = G'.verts \ s 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {s : Set V}
Goal: (G'.deleteVerts s).verts = G'.verts \ s
-- SimpleGraph.Subgraph.deleteVerts_adj
theorem deleteVerts_adj {u v : V} :
    (G'.deleteVerts s).Adj u v ↔ u ∈ G'.verts ∧ ¬u ∈ s ∧ v ∈ G'.verts ∧ ¬v ∈ s ∧ G'.Adj u v 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {s : Set V} {u v : V}
Goal: (G'.deleteVerts s).Adj u v ↔ u ∈ G'.verts ∧ u ∉ s ∧ v ∈ G'.verts ∧ v ∉ s ∧ G'.Adj u v
-- SimpleGraph.Subgraph.deleteVerts_deleteVerts
@[simp]
theorem deleteVerts_deleteVerts (s s' : Set V) :
    (G'.deleteVerts s).deleteVerts s' = G'.deleteVerts (s ∪ s') 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} (s s' : Set V)
Goal: (G'.deleteVerts s).deleteVerts s' = G'.deleteVerts (s ∪ s')
-- SimpleGraph.Subgraph.deleteVerts_empty
@[simp]
theorem deleteVerts_empty : G'.deleteVerts ∅ = G' 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph}
Goal: G'.deleteVerts ∅ = G'
-- SimpleGraph.Subgraph.deleteVerts_le
theorem deleteVerts_le : G'.deleteVerts s ≤ G' 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {s : Set V}
Goal: G'.deleteVerts s ≤ G'
-- SimpleGraph.Subgraph.deleteVerts_mono
@[mono]
theorem deleteVerts_mono {G' G'' : G.Subgraph} (h : G' ≤ G'') :
    G'.deleteVerts s ≤ G''.deleteVerts s 
Arguments: {V : Type u} {G : SimpleGraph V} {s : Set V} {G' G'' : G.Subgraph} (h : G' ≤ G'')
Goal: G'.deleteVerts s ≤ G''.deleteVerts s
-- SimpleGraph.Subgraph.deleteVerts_anti
@[mono]
theorem deleteVerts_anti {s s' : Set V} (h : s ⊆ s') : G'.deleteVerts s' ≤ G'.deleteVerts s 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {s s' : Set V} (h : s ⊆ s')
Goal: G'.deleteVerts s' ≤ G'.deleteVerts s
-- SimpleGraph.Subgraph.deleteVerts_inter_verts_left_eq
@[simp]
theorem deleteVerts_inter_verts_left_eq : G'.deleteVerts (G'.verts ∩ s) = G'.deleteVerts s 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {s : Set V}
Goal: G'.deleteVerts (G'.verts ∩ s) = G'.deleteVerts s
-- SimpleGraph.Subgraph.deleteVerts_inter_verts_set_right_eq
@[simp]
theorem deleteVerts_inter_verts_set_right_eq :
    G'.deleteVerts (s ∩ G'.verts) = G'.deleteVerts s 
Arguments: {V : Type u} {G : SimpleGraph V} {G' : G.Subgraph} {s : Set V}
Goal: G'.deleteVerts (s ∩ G'.verts) = G'.deleteVerts s
-- ValuedCSP.Term.inΓ
structure ValuedCSP.Term (Γ : ValuedCSP D C) (ι : Type*) where
    n : ℕ
    f : (Fin n → D) → C
    inΓ : ⟨n, f⟩ ∈ Γ
    app : Fin n → ι
Arguments: {D : Type u_1} {C : Type u_2} [OrderedAddCommMonoid C] {Γ : ValuedCSP D C} {ι : Type u_3} (self : Γ.Term ι)
Goal: ⟨self.n, self.f⟩ ∈ Γ
-- FractionalOperation.IsValid.contains
lemma FractionalOperation.IsValid.contains {ω : FractionalOperation D m} (valid : ω.IsValid) :
    ∃ g : (Fin m → D) → D, g ∈ ω 
Arguments: {D : Type u_1} {m : ℕ} {ω : FractionalOperation D m} (valid : ω.IsValid)
Goal: ∃ g, g ∈ ω
-- Function.HasMaxCutPropertyAt.rows_lt_aux
lemma Function.HasMaxCutPropertyAt.rows_lt_aux
    {f : (Fin 2 → D) → C} {a b : D} (mcf : f.HasMaxCutPropertyAt a b) (hab : a ≠ b)
    {ω : FractionalOperation D 2} (symmega : ω.IsSymmetric)
    {r : Fin 2 → D} (rin : r ∈ (ω.tt ![![a, b], ![b, a]])) :
    f ![a, b] < f r 
Arguments: {D : Type u_1} {C : Type u_3} [OrderedCancelAddCommMonoid C] {f : (Fin 2 → D) → C} {a b : D} (mcf : Function.HasMaxCutPropertyAt f a b) (hab : a ≠ b) {ω : FractionalOperation D 2} (symmega : ω.IsSymmetric) {r : Fin 2 → D} (rin : r ∈ ω.tt ![![a, b], ![b, a]])
Goal: f ![a, b] < f r
-- Function.HasMaxCutProperty.forbids_commutativeFractionalPolymorphism
lemma Function.HasMaxCutProperty.forbids_commutativeFractionalPolymorphism
    {f : (Fin 2 → D) → C} (mcf : f.HasMaxCutProperty)
    {ω : FractionalOperation D 2} (valid : ω.IsValid) (symmega : ω.IsSymmetric) :
    ¬ f.AdmitsFractional ω 
Arguments: {D : Type u_1} {C : Type u_3} [OrderedCancelAddCommMonoid C] {f : (Fin 2 → D) → C} (mcf : Function.HasMaxCutProperty f) {ω : FractionalOperation D 2} (valid : ω.IsValid) (symmega : ω.IsSymmetric)
Goal: ¬Function.AdmitsFractional f ω
-- _private.Mathlib.Combinatorics.SimpleGraph.Triangle.Counting.0.SimpleGraph.card_interedges_badVertices_le
private lemma card_interedges_badVertices_le :
    (Rel.interedges G.Adj (badVertices G ε s t) t).card ≤
      (badVertices G ε s t).card * t.card * (G.edgeDensity s t - ε) 
Arguments: {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {ε : ℝ} {s t : Finset α}
Goal: ↑(Rel.interedges G.Adj (SimpleGraph.badVertices G ε s t) t).card ≤
  ↑(SimpleGraph.badVertices G ε s t).card * ↑t.card * (↑(G.edgeDensity s t) - ε)
-- _private.Mathlib.Combinatorics.SimpleGraph.Triangle.Counting.0.SimpleGraph.edgeDensity_badVertices_le
private lemma edgeDensity_badVertices_le (hε : 0 ≤ ε) (dst : 2 * ε ≤ G.edgeDensity s t) :
    G.edgeDensity (badVertices G ε s t) t ≤ G.edgeDensity s t - ε 
Arguments: {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {ε : ℝ} {s t : Finset α} (hε : 0 ≤ ε) (dst : 2 * ε ≤ ↑(G.edgeDensity s t))
Goal: ↑(G.edgeDensity (SimpleGraph.badVertices G ε s t) t) ≤ ↑(G.edgeDensity s t) - ε
-- _private.Mathlib.Combinatorics.SimpleGraph.Triangle.Counting.0.SimpleGraph.card_badVertices_le
private lemma card_badVertices_le (dst : 2 * ε ≤ G.edgeDensity s t) (hst : G.IsUniform ε s t) :
    (badVertices G ε s t).card ≤ s.card * ε 
Arguments: {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {ε : ℝ} {s t : Finset α} (dst : 2 * ε ≤ ↑(G.edgeDensity s t)) (hst : G.IsUniform ε s t)
Goal: ↑(SimpleGraph.badVertices G ε s t).card ≤ ↑s.card * ε
-- _private.Mathlib.Combinatorics.SimpleGraph.Triangle.Counting.0.SimpleGraph.triangle_split_helper
private lemma triangle_split_helper [DecidableEq α] :
    (s \ (badVertices G ε s t ∪ badVertices G ε s u)).biUnion
      (fun x ↦ (G.interedges (t.filter $ G.Adj x) (u.filter $ G.Adj x)).image (x, ·)) ⊆
      (s ×ˢ t ×ˢ u).filter (fun (x, y, z) ↦ G.Adj x y ∧ G.Adj x z ∧ G.Adj y z) 
Arguments: {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {ε : ℝ} {s t u : Finset α} [DecidableEq α]
Goal: ((s \ (SimpleGraph.badVertices G ε s t ∪ SimpleGraph.badVertices G ε s u)).biUnion fun x =>
    Finset.image (fun x_1 => (x, x_1)) (G.interedges (Finset.filter (G.Adj x) t) (Finset.filter (G.Adj x) u))) ⊆
  Finset.filter
    (fun x =>
      match x with
      | (x, y, z) => G.Adj x y ∧ G.Adj x z ∧ G.Adj y z)
    (s ×ˢ t ×ˢ u)
-- _private.Mathlib.Combinatorics.SimpleGraph.Triangle.Counting.0.SimpleGraph.good_vertices_triangle_card
private lemma good_vertices_triangle_card [DecidableEq α] (dst : 2 * ε ≤ G.edgeDensity s t)
    (dsu : 2 * ε ≤ G.edgeDensity s u) (dtu : 2 * ε ≤ G.edgeDensity t u) (utu : G.IsUniform ε t u)
    (x : α) (hx : x ∈ s \ (badVertices G ε s t ∪ badVertices G ε s u)) :
    ε ^ 3 * t.card * u.card ≤ (((t.filter (G.Adj x) ×ˢ u.filter (G.Adj x)).filter
        fun (y, z) ↦ G.Adj y z).image (x, ·)).card 
Arguments: {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {ε : ℝ} {s t u : Finset α} [DecidableEq α] (dst : 2 * ε ≤ ↑(G.edgeDensity s t)) (dsu : 2 * ε ≤ ↑(G.edgeDensity s u)) (dtu : 2 * ε ≤ ↑(G.edgeDensity t u)) (utu : G.IsUniform ε t u) (x : α) (hx : x ∈ s \ (SimpleGraph.badVertices G ε s t ∪ SimpleGraph.badVertices G ε s u))
Goal: ε ^ 3 * ↑t.card * ↑u.card ≤
  ↑(Finset.image (fun x_1 => (x, x_1))
        (Finset.filter
          (fun x =>
            match x with
            | (y, z) => G.Adj y z)
          (Finset.filter (G.Adj x) t ×ˢ Finset.filter (G.Adj x) u))).card
-- SimpleGraph.triangle_counting'
lemma triangle_counting'
    (dst : 2 * ε ≤ G.edgeDensity s t) (hst : G.IsUniform ε s t)
    (dsu : 2 * ε ≤ G.edgeDensity s u) (usu : G.IsUniform ε s u)
    (dtu : 2 * ε ≤ G.edgeDensity t u) (utu : G.IsUniform ε t u) :
    (1 - 2 * ε) * ε ^ 3 * s.card * t.card * u.card ≤
      ((s ×ˢ t ×ˢ u).filter fun (a, b, c) ↦ G.Adj a b ∧ G.Adj a c ∧ G.Adj b c).card 
Arguments: {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {ε : ℝ} {s t u : Finset α} (dst : 2 * ε ≤ ↑(G.edgeDensity s t)) (hst : G.IsUniform ε s t) (dsu : 2 * ε ≤ ↑(G.edgeDensity s u)) (usu : G.IsUniform ε s u) (dtu : 2 * ε ≤ ↑(G.edgeDensity t u)) (utu : G.IsUniform ε t u)
Goal: (1 - 2 * ε) * ε ^ 3 * ↑s.card * ↑t.card * ↑u.card ≤
  ↑(Finset.filter
        (fun x =>
          match x with
          | (a, b, c) => G.Adj a b ∧ G.Adj a c ∧ G.Adj b c)
        (s ×ˢ t ×ˢ u)).card
-- _private.Mathlib.Combinatorics.SimpleGraph.Triangle.Counting.0.SimpleGraph.triple_eq_triple_of_mem
private lemma triple_eq_triple_of_mem (hst : Disjoint s t) (hsu : Disjoint s u) (htu : Disjoint t u)
    {x₁ x₂ y₁ y₂ z₁ z₂ : α} (h : ({x₁, y₁, z₁} : Finset α) = {x₂, y₂, z₂})
    (hx₁ : x₁ ∈ s) (hx₂ : x₂ ∈ s) (hy₁ : y₁ ∈ t) (hy₂ : y₂ ∈ t) (hz₁ : z₁ ∈ u) (hz₂ : z₂ ∈ u) :
    (x₁, y₁, z₁) = (x₂, y₂, z₂) 
Arguments: {α : Type u_1} {s t u : Finset α} [DecidableEq α] (hst : Disjoint s t) (hsu : Disjoint s u) (htu : Disjoint t u) {x₁ x₂ y₁ y₂ z₁ z₂ : α} (h : {x₁, y₁, z₁} = {x₂, y₂, z₂}) (hx₁ : x₁ ∈ s) (hx₂ : x₂ ∈ s) (hy₁ : y₁ ∈ t) (hy₂ : y₂ ∈ t) (hz₁ : z₁ ∈ u) (hz₂ : z₂ ∈ u)
Goal: (x₁, y₁, z₁) = (x₂, y₂, z₂)
-- SimpleGraph.triangle_counting
lemma triangle_counting
    (dst : 2 * ε ≤ G.edgeDensity s t) (ust : G.IsUniform ε s t) (hst : Disjoint s t)
    (dsu : 2 * ε ≤ G.edgeDensity s u) (usu : G.IsUniform ε s u) (hsu : Disjoint s u)
    (dtu : 2 * ε ≤ G.edgeDensity t u) (utu : G.IsUniform ε t u) (htu : Disjoint t u) :
    (1 - 2 * ε) * ε ^ 3 * s.card * t.card * u.card ≤ (G.cliqueFinset 3).card 
Arguments: {α : Type u_1} (G : SimpleGraph α) [DecidableRel G.Adj] {ε : ℝ} {s t u : Finset α} [DecidableEq α] [Fintype α] (dst : 2 * ε ≤ ↑(G.edgeDensity s t)) (ust : G.IsUniform ε s t) (hst : Disjoint s t) (dsu : 2 * ε ≤ ↑(G.edgeDensity s u)) (usu : G.IsUniform ε s u) (hsu : Disjoint s u) (dtu : 2 * ε ≤ ↑(G.edgeDensity t u)) (utu : G.IsUniform ε t u) (htu : Disjoint t u)
Goal: (1 - 2 * ε) * ε ^ 3 * ↑s.card * ↑t.card * ↑u.card ≤ ↑(G.cliqueFinset 3).card
-- SimpleGraph.TripartiteFromTriangles.rel_iff
@[mk_iff] inductive Rel (t : Finset (α × β × γ)) : α ⊕ β ⊕ γ → α ⊕ β ⊕ γ → Prop
| in₀₁ ⦃a b c⦄ : (a, b, c) ∈ t → Rel t (in₀ a) (in₁ b)
| in₁₀ ⦃a b c⦄ : (a, b, c) ∈ t → Rel t (in₁ b) (in₀ a)
| in₀₂ ⦃a b c⦄ : (a, b, c) ∈ t → Rel t (in₀ a) (in₂ c)
| in₂₀ ⦃a b c⦄ : (a, b, c) ∈ t → Rel t (in₂ c) (in₀ a)
| in₁₂ ⦃a b c⦄ : (a, b, c) ∈ t → Rel t (in₁ b) (in₂ c)
| in₂₁ ⦃a b c⦄ : (a, b, c) ∈ t → Rel t (in₂ c) (in₁ b)
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} (t : Finset (α × β × γ))
Goal: ∀ (a a_1 : α ⊕ β ⊕ γ),
  SimpleGraph.TripartiteFromTriangles.Rel t a a_1 ↔
    (∃ a_2 b c, (a_2, b, c) ∈ t ∧ a = Sum3.in₀ a_2 ∧ a_1 = Sum3.in₁ b) ∨
      (∃ a_2 b c, (a_2, b, c) ∈ t ∧ a = Sum3.in₁ b ∧ a_1 = Sum3.in₀ a_2) ∨
        (∃ a_2 b c, (a_2, b, c) ∈ t ∧ a = Sum3.in₀ a_2 ∧ a_1 = Sum3.in₂ c) ∨
          (∃ a_2 b c, (a_2, b, c) ∈ t ∧ a = Sum3.in₂ c ∧ a_1 = Sum3.in₀ a_2) ∨
            (∃ a_2 b c, (a_2, b, c) ∈ t ∧ a = Sum3.in₁ b ∧ a_1 = Sum3.in₂ c) ∨
              ∃ a_2 b c, (a_2, b, c) ∈ t ∧ a = Sum3.in₂ c ∧ a_1 = Sum3.in₁ b
-- SimpleGraph.TripartiteFromTriangles.rel_irrefl
lemma rel_irrefl : ∀ x, ¬ Rel t x x 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} (x : α ⊕ β ⊕ γ)
Goal: ¬SimpleGraph.TripartiteFromTriangles.Rel t x x
-- SimpleGraph.TripartiteFromTriangles.rel_symm
lemma rel_symm : Symmetric (Rel t) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)}
Goal: Symmetric (SimpleGraph.TripartiteFromTriangles.Rel t)
-- SimpleGraph.TripartiteFromTriangles.Graph.not_in₀₀
@[simp] lemma not_in₀₀ : ¬ (graph t).Adj (in₀ a) (in₀ a') 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {a a' : α}
Goal: ¬(SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₀ a) (Sum3.in₀ a')
-- SimpleGraph.TripartiteFromTriangles.Graph.not_in₁₁
@[simp] lemma not_in₁₁ : ¬ (graph t).Adj (in₁ b) (in₁ b') 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {b b' : β}
Goal: ¬(SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₁ b) (Sum3.in₁ b')
-- SimpleGraph.TripartiteFromTriangles.Graph.not_in₂₂
@[simp] lemma not_in₂₂ : ¬ (graph t).Adj (in₂ c) (in₂ c') 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {c c' : γ}
Goal: ¬(SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₂ c) (Sum3.in₂ c')
-- SimpleGraph.TripartiteFromTriangles.Graph.in₀₁_iff
@[simp] lemma in₀₁_iff : (graph t).Adj (in₀ a) (in₁ b) ↔ ∃ c, (a, b, c) ∈ t 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {a : α} {b : β}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₀ a) (Sum3.in₁ b) ↔ ∃ c, (a, b, c) ∈ t
-- SimpleGraph.TripartiteFromTriangles.Graph.in₁₀_iff
@[simp] lemma in₁₀_iff : (graph t).Adj (in₁ b) (in₀ a) ↔ ∃ c, (a, b, c) ∈ t 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {a : α} {b : β}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₁ b) (Sum3.in₀ a) ↔ ∃ c, (a, b, c) ∈ t
-- SimpleGraph.TripartiteFromTriangles.Graph.in₀₂_iff
@[simp] lemma in₀₂_iff : (graph t).Adj (in₀ a) (in₂ c) ↔ ∃ b, (a, b, c) ∈ t 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {a : α} {c : γ}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₀ a) (Sum3.in₂ c) ↔ ∃ b, (a, b, c) ∈ t
-- SimpleGraph.TripartiteFromTriangles.Graph.in₂₀_iff
@[simp] lemma in₂₀_iff : (graph t).Adj (in₂ c) (in₀ a) ↔ ∃ b, (a, b, c) ∈ t 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {a : α} {c : γ}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₂ c) (Sum3.in₀ a) ↔ ∃ b, (a, b, c) ∈ t
-- SimpleGraph.TripartiteFromTriangles.Graph.in₁₂_iff
@[simp] lemma in₁₂_iff : (graph t).Adj (in₁ b) (in₂ c) ↔ ∃ a, (a, b, c) ∈ t 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {b : β} {c : γ}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₁ b) (Sum3.in₂ c) ↔ ∃ a, (a, b, c) ∈ t
-- SimpleGraph.TripartiteFromTriangles.Graph.in₂₁_iff
@[simp] lemma in₂₁_iff : (graph t).Adj (in₂ c) (in₁ b) ↔ ∃ a, (a, b, c) ∈ t 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {b : β} {c : γ}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₂ c) (Sum3.in₁ b) ↔ ∃ a, (a, b, c) ∈ t
-- SimpleGraph.TripartiteFromTriangles.Graph.in₀₁_iff'
lemma in₀₁_iff' :
    (graph t).Adj (in₀ a) (in₁ b) ↔ ∃ x : α × β × γ, x ∈ t ∧ x.1 = a ∧ x.2.1 = b 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {a : α} {b : β}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₀ a) (Sum3.in₁ b) ↔ ∃ x ∈ t, x.1 = a ∧ x.2.1 = b
-- SimpleGraph.TripartiteFromTriangles.Graph.in₁₀_iff'
lemma in₁₀_iff' :
    (graph t).Adj (in₁ b) (in₀ a) ↔ ∃ x : α × β × γ, x ∈ t ∧ x.2.1 = b ∧ x.1 = a 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {a : α} {b : β}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₁ b) (Sum3.in₀ a) ↔ ∃ x ∈ t, x.2.1 = b ∧ x.1 = a
-- SimpleGraph.TripartiteFromTriangles.Graph.in₀₂_iff'
lemma in₀₂_iff' :
    (graph t).Adj (in₀ a) (in₂ c) ↔ ∃ x : α × β × γ, x ∈ t ∧ x.1 = a ∧ x.2.2 = c 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {a : α} {c : γ}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₀ a) (Sum3.in₂ c) ↔ ∃ x ∈ t, x.1 = a ∧ x.2.2 = c
-- SimpleGraph.TripartiteFromTriangles.Graph.in₂₀_iff'
lemma in₂₀_iff' :
    (graph t).Adj (in₂ c) (in₀ a) ↔ ∃ x : α × β × γ, x ∈ t ∧ x.2.2 = c ∧ x.1 = a 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {a : α} {c : γ}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₂ c) (Sum3.in₀ a) ↔ ∃ x ∈ t, x.2.2 = c ∧ x.1 = a
-- SimpleGraph.TripartiteFromTriangles.Graph.in₁₂_iff'
lemma in₁₂_iff' :
    (graph t).Adj (in₁ b) (in₂ c) ↔ ∃ x : α × β × γ, x ∈ t ∧ x.2.1 = b ∧ x.2.2 = c 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {b : β} {c : γ}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₁ b) (Sum3.in₂ c) ↔ ∃ x ∈ t, x.2.1 = b ∧ x.2.2 = c
-- SimpleGraph.TripartiteFromTriangles.Graph.in₂₁_iff'
lemma in₂₁_iff' :
    (graph t).Adj (in₂ c) (in₁ b) ↔ ∃ x : α × β × γ, x ∈ t ∧ x.2.2 = c ∧ x.2.1 = b 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} {b : β} {c : γ}
Goal: (SimpleGraph.TripartiteFromTriangles.graph t).Adj (Sum3.in₂ c) (Sum3.in₁ b) ↔ ∃ x ∈ t, x.2.2 = c ∧ x.2.1 = b
-- SimpleGraph.TripartiteFromTriangles.ExplicitDisjoint.inj₂
class ExplicitDisjoint (t : Finset (α × β × γ)) : Prop where
  inj₀ : ∀ ⦃a b c a'⦄, (a, b, c) ∈ t → (a', b, c) ∈ t → a = a'
  inj₁ : ∀ ⦃a b c b'⦄, (a, b, c) ∈ t → (a, b', c) ∈ t → b = b'
  inj₂ : ∀ ⦃a b c c'⦄, (a, b, c) ∈ t → (a, b, c') ∈ t → c = c'
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} [self : SimpleGraph.TripartiteFromTriangles.ExplicitDisjoint t] ⦃a : α⦄ ⦃b : β⦄ ⦃c c' : γ⦄
Goal: (a, b, c) ∈ t → (a, b, c') ∈ t → c = c'
-- SimpleGraph.TripartiteFromTriangles.ExplicitDisjoint.inj₀
class ExplicitDisjoint (t : Finset (α × β × γ)) : Prop where
  inj₀ : ∀ ⦃a b c a'⦄, (a, b, c) ∈ t → (a', b, c) ∈ t → a = a'
  inj₁ : ∀ ⦃a b c b'⦄, (a, b, c) ∈ t → (a, b', c) ∈ t → b = b'
  inj₂ : ∀ ⦃a b c c'⦄, (a, b, c) ∈ t → (a, b, c') ∈ t → c = c'
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} {t : Finset (α × β × γ)} [self : SimpleGraph.TripartiteFromTriangles.ExplicitDisjoint t] ⦃a : α⦄ ⦃b : β⦄ ⦃c : γ⦄ ⦃a' : α⦄
Goal: (a, b, c) ∈ t → (a', b, c) ∈ t → a = a'