ruc-ai4math/mathlib_handler_benchmark_410 huggingface dataset:
-- SimpleGraph.ConnectedComponent.mem_supp_iff
@[simp]
theorem mem_supp_iff (C : G.ConnectedComponent) (v : V) :
    v ∈ C.supp ↔ G.connectedComponentMk v = C 
Arguments: {V : Type u} {G : SimpleGraph V} (C : G.ConnectedComponent) (v : V)
Goal: v ∈ C.supp ↔ G.connectedComponentMk v = C
-- SimpleGraph.ConnectedComponent.connectedComponentMk_mem
theorem connectedComponentMk_mem {v : V} : v ∈ G.connectedComponentMk v 
Arguments: {V : Type u} {G : SimpleGraph V} {v : V}
Goal: v ∈ G.connectedComponentMk v
-- SimpleGraph.ConnectedComponent.mem_coe_supp_of_adj
lemma mem_coe_supp_of_adj {v w : V} {H : Subgraph G} {c : ConnectedComponent H.coe}
    (hv : v ∈ (↑) '' (c : Set H.verts)) (hw : w ∈ H.verts)
    (hadj : H.Adj v w) : w ∈ (↑) '' (c : Set H.verts)
Arguments: {V : Type u} {G : SimpleGraph V} {v w : V} {H : G.Subgraph} {c : H.coe.ConnectedComponent} (hv : v ∈ Subtype.val '' ↑c) (hw : w ∈ H.verts) (hadj : H.Adj v w)
Goal: w ∈ Subtype.val '' ↑c
-- SimpleGraph.pairwise_disjoint_supp_connectedComponent
lemma pairwise_disjoint_supp_connectedComponent (G : SimpleGraph V) :
    Pairwise fun c c' : ConnectedComponent G ↦ Disjoint c.supp c'.supp 
Arguments: {V : Type u} (G : SimpleGraph V)
Goal: Pairwise fun c c' => Disjoint c.supp c'.supp
-- SimpleGraph.iUnion_connectedComponentSupp
lemma iUnion_connectedComponentSupp (G : SimpleGraph V) :
    ⋃ c : G.ConnectedComponent, c.supp = Set.univ 
Arguments: {V : Type u} (G : SimpleGraph V)
Goal: ⋃ c, c.supp = Set.univ
-- SimpleGraph.Preconnected.set_univ_walk_nonempty
theorem Preconnected.set_univ_walk_nonempty (hconn : G.Preconnected) (u v : V) :
    (Set.univ : Set (G.Walk u v)).Nonempty 
Arguments: {V : Type u} {G : SimpleGraph V} (hconn : G.Preconnected) (u v : V)
Goal: Set.univ.Nonempty
-- SimpleGraph.Connected.set_univ_walk_nonempty
theorem Connected.set_univ_walk_nonempty (hconn : G.Connected) (u v : V) :
    (Set.univ : Set (G.Walk u v)).Nonempty 
Arguments: {V : Type u} {G : SimpleGraph V} (hconn : G.Connected) (u v : V)
Goal: Set.univ.Nonempty
-- SimpleGraph.isBridge_iff
theorem isBridge_iff {u v : V} :
    G.IsBridge s(u, v) ↔ G.Adj u v ∧ ¬(G \ fromEdgeSet {s(u, v)}).Reachable u v 
Arguments: {V : Type u} {G : SimpleGraph V} {u v : V}
Goal: G.IsBridge s(u, v) ↔ G.Adj u v ∧ ¬(G \ SimpleGraph.fromEdgeSet {s(u, v)}).Reachable u v
-- SimpleGraph.reachable_delete_edges_iff_exists_walk
theorem reachable_delete_edges_iff_exists_walk {v w : V} :
    (G \ fromEdgeSet {s(v, w)}).Reachable v w ↔ ∃ p : G.Walk v w, ¬s(v, w) ∈ p.edges 
Arguments: {V : Type u} {G : SimpleGraph V} {v w : V}
Goal: (G \ SimpleGraph.fromEdgeSet {s(v, w)}).Reachable v w ↔ ∃ p, s(v, w) ∉ p.edges
-- SimpleGraph.isBridge_iff_adj_and_forall_walk_mem_edges
theorem isBridge_iff_adj_and_forall_walk_mem_edges {v w : V} :
    G.IsBridge s(v, w) ↔ G.Adj v w ∧ ∀ p : G.Walk v w, s(v, w) ∈ p.edges 
Arguments: {V : Type u} {G : SimpleGraph V} {v w : V}
Goal: G.IsBridge s(v, w) ↔ G.Adj v w ∧ ∀ (p : G.Walk v w), s(v, w) ∈ p.edges
-- SimpleGraph.reachable_deleteEdges_iff_exists_cycle.aux
theorem reachable_deleteEdges_iff_exists_cycle.aux [DecidableEq V] {u v w : V}
    (hb : ∀ p : G.Walk v w, s(v, w) ∈ p.edges) (c : G.Walk u u) (hc : c.IsTrail)
    (he : s(v, w) ∈ c.edges)
    (hw : w ∈ (c.takeUntil v (c.fst_mem_support_of_mem_edges he)).support) : False 
Arguments: {V : Type u} {G : SimpleGraph V} [DecidableEq V] {u v w : V} (hb : ∀ (p : G.Walk v w), s(v, w) ∈ p.edges) (c : G.Walk u u) (hc : c.IsTrail) (he : s(v, w) ∈ c.edges) (hw : w ∈ (c.takeUntil v ⋯).support)
Goal: False
-- SimpleGraph.adj_and_reachable_delete_edges_iff_exists_cycle
theorem adj_and_reachable_delete_edges_iff_exists_cycle {v w : V} :
    G.Adj v w ∧ (G \ fromEdgeSet {s(v, w)}).Reachable v w ↔
      ∃ (u : V) (p : G.Walk u u), p.IsCycle ∧ s(v, w) ∈ p.edges 
Arguments: {V : Type u} {G : SimpleGraph V} {v w : V}
Goal: G.Adj v w ∧ (G \ SimpleGraph.fromEdgeSet {s(v, w)}).Reachable v w ↔ ∃ u p, p.IsCycle ∧ s(v, w) ∈ p.edges
-- SimpleGraph.isBridge_iff_adj_and_forall_cycle_not_mem
theorem isBridge_iff_adj_and_forall_cycle_not_mem {v w : V} : G.IsBridge s(v, w) ↔
    G.Adj v w ∧ ∀ ⦃u : V⦄ (p : G.Walk u u), p.IsCycle → s(v, w) ∉ p.edges 
Arguments: {V : Type u} {G : SimpleGraph V} {v w : V}
Goal: G.IsBridge s(v, w) ↔ G.Adj v w ∧ ∀ ⦃u : V⦄ (p : G.Walk u u), p.IsCycle → s(v, w) ∉ p.edges
-- SimpleGraph.isBridge_iff_mem_and_forall_cycle_not_mem
theorem isBridge_iff_mem_and_forall_cycle_not_mem {e : Sym2 V} :
    G.IsBridge e ↔ e ∈ G.edgeSet ∧ ∀ ⦃u : V⦄ (p : G.Walk u u), p.IsCycle → e ∉ p.edges 
Arguments: {V : Type u} {G : SimpleGraph V} {e : Sym2 V}
Goal: G.IsBridge e ↔ e ∈ G.edgeSet ∧ ∀ ⦃u : V⦄ (p : G.Walk u u), p.IsCycle → e ∉ p.edges
-- SimpleGraph.hasse_adj
@[simp]
theorem hasse_adj : (hasse α).Adj a b ↔ a ⋖ b ∨ b ⋖ a 
Arguments: {α : Type u_1} [Preorder α] {a b : α}
Goal: (SimpleGraph.hasse α).Adj a b ↔ a ⋖ b ∨ b ⋖ a
-- SimpleGraph.hasseDualIso_apply
@[simp]
theorem hasseDualIso_apply (a : αᵒᵈ) : hasseDualIso a = ofDual a 
Arguments: {α : Type u_1} [Preorder α] (a : αᵒᵈ)
Goal: SimpleGraph.hasseDualIso a = OrderDual.ofDual a
-- SimpleGraph.hasseDualIso_symm_apply
@[simp]
theorem hasseDualIso_symm_apply (a : α) : hasseDualIso.symm a = toDual a 
Arguments: {α : Type u_1} [Preorder α] (a : α)
Goal: SimpleGraph.hasseDualIso.symm a = OrderDual.toDual a
-- SimpleGraph.hasse_prod
@[simp]
theorem hasse_prod : hasse (α × β) = hasse α □ hasse β 
Arguments: (α : Type u_1) (β : Type u_2) [PartialOrder α] [PartialOrder β]
Goal: SimpleGraph.hasse (α × β) = SimpleGraph.hasse α □ SimpleGraph.hasse β
-- SimpleGraph.hasse_preconnected_of_succ
theorem hasse_preconnected_of_succ [SuccOrder α] [IsSuccArchimedean α] : (hasse α).Preconnected 
Arguments: (α : Type u_1) [LinearOrder α] [SuccOrder α] [IsSuccArchimedean α]
Goal: (SimpleGraph.hasse α).Preconnected
-- SimpleGraph.hasse_preconnected_of_pred
theorem hasse_preconnected_of_pred [PredOrder α] [IsPredArchimedean α] : (hasse α).Preconnected 
Arguments: (α : Type u_1) [LinearOrder α] [PredOrder α] [IsPredArchimedean α]
Goal: (SimpleGraph.hasse α).Preconnected
-- SimpleGraph.pathGraph_adj
theorem pathGraph_adj {n : ℕ} {u v : Fin n} :
    (pathGraph n).Adj u v ↔ u.val + 1 = v.val ∨ v.val + 1 = u.val 
Arguments: {n : ℕ} {u v : Fin n}
Goal: (SimpleGraph.pathGraph n).Adj u v ↔ ↑u + 1 = ↑v ∨ ↑v + 1 = ↑u
-- SimpleGraph.pathGraph_preconnected
theorem pathGraph_preconnected (n : ℕ) : (pathGraph n).Preconnected 
Arguments: (n : ℕ)
Goal: (SimpleGraph.pathGraph n).Preconnected
-- SimpleGraph.pathGraph_connected
theorem pathGraph_connected (n : ℕ) : (pathGraph (n + 1)).Connected 
Arguments: (n : ℕ)
Goal: (SimpleGraph.pathGraph (n + 1)).Connected
-- SimpleGraph.pathGraph_two_eq_top
theorem pathGraph_two_eq_top : pathGraph 2 = ⊤ 
Goal: SimpleGraph.pathGraph 2 = ⊤
-- SimpleGraph.chromaticNumber_pathGraph
theorem chromaticNumber_pathGraph (n : ℕ) (h : 2 ≤ n) :
    (pathGraph n).chromaticNumber = 2 
Arguments: (n : ℕ) (h : 2 ≤ n)
Goal: (SimpleGraph.pathGraph n).chromaticNumber = 2
-- SimpleGraph.Coloring.even_length_iff_congr
theorem Coloring.even_length_iff_congr {α} {G : SimpleGraph α}
    (c : G.Coloring Bool) {u v : α} (p : G.Walk u v) :
    Even p.length ↔ (c u ↔ c v) 
Arguments: {α : Type u_1} {G : SimpleGraph α} (c : G.Coloring Bool) {u v : α} (p : G.Walk u v)
Goal: Even p.length ↔ (c u = true ↔ c v = true)
-- SimpleGraph.Coloring.odd_length_iff_not_congr
theorem Coloring.odd_length_iff_not_congr {α} {G : SimpleGraph α}
    (c : G.Coloring Bool) {u v : α} (p : G.Walk u v) :
    Odd p.length ↔ (¬c u ↔ c v) 
Arguments: {α : Type u_1} {G : SimpleGraph α} (c : G.Coloring Bool) {u v : α} (p : G.Walk u v)
Goal: Odd p.length ↔ (¬c u = true ↔ c v = true)
-- SimpleGraph.Walk.three_le_chromaticNumber_of_odd_loop
theorem Walk.three_le_chromaticNumber_of_odd_loop {α} {G : SimpleGraph α} {u : α} (p : G.Walk u u)
    (hOdd : Odd p.length) : 3 ≤ G.chromaticNumber 
Arguments: {α : Type u_1} {G : SimpleGraph α} {u : α} (p : G.Walk u u) (hOdd : Odd p.length)
Goal: 3 ≤ G.chromaticNumber
-- SimpleGraph.boxProd_adj
@[simp]
theorem boxProd_adj {x y : α × β} :
    (G □ H).Adj x y ↔ G.Adj x.1 y.1 ∧ x.2 = y.2 ∨ H.Adj x.2 y.2 ∧ x.1 = y.1 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} {x y : α × β}
Goal: (G □ H).Adj x y ↔ G.Adj x.1 y.1 ∧ x.2 = y.2 ∨ H.Adj x.2 y.2 ∧ x.1 = y.1
-- SimpleGraph.boxProd_adj_left
theorem boxProd_adj_left {a₁ : α} {b : β} {a₂ : α} :
    (G □ H).Adj (a₁, b) (a₂, b) ↔ G.Adj a₁ a₂ 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} {a₁ : α} {b : β} {a₂ : α}
Goal: (G □ H).Adj (a₁, b) (a₂, b) ↔ G.Adj a₁ a₂
-- SimpleGraph.boxProd_adj_right
theorem boxProd_adj_right {a : α} {b₁ b₂ : β} : (G □ H).Adj (a, b₁) (a, b₂) ↔ H.Adj b₁ b₂ 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} {a : α} {b₁ b₂ : β}
Goal: (G □ H).Adj (a, b₁) (a, b₂) ↔ H.Adj b₁ b₂
-- SimpleGraph.boxProd_neighborSet
theorem boxProd_neighborSet (x : α × β) :
    (G □ H).neighborSet x = G.neighborSet x.1 ×ˢ {x.2} ∪ {x.1} ×ˢ H.neighborSet x.2 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} (x : α × β)
Goal: (G □ H).neighborSet x = G.neighborSet x.1 ×ˢ {x.2} ∪ {x.1} ×ˢ H.neighborSet x.2
-- SimpleGraph.boxProdComm_apply
@[simps!]
def boxProdComm : G □ H ≃g H □ G 
Arguments: {α : Type u_1} {β : Type u_2} (G : SimpleGraph α) (H : SimpleGraph β)
Goal: ∀ (a : α × β), (G.boxProdComm H) a = a.swap
-- SimpleGraph.boxProdComm_symm_apply
@[simps!]
def boxProdComm : G □ H ≃g H □ G 
Arguments: {α : Type u_1} {β : Type u_2} (G : SimpleGraph α) (H : SimpleGraph β)
Goal: ∀ (a : β × α), (RelIso.symm (G.boxProdComm H)) a = a.swap
-- SimpleGraph.boxProdAssoc_apply
@[simps!]
def boxProdAssoc (I : SimpleGraph γ) : G □ H □ I ≃g G □ (H □ I) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} (G : SimpleGraph α) (H : SimpleGraph β) (I : SimpleGraph γ) (p : (α × β) × γ)
Goal: (G.boxProdAssoc H I) p = (p.1.1, p.1.2, p.2)
-- SimpleGraph.boxProdAssoc_symm_apply
@[simps!]
def boxProdAssoc (I : SimpleGraph γ) : G □ H □ I ≃g G □ (H □ I) 
Arguments: {α : Type u_1} {β : Type u_2} {γ : Type u_3} (G : SimpleGraph α) (H : SimpleGraph β) (I : SimpleGraph γ) (p : α × β × γ)
Goal: (RelIso.symm (G.boxProdAssoc H I)) p = ((p.1, p.2.1), p.2.2)
-- SimpleGraph.boxProdLeft_apply
@[simps]
def boxProdLeft (b : β) : G ↪g G □ H 
Arguments: {α : Type u_1} {β : Type u_2} (G : SimpleGraph α) (H : SimpleGraph β) (b : β) (a : α)
Goal: (G.boxProdLeft H b) a = (a, b)
-- SimpleGraph.boxProdRight_apply
@[simps]
def boxProdRight (a : α) : H ↪g G □ H 
Arguments: {α : Type u_1} {β : Type u_2} (G : SimpleGraph α) (H : SimpleGraph β) (a : α) (snd : β)
Goal: (G.boxProdRight H a) snd = (a, snd)
-- SimpleGraph.Walk.ofBoxProdLeft_boxProdLeft
@[simp]
theorem ofBoxProdLeft_boxProdLeft [DecidableEq β] [DecidableRel G.Adj] {a₁ a₂ : α} {b : β} :
    ∀ (w : G.Walk a₁ a₂), (w.boxProdLeft H b).ofBoxProdLeft = w
  
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} [DecidableEq β] [DecidableRel G.Adj] {a₁ a₂ : α} {b : β} (w : G.Walk a₁ a₂)
Goal: (SimpleGraph.Walk.boxProdLeft H b w).ofBoxProdLeft = w
-- SimpleGraph.Walk.ofBoxProdLeft_boxProdRight
@[simp]
theorem ofBoxProdLeft_boxProdRight [DecidableEq α] [DecidableRel G.Adj] {a b₁ b₂ : α} :
    ∀ (w : G.Walk b₁ b₂), (w.boxProdRight G a).ofBoxProdRight = w
  
Arguments: {α : Type u_1} {G : SimpleGraph α} [DecidableEq α] [DecidableRel G.Adj] {a b₁ b₂ : α} (w : G.Walk b₁ b₂)
Goal: (SimpleGraph.Walk.boxProdRight G a w).ofBoxProdRight = w
-- SimpleGraph.Preconnected.boxProd
protected theorem Preconnected.boxProd (hG : G.Preconnected) (hH : H.Preconnected) :
    (G □ H).Preconnected 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} (hG : G.Preconnected) (hH : H.Preconnected)
Goal: (G □ H).Preconnected
-- SimpleGraph.Preconnected.ofBoxProdLeft
protected theorem Preconnected.ofBoxProdLeft [Nonempty β] (h : (G □ H).Preconnected) :
    G.Preconnected 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} [Nonempty β] (h : (G □ H).Preconnected)
Goal: G.Preconnected
-- SimpleGraph.Preconnected.ofBoxProdRight
protected theorem Preconnected.ofBoxProdRight [Nonempty α] (h : (G □ H).Preconnected) :
    H.Preconnected 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} [Nonempty α] (h : (G □ H).Preconnected)
Goal: H.Preconnected
-- SimpleGraph.Connected.boxProd
protected theorem Connected.boxProd (hG : G.Connected) (hH : H.Connected) : (G □ H).Connected 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} (hG : G.Connected) (hH : H.Connected)
Goal: (G □ H).Connected
-- SimpleGraph.Connected.ofBoxProdLeft
protected theorem Connected.ofBoxProdLeft (h : (G □ H).Connected) : G.Connected 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} (h : (G □ H).Connected)
Goal: G.Connected
-- SimpleGraph.Connected.ofBoxProdRight
protected theorem Connected.ofBoxProdRight (h : (G □ H).Connected) : H.Connected 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} (h : (G □ H).Connected)
Goal: H.Connected
-- SimpleGraph.boxProd_connected
@[simp]
theorem boxProd_connected : (G □ H).Connected ↔ G.Connected ∧ H.Connected 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β}
Goal: (G □ H).Connected ↔ G.Connected ∧ H.Connected
-- SimpleGraph.boxProd_neighborFinset
theorem boxProd_neighborFinset (x : α × β)
    [Fintype (G.neighborSet x.1)] [Fintype (H.neighborSet x.2)] [Fintype ((G □ H).neighborSet x)] :
    (G □ H).neighborFinset x =
      (G.neighborFinset x.1 ×ˢ {x.2}).disjUnion ({x.1} ×ˢ H.neighborFinset x.2)
        (Finset.disjoint_product.mpr <| Or.inl <| neighborFinset_disjoint_singleton _ _) 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} (x : α × β) [Fintype ↑(G.neighborSet x.1)] [Fintype ↑(H.neighborSet x.2)] [Fintype ↑((G □ H).neighborSet x)]
Goal: (G □ H).neighborFinset x = (G.neighborFinset x.1 ×ˢ {x.2}).disjUnion ({x.1} ×ˢ H.neighborFinset x.2) ⋯
-- SimpleGraph.boxProd_degree
theorem boxProd_degree (x : α × β)
    [Fintype (G.neighborSet x.1)] [Fintype (H.neighborSet x.2)] [Fintype ((G □ H).neighborSet x)] :
    (G □ H).degree x = G.degree x.1 + H.degree x.2 
Arguments: {α : Type u_1} {β : Type u_2} {G : SimpleGraph α} {H : SimpleGraph β} (x : α × β) [Fintype ↑(G.neighborSet x.1)] [Fintype ↑(H.neighborSet x.2)] [Fintype ↑((G □ H).neighborSet x)]
Goal: (G □ H).degree x = G.degree x.1 + H.degree x.2
-- SimpleGraph.IsTuranMaximal.le_iff_eq
lemma IsTuranMaximal.le_iff_eq (hG : G.IsTuranMaximal r) (hH : H.CliqueFree (r + 1)) :
    G ≤ H ↔ G = H 
Arguments: {V : Type u_1} [Fintype V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} {H : SimpleGraph V} (hG : G.IsTuranMaximal r) (hH : H.CliqueFree (r + 1))
Goal: G ≤ H ↔ G = H
-- SimpleGraph.turanGraph_zero
@[simp]
lemma turanGraph_zero : turanGraph n 0 = ⊤ 
Arguments: {n : ℕ}
Goal: SimpleGraph.turanGraph n 0 = ⊤
-- SimpleGraph.turanGraph_eq_top
@[simp]
theorem turanGraph_eq_top : turanGraph n r = ⊤ ↔ r = 0 ∨ n ≤ r 
Arguments: {n r : ℕ}
Goal: SimpleGraph.turanGraph n r = ⊤ ↔ r = 0 ∨ n ≤ r
-- SimpleGraph.turanGraph_cliqueFree
theorem turanGraph_cliqueFree : (turanGraph n r).CliqueFree (r + 1) 
Arguments: {n r : ℕ} (hr : 0 < r)
Goal: (SimpleGraph.turanGraph n r).CliqueFree (r + 1)
-- SimpleGraph.not_cliqueFree_of_isTuranMaximal
theorem not_cliqueFree_of_isTuranMaximal (hn : r ≤ Fintype.card V) (hG : G.IsTuranMaximal r) :
    ¬G.CliqueFree r 
Arguments: {V : Type u_1} [Fintype V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} (hr : 0 < r) (hn : r ≤ Fintype.card V) (hG : G.IsTuranMaximal r)
Goal: ¬G.CliqueFree r
-- SimpleGraph.exists_isTuranMaximal
lemma exists_isTuranMaximal :
    ∃ H : SimpleGraph V, ∃ _ : DecidableRel H.Adj, H.IsTuranMaximal r 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {r : ℕ} (hr : 0 < r)
Goal: ∃ H x, H.IsTuranMaximal r
-- SimpleGraph.IsTuranMaximal.degree_eq_of_not_adj
lemma degree_eq_of_not_adj (h : G.IsTuranMaximal r) (hn : ¬G.Adj s t) :
    G.degree s = G.degree t 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} {s t : V} (h : G.IsTuranMaximal r) (hn : ¬G.Adj s t)
Goal: G.degree s = G.degree t
-- SimpleGraph.IsTuranMaximal.not_adj_trans
lemma not_adj_trans (h : G.IsTuranMaximal r) (hts : ¬G.Adj t s) (hsu : ¬G.Adj s u) :
    ¬G.Adj t u 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} {s t u : V} (h : G.IsTuranMaximal r) (hts : ¬G.Adj t s) (hsu : ¬G.Adj s u)
Goal: ¬G.Adj t u
-- SimpleGraph.IsTuranMaximal.equivalence_not_adj
theorem equivalence_not_adj : Equivalence (¬G.Adj · ·) 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} (h : G.IsTuranMaximal r)
Goal: Equivalence fun x x_1 => ¬G.Adj x x_1
-- SimpleGraph.IsTuranMaximal.not_adj_iff_part_eq
lemma not_adj_iff_part_eq : ¬G.Adj s t ↔ h.finpartition.part s = h.finpartition.part t 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} {s t : V} (h : G.IsTuranMaximal r)
Goal: ¬G.Adj s t ↔ h.finpartition.part s = h.finpartition.part t
-- SimpleGraph.IsTuranMaximal.degree_eq_card_sub_part_card
lemma degree_eq_card_sub_part_card : G.degree s = Fintype.card V - (h.finpartition.part s).card 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} {s : V} (h : G.IsTuranMaximal r)
Goal: G.degree s = Fintype.card V - (h.finpartition.part s).card
-- SimpleGraph.IsTuranMaximal.isEquipartition
theorem isEquipartition : h.finpartition.IsEquipartition 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} (h : G.IsTuranMaximal r)
Goal: h.finpartition.IsEquipartition
-- SimpleGraph.IsTuranMaximal.card_parts_le
lemma card_parts_le : h.finpartition.parts.card ≤ r 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} (h : G.IsTuranMaximal r)
Goal: h.finpartition.parts.card ≤ r
-- SimpleGraph.IsTuranMaximal.card_parts
theorem card_parts : h.finpartition.parts.card = min (Fintype.card V) r 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} (h : G.IsTuranMaximal r)
Goal: h.finpartition.parts.card = min (Fintype.card V) r
-- SimpleGraph.IsTuranMaximal.nonempty_iso_turanGraph
theorem nonempty_iso_turanGraph (h : G.IsTuranMaximal r) :
    Nonempty (G ≃g turanGraph (Fintype.card V) r) 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} (h : G.IsTuranMaximal r)
Goal: Nonempty (G ≃g SimpleGraph.turanGraph (Fintype.card V) r)
-- SimpleGraph.isTuranMaximal_of_iso
theorem isTuranMaximal_of_iso (f : G ≃g turanGraph n r) (hr : 0 < r) : G.IsTuranMaximal r 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {n r : ℕ} (f : G ≃g SimpleGraph.turanGraph n r) (hr : 0 < r)
Goal: G.IsTuranMaximal r
-- SimpleGraph.IsTuranMaximal.iso
theorem IsTuranMaximal.iso {W : Type*} [Fintype W] [DecidableEq W] {H : SimpleGraph W}
    [DecidableRel H.Adj] (h : G.IsTuranMaximal r) (f : G ≃g H) (hr : 0 < r) : H.IsTuranMaximal r 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} {W : Type u_2} [Fintype W] [DecidableEq W] {H : SimpleGraph W} [DecidableRel H.Adj] (h : G.IsTuranMaximal r) (f : G ≃g H) (hr : 0 < r)
Goal: H.IsTuranMaximal r
-- SimpleGraph.isTuranMaximal_turanGraph
theorem isTuranMaximal_turanGraph (hr : 0 < r) : (turanGraph n r).IsTuranMaximal r 
Arguments: {n r : ℕ} (hr : 0 < r)
Goal: (SimpleGraph.turanGraph n r).IsTuranMaximal r
-- SimpleGraph.isTuranMaximal_iff_nonempty_iso_turanGraph
theorem isTuranMaximal_iff_nonempty_iso_turanGraph (hr : 0 < r) :
    G.IsTuranMaximal r ↔ Nonempty (G ≃g turanGraph (Fintype.card V) r) 
Arguments: {V : Type u_1} [Fintype V] [DecidableEq V] {G : SimpleGraph V} [DecidableRel G.Adj] {r : ℕ} (hr : 0 < r)
Goal: G.IsTuranMaximal r ↔ Nonempty (G ≃g SimpleGraph.turanGraph (Fintype.card V) r)
-- SimpleGraph.dart_fst_fiber
theorem dart_fst_fiber [DecidableEq V] (v : V) :
    (univ.filter fun d : G.Dart => d.fst = v) = univ.image (G.dartOfNeighborSet v) 
Arguments: {V : Type u} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] [DecidableEq V] (v : V)
Goal: Finset.filter (fun d => d.toProd.1 = v) Finset.univ = Finset.image (G.dartOfNeighborSet v) Finset.univ
-- SimpleGraph.dart_fst_fiber_card_eq_degree
theorem dart_fst_fiber_card_eq_degree [DecidableEq V] (v : V) :
    (univ.filter fun d : G.Dart => d.fst = v).card = G.degree v 
Arguments: {V : Type u} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] [DecidableEq V] (v : V)
Goal: (Finset.filter (fun d => d.toProd.1 = v) Finset.univ).card = G.degree v
-- SimpleGraph.dart_card_eq_sum_degrees
theorem dart_card_eq_sum_degrees : Fintype.card G.Dart = ∑ v, G.degree v 
Arguments: {V : Type u} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj]
Goal: Fintype.card G.Dart = ∑ v : V, G.degree v
-- SimpleGraph.Dart.edge_fiber
theorem Dart.edge_fiber [DecidableEq V] (d : G.Dart) :
    (univ.filter fun d' : G.Dart => d'.edge = d.edge) = {d, d.symm} 
Arguments: {V : Type u} {G : SimpleGraph V} [Fintype V] [DecidableRel G.Adj] [DecidableEq V] (d : G.Dart)
Goal: Finset.filter (fun d' => d'.edge = d.edge) Finset.univ = {d, d.symm}
-- SimpleGraph.dart_edge_fiber_card
theorem dart_edge_fiber_card [DecidableEq V] (e : Sym2 V) (h : e ∈ G.edgeSet) :
    (univ.filter fun d : G.Dart => d.edge = e).card = 2 
Arguments: {V : Type u} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] [DecidableEq V] (e : Sym2 V) (h : e ∈ G.edgeSet)
Goal: (Finset.filter (fun d => d.edge = e) Finset.univ).card = 2
-- SimpleGraph.dart_card_eq_twice_card_edges
theorem dart_card_eq_twice_card_edges : Fintype.card G.Dart = 2 * G.edgeFinset.card 
Arguments: {V : Type u} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] [Fintype (Sym2 V)]
Goal: Fintype.card G.Dart = 2 * G.edgeFinset.card
-- SimpleGraph.sum_degrees_eq_twice_card_edges
theorem sum_degrees_eq_twice_card_edges : ∑ v, G.degree v = 2 * G.edgeFinset.card 
Arguments: {V : Type u} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] [Fintype (Sym2 V)]
Goal: ∑ v : V, G.degree v = 2 * G.edgeFinset.card
-- SimpleGraph.two_mul_card_edgeFinset
lemma two_mul_card_edgeFinset :
    2 * G.edgeFinset.card = (univ.filter fun (x, y) ↦ G.Adj x y).card 
Arguments: {V : Type u} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] [Fintype (Sym2 V)]
Goal: 2 * G.edgeFinset.card =
  (Finset.filter
      (fun x =>
        match x with
        | (x, y) => G.Adj x y)
      Finset.univ).card
-- SimpleGraph.even_card_odd_degree_vertices
theorem even_card_odd_degree_vertices [Fintype V] [DecidableRel G.Adj] :
    Even (univ.filter fun v => Odd (G.degree v)).card 
Arguments: {V : Type u} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj]
Goal: Even (Finset.filter (fun v => Odd (G.degree v)) Finset.univ).card
-- SimpleGraph.odd_card_odd_degree_vertices_ne
theorem odd_card_odd_degree_vertices_ne [Fintype V] [DecidableEq V] [DecidableRel G.Adj] (v : V)
    (h : Odd (G.degree v)) : Odd (univ.filter fun w => w ≠ v ∧ Odd (G.degree w)).card 
Arguments: {V : Type u} (G : SimpleGraph V) [Fintype V] [DecidableEq V] [DecidableRel G.Adj] (v : V) (h : Odd (G.degree v))
Goal: Odd (Finset.filter (fun w => w ≠ v ∧ Odd (G.degree w)) Finset.univ).card
-- SimpleGraph.exists_ne_odd_degree_of_exists_odd_degree
theorem exists_ne_odd_degree_of_exists_odd_degree [Fintype V] [DecidableRel G.Adj] (v : V)
    (h : Odd (G.degree v)) : ∃ w : V, w ≠ v ∧ Odd (G.degree w) 
Arguments: {V : Type u} (G : SimpleGraph V) [Fintype V] [DecidableRel G.Adj] (v : V) (h : Odd (G.degree v))
Goal: ∃ w, w ≠ v ∧ Odd (G.degree w)
-- SimpleGraph.edist_eq_sInf
theorem edist_eq_sInf : G.edist u v = sInf (Set.range fun w : G.Walk u v ↦ (w.length : ℕ∞)) 
Arguments: {V : Type u_1} {G : SimpleGraph V} {u v : V}
Goal: G.edist u v = sInf (Set.range fun w => ↑w.length)
-- SimpleGraph.Reachable.exists_walk_length_eq_edist
protected theorem Reachable.exists_walk_length_eq_edist (hr : G.Reachable u v) :
    ∃ p : G.Walk u v, p.length = G.edist u v 
Arguments: {V : Type u_1} {G : SimpleGraph V} {u v : V} (hr : G.Reachable u v)
Goal: ∃ p, ↑p.length = G.edist u v