combinatorics.simple_graph.subgraphMathlib.Combinatorics.SimpleGraph.Subgraph

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

feat(combinatorics/simple_graph/basic): Simple graphs form a complete boolean algebra (#18285)

Upgrade the boolean_algebra (simple_graph α) and lattice G.subgraph instances to complete_boolean_algebra (simple_graph α) and complete_distrib_lattice G.subgraph respectively. Add distrib_lattice/complete_distrib_lattice instances for G.finsubgraph.

Diff
@@ -64,7 +64,7 @@ structure subgraph {V : Type u} (G : simple_graph V) :=
 (edge_vert : ∀ {v w : V}, adj v w → v ∈ verts)
 (symm : symmetric adj . obviously)
 
-variables {V : Type u} {W : Type v}
+variables {ι : Sort*} {V : Type u} {W : Type v}
 
 /-- The one-vertex subgraph. -/
 @[simps]
@@ -84,7 +84,7 @@ def subgraph_of_adj (G : simple_graph V) {v w : V} (hvw : G.adj v w) : G.subgrap
 
 namespace subgraph
 
-variables {G : simple_graph V}
+variables {G : simple_graph V} {G₁ G₂ : G.subgraph} {a b : V}
 
 protected lemma loopless (G' : subgraph G) : irreflexive G'.adj :=
 λ v h, G.loopless v (G'.adj_sub h)
@@ -136,6 +136,9 @@ In general, this adds in all vertices from `V` as isolated vertices. -/
 @[simp] lemma adj.of_spanning_coe {G' : subgraph G} {u v : G'.verts}
   (h : G'.spanning_coe.adj u v) : G.adj u v := G'.adj_sub h
 
+@[simp] lemma spanning_coe_inj : G₁.spanning_coe = G₂.spanning_coe ↔ G₁.adj = G₂.adj :=
+by simp [subgraph.spanning_coe]
+
 /-- `spanning_coe` is equivalent to `coe` for a subgraph that `is_spanning`.  -/
 @[simps] def spanning_coe_equiv_coe_of_spanning (G' : subgraph G) (h : G'.is_spanning) :
   G'.spanning_coe ≃g G'.coe :=
@@ -232,96 +235,171 @@ lemma copy_eq (G' : subgraph G)
 subgraph.ext _ _ hV hadj
 
 /-- The union of two subgraphs. -/
-def union (x y : subgraph G) : subgraph G :=
-{ verts := x.verts ∪ y.verts,
-  adj := x.adj ⊔ y.adj,
-  adj_sub := λ v w h, or.cases_on h (λ h, x.adj_sub h) (λ h, y.adj_sub h),
-  edge_vert := λ v w h, or.cases_on h (λ h, or.inl (x.edge_vert h)) (λ h, or.inr (y.edge_vert h)),
-  symm := λ v w h, by rwa [pi.sup_apply, pi.sup_apply, x.adj_comm, y.adj_comm] }
+instance : has_sup G.subgraph :=
+⟨λ G₁ G₂,
+  { verts := G₁.verts ∪ G₂.verts,
+    adj := G₁.adj ⊔ G₂.adj,
+    adj_sub := λ a b hab, or.elim hab (λ h, G₁.adj_sub h) (λ h, G₂.adj_sub h),
+    edge_vert := λ a b, or.imp (λ h, G₁.edge_vert h) (λ h, G₂.edge_vert h),
+    symm := λ a b, or.imp G₁.adj_symm G₂.adj_symm }⟩
 
 /-- The intersection of two subgraphs. -/
-def inter (x y : subgraph G) : subgraph G :=
-{ verts := x.verts ∩ y.verts,
-  adj := x.adj ⊓ y.adj,
-  adj_sub := λ v w h, x.adj_sub h.1,
-  edge_vert := λ v w h, ⟨x.edge_vert h.1, y.edge_vert h.2⟩,
-  symm := λ v w h, by rwa [pi.inf_apply, pi.inf_apply, x.adj_comm, y.adj_comm] }
+instance : has_inf G.subgraph :=
+⟨λ G₁ G₂,
+  { verts := G₁.verts ∩ G₂.verts,
+    adj := G₁.adj ⊓ G₂.adj,
+    adj_sub := λ a b hab, G₁.adj_sub hab.1,
+    edge_vert := λ a b, and.imp (λ h, G₁.edge_vert h) (λ h, G₂.edge_vert h),
+    symm := λ a b, and.imp G₁.adj_symm G₂.adj_symm }⟩
 
 /-- The `top` subgraph is `G` as a subgraph of itself. -/
-def top : subgraph G :=
-{ verts := set.univ,
+instance : has_top G.subgraph :=
+⟨{ verts := set.univ,
   adj := G.adj,
   adj_sub := λ v w h, h,
   edge_vert := λ v w h, set.mem_univ v,
-  symm := G.symm }
+  symm := G.symm }⟩
 
 /-- The `bot` subgraph is the subgraph with no vertices or edges. -/
-def bot : subgraph G :=
-{ verts := ∅,
+instance : has_bot G.subgraph :=
+⟨{ verts := ∅,
   adj := ⊥,
   adj_sub := λ v w h, false.rec _ h,
   edge_vert := λ v w h, false.rec _ h,
-  symm := λ u v h, h }
-
-/-- The relation that one subgraph is a subgraph of another. -/
-def is_subgraph (x y : subgraph G) : Prop := x.verts ⊆ y.verts ∧ ∀ ⦃v w : V⦄, x.adj v w → y.adj v w
-
-instance : lattice (subgraph G) :=
-{ le := is_subgraph,
-  sup := union,
-  inf := inter,
-  le_refl := λ x, ⟨rfl.subset, λ _ _ h, h⟩,
-  le_trans := λ x y z hxy hyz, ⟨hxy.1.trans hyz.1, λ _ _ h, hyz.2 (hxy.2 h)⟩,
-  le_antisymm := begin
-    intros x y hxy hyx,
-    ext1 v,
-    exact set.subset.antisymm hxy.1 hyx.1,
-    ext v w,
-    exact iff.intro (λ h, hxy.2 h) (λ h, hyx.2 h),
-  end,
-  sup_le := λ x y z hxy hyz,
-            ⟨set.union_subset hxy.1 hyz.1,
-              (λ v w h, h.cases_on (λ h, hxy.2 h) (λ h, hyz.2 h))⟩,
-  le_sup_left := λ x y, ⟨set.subset_union_left x.verts y.verts, (λ v w h, or.inl h)⟩,
-  le_sup_right := λ x y, ⟨set.subset_union_right x.verts y.verts, (λ v w h, or.inr h)⟩,
-  le_inf := λ x y z hxy hyz, ⟨set.subset_inter hxy.1 hyz.1, (λ v w h, ⟨hxy.2 h, hyz.2 h⟩)⟩,
-  inf_le_left := λ x y, ⟨set.inter_subset_left x.verts y.verts, (λ v w h, h.1)⟩,
-  inf_le_right := λ x y, ⟨set.inter_subset_right x.verts y.verts, (λ v w h, h.2)⟩ }
+  symm := λ u v h, h }⟩
+
+instance : has_Sup G.subgraph :=
+⟨λ s, { verts := ⋃ G' ∈ s, verts G',
+        adj := λ a b, ∃ G' ∈ s, adj G' a b,
+        adj_sub := by { rintro a b ⟨G', -, hab⟩, exact G'.adj_sub hab },
+        edge_vert :=
+          by { rintro a b ⟨G', hG', hab⟩, exact set.mem_Union₂_of_mem hG' (G'.edge_vert hab) },
+        symm := λ a b, Exists₂.imp $ λ _ _, adj.symm }⟩
+
+instance : has_Inf G.subgraph :=
+⟨λ s, { verts := ⋂ G' ∈ s, verts G',
+        adj := λ a b, (∀ ⦃G'⦄, G' ∈ s → adj G' a b) ∧ G.adj a b,
+        adj_sub := λ a b, and.right,
+        edge_vert := λ a b hab, set.mem_Inter₂_of_mem $ λ G' hG', G'.edge_vert $ hab.1 hG',
+        symm := λ _ _, and.imp (forall₂_imp $ λ _ _, adj.symm) G.adj_symm }⟩
+
+@[simp] lemma sup_adj : (G₁ ⊔ G₂).adj a b ↔ G₁.adj a b ∨ G₂.adj a b := iff.rfl
+@[simp] lemma inf_adj : (G₁ ⊓ G₂).adj a b ↔ G₁.adj a b ∧ G₂.adj a b := iff.rfl
+@[simp] lemma top_adj : (⊤ : subgraph G).adj a b ↔ G.adj a b := iff.rfl
+@[simp] lemma not_bot_adj : ¬ (⊥ : subgraph G).adj a b := not_false
+
+@[simp] lemma verts_sup (G₁ G₂ : G.subgraph) : (G₁ ⊔ G₂).verts = G₁.verts ∪ G₂.verts := rfl
+@[simp] lemma verts_inf (G₁ G₂ : G.subgraph) : (G₁ ⊓ G₂).verts = G₁.verts ∩ G₂.verts := rfl
+@[simp] lemma verts_top : (⊤ : G.subgraph).verts = set.univ := rfl
+@[simp] lemma verts_bot : (⊥ : G.subgraph).verts = ∅ := rfl
+
+@[simp] lemma Sup_adj {s : set G.subgraph} : (Sup s).adj a b ↔ ∃ G ∈ s, adj G a b := iff.rfl
+
+@[simp] lemma Inf_adj {s : set G.subgraph} : (Inf s).adj a b ↔ (∀ G' ∈ s, adj G' a b) ∧ G.adj a b :=
+iff.rfl
+
+@[simp] lemma supr_adj {f : ι → G.subgraph} : (⨆ i, f i).adj a b ↔ ∃ i, (f i).adj a b :=
+by simp [supr]
+
+@[simp] lemma infi_adj {f : ι → G.subgraph} :
+  (⨅ i, f i).adj a b ↔ (∀ i, (f i).adj a b) ∧ G.adj a b :=
+by simp [infi]
+
+lemma Inf_adj_of_nonempty {s : set G.subgraph} (hs : s.nonempty) :
+  (Inf s).adj a b ↔ ∀ G' ∈ s, adj G' a b :=
+Inf_adj.trans $ and_iff_left_of_imp $ by { obtain ⟨G', hG'⟩ := hs, exact λ h, G'.adj_sub (h _ hG') }
+
+lemma infi_adj_of_nonempty [nonempty ι] {f : ι → G.subgraph} :
+  (⨅ i, f i).adj a b ↔ ∀ i, (f i).adj a b :=
+by simp [infi, Inf_adj_of_nonempty (set.range_nonempty _)]
+
+@[simp] lemma verts_Sup (s : set G.subgraph) : (Sup s).verts = ⋃ G' ∈ s, verts G' := rfl
+@[simp] lemma verts_Inf (s : set G.subgraph) : (Inf s).verts = ⋂ G' ∈ s, verts G' := rfl
+
+@[simp] lemma verts_supr {f : ι → G.subgraph} : (⨆ i, f i).verts = ⋃ i, (f i).verts :=
+by simp [supr]
+
+@[simp] lemma verts_infi {f : ι → G.subgraph} : (⨅ i, f i).verts = ⋂ i, (f i).verts :=
+by simp [infi]
+
+/-- For subgraphs `G₁`, `G₂`, `G₁ ≤ G₂` iff `G₁.verts ⊆ G₂.verts` and
+`∀ a b, G₁.adj a b → G₂.adj a b`. -/
+instance : distrib_lattice G.subgraph :=
+{ le := λ x y, x.verts ⊆ y.verts ∧ ∀ ⦃v w : V⦄, x.adj v w → y.adj v w,
+  ..show distrib_lattice G.subgraph, from function.injective.distrib_lattice
+    (λ G', (G'.verts, G'.spanning_coe))
+    (λ G₁ G₂ h, by { rw prod.ext_iff at h, exact ext _ _ h.1 (spanning_coe_inj.1 h.2) })
+    (λ _ _, rfl) (λ _ _, rfl) }
 
 instance : bounded_order (subgraph G) :=
-{ top := top,
-  bot := bot,
+{ top := ⊤,
+  bot := ⊥,
   le_top := λ x, ⟨set.subset_univ _, (λ v w h, x.adj_sub h)⟩,
   bot_le := λ x, ⟨set.empty_subset _, (λ v w h, false.rec _ h)⟩ }
 
-@[simps] instance subgraph_inhabited : inhabited (subgraph G) := ⟨⊥⟩
-
--- TODO simp lemmas for the other lattice operations on subgraphs
-@[simp] lemma top_verts : (⊤ : subgraph G).verts = set.univ := rfl
-
-@[simp] lemma top_adj_iff {v w : V} : (⊤ : subgraph G).adj v w ↔ G.adj v w := iff.rfl
+-- Note that subgraphs do not form a Boolean algebra, because of `verts`.
+instance : complete_distrib_lattice G.subgraph :=
+{ le := (≤),
+  sup := (⊔),
+  inf := (⊓),
+  top := ⊤,
+  bot := ⊥,
+  le_top := λ G', ⟨set.subset_univ _, λ a b, G'.adj_sub⟩,
+  bot_le := λ G', ⟨set.empty_subset _, λ a b, false.elim⟩,
+  Sup := Sup,
+  le_Sup := λ s G' hG', ⟨set.subset_Union₂ G' hG', λ a b hab, ⟨G', hG', hab⟩⟩,
+  Sup_le := λ s G' hG', ⟨set.Union₂_subset $ λ H hH, (hG' _ hH).1,
+    by { rintro a b ⟨H, hH, hab⟩, exact (hG' _ hH).2 hab }⟩,
+  Inf := Inf,
+  Inf_le := λ s G' hG', ⟨set.Inter₂_subset G' hG', λ a b hab, hab.1 hG'⟩,
+  le_Inf := λ s G' hG', ⟨set.subset_Inter₂ $ λ H hH, (hG' _ hH).1,
+    λ a b hab, ⟨λ H hH, (hG' _ hH).2 hab, G'.adj_sub hab⟩⟩,
+  inf_Sup_le_supr_inf := λ G' s, begin
+    refine ⟨_, λ a b hab, _⟩,
+    { simp only [verts_inf, verts_Sup, verts_supr, set.le_eq_subset],
+      exact (set.inter_Union₂ _ _).subset },
+    { simpa only [spanning_coe_adj, exists_prop, Sup_adj, and_imp, forall_exists_index, supr_adj,
+        inf_adj, ←exists_and_distrib_right, exists_and_distrib_left, and_assoc, and_self_right]
+        using hab }
+  end,
+  infi_sup_le_sup_Inf := λ G' s, begin
+    refine ⟨_, λ a b hab, _⟩,
+    { simp only [set.le_eq_subset, verts_infi, verts_sup, verts_Inf],
+      exact (set.union_Inter₂ _ _).superset },
+    simp only [spanning_coe_adj, sup_adj, Inf_adj, sup_adj, Inf_adj, infi_adj] at ⊢ hab,
+    have : (∀ G'' ∈ s, adj G' a b ∨ adj G'' a b) ∧ G.adj a b :=
+      (and_congr_left $ λ h, forall_congr $ λ H, _).1 hab,
+    simpa [forall_or_distrib_left, or_and_distrib_right, and_iff_left_of_imp G'.adj_sub] using this,
+    exact and_iff_left h,
+  end,
+  ..subgraph.distrib_lattice }
 
-@[simp] lemma bot_verts : (⊥ : subgraph G).verts = ∅ := rfl
+@[simps] instance subgraph_inhabited : inhabited (subgraph G) := ⟨⊥⟩
 
-@[simp] lemma not_bot_adj {v w : V} : ¬(⊥ : subgraph G).adj v w := not_false
+@[simp] lemma neighbor_set_sup {H H' : G.subgraph} (v : V) :
+  (H ⊔ H').neighbor_set v = H.neighbor_set v ∪ H'.neighbor_set v := rfl
 
-@[simp] lemma inf_adj {H₁ H₂ : subgraph G} {v w : V} :
-  (H₁ ⊓ H₂).adj v w ↔ H₁.adj v w ∧ H₂.adj v w := iff.rfl
+@[simp] lemma neighbor_set_inf {H H' : G.subgraph} (v : V) :
+  (H ⊓ H').neighbor_set v = H.neighbor_set v ∩ H'.neighbor_set v := rfl
 
-@[simp] lemma sup_adj {H₁ H₂ : subgraph G} {v w : V} :
-  (H₁ ⊔ H₂).adj v w ↔ H₁.adj v w ∨ H₂.adj v w := iff.rfl
+@[simp] lemma neighbor_set_top (v : V) : (⊤ : G.subgraph).neighbor_set v = G.neighbor_set v := rfl
+@[simp] lemma neighbor_set_bot (v : V) : (⊥ : G.subgraph).neighbor_set v = ∅ := rfl
 
-@[simp] lemma verts_sup {H H' : G.subgraph} : (H ⊔ H').verts = H.verts ∪ H'.verts := rfl
+@[simp] lemma neighbor_set_Sup (s : set G.subgraph) (v : V) :
+  (Sup s).neighbor_set v = ⋃ G' ∈ s, neighbor_set G' v :=
+by { ext, simp }
 
-@[simp] lemma verts_inf {H H' : G.subgraph} : (H ⊓ H').verts = H.verts ∩ H'.verts := rfl
+@[simp] lemma neighbor_set_Inf (s : set G.subgraph) (v : V) :
+  (Inf s).neighbor_set v = (⋂ G' ∈ s, neighbor_set G' v) ∩ G.neighbor_set v :=
+by { ext, simp }
 
-lemma neighbor_set_sup {H H' : G.subgraph} (v : V) :
-  (H ⊔ H').neighbor_set v = H.neighbor_set v ∪ H'.neighbor_set v :=
-by { ext w, simp }
+@[simp] lemma neighbor_set_supr (f : ι → G.subgraph) (v : V) :
+  (⨆ i, f i).neighbor_set v = ⋃ i, (f i).neighbor_set v :=
+by simp [supr]
 
-lemma neighbor_set_inf {H H' : G.subgraph} (v : V) :
-  (H ⊓ H').neighbor_set v = H.neighbor_set v ∩ H'.neighbor_set v :=
-by { ext w, simp }
+@[simp] lemma neighbor_set_infi (f : ι → G.subgraph) (v : V) :
+  (⨅ i, f i).neighbor_set v = (⋂ i, (f i).neighbor_set v) ∩ G.neighbor_set v :=
+by simp [infi]
 
 @[simp] lemma edge_set_top : (⊤ : subgraph G).edge_set = G.edge_set := rfl
 
@@ -334,6 +412,20 @@ set.ext $ sym2.ind (by simp)
 @[simp] lemma edge_set_sup {H₁ H₂ : subgraph G} : (H₁ ⊔ H₂).edge_set = H₁.edge_set ∪ H₂.edge_set :=
 set.ext $ sym2.ind (by simp)
 
+@[simp] lemma edge_set_Sup (s : set G.subgraph) : (Sup s).edge_set = ⋃ G' ∈ s, edge_set G' :=
+by { ext e, induction e using sym2.ind, simp }
+
+@[simp] lemma edge_set_Inf (s : set G.subgraph) :
+  (Inf s).edge_set = (⋂ G' ∈ s, edge_set G') ∩ G.edge_set :=
+by { ext e, induction e using sym2.ind, simp }
+
+@[simp] lemma edge_set_supr (f : ι → G.subgraph) : (⨆ i, f i).edge_set = ⋃ i, (f i).edge_set :=
+by simp [supr]
+
+@[simp] lemma edge_set_infi (f : ι → G.subgraph) :
+  (⨅ i, f i).edge_set = (⋂ i, (f i).edge_set) ∩ G.edge_set :=
+by simp [infi]
+
 @[simp] lemma spanning_coe_top : (⊤ : subgraph G).spanning_coe = G :=
 by { ext, refl }
 
@@ -858,7 +950,7 @@ begin
       simp only [subgraph_of_adj_adj, quotient.eq, sym2.rel_iff] at h,
       obtain ⟨rfl, rfl⟩|⟨rfl, rfl⟩ := h; simp [hvw, hvw.symm], },
     { intro h,
-      simp only [induce_adj, set.mem_insert_iff, set.mem_singleton_iff, top_adj_iff] at h,
+      simp only [induce_adj, set.mem_insert_iff, set.mem_singleton_iff, top_adj] at h,
       obtain ⟨rfl|rfl, rfl|rfl, ha⟩ := h;
         exact (ha.ne rfl).elim <|> simp } }
 end

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(first ported)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -591,7 +591,7 @@ instance : CompleteDistribLattice G.Subgraph :=
         exact (Set.inter_iUnion₂ _ _).Subset
       ·
         simpa only [spanning_coe_adj, exists_prop, Sup_adj, and_imp, forall_exists_index, supr_adj,
-          inf_adj, ← exists_and_right, exists_and_left, and_assoc', and_self_right] using hab
+          inf_adj, ← exists_and_right, exists_and_left, and_assoc, and_self_right] using hab
     iInf_sup_le_sup_inf := fun G' s =>
       by
       refine' ⟨_, fun a b hab => _⟩
@@ -1145,7 +1145,7 @@ theorem edgeSet_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
 
 #print SimpleGraph.subgraphOfAdj_symm /-
 theorem subgraphOfAdj_symm {v w : V} (hvw : G.Adj v w) :
-    G.subgraphOfAdj hvw.symm = G.subgraphOfAdj hvw := by ext <;> simp [or_comm', and_comm']
+    G.subgraphOfAdj hvw.symm = G.subgraphOfAdj hvw := by ext <;> simp [or_comm, and_comm]
 #align simple_graph.subgraph_of_adj_symm SimpleGraph.subgraphOfAdj_symm
 -/
 
@@ -1310,7 +1310,7 @@ theorem deleteEdges_adj (v w : V) : (G'.deleteEdges s).Adj v w ↔ G'.Adj v w 
 @[simp]
 theorem deleteEdges_deleteEdges (s s' : Set (Sym2 V)) :
     (G'.deleteEdges s).deleteEdges s' = G'.deleteEdges (s ∪ s') := by
-  ext <;> simp [and_assoc', not_or]
+  ext <;> simp [and_assoc, not_or]
 #align simple_graph.subgraph.delete_edges_delete_edges SimpleGraph.Subgraph.deleteEdges_deleteEdges
 -/
 
@@ -1523,7 +1523,7 @@ theorem deleteVerts_verts : (G'.deleteVerts s).verts = G'.verts \ s :=
 #print 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 := by
-  simp [and_assoc']
+  simp [and_assoc]
 #align simple_graph.subgraph.delete_verts_adj SimpleGraph.Subgraph.deleteVerts_adj
 -/
 
@@ -1531,7 +1531,7 @@ theorem deleteVerts_adj {u v : V} :
 @[simp]
 theorem deleteVerts_deleteVerts (s s' : Set V) :
     (G'.deleteVerts s).deleteVerts s' = G'.deleteVerts (s ∪ s') := by
-  ext <;> simp (config := { contextual := true }) [not_or, and_assoc']
+  ext <;> simp (config := { contextual := true }) [not_or, and_assoc]
 #align simple_graph.subgraph.delete_verts_delete_verts SimpleGraph.Subgraph.deleteVerts_deleteVerts
 -/
 
Diff
@@ -92,7 +92,7 @@ def subgraphOfAdj (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) : G.Subgraph
   verts := {v, w}
   Adj a b := ⟦(v, w)⟧ = ⟦(a, b)⟧
   adj_sub a b h := by rw [← G.mem_edge_set, ← h]; exact hvw
-  edge_vert a b h := by apply_fun fun e => a ∈ e at h ; simpa using h
+  edge_vert a b h := by apply_fun fun e => a ∈ e at h; simpa using h
 #align simple_graph.subgraph_of_adj SimpleGraph.subgraphOfAdj
 -/
 
@@ -318,7 +318,7 @@ theorem mem_verts_if_mem_edge {G' : Subgraph G} {e : Sym2 V} {v : V} (he : e ∈
   by
   refine' Quotient.ind (fun e he hv => _) e he hv
   cases' e with v w
-  simp only [mem_edge_set] at he 
+  simp only [mem_edge_set] at he
   cases' sym2.mem_iff.mp hv with h h <;> subst h
   · exact G'.edge_vert he
   · exact G'.edge_vert (G'.symm he)
@@ -554,7 +554,7 @@ instance : DistribLattice G.Subgraph :=
   {
     show DistribLattice G.Subgraph from
       Function.Injective.distribLattice (fun G' => (G'.verts, G'.spanningCoe))
-        (fun G₁ G₂ h => by rw [Prod.ext_iff] at h ; exact ext _ _ h.1 (spanning_coe_inj.1 h.2))
+        (fun G₁ G₂ h => by rw [Prod.ext_iff] at h; exact ext _ _ h.1 (spanning_coe_inj.1 h.2))
         (fun _ _ => rfl) fun _ _ => rfl with
     le := fun x y => x.verts ⊆ y.verts ∧ ∀ ⦃v w : V⦄, x.Adj v w → y.Adj v w }
 
@@ -897,7 +897,7 @@ theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph
   · simp only [Relation.Map, map_adj, forall_exists_index, and_imp]
     rintro u u' hu rfl rfl
     have := h.2 hu
-    simp only [comap_adj] at this 
+    simp only [comap_adj] at this
     exact this.2
 #align simple_graph.subgraph.map_le_iff_le_comap SimpleGraph.Subgraph.map_le_iff_le_comap
 -/
@@ -915,8 +915,7 @@ def inclusion {x y : Subgraph G} (h : x ≤ y) : x.coe →g y.coe
 
 #print SimpleGraph.Subgraph.inclusion.injective /-
 theorem inclusion.injective {x y : Subgraph G} (h : x ≤ y) : Function.Injective (inclusion h) :=
-  fun v w h => by simp only [inclusion, RelHom.coeFn_mk, Subtype.mk_eq_mk] at h ;
-  exact Subtype.ext h
+  fun v w h => by simp only [inclusion, RelHom.coeFn_mk, Subtype.mk_eq_mk] at h; exact Subtype.ext h
 #align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injective
 -/
 
@@ -995,7 +994,7 @@ instance coeFiniteAt {G' : Subgraph G} (v : G'.verts) [Fintype (G'.neighborSet v
 
 #print SimpleGraph.Subgraph.IsSpanning.card_verts /-
 theorem IsSpanning.card_verts [Fintype V] {G' : Subgraph G} [Fintype G'.verts] (h : G'.IsSpanning) :
-    G'.verts.toFinset.card = Fintype.card V := by rw [is_spanning_iff] at h ; simpa [h]
+    G'.verts.toFinset.card = Fintype.card V := by rw [is_spanning_iff] at h; simpa [h]
 #align simple_graph.subgraph.is_spanning.card_verts SimpleGraph.Subgraph.IsSpanning.card_verts
 -/
 
@@ -1119,7 +1118,7 @@ theorem eq_singletonSubgraph_iff_verts_eq (H : G.Subgraph) {v : V} :
     intro ha
     have ha1 := ha.fst_mem
     have ha2 := ha.snd_mem
-    rw [h, Set.mem_singleton_iff] at ha1 ha2 
+    rw [h, Set.mem_singleton_iff] at ha1 ha2
     subst_vars
     exact ha.ne rfl
 #align simple_graph.eq_singleton_subgraph_iff_verts_eq SimpleGraph.eq_singletonSubgraph_iff_verts_eq
@@ -1489,10 +1488,10 @@ theorem subgraphOfAdj_eq_induce {v w : V} (hvw : G.Adj v w) :
   · simp
   · constructor
     · intro h
-      simp only [subgraph_of_adj_adj, Quotient.eq', Sym2.rel_iff] at h 
+      simp only [subgraph_of_adj_adj, Quotient.eq', Sym2.rel_iff] at h
       obtain ⟨rfl, rfl⟩ | ⟨rfl, rfl⟩ := h <;> simp [hvw, hvw.symm]
     · intro h
-      simp only [induce_adj, Set.mem_insert_iff, Set.mem_singleton_iff, top_adj] at h 
+      simp only [induce_adj, Set.mem_insert_iff, Set.mem_singleton_iff, top_adj] at h
       obtain ⟨rfl | rfl, rfl | rfl, ha⟩ := h <;>
         first
         | exact (ha.ne rfl).elim
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Hunter Monroe. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Hunter Monroe, Kyle Miller, Alena Gusakov
 -/
-import Mathbin.Combinatorics.SimpleGraph.Basic
+import Combinatorics.SimpleGraph.Basic
 
 #align_import combinatorics.simple_graph.subgraph from "leanprover-community/mathlib"@"c6ef6387ede9983aee397d442974e61f89dfd87b"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2021 Hunter Monroe. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Hunter Monroe, Kyle Miller, Alena Gusakov
-
-! This file was ported from Lean 3 source module combinatorics.simple_graph.subgraph
-! leanprover-community/mathlib commit c6ef6387ede9983aee397d442974e61f89dfd87b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.Combinatorics.SimpleGraph.Basic
 
+#align_import combinatorics.simple_graph.subgraph from "leanprover-community/mathlib"@"c6ef6387ede9983aee397d442974e61f89dfd87b"
+
 /-!
 # Subgraphs of a simple graph
 
Diff
@@ -1335,7 +1335,7 @@ theorem deleteEdges_spanningCoe_eq :
 theorem deleteEdges_coe_eq (s : Set (Sym2 G'.verts)) :
     G'.coe.deleteEdges s = (G'.deleteEdges (Sym2.map coe '' s)).coe :=
   by
-  ext (⟨v, hv⟩⟨w, hw⟩)
+  ext ⟨v, hv⟩ ⟨w, hw⟩
   simp only [SimpleGraph.deleteEdges_adj, coe_adj, Subtype.coe_mk, delete_edges_adj, Set.mem_image,
     not_exists, not_and, and_congr_right_iff]
   intro h
@@ -1353,8 +1353,7 @@ theorem deleteEdges_coe_eq (s : Set (Sym2 G'.verts)) :
 
 #print SimpleGraph.Subgraph.coe_deleteEdges_eq /-
 theorem coe_deleteEdges_eq (s : Set (Sym2 V)) :
-    (G'.deleteEdges s).coe = G'.coe.deleteEdges (Sym2.map coe ⁻¹' s) := by ext (⟨v, hv⟩⟨w, hw⟩);
-  simp
+    (G'.deleteEdges s).coe = G'.coe.deleteEdges (Sym2.map coe ⁻¹' s) := by ext ⟨v, hv⟩ ⟨w, hw⟩; simp
 #align simple_graph.subgraph.coe_delete_edges_eq SimpleGraph.Subgraph.coe_deleteEdges_eq
 -/
 
@@ -1428,7 +1427,7 @@ def induce (G' : G.Subgraph) (s : Set V) : G.Subgraph
 
 #print SimpleGraph.induce_eq_coe_induce_top /-
 theorem SimpleGraph.induce_eq_coe_induce_top (s : Set V) :
-    G.induce s = ((⊤ : G.Subgraph).induce s).coe := by ext (v w); simp
+    G.induce s = ((⊤ : G.Subgraph).induce s).coe := by ext v w; simp
 #align simple_graph.induce_eq_coe_induce_top SimpleGraph.induce_eq_coe_induce_top
 -/
 
Diff
@@ -302,9 +302,11 @@ def edgeSet (G' : Subgraph G) : Set (Sym2 V) :=
 #align simple_graph.subgraph.edge_set SimpleGraph.Subgraph.edgeSet
 -/
 
+#print SimpleGraph.Subgraph.edgeSet_subset /-
 theorem edgeSet_subset (G' : Subgraph G) : G'.edgeSetEmbedding ⊆ G.edgeSetEmbedding := fun e =>
   Quotient.ind (fun e h => G'.adj_sub h) e
 #align simple_graph.subgraph.edge_set_subset SimpleGraph.Subgraph.edgeSet_subset
+-/
 
 #print SimpleGraph.Subgraph.mem_edgeSet /-
 @[simp]
@@ -425,15 +427,19 @@ instance : InfSet G.Subgraph :=
       edge_vert := fun a b hab => Set.mem_iInter₂_of_mem fun G' hG' => G'.edge_vert <| hab.1 hG'
       symm := fun _ _ => And.imp (forall₂_imp fun _ _ => Adj.symm) G.adj_symm }⟩
 
+#print SimpleGraph.Subgraph.sup_adj /-
 @[simp]
 theorem sup_adj : (G₁ ⊔ G₂).Adj a b ↔ G₁.Adj a b ∨ G₂.Adj a b :=
   Iff.rfl
 #align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adj
+-/
 
+#print SimpleGraph.Subgraph.inf_adj /-
 @[simp]
 theorem inf_adj : (G₁ ⊓ G₂).Adj a b ↔ G₁.Adj a b ∧ G₂.Adj a b :=
   Iff.rfl
 #align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adj
+-/
 
 #print SimpleGraph.Subgraph.top_adj /-
 @[simp]
@@ -442,20 +448,26 @@ theorem top_adj : (⊤ : Subgraph G).Adj a b ↔ G.Adj a b :=
 #align simple_graph.subgraph.top_adj SimpleGraph.Subgraph.top_adj
 -/
 
+#print SimpleGraph.Subgraph.not_bot_adj /-
 @[simp]
 theorem not_bot_adj : ¬(⊥ : Subgraph G).Adj a b :=
   not_false
 #align simple_graph.subgraph.not_bot_adj SimpleGraph.Subgraph.not_bot_adj
+-/
 
+#print SimpleGraph.Subgraph.verts_sup /-
 @[simp]
 theorem verts_sup (G₁ G₂ : G.Subgraph) : (G₁ ⊔ G₂).verts = G₁.verts ∪ G₂.verts :=
   rfl
 #align simple_graph.subgraph.verts_sup SimpleGraph.Subgraph.verts_sup
+-/
 
+#print SimpleGraph.Subgraph.verts_inf /-
 @[simp]
 theorem verts_inf (G₁ G₂ : G.Subgraph) : (G₁ ⊓ G₂).verts = G₁.verts ∩ G₂.verts :=
   rfl
 #align simple_graph.subgraph.verts_inf SimpleGraph.Subgraph.verts_inf
+-/
 
 #print SimpleGraph.Subgraph.verts_top /-
 @[simp]
@@ -471,35 +483,47 @@ theorem verts_bot : (⊥ : G.Subgraph).verts = ∅ :=
 #align simple_graph.subgraph.verts_bot SimpleGraph.Subgraph.verts_bot
 -/
 
+#print SimpleGraph.Subgraph.sSup_adj /-
 @[simp]
 theorem sSup_adj {s : Set G.Subgraph} : (sSup s).Adj a b ↔ ∃ G ∈ s, Adj G a b :=
   Iff.rfl
 #align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.sSup_adj
+-/
 
+#print SimpleGraph.Subgraph.sInf_adj /-
 @[simp]
 theorem sInf_adj {s : Set G.Subgraph} : (sInf s).Adj a b ↔ (∀ G' ∈ s, Adj G' a b) ∧ G.Adj a b :=
   Iff.rfl
 #align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.sInf_adj
+-/
 
+#print SimpleGraph.Subgraph.iSup_adj /-
 @[simp]
 theorem iSup_adj {f : ι → G.Subgraph} : (⨆ i, f i).Adj a b ↔ ∃ i, (f i).Adj a b := by simp [iSup]
 #align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.iSup_adj
+-/
 
+#print SimpleGraph.Subgraph.iInf_adj /-
 @[simp]
 theorem iInf_adj {f : ι → G.Subgraph} : (⨅ i, f i).Adj a b ↔ (∀ i, (f i).Adj a b) ∧ G.Adj a b := by
   simp [iInf]
 #align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.iInf_adj
+-/
 
+#print SimpleGraph.Subgraph.sInf_adj_of_nonempty /-
 theorem sInf_adj_of_nonempty {s : Set G.Subgraph} (hs : s.Nonempty) :
     (sInf s).Adj a b ↔ ∀ G' ∈ s, Adj G' a b :=
   sInf_adj.trans <|
     and_iff_left_of_imp <| by obtain ⟨G', hG'⟩ := hs; exact fun h => G'.adj_sub (h _ hG')
 #align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.sInf_adj_of_nonempty
+-/
 
+#print SimpleGraph.Subgraph.iInf_adj_of_nonempty /-
 theorem iInf_adj_of_nonempty [Nonempty ι] {f : ι → G.Subgraph} :
     (⨅ i, f i).Adj a b ↔ ∀ i, (f i).Adj a b := by
   simp [iInf, Inf_adj_of_nonempty (Set.range_nonempty _)]
 #align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.iInf_adj_of_nonempty
+-/
 
 #print SimpleGraph.Subgraph.verts_sSup /-
 @[simp]
@@ -515,13 +539,17 @@ theorem verts_sInf (s : Set G.Subgraph) : (sInf s).verts = ⋂ G' ∈ s, verts G
 #align simple_graph.subgraph.verts_Inf SimpleGraph.Subgraph.verts_sInf
 -/
 
+#print SimpleGraph.Subgraph.verts_iSup /-
 @[simp]
 theorem verts_iSup {f : ι → G.Subgraph} : (⨆ i, f i).verts = ⋃ i, (f i).verts := by simp [iSup]
 #align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_iSup
+-/
 
+#print SimpleGraph.Subgraph.verts_iInf /-
 @[simp]
 theorem verts_iInf {f : ι → G.Subgraph} : (⨅ i, f i).verts = ⋂ i, (f i).verts := by simp [iInf]
 #align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_iInf
+-/
 
 /-- For subgraphs `G₁`, `G₂`, `G₁ ≤ G₂` iff `G₁.verts ⊆ G₂.verts` and
 `∀ a b, G₁.adj a b → G₂.adj a b`. -/
@@ -585,17 +613,21 @@ instance subgraphInhabited : Inhabited (Subgraph G) :=
 #align simple_graph.subgraph.subgraph_inhabited SimpleGraph.Subgraph.subgraphInhabited
 -/
 
+#print SimpleGraph.Subgraph.neighborSet_sup /-
 @[simp]
 theorem neighborSet_sup {H H' : G.Subgraph} (v : V) :
     (H ⊔ H').neighborSet v = H.neighborSet v ∪ H'.neighborSet v :=
   rfl
 #align simple_graph.subgraph.neighbor_set_sup SimpleGraph.Subgraph.neighborSet_sup
+-/
 
+#print SimpleGraph.Subgraph.neighborSet_inf /-
 @[simp]
 theorem neighborSet_inf {H H' : G.Subgraph} (v : V) :
     (H ⊓ H').neighborSet v = H.neighborSet v ∩ H'.neighborSet v :=
   rfl
 #align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_inf
+-/
 
 #print SimpleGraph.Subgraph.neighborSet_top /-
 @[simp]
@@ -604,10 +636,12 @@ theorem neighborSet_top (v : V) : (⊤ : G.Subgraph).neighborSet v = G.neighborS
 #align simple_graph.subgraph.neighbor_set_top SimpleGraph.Subgraph.neighborSet_top
 -/
 
+#print SimpleGraph.Subgraph.neighborSet_bot /-
 @[simp]
 theorem neighborSet_bot (v : V) : (⊥ : G.Subgraph).neighborSet v = ∅ :=
   rfl
 #align simple_graph.subgraph.neighbor_set_bot SimpleGraph.Subgraph.neighborSet_bot
+-/
 
 #print SimpleGraph.Subgraph.neighborSet_sSup /-
 @[simp]
@@ -623,37 +657,49 @@ theorem neighborSet_sInf (s : Set G.Subgraph) (v : V) :
 #align simple_graph.subgraph.neighbor_set_Inf SimpleGraph.Subgraph.neighborSet_sInf
 -/
 
+#print SimpleGraph.Subgraph.neighborSet_iSup /-
 @[simp]
 theorem neighborSet_iSup (f : ι → G.Subgraph) (v : V) :
     (⨆ i, f i).neighborSet v = ⋃ i, (f i).neighborSet v := by simp [iSup]
 #align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_iSup
+-/
 
+#print SimpleGraph.Subgraph.neighborSet_iInf /-
 @[simp]
 theorem neighborSet_iInf (f : ι → G.Subgraph) (v : V) :
     (⨅ i, f i).neighborSet v = (⋂ i, (f i).neighborSet v) ∩ G.neighborSet v := by simp [iInf]
 #align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_iInf
+-/
 
+#print SimpleGraph.Subgraph.edgeSet_top /-
 @[simp]
 theorem edgeSet_top : (⊤ : Subgraph G).edgeSetEmbedding = G.edgeSetEmbedding :=
   rfl
 #align simple_graph.subgraph.edge_set_top SimpleGraph.Subgraph.edgeSet_top
+-/
 
+#print SimpleGraph.Subgraph.edgeSet_bot /-
 @[simp]
 theorem edgeSet_bot : (⊥ : Subgraph G).edgeSetEmbedding = ∅ :=
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_bot SimpleGraph.Subgraph.edgeSet_bot
+-/
 
+#print SimpleGraph.Subgraph.edgeSet_inf /-
 @[simp]
 theorem edgeSet_inf {H₁ H₂ : Subgraph G} :
     (H₁ ⊓ H₂).edgeSetEmbedding = H₁.edgeSetEmbedding ∩ H₂.edgeSetEmbedding :=
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_inf SimpleGraph.Subgraph.edgeSet_inf
+-/
 
+#print SimpleGraph.Subgraph.edgeSet_sup /-
 @[simp]
 theorem edgeSet_sup {H₁ H₂ : Subgraph G} :
     (H₁ ⊔ H₂).edgeSetEmbedding = H₁.edgeSetEmbedding ∪ H₂.edgeSetEmbedding :=
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_sup
+-/
 
 #print SimpleGraph.Subgraph.edgeSet_sSup /-
 @[simp]
@@ -670,16 +716,20 @@ theorem edgeSet_sInf (s : Set G.Subgraph) :
 #align simple_graph.subgraph.edge_set_Inf SimpleGraph.Subgraph.edgeSet_sInf
 -/
 
+#print SimpleGraph.Subgraph.edgeSet_iSup /-
 @[simp]
 theorem edgeSet_iSup (f : ι → G.Subgraph) :
     (⨆ i, f i).edgeSetEmbedding = ⋃ i, (f i).edgeSetEmbedding := by simp [iSup]
 #align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_iSup
+-/
 
+#print SimpleGraph.Subgraph.edgeSet_iInf /-
 @[simp]
 theorem edgeSet_iInf (f : ι → G.Subgraph) :
     (⨅ i, f i).edgeSetEmbedding = (⋂ i, (f i).edgeSetEmbedding) ∩ G.edgeSetEmbedding := by
   simp [iInf]
 #align simple_graph.subgraph.edge_set_infi SimpleGraph.Subgraph.edgeSet_iInf
+-/
 
 #print SimpleGraph.Subgraph.spanningCoe_top /-
 @[simp]
@@ -687,10 +737,12 @@ theorem spanningCoe_top : (⊤ : Subgraph G).spanningCoe = G := by ext; rfl
 #align simple_graph.subgraph.spanning_coe_top SimpleGraph.Subgraph.spanningCoe_top
 -/
 
+#print SimpleGraph.Subgraph.spanningCoe_bot /-
 @[simp]
 theorem spanningCoe_bot : (⊥ : Subgraph G).spanningCoe = ⊥ :=
   rfl
 #align simple_graph.subgraph.spanning_coe_bot SimpleGraph.Subgraph.spanningCoe_bot
+-/
 
 #print SimpleGraph.toSubgraph /-
 /-- Turn a subgraph of a `simple_graph` into a member of its subgraph type. -/
@@ -705,9 +757,11 @@ def SimpleGraph.toSubgraph (H : SimpleGraph V) (h : H ≤ G) : G.Subgraph
 #align simple_graph.to_subgraph SimpleGraph.toSubgraph
 -/
 
+#print SimpleGraph.Subgraph.support_mono /-
 theorem support_mono {H H' : Subgraph G} (h : H ≤ H') : H.support ⊆ H'.support :=
   Rel.dom_mono h.2
 #align simple_graph.subgraph.support_mono SimpleGraph.Subgraph.support_mono
+-/
 
 #print SimpleGraph.toSubgraph.isSpanning /-
 theorem SimpleGraph.toSubgraph.isSpanning (H : SimpleGraph V) (h : H ≤ G) :
@@ -716,9 +770,11 @@ theorem SimpleGraph.toSubgraph.isSpanning (H : SimpleGraph V) (h : H ≤ G) :
 #align simple_graph.to_subgraph.is_spanning SimpleGraph.toSubgraph.isSpanning
 -/
 
+#print SimpleGraph.Subgraph.spanningCoe_le_of_le /-
 theorem spanningCoe_le_of_le {H H' : Subgraph G} (h : H ≤ H') : H.spanningCoe ≤ H'.spanningCoe :=
   h.2
 #align simple_graph.subgraph.spanning_coe_le_of_le SimpleGraph.Subgraph.spanningCoe_le_of_le
+-/
 
 #print SimpleGraph.Subgraph.topEquiv /-
 /-- The top of the `subgraph G` lattice is equivalent to the graph itself. -/
@@ -732,6 +788,7 @@ def topEquiv : (⊤ : Subgraph G).coe ≃g G
 #align simple_graph.subgraph.top_equiv SimpleGraph.Subgraph.topEquiv
 -/
 
+#print SimpleGraph.Subgraph.botEquiv /-
 /-- The bottom of the `subgraph G` lattice is equivalent to the empty graph on the empty
 vertex type. -/
 def botEquiv : (⊥ : Subgraph G).coe ≃g (⊥ : SimpleGraph Empty)
@@ -742,15 +799,20 @@ def botEquiv : (⊥ : Subgraph G).coe ≃g (⊥ : SimpleGraph Empty)
   right_inv v := v.elim
   map_rel_iff' a b := Iff.rfl
 #align simple_graph.subgraph.bot_equiv SimpleGraph.Subgraph.botEquiv
+-/
 
+#print SimpleGraph.Subgraph.edgeSet_mono /-
 theorem edgeSet_mono {H₁ H₂ : Subgraph G} (h : H₁ ≤ H₂) :
     H₁.edgeSetEmbedding ≤ H₂.edgeSetEmbedding := fun e => Sym2.ind h.2 e
 #align simple_graph.subgraph.edge_set_mono SimpleGraph.Subgraph.edgeSet_mono
+-/
 
+#print Disjoint.edgeSet /-
 theorem Disjoint.edgeSet {H₁ H₂ : Subgraph G} (h : Disjoint H₁ H₂) :
     Disjoint H₁.edgeSetEmbedding H₂.edgeSetEmbedding :=
   disjoint_iff_inf_le.mpr <| by simpa using edge_set_mono h.le_bot
 #align disjoint.edge_set Disjoint.edgeSet
+-/
 
 #print SimpleGraph.Subgraph.map /-
 /-- Graph homomorphisms induce a covariant function on subgraphs. -/
@@ -765,6 +827,7 @@ protected def map {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) : G'.Sub
 #align simple_graph.subgraph.map SimpleGraph.Subgraph.map
 -/
 
+#print SimpleGraph.Subgraph.map_monotone /-
 theorem map_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.map f) :=
   by
   intro H H' h
@@ -776,7 +839,9 @@ theorem map_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.m
   · rintro _ _ ⟨u, v, ha, rfl, rfl⟩
     exact ⟨_, _, h.2 ha, rfl, rfl⟩
 #align simple_graph.subgraph.map_monotone SimpleGraph.Subgraph.map_monotone
+-/
 
+#print SimpleGraph.Subgraph.map_sup /-
 theorem map_sup {G : SimpleGraph V} {G' : SimpleGraph W} (f : G →g G') {H H' : G.Subgraph} :
     (H ⊔ H').map f = H.map f ⊔ H'.map f := by
   ext1
@@ -791,6 +856,7 @@ theorem map_sup {G : SimpleGraph V} {G' : SimpleGraph W} (f : G →g G') {H H' :
       · exact ⟨_, _, Or.inl h, rfl, rfl⟩
       · exact ⟨_, _, Or.inr h, rfl, rfl⟩
 #align simple_graph.subgraph.map_sup SimpleGraph.Subgraph.map_sup
+-/
 
 #print SimpleGraph.Subgraph.comap /-
 /-- Graph homomorphisms induce a contravariant function on subgraphs. -/
@@ -804,6 +870,7 @@ protected def comap {G' : SimpleGraph W} (f : G →g G') (H : G'.Subgraph) : G.S
 #align simple_graph.subgraph.comap SimpleGraph.Subgraph.comap
 -/
 
+#print SimpleGraph.Subgraph.comap_monotone /-
 theorem comap_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.comap f) :=
   by
   intro H H' h
@@ -816,7 +883,9 @@ theorem comap_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph
     intro
     apply h.2
 #align simple_graph.subgraph.comap_monotone SimpleGraph.Subgraph.comap_monotone
+-/
 
+#print SimpleGraph.Subgraph.map_le_iff_le_comap /-
 theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) (H' : G'.Subgraph) :
     H.map f ≤ H' ↔ H ≤ H'.comap f :=
   by
@@ -834,7 +903,9 @@ theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph
     simp only [comap_adj] at this 
     exact this.2
 #align simple_graph.subgraph.map_le_iff_le_comap SimpleGraph.Subgraph.map_le_iff_le_comap
+-/
 
+#print SimpleGraph.Subgraph.inclusion /-
 /-- Given two subgraphs, one a subgraph of the other, there is an induced injective homomorphism of
 the subgraphs as graphs. -/
 @[simps]
@@ -843,11 +914,14 @@ def inclusion {x y : Subgraph G} (h : x ≤ y) : x.coe →g y.coe
   toFun v := ⟨↑v, And.left h v.property⟩
   map_rel' v w hvw := h.2 hvw
 #align simple_graph.subgraph.inclusion SimpleGraph.Subgraph.inclusion
+-/
 
+#print SimpleGraph.Subgraph.inclusion.injective /-
 theorem inclusion.injective {x y : Subgraph G} (h : x ≤ y) : Function.Injective (inclusion h) :=
   fun v w h => by simp only [inclusion, RelHom.coeFn_mk, Subtype.mk_eq_mk] at h ;
   exact Subtype.ext h
 #align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injective
+-/
 
 #print SimpleGraph.Subgraph.hom /-
 /-- There is an induced injective homomorphism of a subgraph of `G` into `G`. -/
@@ -880,9 +954,11 @@ theorem spanningHom.injective {x : Subgraph G} : Function.Injective x.spanningHo
 #align simple_graph.subgraph.spanning_hom.injective SimpleGraph.Subgraph.spanningHom.injective
 -/
 
+#print SimpleGraph.Subgraph.neighborSet_subset_of_subgraph /-
 theorem neighborSet_subset_of_subgraph {x y : Subgraph G} (h : x ≤ y) (v : V) :
     x.neighborSet v ⊆ y.neighborSet v := fun w h' => h.2 h'
 #align simple_graph.subgraph.neighbor_set_subset_of_subgraph SimpleGraph.Subgraph.neighborSet_subset_of_subgraph
+-/
 
 #print SimpleGraph.Subgraph.neighborSet.decidablePred /-
 instance neighborSet.decidablePred (G' : Subgraph G) [h : DecidableRel G'.Adj] (v : V) :
@@ -899,6 +975,7 @@ instance finiteAt {G' : Subgraph G} (v : G'.verts) [DecidableRel G'.Adj]
 #align simple_graph.subgraph.finite_at SimpleGraph.Subgraph.finiteAt
 -/
 
+#print SimpleGraph.Subgraph.finiteAtOfSubgraph /-
 /-- If a subgraph is locally finite at a vertex, then so are subgraphs of that subgraph.
 
 This is not an instance because `G''` cannot be inferred. -/
@@ -906,6 +983,7 @@ def finiteAtOfSubgraph {G' G'' : Subgraph G} [DecidableRel G'.Adj] (h : G' ≤ G
     [hf : Fintype (G''.neighborSet v)] : Fintype (G'.neighborSet v) :=
   Set.fintypeSubset (G''.neighborSet v) (neighborSet_subset_of_subgraph h v)
 #align simple_graph.subgraph.finite_at_of_subgraph SimpleGraph.Subgraph.finiteAtOfSubgraph
+-/
 
 instance (G' : Subgraph G) [Fintype G'.verts] (v : V) [DecidablePred (· ∈ G'.neighborSet v)] :
     Fintype (G'.neighborSet v) :=
@@ -946,10 +1024,12 @@ theorem degree_le (G' : Subgraph G) (v : V) [Fintype (G'.neighborSet v)]
 #align simple_graph.subgraph.degree_le SimpleGraph.Subgraph.degree_le
 -/
 
+#print SimpleGraph.Subgraph.degree_le' /-
 theorem degree_le' (G' G'' : Subgraph G) (h : G' ≤ G'') (v : V) [Fintype (G'.neighborSet v)]
     [Fintype (G''.neighborSet v)] : G'.degree v ≤ G''.degree v :=
   Set.card_le_of_subset (neighborSet_subset_of_subgraph h v)
 #align simple_graph.subgraph.degree_le' SimpleGraph.Subgraph.degree_le'
+-/
 
 #print SimpleGraph.Subgraph.coe_degree /-
 @[simp]
@@ -993,6 +1073,7 @@ instance nonempty_singletonSubgraph_verts (v : V) : Nonempty (G.singletonSubgrap
 #align simple_graph.nonempty_singleton_subgraph_verts SimpleGraph.nonempty_singletonSubgraph_verts
 -/
 
+#print SimpleGraph.singletonSubgraph_le_iff /-
 @[simp]
 theorem singletonSubgraph_le_iff (v : V) (H : G.Subgraph) :
     G.singletonSubgraph v ≤ H ↔ v ∈ H.verts :=
@@ -1003,6 +1084,7 @@ theorem singletonSubgraph_le_iff (v : V) (H : G.Subgraph) :
   · simp [h]
   · simp [-Set.bot_eq_empty]
 #align simple_graph.singleton_subgraph_le_iff SimpleGraph.singletonSubgraph_le_iff
+-/
 
 #print SimpleGraph.map_singletonSubgraph /-
 @[simp]
@@ -1128,18 +1210,24 @@ theorem neighborSet_subgraphOfAdj_of_ne_of_ne {u v w : V} (hvw : G.Adj v w) (hv
 #align simple_graph.neighbor_set_subgraph_of_adj_of_ne_of_ne SimpleGraph.neighborSet_subgraphOfAdj_of_ne_of_ne
 -/
 
+#print SimpleGraph.neighborSet_subgraphOfAdj /-
 theorem neighborSet_subgraphOfAdj [DecidableEq V] {u v w : V} (hvw : G.Adj v w) :
     (G.subgraphOfAdj hvw).neighborSet u = (if u = v then {w} else ∅) ∪ if u = w then {v} else ∅ :=
   by split_ifs <;> subst_vars <;> simp [*]
 #align simple_graph.neighbor_set_subgraph_of_adj SimpleGraph.neighborSet_subgraphOfAdj
+-/
 
+#print SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdj /-
 theorem singletonSubgraph_fst_le_subgraphOfAdj {u v : V} {h : G.Adj u v} :
     G.singletonSubgraph u ≤ G.subgraphOfAdj h := by constructor <;> simp [-Set.bot_eq_empty]
 #align simple_graph.singleton_subgraph_fst_le_subgraph_of_adj SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdj
+-/
 
+#print SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdj /-
 theorem singletonSubgraph_snd_le_subgraphOfAdj {u v : V} {h : G.Adj u v} :
     G.singletonSubgraph v ≤ G.subgraphOfAdj h := by constructor <;> simp [-Set.bot_eq_empty]
 #align simple_graph.singleton_subgraph_snd_le_subgraph_of_adj SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdj
+-/
 
 end MkProperties
 
@@ -1222,11 +1310,13 @@ theorem deleteEdges_adj (v w : V) : (G'.deleteEdges s).Adj v w ↔ G'.Adj v w 
 #align simple_graph.subgraph.delete_edges_adj SimpleGraph.Subgraph.deleteEdges_adj
 -/
 
+#print SimpleGraph.Subgraph.deleteEdges_deleteEdges /-
 @[simp]
 theorem deleteEdges_deleteEdges (s s' : Set (Sym2 V)) :
     (G'.deleteEdges s).deleteEdges s' = G'.deleteEdges (s ∪ s') := by
   ext <;> simp [and_assoc', not_or]
 #align simple_graph.subgraph.delete_edges_delete_edges SimpleGraph.Subgraph.deleteEdges_deleteEdges
+-/
 
 #print SimpleGraph.Subgraph.deleteEdges_empty_eq /-
 @[simp]
@@ -1268,10 +1358,13 @@ theorem coe_deleteEdges_eq (s : Set (Sym2 V)) :
 #align simple_graph.subgraph.coe_delete_edges_eq SimpleGraph.Subgraph.coe_deleteEdges_eq
 -/
 
+#print SimpleGraph.Subgraph.deleteEdges_le /-
 theorem deleteEdges_le : G'.deleteEdges s ≤ G' := by
   constructor <;> simp (config := { contextual := true })
 #align simple_graph.subgraph.delete_edges_le SimpleGraph.Subgraph.deleteEdges_le
+-/
 
+#print 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 :=
   by
@@ -1280,18 +1373,23 @@ theorem deleteEdges_le_of_le {s s' : Set (Sym2 V)} (h : s ⊆ s') :
       true_and_iff, and_imp]
   exact fun v w hvw hs' hs => hs' (h hs)
 #align simple_graph.subgraph.delete_edges_le_of_le SimpleGraph.Subgraph.deleteEdges_le_of_le
+-/
 
+#print SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_left_eq /-
 @[simp]
 theorem deleteEdges_inter_edgeSet_left_eq :
     G'.deleteEdges (G'.edgeSetEmbedding ∩ s) = G'.deleteEdges s := by
   ext <;> simp (config := { contextual := true }) [imp_false]
 #align simple_graph.subgraph.delete_edges_inter_edge_set_left_eq SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_left_eq
+-/
 
+#print SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_right_eq /-
 @[simp]
 theorem deleteEdges_inter_edgeSet_right_eq :
     G'.deleteEdges (s ∩ G'.edgeSetEmbedding) = G'.deleteEdges s := by
   ext <;> simp (config := { contextual := true }) [imp_false]
 #align simple_graph.subgraph.delete_edges_inter_edge_set_right_eq SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_right_eq
+-/
 
 #print SimpleGraph.Subgraph.coe_deleteEdges_le /-
 theorem coe_deleteEdges_le : (G'.deleteEdges s).coe ≤ (G'.coe : SimpleGraph G'.verts) := fun v w =>
@@ -1338,6 +1436,7 @@ section Induce
 
 variable {G' G'' : G.Subgraph} {s s' : Set V}
 
+#print SimpleGraph.Subgraph.induce_mono /-
 theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.induce s' :=
   by
   constructor
@@ -1346,20 +1445,27 @@ theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.indu
     intro v w hv hw ha
     exact ⟨hs hv, hs hw, hg.2 ha⟩
 #align simple_graph.subgraph.induce_mono SimpleGraph.Subgraph.induce_mono
+-/
 
+#print SimpleGraph.Subgraph.induce_mono_left /-
 @[mono]
 theorem induce_mono_left (hg : G' ≤ G'') : G'.induce s ≤ G''.induce s :=
   induce_mono hg (by rfl)
 #align simple_graph.subgraph.induce_mono_left SimpleGraph.Subgraph.induce_mono_left
+-/
 
+#print SimpleGraph.Subgraph.induce_mono_right /-
 @[mono]
 theorem induce_mono_right (hs : s ⊆ s') : G'.induce s ≤ G'.induce s' :=
   induce_mono (by rfl) hs
 #align simple_graph.subgraph.induce_mono_right SimpleGraph.Subgraph.induce_mono_right
+-/
 
+#print SimpleGraph.Subgraph.induce_empty /-
 @[simp]
 theorem induce_empty : G'.induce ∅ = ⊥ := by ext <;> simp
 #align simple_graph.subgraph.induce_empty SimpleGraph.Subgraph.induce_empty
+-/
 
 #print SimpleGraph.Subgraph.induce_self_verts /-
 @[simp]
@@ -1413,9 +1519,11 @@ section DeleteVerts
 
 variable {G' : G.Subgraph} {s : Set V}
 
+#print SimpleGraph.Subgraph.deleteVerts_verts /-
 theorem deleteVerts_verts : (G'.deleteVerts s).verts = G'.verts \ s :=
   rfl
 #align simple_graph.subgraph.delete_verts_verts SimpleGraph.Subgraph.deleteVerts_verts
+-/
 
 #print SimpleGraph.Subgraph.deleteVerts_adj /-
 theorem deleteVerts_adj {u v : V} :
@@ -1424,11 +1532,13 @@ theorem deleteVerts_adj {u v : V} :
 #align simple_graph.subgraph.delete_verts_adj SimpleGraph.Subgraph.deleteVerts_adj
 -/
 
+#print SimpleGraph.Subgraph.deleteVerts_deleteVerts /-
 @[simp]
 theorem deleteVerts_deleteVerts (s s' : Set V) :
     (G'.deleteVerts s).deleteVerts s' = G'.deleteVerts (s ∪ s') := by
   ext <;> simp (config := { contextual := true }) [not_or, and_assoc']
 #align simple_graph.subgraph.delete_verts_delete_verts SimpleGraph.Subgraph.deleteVerts_deleteVerts
+-/
 
 #print SimpleGraph.Subgraph.deleteVerts_empty /-
 @[simp]
@@ -1436,29 +1546,39 @@ theorem deleteVerts_empty : G'.deleteVerts ∅ = G' := by simp [delete_verts]
 #align simple_graph.subgraph.delete_verts_empty SimpleGraph.Subgraph.deleteVerts_empty
 -/
 
+#print SimpleGraph.Subgraph.deleteVerts_le /-
 theorem deleteVerts_le : G'.deleteVerts s ≤ G' := by constructor <;> simp [Set.diff_subset]
 #align simple_graph.subgraph.delete_verts_le SimpleGraph.Subgraph.deleteVerts_le
+-/
 
+#print SimpleGraph.Subgraph.deleteVerts_mono /-
 @[mono]
 theorem deleteVerts_mono {G' G'' : G.Subgraph} (h : G' ≤ G'') :
     G'.deleteVerts s ≤ G''.deleteVerts s :=
   induce_mono h (Set.diff_subset_diff_left h.1)
 #align simple_graph.subgraph.delete_verts_mono SimpleGraph.Subgraph.deleteVerts_mono
+-/
 
+#print SimpleGraph.Subgraph.deleteVerts_anti /-
 @[mono]
 theorem deleteVerts_anti {s s' : Set V} (h : s ⊆ s') : G'.deleteVerts s' ≤ G'.deleteVerts s :=
   induce_mono (le_refl _) (Set.diff_subset_diff_right h)
 #align simple_graph.subgraph.delete_verts_anti SimpleGraph.Subgraph.deleteVerts_anti
+-/
 
+#print SimpleGraph.Subgraph.deleteVerts_inter_verts_left_eq /-
 @[simp]
 theorem deleteVerts_inter_verts_left_eq : G'.deleteVerts (G'.verts ∩ s) = G'.deleteVerts s := by
   ext <;> simp (config := { contextual := true }) [imp_false]
 #align simple_graph.subgraph.delete_verts_inter_verts_left_eq SimpleGraph.Subgraph.deleteVerts_inter_verts_left_eq
+-/
 
+#print SimpleGraph.Subgraph.deleteVerts_inter_verts_set_right_eq /-
 @[simp]
 theorem deleteVerts_inter_verts_set_right_eq : G'.deleteVerts (s ∩ G'.verts) = G'.deleteVerts s :=
   by ext <;> simp (config := { contextual := true }) [imp_false]
 #align simple_graph.subgraph.delete_verts_inter_verts_set_right_eq SimpleGraph.Subgraph.deleteVerts_inter_verts_set_right_eq
+-/
 
 end DeleteVerts
 
Diff
@@ -95,7 +95,7 @@ def subgraphOfAdj (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) : G.Subgraph
   verts := {v, w}
   Adj a b := ⟦(v, w)⟧ = ⟦(a, b)⟧
   adj_sub a b h := by rw [← G.mem_edge_set, ← h]; exact hvw
-  edge_vert a b h := by apply_fun fun e => a ∈ e  at h ; simpa using h
+  edge_vert a b h := by apply_fun fun e => a ∈ e at h ; simpa using h
 #align simple_graph.subgraph_of_adj SimpleGraph.subgraphOfAdj
 -/
 
@@ -329,7 +329,7 @@ theorem mem_verts_if_mem_edge {G' : Subgraph G} {e : Sym2 V} {v : V} (he : e ∈
 #print SimpleGraph.Subgraph.incidenceSet /-
 /-- The `incidence_set` is the set of edges incident to a given vertex. -/
 def incidenceSet (G' : Subgraph G) (v : V) : Set (Sym2 V) :=
-  { e ∈ G'.edgeSetEmbedding | v ∈ e }
+  {e ∈ G'.edgeSetEmbedding | v ∈ e}
 #align simple_graph.subgraph.incidence_set SimpleGraph.Subgraph.incidenceSet
 -/
 
Diff
@@ -95,7 +95,7 @@ def subgraphOfAdj (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) : G.Subgraph
   verts := {v, w}
   Adj a b := ⟦(v, w)⟧ = ⟦(a, b)⟧
   adj_sub a b h := by rw [← G.mem_edge_set, ← h]; exact hvw
-  edge_vert a b h := by apply_fun fun e => a ∈ e  at h; simpa using h
+  edge_vert a b h := by apply_fun fun e => a ∈ e  at h ; simpa using h
 #align simple_graph.subgraph_of_adj SimpleGraph.subgraphOfAdj
 -/
 
@@ -319,7 +319,7 @@ theorem mem_verts_if_mem_edge {G' : Subgraph G} {e : Sym2 V} {v : V} (he : e ∈
   by
   refine' Quotient.ind (fun e he hv => _) e he hv
   cases' e with v w
-  simp only [mem_edge_set] at he
+  simp only [mem_edge_set] at he 
   cases' sym2.mem_iff.mp hv with h h <;> subst h
   · exact G'.edge_vert he
   · exact G'.edge_vert (G'.symm he)
@@ -529,7 +529,7 @@ instance : DistribLattice G.Subgraph :=
   {
     show DistribLattice G.Subgraph from
       Function.Injective.distribLattice (fun G' => (G'.verts, G'.spanningCoe))
-        (fun G₁ G₂ h => by rw [Prod.ext_iff] at h; exact ext _ _ h.1 (spanning_coe_inj.1 h.2))
+        (fun G₁ G₂ h => by rw [Prod.ext_iff] at h ; exact ext _ _ h.1 (spanning_coe_inj.1 h.2))
         (fun _ _ => rfl) fun _ _ => rfl with
     le := fun x y => x.verts ⊆ y.verts ∧ ∀ ⦃v w : V⦄, x.Adj v w → y.Adj v w }
 
@@ -572,7 +572,7 @@ instance : CompleteDistribLattice G.Subgraph :=
       refine' ⟨_, fun a b hab => _⟩
       · simp only [Set.le_eq_subset, verts_infi, verts_sup, verts_Inf]
         exact (Set.union_iInter₂ _ _).Superset
-      simp only [spanning_coe_adj, sup_adj, Inf_adj, sup_adj, Inf_adj, infi_adj] at hab⊢
+      simp only [spanning_coe_adj, sup_adj, Inf_adj, sup_adj, Inf_adj, infi_adj] at hab ⊢
       have : (∀ G'' ∈ s, adj G' a b ∨ adj G'' a b) ∧ G.adj a b :=
         (and_congr_left fun h => forall_congr' fun H => _).1 hab
       simpa [forall_or_left, or_and_right, and_iff_left_of_imp G'.adj_sub] using this
@@ -831,7 +831,7 @@ theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph
   · simp only [Relation.Map, map_adj, forall_exists_index, and_imp]
     rintro u u' hu rfl rfl
     have := h.2 hu
-    simp only [comap_adj] at this
+    simp only [comap_adj] at this 
     exact this.2
 #align simple_graph.subgraph.map_le_iff_le_comap SimpleGraph.Subgraph.map_le_iff_le_comap
 
@@ -845,7 +845,8 @@ def inclusion {x y : Subgraph G} (h : x ≤ y) : x.coe →g y.coe
 #align simple_graph.subgraph.inclusion SimpleGraph.Subgraph.inclusion
 
 theorem inclusion.injective {x y : Subgraph G} (h : x ≤ y) : Function.Injective (inclusion h) :=
-  fun v w h => by simp only [inclusion, RelHom.coeFn_mk, Subtype.mk_eq_mk] at h; exact Subtype.ext h
+  fun v w h => by simp only [inclusion, RelHom.coeFn_mk, Subtype.mk_eq_mk] at h ;
+  exact Subtype.ext h
 #align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injective
 
 #print SimpleGraph.Subgraph.hom /-
@@ -919,7 +920,7 @@ instance coeFiniteAt {G' : Subgraph G} (v : G'.verts) [Fintype (G'.neighborSet v
 
 #print SimpleGraph.Subgraph.IsSpanning.card_verts /-
 theorem IsSpanning.card_verts [Fintype V] {G' : Subgraph G} [Fintype G'.verts] (h : G'.IsSpanning) :
-    G'.verts.toFinset.card = Fintype.card V := by rw [is_spanning_iff] at h; simpa [h]
+    G'.verts.toFinset.card = Fintype.card V := by rw [is_spanning_iff] at h ; simpa [h]
 #align simple_graph.subgraph.is_spanning.card_verts SimpleGraph.Subgraph.IsSpanning.card_verts
 -/
 
@@ -1039,7 +1040,7 @@ theorem eq_singletonSubgraph_iff_verts_eq (H : G.Subgraph) {v : V} :
     intro ha
     have ha1 := ha.fst_mem
     have ha2 := ha.snd_mem
-    rw [h, Set.mem_singleton_iff] at ha1 ha2
+    rw [h, Set.mem_singleton_iff] at ha1 ha2 
     subst_vars
     exact ha.ne rfl
 #align simple_graph.eq_singleton_subgraph_iff_verts_eq SimpleGraph.eq_singletonSubgraph_iff_verts_eq
@@ -1386,11 +1387,14 @@ theorem subgraphOfAdj_eq_induce {v w : V} (hvw : G.Adj v w) :
   · simp
   · constructor
     · intro h
-      simp only [subgraph_of_adj_adj, Quotient.eq', Sym2.rel_iff] at h
+      simp only [subgraph_of_adj_adj, Quotient.eq', Sym2.rel_iff] at h 
       obtain ⟨rfl, rfl⟩ | ⟨rfl, rfl⟩ := h <;> simp [hvw, hvw.symm]
     · intro h
-      simp only [induce_adj, Set.mem_insert_iff, Set.mem_singleton_iff, top_adj] at h
-      obtain ⟨rfl | rfl, rfl | rfl, ha⟩ := h <;> first |exact (ha.ne rfl).elim|simp
+      simp only [induce_adj, Set.mem_insert_iff, Set.mem_singleton_iff, top_adj] at h 
+      obtain ⟨rfl | rfl, rfl | rfl, ha⟩ := h <;>
+        first
+        | exact (ha.ne rfl).elim
+        | simp
 #align simple_graph.subgraph.subgraph_of_adj_eq_induce SimpleGraph.Subgraph.subgraphOfAdj_eq_induce
 -/
 
Diff
@@ -302,12 +302,6 @@ def edgeSet (G' : Subgraph G) : Set (Sym2 V) :=
 #align simple_graph.subgraph.edge_set SimpleGraph.Subgraph.edgeSet
 -/
 
-/- warning: simple_graph.subgraph.edge_set_subset -> SimpleGraph.Subgraph.edgeSet_subset is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G), HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasSubset.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G G') (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G)
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G), HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instHasSubsetSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G G') (SimpleGraph.edgeSet.{u1} V G)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_subset SimpleGraph.Subgraph.edgeSet_subsetₓ'. -/
 theorem edgeSet_subset (G' : Subgraph G) : G'.edgeSetEmbedding ⊆ G.edgeSetEmbedding := fun e =>
   Quotient.ind (fun e h => G'.adj_sub h) e
 #align simple_graph.subgraph.edge_set_subset SimpleGraph.Subgraph.edgeSet_subset
@@ -431,23 +425,11 @@ instance : InfSet G.Subgraph :=
       edge_vert := fun a b hab => Set.mem_iInter₂_of_mem fun G' hG' => G'.edge_vert <| hab.1 hG'
       symm := fun _ _ => And.imp (forall₂_imp fun _ _ => Adj.symm) G.adj_symm }⟩
 
-/- warning: simple_graph.subgraph.sup_adj -> SimpleGraph.Subgraph.sup_adj is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) G₁ G₂) a b) (Or (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSubgraph.{u1} V G) G₁ G₂) a b) (Or (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adjₓ'. -/
 @[simp]
 theorem sup_adj : (G₁ ⊔ G₂).Adj a b ↔ G₁.Adj a b ∨ G₂.Adj a b :=
   Iff.rfl
 #align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adj
 
-/- warning: simple_graph.subgraph.inf_adj -> SimpleGraph.Subgraph.inf_adj is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) G₁ G₂) a b) (And (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSubgraph.{u1} V G) G₁ G₂) a b) (And (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adjₓ'. -/
 @[simp]
 theorem inf_adj : (G₁ ⊓ G₂).Adj a b ↔ G₁.Adj a b ∧ G₂.Adj a b :=
   Iff.rfl
@@ -460,34 +442,16 @@ theorem top_adj : (⊤ : Subgraph G).Adj a b ↔ G.Adj a b :=
 #align simple_graph.subgraph.top_adj SimpleGraph.Subgraph.top_adj
 -/
 
-/- warning: simple_graph.subgraph.not_bot_adj -> SimpleGraph.Subgraph.not_bot_adj is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V}, Not (SimpleGraph.Subgraph.Adj.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G)) a b)
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V}, Not (SimpleGraph.Subgraph.Adj.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G)) a b)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.not_bot_adj SimpleGraph.Subgraph.not_bot_adjₓ'. -/
 @[simp]
 theorem not_bot_adj : ¬(⊥ : Subgraph G).Adj a b :=
   not_false
 #align simple_graph.subgraph.not_bot_adj SimpleGraph.Subgraph.not_bot_adj
 
-/- warning: simple_graph.subgraph.verts_sup -> SimpleGraph.Subgraph.verts_sup is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G₁ : SimpleGraph.Subgraph.{u1} V G) (G₂ : SimpleGraph.Subgraph.{u1} V G), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) G₁ G₂)) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G₁ : SimpleGraph.Subgraph.{u1} V G) (G₂ : SimpleGraph.Subgraph.{u1} V G), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSubgraph.{u1} V G) G₁ G₂)) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_sup SimpleGraph.Subgraph.verts_supₓ'. -/
 @[simp]
 theorem verts_sup (G₁ G₂ : G.Subgraph) : (G₁ ⊔ G₂).verts = G₁.verts ∪ G₂.verts :=
   rfl
 #align simple_graph.subgraph.verts_sup SimpleGraph.Subgraph.verts_sup
 
-/- warning: simple_graph.subgraph.verts_inf -> SimpleGraph.Subgraph.verts_inf is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G₁ : SimpleGraph.Subgraph.{u1} V G) (G₂ : SimpleGraph.Subgraph.{u1} V G), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) G₁ G₂)) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G₁ : SimpleGraph.Subgraph.{u1} V G) (G₂ : SimpleGraph.Subgraph.{u1} V G), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSubgraph.{u1} V G) G₁ G₂)) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_inf SimpleGraph.Subgraph.verts_infₓ'. -/
 @[simp]
 theorem verts_inf (G₁ G₂ : G.Subgraph) : (G₁ ⊓ G₂).verts = G₁.verts ∩ G₂.verts :=
   rfl
@@ -507,67 +471,31 @@ theorem verts_bot : (⊥ : G.Subgraph).verts = ∅ :=
 #align simple_graph.subgraph.verts_bot SimpleGraph.Subgraph.verts_bot
 -/
 
-/- warning: simple_graph.subgraph.Sup_adj -> SimpleGraph.Subgraph.sSup_adj is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (SupSet.sSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) s) a b) (Exists.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (fun (G_1 : SimpleGraph.Subgraph.{u1} V G) => Exists.{0} (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) (fun (H : Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) => SimpleGraph.Subgraph.Adj.{u1} V G G_1 a b)))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (SupSet.sSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u1} V G) s) a b) (Exists.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (fun (G_1 : SimpleGraph.Subgraph.{u1} V G) => And (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) (SimpleGraph.Subgraph.Adj.{u1} V G G_1 a b)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.sSup_adjₓ'. -/
 @[simp]
 theorem sSup_adj {s : Set G.Subgraph} : (sSup s).Adj a b ↔ ∃ G ∈ s, Adj G a b :=
   Iff.rfl
 #align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.sSup_adj
 
-/- warning: simple_graph.subgraph.Inf_adj -> SimpleGraph.Subgraph.sInf_adj is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.sInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) s) a b) (And (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)) (SimpleGraph.Adj.{u1} V G a b))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.sInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u1} V G) s) a b) (And (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)) (SimpleGraph.Adj.{u1} V G a b))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.sInf_adjₓ'. -/
 @[simp]
 theorem sInf_adj {s : Set G.Subgraph} : (sInf s).Adj a b ↔ (∀ G' ∈ s, Adj G' a b) ∧ G.Adj a b :=
   Iff.rfl
 #align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.sInf_adj
 
-/- warning: simple_graph.subgraph.supr_adj -> SimpleGraph.Subgraph.iSup_adj is a dubious translation:
-lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (iSup.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i)) a b) (Exists.{u2} ι (fun (i : ι) => SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b))
-but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (iSup.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (Exists.{u1} ι (fun (i : ι) => SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.iSup_adjₓ'. -/
 @[simp]
 theorem iSup_adj {f : ι → G.Subgraph} : (⨆ i, f i).Adj a b ↔ ∃ i, (f i).Adj a b := by simp [iSup]
 #align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.iSup_adj
 
-/- warning: simple_graph.subgraph.infi_adj -> SimpleGraph.Subgraph.iInf_adj is a dubious translation:
-lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (iInf.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) a b) (And (forall (i : ι), SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b) (SimpleGraph.Adj.{u1} V G a b))
-but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (iInf.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (And (forall (i : ι), SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b) (SimpleGraph.Adj.{u2} V G a b))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.iInf_adjₓ'. -/
 @[simp]
 theorem iInf_adj {f : ι → G.Subgraph} : (⨅ i, f i).Adj a b ↔ (∀ i, (f i).Adj a b) ∧ G.Adj a b := by
   simp [iInf]
 #align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.iInf_adj
 
-/- warning: simple_graph.subgraph.Inf_adj_of_nonempty -> SimpleGraph.Subgraph.sInf_adj_of_nonempty is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, (Set.Nonempty.{u1} (SimpleGraph.Subgraph.{u1} V G) s) -> (Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.sInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) s) a b) (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, (Set.Nonempty.{u1} (SimpleGraph.Subgraph.{u1} V G) s) -> (Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.sInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u1} V G) s) a b) (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.sInf_adj_of_nonemptyₓ'. -/
 theorem sInf_adj_of_nonempty {s : Set G.Subgraph} (hs : s.Nonempty) :
     (sInf s).Adj a b ↔ ∀ G' ∈ s, Adj G' a b :=
   sInf_adj.trans <|
     and_iff_left_of_imp <| by obtain ⟨G', hG'⟩ := hs; exact fun h => G'.adj_sub (h _ hG')
 #align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.sInf_adj_of_nonempty
 
-/- warning: simple_graph.subgraph.infi_adj_of_nonempty -> SimpleGraph.Subgraph.iInf_adj_of_nonempty is a dubious translation:
-lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} [_inst_1 : Nonempty.{u2} ι] {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (iInf.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) a b) (forall (i : ι), SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b)
-but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} [_inst_1 : Nonempty.{u1} ι] {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (iInf.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (forall (i : ι), SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.iInf_adj_of_nonemptyₓ'. -/
 theorem iInf_adj_of_nonempty [Nonempty ι] {f : ι → G.Subgraph} :
     (⨅ i, f i).Adj a b ↔ ∀ i, (f i).Adj a b := by
   simp [iInf, Inf_adj_of_nonempty (Set.range_nonempty _)]
@@ -587,22 +515,10 @@ theorem verts_sInf (s : Set G.Subgraph) : (sInf s).verts = ⋂ G' ∈ s, verts G
 #align simple_graph.subgraph.verts_Inf SimpleGraph.Subgraph.verts_sInf
 -/
 
-/- warning: simple_graph.subgraph.verts_supr -> SimpleGraph.Subgraph.verts_iSup is a dubious translation:
-lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (iSup.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i))) (Set.iUnion.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u1} V G (f i)))
-but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.verts.{u2} V G (iSup.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.iUnion.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u2} V G (f i)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_iSupₓ'. -/
 @[simp]
 theorem verts_iSup {f : ι → G.Subgraph} : (⨆ i, f i).verts = ⋃ i, (f i).verts := by simp [iSup]
 #align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_iSup
 
-/- warning: simple_graph.subgraph.verts_infi -> SimpleGraph.Subgraph.verts_iInf is a dubious translation:
-lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (iInf.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i))) (Set.iInter.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u1} V G (f i)))
-but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.verts.{u2} V G (iInf.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.iInter.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u2} V G (f i)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_iInfₓ'. -/
 @[simp]
 theorem verts_iInf {f : ι → G.Subgraph} : (⨅ i, f i).verts = ⋂ i, (f i).verts := by simp [iInf]
 #align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_iInf
@@ -669,24 +585,12 @@ instance subgraphInhabited : Inhabited (Subgraph G) :=
 #align simple_graph.subgraph.subgraph_inhabited SimpleGraph.Subgraph.subgraphInhabited
 -/
 
-/- warning: simple_graph.subgraph.neighbor_set_sup -> SimpleGraph.Subgraph.neighborSet_sup is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSubgraph.{u1} V G) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_sup SimpleGraph.Subgraph.neighborSet_supₓ'. -/
 @[simp]
 theorem neighborSet_sup {H H' : G.Subgraph} (v : V) :
     (H ⊔ H').neighborSet v = H.neighborSet v ∪ H'.neighborSet v :=
   rfl
 #align simple_graph.subgraph.neighbor_set_sup SimpleGraph.Subgraph.neighborSet_sup
 
-/- warning: simple_graph.subgraph.neighbor_set_inf -> SimpleGraph.Subgraph.neighborSet_inf is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSubgraph.{u1} V G) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_infₓ'. -/
 @[simp]
 theorem neighborSet_inf {H H' : G.Subgraph} (v : V) :
     (H ⊓ H').neighborSet v = H.neighborSet v ∩ H'.neighborSet v :=
@@ -700,12 +604,6 @@ theorem neighborSet_top (v : V) : (⊤ : G.Subgraph).neighborSet v = G.neighborS
 #align simple_graph.subgraph.neighbor_set_top SimpleGraph.Subgraph.neighborSet_top
 -/
 
-/- warning: simple_graph.subgraph.neighbor_set_bot -> SimpleGraph.Subgraph.neighborSet_bot is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G)) v) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G)) v) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_bot SimpleGraph.Subgraph.neighborSet_botₓ'. -/
 @[simp]
 theorem neighborSet_bot (v : V) : (⊥ : G.Subgraph).neighborSet v = ∅ :=
   rfl
@@ -725,68 +623,32 @@ theorem neighborSet_sInf (s : Set G.Subgraph) (v : V) :
 #align simple_graph.subgraph.neighbor_set_Inf SimpleGraph.Subgraph.neighborSet_sInf
 -/
 
-/- warning: simple_graph.subgraph.neighbor_set_supr -> SimpleGraph.Subgraph.neighborSet_iSup is a dubious translation:
-lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)) (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (iSup.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i)) v) (Set.iUnion.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u1} V G (f i) v))
-but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)) (v : V), Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.neighborSet.{u2} V G (iSup.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) v) (Set.iUnion.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u2} V G (f i) v))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_iSupₓ'. -/
 @[simp]
 theorem neighborSet_iSup (f : ι → G.Subgraph) (v : V) :
     (⨆ i, f i).neighborSet v = ⋃ i, (f i).neighborSet v := by simp [iSup]
 #align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_iSup
 
-/- warning: simple_graph.subgraph.neighbor_set_infi -> SimpleGraph.Subgraph.neighborSet_iInf is a dubious translation:
-lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)) (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (iInf.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) v) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (Set.iInter.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u1} V G (f i) v)) (SimpleGraph.neighborSet.{u1} V G v))
-but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)) (v : V), Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.neighborSet.{u2} V G (iInf.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) v) (Inter.inter.{u2} (Set.{u2} V) (Set.instInterSet.{u2} V) (Set.iInter.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u2} V G (f i) v)) (SimpleGraph.neighborSet.{u2} V G v))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_iInfₓ'. -/
 @[simp]
 theorem neighborSet_iInf (f : ι → G.Subgraph) (v : V) :
     (⨅ i, f i).neighborSet v = (⋂ i, (f i).neighborSet v) ∩ G.neighborSet v := by simp [iInf]
 #align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_iInf
 
-/- warning: simple_graph.subgraph.edge_set_top -> SimpleGraph.Subgraph.edgeSet_top is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasTop.{u1} V G))) (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G)
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instTopSubgraph.{u1} V G))) (SimpleGraph.edgeSet.{u1} V G)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_top SimpleGraph.Subgraph.edgeSet_topₓ'. -/
 @[simp]
 theorem edgeSet_top : (⊤ : Subgraph G).edgeSetEmbedding = G.edgeSetEmbedding :=
   rfl
 #align simple_graph.subgraph.edge_set_top SimpleGraph.Subgraph.edgeSet_top
 
-/- warning: simple_graph.subgraph.edge_set_bot -> SimpleGraph.Subgraph.edgeSet_bot is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasEmptyc.{u1} (Sym2.{u1} V)))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instEmptyCollectionSet.{u1} (Sym2.{u1} V)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_bot SimpleGraph.Subgraph.edgeSet_botₓ'. -/
 @[simp]
 theorem edgeSet_bot : (⊥ : Subgraph G).edgeSetEmbedding = ∅ :=
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_bot SimpleGraph.Subgraph.edgeSet_bot
 
-/- warning: simple_graph.subgraph.edge_set_inf -> SimpleGraph.Subgraph.edgeSet_inf is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSubgraph.{u1} V G) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instInterSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_inf SimpleGraph.Subgraph.edgeSet_infₓ'. -/
 @[simp]
 theorem edgeSet_inf {H₁ H₂ : Subgraph G} :
     (H₁ ⊓ H₂).edgeSetEmbedding = H₁.edgeSetEmbedding ∩ H₂.edgeSetEmbedding :=
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_inf SimpleGraph.Subgraph.edgeSet_inf
 
-/- warning: simple_graph.subgraph.edge_set_sup -> SimpleGraph.Subgraph.edgeSet_sup is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasUnion.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSubgraph.{u1} V G) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instUnionSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_supₓ'. -/
 @[simp]
 theorem edgeSet_sup {H₁ H₂ : Subgraph G} :
     (H₁ ⊔ H₂).edgeSetEmbedding = H₁.edgeSetEmbedding ∪ H₂.edgeSetEmbedding :=
@@ -808,23 +670,11 @@ theorem edgeSet_sInf (s : Set G.Subgraph) :
 #align simple_graph.subgraph.edge_set_Inf SimpleGraph.Subgraph.edgeSet_sInf
 -/
 
-/- warning: simple_graph.subgraph.edge_set_supr -> SimpleGraph.Subgraph.edgeSet_iSup is a dubious translation:
-lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)), Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (iSup.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i))) (Set.iUnion.{u1, u2} (Sym2.{u1} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u1} V G (f i)))
-but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)), Eq.{succ u2} (Set.{u2} (Sym2.{u2} V)) (SimpleGraph.Subgraph.edgeSet.{u2} V G (iSup.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.iUnion.{u2, u1} (Sym2.{u2} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u2} V G (f i)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_iSupₓ'. -/
 @[simp]
 theorem edgeSet_iSup (f : ι → G.Subgraph) :
     (⨆ i, f i).edgeSetEmbedding = ⋃ i, (f i).edgeSetEmbedding := by simp [iSup]
 #align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_iSup
 
-/- warning: simple_graph.subgraph.edge_set_infi -> SimpleGraph.Subgraph.edgeSet_iInf is a dubious translation:
-lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)), Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (iInf.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i))) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (Set.iInter.{u1, u2} (Sym2.{u1} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u1} V G (f i))) (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G))
-but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)), Eq.{succ u2} (Set.{u2} (Sym2.{u2} V)) (SimpleGraph.Subgraph.edgeSet.{u2} V G (iInf.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Inter.inter.{u2} (Set.{u2} (Sym2.{u2} V)) (Set.instInterSet.{u2} (Sym2.{u2} V)) (Set.iInter.{u2, u1} (Sym2.{u2} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u2} V G (f i))) (SimpleGraph.edgeSet.{u2} V G))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_infi SimpleGraph.Subgraph.edgeSet_iInfₓ'. -/
 @[simp]
 theorem edgeSet_iInf (f : ι → G.Subgraph) :
     (⨅ i, f i).edgeSetEmbedding = (⋂ i, (f i).edgeSetEmbedding) ∩ G.edgeSetEmbedding := by
@@ -837,12 +687,6 @@ theorem spanningCoe_top : (⊤ : Subgraph G).spanningCoe = G := by ext; rfl
 #align simple_graph.subgraph.spanning_coe_top SimpleGraph.Subgraph.spanningCoe_top
 -/
 
-/- warning: simple_graph.subgraph.spanning_coe_bot -> SimpleGraph.Subgraph.spanningCoe_bot is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))) (Bot.bot.{u1} (SimpleGraph.{u1} V) (CompleteLattice.toHasBot.{u1} (SimpleGraph.{u1} V) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.{u1} V) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.{u1} V) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (SimpleGraph.{u1} V) (SimpleGraph.completeBooleanAlgebra.{u1} V))))))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G))) (Bot.bot.{u1} (SimpleGraph.{u1} V) (CompleteLattice.toBot.{u1} (SimpleGraph.{u1} V) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.{u1} V) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.{u1} V) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (SimpleGraph.{u1} V) (SimpleGraph.completeBooleanAlgebra.{u1} V))))))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.spanning_coe_bot SimpleGraph.Subgraph.spanningCoe_botₓ'. -/
 @[simp]
 theorem spanningCoe_bot : (⊥ : Subgraph G).spanningCoe = ⊥ :=
   rfl
@@ -861,12 +705,6 @@ def SimpleGraph.toSubgraph (H : SimpleGraph V) (h : H ≤ G) : G.Subgraph
 #align simple_graph.to_subgraph SimpleGraph.toSubgraph
 -/
 
-/- warning: simple_graph.subgraph.support_mono -> SimpleGraph.Subgraph.support_mono is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.support_mono SimpleGraph.Subgraph.support_monoₓ'. -/
 theorem support_mono {H H' : Subgraph G} (h : H ≤ H') : H.support ⊆ H'.support :=
   Rel.dom_mono h.2
 #align simple_graph.subgraph.support_mono SimpleGraph.Subgraph.support_mono
@@ -878,12 +716,6 @@ theorem SimpleGraph.toSubgraph.isSpanning (H : SimpleGraph V) (h : H ≤ G) :
 #align simple_graph.to_subgraph.is_spanning SimpleGraph.toSubgraph.isSpanning
 -/
 
-/- warning: simple_graph.subgraph.spanning_coe_le_of_le -> SimpleGraph.Subgraph.spanningCoe_le_of_le is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instLESimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.spanning_coe_le_of_le SimpleGraph.Subgraph.spanningCoe_le_of_leₓ'. -/
 theorem spanningCoe_le_of_le {H H' : Subgraph G} (h : H ≤ H') : H.spanningCoe ≤ H'.spanningCoe :=
   h.2
 #align simple_graph.subgraph.spanning_coe_le_of_le SimpleGraph.Subgraph.spanningCoe_le_of_le
@@ -900,12 +732,6 @@ def topEquiv : (⊤ : Subgraph G).coe ≃g G
 #align simple_graph.subgraph.top_equiv SimpleGraph.Subgraph.topEquiv
 -/
 
-/- warning: simple_graph.subgraph.bot_equiv -> SimpleGraph.Subgraph.botEquiv is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, 0} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G)))) Empty (SimpleGraph.Subgraph.coe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))) (Bot.bot.{0} (SimpleGraph.{0} Empty) (CompleteLattice.toHasBot.{0} (SimpleGraph.{0} Empty) (Order.Coframe.toCompleteLattice.{0} (SimpleGraph.{0} Empty) (CompleteDistribLattice.toCoframe.{0} (SimpleGraph.{0} Empty) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (SimpleGraph.{0} Empty) (SimpleGraph.completeBooleanAlgebra.{0} Empty))))))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, 0} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G)))) Empty (SimpleGraph.Subgraph.coe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G))) (Bot.bot.{0} (SimpleGraph.{0} Empty) (CompleteLattice.toBot.{0} (SimpleGraph.{0} Empty) (Order.Coframe.toCompleteLattice.{0} (SimpleGraph.{0} Empty) (CompleteDistribLattice.toCoframe.{0} (SimpleGraph.{0} Empty) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (SimpleGraph.{0} Empty) (SimpleGraph.completeBooleanAlgebra.{0} Empty))))))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.bot_equiv SimpleGraph.Subgraph.botEquivₓ'. -/
 /-- The bottom of the `subgraph G` lattice is equivalent to the empty graph on the empty
 vertex type. -/
 def botEquiv : (⊥ : Subgraph G).coe ≃g (⊥ : SimpleGraph Empty)
@@ -917,22 +743,10 @@ def botEquiv : (⊥ : Subgraph G).coe ≃g (⊥ : SimpleGraph Empty)
   map_rel_iff' a b := Iff.rfl
 #align simple_graph.subgraph.bot_equiv SimpleGraph.Subgraph.botEquiv
 
-/- warning: simple_graph.subgraph.edge_set_mono -> SimpleGraph.Subgraph.edgeSet_mono is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instLESet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_mono SimpleGraph.Subgraph.edgeSet_monoₓ'. -/
 theorem edgeSet_mono {H₁ H₂ : Subgraph G} (h : H₁ ≤ H₂) :
     H₁.edgeSetEmbedding ≤ H₂.edgeSetEmbedding := fun e => Sym2.ind h.2 e
 #align simple_graph.subgraph.edge_set_mono SimpleGraph.Subgraph.edgeSet_mono
 
-/- warning: disjoint.edge_set -> Disjoint.edgeSet is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.completeBooleanAlgebra.{u1} (Sym2.{u1} V))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.booleanAlgebra.{u1} (Sym2.{u1} V)))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfToLatticeDistribLattice.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (Preorder.toLE.{u1} (Set.{u1} (Sym2.{u1} V)) (PartialOrder.toPreorder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
-Case conversion may be inaccurate. Consider using '#align disjoint.edge_set Disjoint.edgeSetₓ'. -/
 theorem Disjoint.edgeSet {H₁ H₂ : Subgraph G} (h : Disjoint H₁ H₂) :
     Disjoint H₁.edgeSetEmbedding H₂.edgeSetEmbedding :=
   disjoint_iff_inf_le.mpr <| by simpa using edge_set_mono h.le_bot
@@ -951,12 +765,6 @@ protected def map {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) : G'.Sub
 #align simple_graph.subgraph.map SimpleGraph.Subgraph.map
 -/
 
-/- warning: simple_graph.subgraph.map_monotone -> SimpleGraph.Subgraph.map_monotone is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G)))))) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.completeDistribLattice.{u2} W G')))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f)
-but is expected to have type
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G)))))) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u2} W G')))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_monotone SimpleGraph.Subgraph.map_monotoneₓ'. -/
 theorem map_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.map f) :=
   by
   intro H H' h
@@ -969,12 +777,6 @@ theorem map_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.m
     exact ⟨_, _, h.2 ha, rfl, rfl⟩
 #align simple_graph.subgraph.map_monotone SimpleGraph.Subgraph.map_monotone
 
-/- warning: simple_graph.subgraph.map_sup -> SimpleGraph.Subgraph.map_sup is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) H H')) (Sup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.hasSup.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
-but is expected to have type
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSubgraph.{u1} V G) H H')) (Sup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instSupSubgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_sup SimpleGraph.Subgraph.map_supₓ'. -/
 theorem map_sup {G : SimpleGraph V} {G' : SimpleGraph W} (f : G →g G') {H H' : G.Subgraph} :
     (H ⊔ H').map f = H.map f ⊔ H'.map f := by
   ext1
@@ -1002,12 +804,6 @@ protected def comap {G' : SimpleGraph W} (f : G →g G') (H : G'.Subgraph) : G.S
 #align simple_graph.subgraph.comap SimpleGraph.Subgraph.comap
 -/
 
-/- warning: simple_graph.subgraph.comap_monotone -> SimpleGraph.Subgraph.comap_monotone is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u2, u1} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.completeDistribLattice.{u2} W G')))))) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G)))))) (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f)
-but is expected to have type
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u2, u1} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u2} W G')))))) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G)))))) (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.comap_monotone SimpleGraph.Subgraph.comap_monotoneₓ'. -/
 theorem comap_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.comap f) :=
   by
   intro H H' h
@@ -1021,12 +817,6 @@ theorem comap_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph
     apply h.2
 #align simple_graph.subgraph.comap_monotone SimpleGraph.Subgraph.comap_monotone
 
-/- warning: simple_graph.subgraph.map_le_iff_le_comap -> SimpleGraph.Subgraph.map_le_iff_le_comap is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toHasLe.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.completeDistribLattice.{u2} W G'))))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
-but is expected to have type
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toLE.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u2} W G'))))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_le_iff_le_comap SimpleGraph.Subgraph.map_le_iff_le_comapₓ'. -/
 theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) (H' : G'.Subgraph) :
     H.map f ≤ H' ↔ H ≤ H'.comap f :=
   by
@@ -1045,12 +835,6 @@ theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph
     exact this.2
 #align simple_graph.subgraph.map_le_iff_le_comap SimpleGraph.Subgraph.map_le_iff_le_comap
 
-/- warning: simple_graph.subgraph.inclusion -> SimpleGraph.Subgraph.inclusion is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y) -> (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y) -> (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion SimpleGraph.Subgraph.inclusionₓ'. -/
 /-- Given two subgraphs, one a subgraph of the other, there is an induced injective homomorphism of
 the subgraphs as graphs. -/
 @[simps]
@@ -1060,12 +844,6 @@ def inclusion {x y : Subgraph G} (h : x ≤ y) : x.coe →g y.coe
   map_rel' v w hvw := h.2 hvw
 #align simple_graph.subgraph.inclusion SimpleGraph.Subgraph.inclusion
 
-/- warning: simple_graph.subgraph.inclusion.injective -> SimpleGraph.Subgraph.inclusion.injective is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (coeFn.{succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (fun (_x : RelHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) => (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) -> (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y))) (RelHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (FunLike.coe.{succ u1, succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (fun (_x : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)) (RelHom.instRelHomClassRelHom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injectiveₓ'. -/
 theorem inclusion.injective {x y : Subgraph G} (h : x ≤ y) : Function.Injective (inclusion h) :=
   fun v w h => by simp only [inclusion, RelHom.coeFn_mk, Subtype.mk_eq_mk] at h; exact Subtype.ext h
 #align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injective
@@ -1101,12 +879,6 @@ theorem spanningHom.injective {x : Subgraph G} : Function.Injective x.spanningHo
 #align simple_graph.subgraph.spanning_hom.injective SimpleGraph.Subgraph.spanningHom.injective
 -/
 
-/- warning: simple_graph.subgraph.neighbor_set_subset_of_subgraph -> SimpleGraph.Subgraph.neighborSet_subset_of_subgraph is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_subset_of_subgraph SimpleGraph.Subgraph.neighborSet_subset_of_subgraphₓ'. -/
 theorem neighborSet_subset_of_subgraph {x y : Subgraph G} (h : x ≤ y) (v : V) :
     x.neighborSet v ⊆ y.neighborSet v := fun w h' => h.2 h'
 #align simple_graph.subgraph.neighbor_set_subset_of_subgraph SimpleGraph.Subgraph.neighborSet_subset_of_subgraph
@@ -1126,12 +898,6 @@ instance finiteAt {G' : Subgraph G} (v : G'.verts) [DecidableRel G'.Adj]
 #align simple_graph.subgraph.finite_at SimpleGraph.Subgraph.finiteAt
 -/
 
-/- warning: simple_graph.subgraph.finite_at_of_subgraph -> SimpleGraph.Subgraph.finiteAtOfSubgraph is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (forall (v : coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v)))], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v))))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (forall (v : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v)))], Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v))))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.finite_at_of_subgraph SimpleGraph.Subgraph.finiteAtOfSubgraphₓ'. -/
 /-- If a subgraph is locally finite at a vertex, then so are subgraphs of that subgraph.
 
 This is not an instance because `G''` cannot be inferred. -/
@@ -1179,12 +945,6 @@ theorem degree_le (G' : Subgraph G) (v : V) [Fintype (G'.neighborSet v)]
 #align simple_graph.subgraph.degree_le SimpleGraph.Subgraph.degree_le
 -/
 
-/- warning: simple_graph.subgraph.degree_le' -> SimpleGraph.Subgraph.degree_le' is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat Nat.hasLe (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat instLENat (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.degree_le' SimpleGraph.Subgraph.degree_le'ₓ'. -/
 theorem degree_le' (G' G'' : Subgraph G) (h : G' ≤ G'') (v : V) [Fintype (G'.neighborSet v)]
     [Fintype (G''.neighborSet v)] : G'.degree v ≤ G''.degree v :=
   Set.card_le_of_subset (neighborSet_subset_of_subgraph h v)
@@ -1232,12 +992,6 @@ instance nonempty_singletonSubgraph_verts (v : V) : Nonempty (G.singletonSubgrap
 #align simple_graph.nonempty_singleton_subgraph_verts SimpleGraph.nonempty_singletonSubgraph_verts
 -/
 
-/- warning: simple_graph.singleton_subgraph_le_iff -> SimpleGraph.singletonSubgraph_le_iff is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
-Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_le_iff SimpleGraph.singletonSubgraph_le_iffₓ'. -/
 @[simp]
 theorem singletonSubgraph_le_iff (v : V) (H : G.Subgraph) :
     G.singletonSubgraph v ≤ H ↔ v ∈ H.verts :=
@@ -1373,33 +1127,15 @@ theorem neighborSet_subgraphOfAdj_of_ne_of_ne {u v w : V} (hvw : G.Adj v w) (hv
 #align simple_graph.neighbor_set_subgraph_of_adj_of_ne_of_ne SimpleGraph.neighborSet_subgraphOfAdj_of_ne_of_ne
 -/
 
-/- warning: simple_graph.neighbor_set_subgraph_of_adj -> SimpleGraph.neighborSet_subgraphOfAdj is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} [_inst_1 : DecidableEq.{succ u1} V] {u : V} {v : V} {w : V} (hvw : SimpleGraph.Adj.{u1} V G v w), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (SimpleGraph.subgraphOfAdj.{u1} V G v w hvw) u) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (ite.{succ u1} (Set.{u1} V) (Eq.{succ u1} V u v) (_inst_1 u v) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.hasSingleton.{u1} V) w) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))) (ite.{succ u1} (Set.{u1} V) (Eq.{succ u1} V u w) (_inst_1 u w) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.hasSingleton.{u1} V) v) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} [_inst_1 : DecidableEq.{succ u1} V] {u : V} {v : V} {w : V} (hvw : SimpleGraph.Adj.{u1} V G v w), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (SimpleGraph.subgraphOfAdj.{u1} V G v w hvw) u) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (ite.{succ u1} (Set.{u1} V) (Eq.{succ u1} V u v) (_inst_1 u v) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.instSingletonSet.{u1} V) w) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))) (ite.{succ u1} (Set.{u1} V) (Eq.{succ u1} V u w) (_inst_1 u w) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.instSingletonSet.{u1} V) v) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))))
-Case conversion may be inaccurate. Consider using '#align simple_graph.neighbor_set_subgraph_of_adj SimpleGraph.neighborSet_subgraphOfAdjₓ'. -/
 theorem neighborSet_subgraphOfAdj [DecidableEq V] {u v w : V} (hvw : G.Adj v w) :
     (G.subgraphOfAdj hvw).neighborSet u = (if u = v then {w} else ∅) ∪ if u = w then {v} else ∅ :=
   by split_ifs <;> subst_vars <;> simp [*]
 #align simple_graph.neighbor_set_subgraph_of_adj SimpleGraph.neighborSet_subgraphOfAdj
 
-/- warning: simple_graph.singleton_subgraph_fst_le_subgraph_of_adj -> SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdj is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
-Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_fst_le_subgraph_of_adj SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdjₓ'. -/
 theorem singletonSubgraph_fst_le_subgraphOfAdj {u v : V} {h : G.Adj u v} :
     G.singletonSubgraph u ≤ G.subgraphOfAdj h := by constructor <;> simp [-Set.bot_eq_empty]
 #align simple_graph.singleton_subgraph_fst_le_subgraph_of_adj SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdj
 
-/- warning: simple_graph.singleton_subgraph_snd_le_subgraph_of_adj -> SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdj is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
-Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_snd_le_subgraph_of_adj SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdjₓ'. -/
 theorem singletonSubgraph_snd_le_subgraphOfAdj {u v : V} {h : G.Adj u v} :
     G.singletonSubgraph v ≤ G.subgraphOfAdj h := by constructor <;> simp [-Set.bot_eq_empty]
 #align simple_graph.singleton_subgraph_snd_le_subgraph_of_adj SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdj
@@ -1485,12 +1221,6 @@ theorem deleteEdges_adj (v w : V) : (G'.deleteEdges s).Adj v w ↔ G'.Adj v w 
 #align simple_graph.subgraph.delete_edges_adj SimpleGraph.Subgraph.deleteEdges_adj
 -/
 
-/- warning: simple_graph.subgraph.delete_edges_delete_edges -> SimpleGraph.Subgraph.deleteEdges_deleteEdges is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)) (s' : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasUnion.{u1} (Sym2.{u1} V)) s s'))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)) (s' : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instUnionSet.{u1} (Sym2.{u1} V)) s s'))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_delete_edges SimpleGraph.Subgraph.deleteEdges_deleteEdgesₓ'. -/
 @[simp]
 theorem deleteEdges_deleteEdges (s s' : Set (Sym2 V)) :
     (G'.deleteEdges s).deleteEdges s' = G'.deleteEdges (s ∪ s') := by
@@ -1537,22 +1267,10 @@ theorem coe_deleteEdges_eq (s : Set (Sym2 V)) :
 #align simple_graph.subgraph.coe_delete_edges_eq SimpleGraph.Subgraph.coe_deleteEdges_eq
 -/
 
-/- warning: simple_graph.subgraph.delete_edges_le -> SimpleGraph.Subgraph.deleteEdges_le is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_le SimpleGraph.Subgraph.deleteEdges_leₓ'. -/
 theorem deleteEdges_le : G'.deleteEdges s ≤ G' := by
   constructor <;> simp (config := { contextual := true })
 #align simple_graph.subgraph.delete_edges_le SimpleGraph.Subgraph.deleteEdges_le
 
-/- warning: simple_graph.subgraph.delete_edges_le_of_le -> SimpleGraph.Subgraph.deleteEdges_le_of_le is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasSubset.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instHasSubsetSet.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_le_of_le 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 :=
   by
@@ -1562,24 +1280,12 @@ theorem deleteEdges_le_of_le {s s' : Set (Sym2 V)} (h : s ⊆ s') :
   exact fun v w hvw hs' hs => hs' (h hs)
 #align simple_graph.subgraph.delete_edges_le_of_le SimpleGraph.Subgraph.deleteEdges_le_of_le
 
-/- warning: simple_graph.subgraph.delete_edges_inter_edge_set_left_eq -> SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_left_eq is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G G') s)) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s)
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instInterSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G G') s)) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_inter_edge_set_left_eq SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_left_eqₓ'. -/
 @[simp]
 theorem deleteEdges_inter_edgeSet_left_eq :
     G'.deleteEdges (G'.edgeSetEmbedding ∩ s) = G'.deleteEdges s := by
   ext <;> simp (config := { contextual := true }) [imp_false]
 #align simple_graph.subgraph.delete_edges_inter_edge_set_left_eq SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_left_eq
 
-/- warning: simple_graph.subgraph.delete_edges_inter_edge_set_right_eq -> SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_right_eq is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) s (SimpleGraph.Subgraph.edgeSet.{u1} V G G'))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s)
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instInterSet.{u1} (Sym2.{u1} V)) s (SimpleGraph.Subgraph.edgeSet.{u1} V G G'))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_inter_edge_set_right_eq SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_right_eqₓ'. -/
 @[simp]
 theorem deleteEdges_inter_edgeSet_right_eq :
     G'.deleteEdges (s ∩ G'.edgeSetEmbedding) = G'.deleteEdges s := by
@@ -1631,12 +1337,6 @@ section Induce
 
 variable {G' G'' : G.Subgraph} {s s' : Set V}
 
-/- warning: simple_graph.subgraph.induce_mono -> SimpleGraph.Subgraph.induce_mono is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono SimpleGraph.Subgraph.induce_monoₓ'. -/
 theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.induce s' :=
   by
   constructor
@@ -1646,34 +1346,16 @@ theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.indu
     exact ⟨hs hv, hs hw, hg.2 ha⟩
 #align simple_graph.subgraph.induce_mono SimpleGraph.Subgraph.induce_mono
 
-/- warning: simple_graph.subgraph.induce_mono_left -> SimpleGraph.Subgraph.induce_mono_left is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono_left SimpleGraph.Subgraph.induce_mono_leftₓ'. -/
 @[mono]
 theorem induce_mono_left (hg : G' ≤ G'') : G'.induce s ≤ G''.induce s :=
   induce_mono hg (by rfl)
 #align simple_graph.subgraph.induce_mono_left SimpleGraph.Subgraph.induce_mono_left
 
-/- warning: simple_graph.subgraph.induce_mono_right -> SimpleGraph.Subgraph.induce_mono_right is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono_right SimpleGraph.Subgraph.induce_mono_rightₓ'. -/
 @[mono]
 theorem induce_mono_right (hs : s ⊆ s') : G'.induce s ≤ G'.induce s' :=
   induce_mono (by rfl) hs
 #align simple_graph.subgraph.induce_mono_right SimpleGraph.Subgraph.induce_mono_right
 
-/- warning: simple_graph.subgraph.induce_empty -> SimpleGraph.Subgraph.induce_empty is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.induce.{u1} V G G' (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))) (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.induce.{u1} V G G' (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))) (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_empty SimpleGraph.Subgraph.induce_emptyₓ'. -/
 @[simp]
 theorem induce_empty : G'.induce ∅ = ⊥ := by ext <;> simp
 #align simple_graph.subgraph.induce_empty SimpleGraph.Subgraph.induce_empty
@@ -1727,12 +1409,6 @@ section DeleteVerts
 
 variable {G' : G.Subgraph} {s : Set V}
 
-/- warning: simple_graph.subgraph.delete_verts_verts -> SimpleGraph.Subgraph.deleteVerts_verts is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)) (SDiff.sdiff.{u1} (Set.{u1} V) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} V) (Set.booleanAlgebra.{u1} V)) (SimpleGraph.Subgraph.verts.{u1} V G G') s)
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)) (SDiff.sdiff.{u1} (Set.{u1} V) (Set.instSDiffSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G') s)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_verts SimpleGraph.Subgraph.deleteVerts_vertsₓ'. -/
 theorem deleteVerts_verts : (G'.deleteVerts s).verts = G'.verts \ s :=
   rfl
 #align simple_graph.subgraph.delete_verts_verts SimpleGraph.Subgraph.deleteVerts_verts
@@ -1744,12 +1420,6 @@ theorem deleteVerts_adj {u v : V} :
 #align simple_graph.subgraph.delete_verts_adj SimpleGraph.Subgraph.deleteVerts_adj
 -/
 
-/- warning: simple_graph.subgraph.delete_verts_delete_verts -> SimpleGraph.Subgraph.deleteVerts_deleteVerts is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} V) (s' : Set.{u1} V), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) s s'))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} V) (s' : Set.{u1} V), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) s s'))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_delete_verts SimpleGraph.Subgraph.deleteVerts_deleteVertsₓ'. -/
 @[simp]
 theorem deleteVerts_deleteVerts (s s' : Set V) :
     (G'.deleteVerts s).deleteVerts s' = G'.deleteVerts (s ∪ s') := by
@@ -1762,55 +1432,25 @@ theorem deleteVerts_empty : G'.deleteVerts ∅ = G' := by simp [delete_verts]
 #align simple_graph.subgraph.delete_verts_empty SimpleGraph.Subgraph.deleteVerts_empty
 -/
 
-/- warning: simple_graph.subgraph.delete_verts_le -> SimpleGraph.Subgraph.deleteVerts_le is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_le SimpleGraph.Subgraph.deleteVerts_leₓ'. -/
 theorem deleteVerts_le : G'.deleteVerts s ≤ G' := by constructor <;> simp [Set.diff_subset]
 #align simple_graph.subgraph.delete_verts_le SimpleGraph.Subgraph.deleteVerts_le
 
-/- warning: simple_graph.subgraph.delete_verts_mono -> SimpleGraph.Subgraph.deleteVerts_mono is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_mono SimpleGraph.Subgraph.deleteVerts_monoₓ'. -/
 @[mono]
 theorem deleteVerts_mono {G' G'' : G.Subgraph} (h : G' ≤ G'') :
     G'.deleteVerts s ≤ G''.deleteVerts s :=
   induce_mono h (Set.diff_subset_diff_left h.1)
 #align simple_graph.subgraph.delete_verts_mono SimpleGraph.Subgraph.deleteVerts_mono
 
-/- warning: simple_graph.subgraph.delete_verts_anti -> SimpleGraph.Subgraph.deleteVerts_anti is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_anti SimpleGraph.Subgraph.deleteVerts_antiₓ'. -/
 @[mono]
 theorem deleteVerts_anti {s s' : Set V} (h : s ⊆ s') : G'.deleteVerts s' ≤ G'.deleteVerts s :=
   induce_mono (le_refl _) (Set.diff_subset_diff_right h)
 #align simple_graph.subgraph.delete_verts_anti SimpleGraph.Subgraph.deleteVerts_anti
 
-/- warning: simple_graph.subgraph.delete_verts_inter_verts_left_eq -> SimpleGraph.Subgraph.deleteVerts_inter_verts_left_eq is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G') s)) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G') s)) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_inter_verts_left_eq SimpleGraph.Subgraph.deleteVerts_inter_verts_left_eqₓ'. -/
 @[simp]
 theorem deleteVerts_inter_verts_left_eq : G'.deleteVerts (G'.verts ∩ s) = G'.deleteVerts s := by
   ext <;> simp (config := { contextual := true }) [imp_false]
 #align simple_graph.subgraph.delete_verts_inter_verts_left_eq SimpleGraph.Subgraph.deleteVerts_inter_verts_left_eq
 
-/- warning: simple_graph.subgraph.delete_verts_inter_verts_set_right_eq -> SimpleGraph.Subgraph.deleteVerts_inter_verts_set_right_eq is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) s (SimpleGraph.Subgraph.verts.{u1} V G G'))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) s (SimpleGraph.Subgraph.verts.{u1} V G G'))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_inter_verts_set_right_eq SimpleGraph.Subgraph.deleteVerts_inter_verts_set_right_eqₓ'. -/
 @[simp]
 theorem deleteVerts_inter_verts_set_right_eq : G'.deleteVerts (s ∩ G'.verts) = G'.deleteVerts s :=
   by ext <;> simp (config := { contextual := true }) [imp_false]
Diff
@@ -94,12 +94,8 @@ def subgraphOfAdj (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) : G.Subgraph
     where
   verts := {v, w}
   Adj a b := ⟦(v, w)⟧ = ⟦(a, b)⟧
-  adj_sub a b h := by
-    rw [← G.mem_edge_set, ← h]
-    exact hvw
-  edge_vert a b h := by
-    apply_fun fun e => a ∈ e  at h
-    simpa using h
+  adj_sub a b h := by rw [← G.mem_edge_set, ← h]; exact hvw
+  edge_vert a b h := by apply_fun fun e => a ∈ e  at h; simpa using h
 #align simple_graph.subgraph_of_adj SimpleGraph.subgraphOfAdj
 -/
 
@@ -292,10 +288,7 @@ theorem mem_neighborSet (G' : Subgraph G) (v w : V) : w ∈ G'.neighborSet v ↔
 /-- A subgraph as a graph has equivalent neighbor sets. -/
 def coeNeighborSetEquiv {G' : Subgraph G} (v : G'.verts) : G'.coe.neighborSet v ≃ G'.neighborSet v
     where
-  toFun w :=
-    ⟨w, by
-      obtain ⟨w', hw'⟩ := w
-      simpa using hw'⟩
+  toFun w := ⟨w, by obtain ⟨w', hw'⟩ := w; simpa using hw'⟩
   invFun w := ⟨⟨w, G'.edge_vert (G'.adj_symm w.2)⟩, by simpa using w.2⟩
   left_inv w := by simp
   right_inv w := by simp
@@ -426,12 +419,8 @@ instance : SupSet G.Subgraph :=
   ⟨fun s =>
     { verts := ⋃ G' ∈ s, verts G'
       Adj := fun a b => ∃ G' ∈ s, Adj G' a b
-      adj_sub := by
-        rintro a b ⟨G', -, hab⟩
-        exact G'.adj_sub hab
-      edge_vert := by
-        rintro a b ⟨G', hG', hab⟩
-        exact Set.mem_iUnion₂_of_mem hG' (G'.edge_vert hab)
+      adj_sub := by rintro a b ⟨G', -, hab⟩; exact G'.adj_sub hab
+      edge_vert := by rintro a b ⟨G', hG', hab⟩; exact Set.mem_iUnion₂_of_mem hG' (G'.edge_vert hab)
       symm := fun a b => Exists₂.imp fun _ _ => Adj.symm }⟩
 
 instance : InfSet G.Subgraph :=
@@ -570,9 +559,7 @@ Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.
 theorem sInf_adj_of_nonempty {s : Set G.Subgraph} (hs : s.Nonempty) :
     (sInf s).Adj a b ↔ ∀ G' ∈ s, Adj G' a b :=
   sInf_adj.trans <|
-    and_iff_left_of_imp <| by
-      obtain ⟨G', hG'⟩ := hs
-      exact fun h => G'.adj_sub (h _ hG')
+    and_iff_left_of_imp <| by obtain ⟨G', hG'⟩ := hs; exact fun h => G'.adj_sub (h _ hG')
 #align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.sInf_adj_of_nonempty
 
 /- warning: simple_graph.subgraph.infi_adj_of_nonempty -> SimpleGraph.Subgraph.iInf_adj_of_nonempty is a dubious translation:
@@ -626,9 +613,7 @@ instance : DistribLattice G.Subgraph :=
   {
     show DistribLattice G.Subgraph from
       Function.Injective.distribLattice (fun G' => (G'.verts, G'.spanningCoe))
-        (fun G₁ G₂ h => by
-          rw [Prod.ext_iff] at h
-          exact ext _ _ h.1 (spanning_coe_inj.1 h.2))
+        (fun G₁ G₂ h => by rw [Prod.ext_iff] at h; exact ext _ _ h.1 (spanning_coe_inj.1 h.2))
         (fun _ _ => rfl) fun _ _ => rfl with
     le := fun x y => x.verts ⊆ y.verts ∧ ∀ ⦃v w : V⦄, x.Adj v w → y.Adj v w }
 
@@ -651,9 +636,7 @@ instance : CompleteDistribLattice G.Subgraph :=
     sSup := sSup
     le_sup := fun s G' hG' => ⟨Set.subset_iUnion₂ G' hG', fun a b hab => ⟨G', hG', hab⟩⟩
     sup_le := fun s G' hG' =>
-      ⟨Set.iUnion₂_subset fun H hH => (hG' _ hH).1,
-        by
-        rintro a b ⟨H, hH, hab⟩
+      ⟨Set.iUnion₂_subset fun H hH => (hG' _ hH).1, by rintro a b ⟨H, hH, hab⟩;
         exact (hG' _ hH).2 hab⟩
     sInf := sInf
     inf_le := fun s G' hG' => ⟨Set.iInter₂_subset G' hG', fun a b hab => hab.1 hG'⟩
@@ -731,20 +714,14 @@ theorem neighborSet_bot (v : V) : (⊥ : G.Subgraph).neighborSet v = ∅ :=
 #print SimpleGraph.Subgraph.neighborSet_sSup /-
 @[simp]
 theorem neighborSet_sSup (s : Set G.Subgraph) (v : V) :
-    (sSup s).neighborSet v = ⋃ G' ∈ s, neighborSet G' v :=
-  by
-  ext
-  simp
+    (sSup s).neighborSet v = ⋃ G' ∈ s, neighborSet G' v := by ext; simp
 #align simple_graph.subgraph.neighbor_set_Sup SimpleGraph.Subgraph.neighborSet_sSup
 -/
 
 #print SimpleGraph.Subgraph.neighborSet_sInf /-
 @[simp]
 theorem neighborSet_sInf (s : Set G.Subgraph) (v : V) :
-    (sInf s).neighborSet v = (⋂ G' ∈ s, neighborSet G' v) ∩ G.neighborSet v :=
-  by
-  ext
-  simp
+    (sInf s).neighborSet v = (⋂ G' ∈ s, neighborSet G' v) ∩ G.neighborSet v := by ext; simp
 #align simple_graph.subgraph.neighbor_set_Inf SimpleGraph.Subgraph.neighborSet_sInf
 -/
 
@@ -818,22 +795,16 @@ theorem edgeSet_sup {H₁ H₂ : Subgraph G} :
 
 #print SimpleGraph.Subgraph.edgeSet_sSup /-
 @[simp]
-theorem edgeSet_sSup (s : Set G.Subgraph) : (sSup s).edgeSetEmbedding = ⋃ G' ∈ s, edgeSet G' :=
-  by
-  ext e
-  induction e using Sym2.ind
-  simp
+theorem edgeSet_sSup (s : Set G.Subgraph) : (sSup s).edgeSetEmbedding = ⋃ G' ∈ s, edgeSet G' := by
+  ext e; induction e using Sym2.ind; simp
 #align simple_graph.subgraph.edge_set_Sup SimpleGraph.Subgraph.edgeSet_sSup
 -/
 
 #print SimpleGraph.Subgraph.edgeSet_sInf /-
 @[simp]
 theorem edgeSet_sInf (s : Set G.Subgraph) :
-    (sInf s).edgeSetEmbedding = (⋂ G' ∈ s, edgeSet G') ∩ G.edgeSetEmbedding :=
-  by
-  ext e
-  induction e using Sym2.ind
-  simp
+    (sInf s).edgeSetEmbedding = (⋂ G' ∈ s, edgeSet G') ∩ G.edgeSetEmbedding := by ext e;
+  induction e using Sym2.ind; simp
 #align simple_graph.subgraph.edge_set_Inf SimpleGraph.Subgraph.edgeSet_sInf
 -/
 
@@ -862,10 +833,7 @@ theorem edgeSet_iInf (f : ι → G.Subgraph) :
 
 #print SimpleGraph.Subgraph.spanningCoe_top /-
 @[simp]
-theorem spanningCoe_top : (⊤ : Subgraph G).spanningCoe = G :=
-  by
-  ext
-  rfl
+theorem spanningCoe_top : (⊤ : Subgraph G).spanningCoe = G := by ext; rfl
 #align simple_graph.subgraph.spanning_coe_top SimpleGraph.Subgraph.spanningCoe_top
 -/
 
@@ -977,15 +945,9 @@ protected def map {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) : G'.Sub
     where
   verts := f '' H.verts
   Adj := Relation.Map H.Adj f f
-  adj_sub := by
-    rintro _ _ ⟨u, v, h, rfl, rfl⟩
-    exact f.map_rel (H.adj_sub h)
-  edge_vert := by
-    rintro _ _ ⟨u, v, h, rfl, rfl⟩
-    exact Set.mem_image_of_mem _ (H.edge_vert h)
-  symm := by
-    rintro _ _ ⟨u, v, h, rfl, rfl⟩
-    exact ⟨v, u, H.symm h, rfl, rfl⟩
+  adj_sub := by rintro _ _ ⟨u, v, h, rfl, rfl⟩; exact f.map_rel (H.adj_sub h)
+  edge_vert := by rintro _ _ ⟨u, v, h, rfl, rfl⟩; exact Set.mem_image_of_mem _ (H.edge_vert h)
+  symm := by rintro _ _ ⟨u, v, h, rfl, rfl⟩; exact ⟨v, u, H.symm h, rfl, rfl⟩
 #align simple_graph.subgraph.map SimpleGraph.Subgraph.map
 -/
 
@@ -1035,12 +997,8 @@ protected def comap {G' : SimpleGraph W} (f : G →g G') (H : G'.Subgraph) : G.S
     where
   verts := f ⁻¹' H.verts
   Adj u v := G.Adj u v ∧ H.Adj (f u) (f v)
-  adj_sub := by
-    rintro v w ⟨ga, ha⟩
-    exact ga
-  edge_vert := by
-    rintro v w ⟨ga, ha⟩
-    simp [H.edge_vert ha]
+  adj_sub := by rintro v w ⟨ga, ha⟩; exact ga
+  edge_vert := by rintro v w ⟨ga, ha⟩; simp [H.edge_vert ha]
 #align simple_graph.subgraph.comap SimpleGraph.Subgraph.comap
 -/
 
@@ -1109,9 +1067,7 @@ but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (FunLike.coe.{succ u1, succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (fun (_x : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)) (RelHom.instRelHomClassRelHom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injectiveₓ'. -/
 theorem inclusion.injective {x y : Subgraph G} (h : x ≤ y) : Function.Injective (inclusion h) :=
-  fun v w h => by
-  simp only [inclusion, RelHom.coeFn_mk, Subtype.mk_eq_mk] at h
-  exact Subtype.ext h
+  fun v w h => by simp only [inclusion, RelHom.coeFn_mk, Subtype.mk_eq_mk] at h; exact Subtype.ext h
 #align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injective
 
 #print SimpleGraph.Subgraph.hom /-
@@ -1197,10 +1153,7 @@ instance coeFiniteAt {G' : Subgraph G} (v : G'.verts) [Fintype (G'.neighborSet v
 
 #print SimpleGraph.Subgraph.IsSpanning.card_verts /-
 theorem IsSpanning.card_verts [Fintype V] {G' : Subgraph G} [Fintype G'.verts] (h : G'.IsSpanning) :
-    G'.verts.toFinset.card = Fintype.card V :=
-  by
-  rw [is_spanning_iff] at h
-  simpa [h]
+    G'.verts.toFinset.card = Fintype.card V := by rw [is_spanning_iff] at h; simpa [h]
 #align simple_graph.subgraph.is_spanning.card_verts SimpleGraph.Subgraph.IsSpanning.card_verts
 -/
 
@@ -1250,10 +1203,8 @@ theorem coe_degree (G' : Subgraph G) (v : G'.verts) [Fintype (G'.coe.neighborSet
 #print SimpleGraph.Subgraph.degree_spanningCoe /-
 @[simp]
 theorem degree_spanningCoe {G' : G.Subgraph} (v : V) [Fintype (G'.neighborSet v)]
-    [Fintype (G'.spanningCoe.neighborSet v)] : G'.spanningCoe.degree v = G'.degree v :=
-  by
-  rw [← card_neighbor_set_eq_degree, subgraph.degree]
-  congr
+    [Fintype (G'.spanningCoe.neighborSet v)] : G'.spanningCoe.degree v = G'.degree v := by
+  rw [← card_neighbor_set_eq_degree, subgraph.degree]; congr
 #align simple_graph.subgraph.degree_spanning_coe SimpleGraph.Subgraph.degree_spanningCoe
 -/
 
@@ -1311,10 +1262,8 @@ theorem map_singletonSubgraph (f : G →g G') {v : V} :
 
 #print SimpleGraph.neighborSet_singletonSubgraph /-
 @[simp]
-theorem neighborSet_singletonSubgraph (v w : V) : (G.singletonSubgraph v).neighborSet w = ∅ :=
-  by
-  ext u
-  rfl
+theorem neighborSet_singletonSubgraph (v w : V) : (G.singletonSubgraph v).neighborSet w = ∅ := by
+  ext u; rfl
 #align simple_graph.neighbor_set_singleton_subgraph SimpleGraph.neighborSet_singletonSubgraph
 -/
 
@@ -1378,18 +1327,14 @@ theorem map_subgraphOfAdj (f : G →g G') {v w : V} (hvw : G.Adj v w) :
     constructor
     · rintro ⟨u, rfl | rfl, rfl⟩ <;> simp
     · rintro (rfl | rfl)
-      · use v
-        simp
-      · use w
-        simp
+      · use v; simp
+      · use w; simp
   · simp only [Relation.Map, subgraph.map_adj, subgraph_of_adj_adj, Quotient.eq', Sym2.rel_iff]
     constructor
     · rintro ⟨a, b, ⟨rfl, rfl⟩ | ⟨rfl, rfl⟩, rfl, rfl⟩ <;> simp
     · rintro (⟨rfl, rfl⟩ | ⟨rfl, rfl⟩)
-      · use v, w
-        simp
-      · use w, v
-        simp
+      · use v, w; simp
+      · use w, v; simp
 #align simple_graph.map_subgraph_of_adj SimpleGraph.map_subgraphOfAdj
 -/
 
@@ -1424,10 +1369,7 @@ theorem neighborSet_snd_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
 #print SimpleGraph.neighborSet_subgraphOfAdj_of_ne_of_ne /-
 @[simp]
 theorem neighborSet_subgraphOfAdj_of_ne_of_ne {u v w : V} (hvw : G.Adj v w) (hv : u ≠ v)
-    (hw : u ≠ w) : (G.subgraphOfAdj hvw).neighborSet u = ∅ :=
-  by
-  ext
-  simp [hv.symm, hw.symm]
+    (hw : u ≠ w) : (G.subgraphOfAdj hvw).neighborSet u = ∅ := by ext; simp [hv.symm, hw.symm]
 #align simple_graph.neighbor_set_subgraph_of_adj_of_ne_of_ne SimpleGraph.neighborSet_subgraphOfAdj_of_ne_of_ne
 -/
 
@@ -1564,10 +1506,7 @@ theorem deleteEdges_empty_eq : G'.deleteEdges ∅ = G' := by ext <;> simp
 #print SimpleGraph.Subgraph.deleteEdges_spanningCoe_eq /-
 @[simp]
 theorem deleteEdges_spanningCoe_eq :
-    G'.spanningCoe.deleteEdges s = (G'.deleteEdges s).spanningCoe :=
-  by
-  ext
-  simp
+    G'.spanningCoe.deleteEdges s = (G'.deleteEdges s).spanningCoe := by ext; simp
 #align simple_graph.subgraph.delete_edges_spanning_coe_eq SimpleGraph.Subgraph.deleteEdges_spanningCoe_eq
 -/
 
@@ -1593,9 +1532,7 @@ theorem deleteEdges_coe_eq (s : Set (Sym2 G'.verts)) :
 
 #print SimpleGraph.Subgraph.coe_deleteEdges_eq /-
 theorem coe_deleteEdges_eq (s : Set (Sym2 V)) :
-    (G'.deleteEdges s).coe = G'.coe.deleteEdges (Sym2.map coe ⁻¹' s) :=
-  by
-  ext (⟨v, hv⟩⟨w, hw⟩)
+    (G'.deleteEdges s).coe = G'.coe.deleteEdges (Sym2.map coe ⁻¹' s) := by ext (⟨v, hv⟩⟨w, hw⟩);
   simp
 #align simple_graph.subgraph.coe_delete_edges_eq SimpleGraph.Subgraph.coe_deleteEdges_eq
 -/
@@ -1679,21 +1616,14 @@ def induce (G' : G.Subgraph) (s : Set V) : G.Subgraph
     where
   verts := s
   Adj u v := u ∈ s ∧ v ∈ s ∧ G'.Adj u v
-  adj_sub u v := by
-    rintro ⟨-, -, ha⟩
-    exact G'.adj_sub ha
-  edge_vert u v := by
-    rintro ⟨h, -, -⟩
-    exact h
+  adj_sub u v := by rintro ⟨-, -, ha⟩; exact G'.adj_sub ha
+  edge_vert u v := by rintro ⟨h, -, -⟩; exact h
 #align simple_graph.subgraph.induce SimpleGraph.Subgraph.induce
 -/
 
 #print SimpleGraph.induce_eq_coe_induce_top /-
 theorem SimpleGraph.induce_eq_coe_induce_top (s : Set V) :
-    G.induce s = ((⊤ : G.Subgraph).induce s).coe :=
-  by
-  ext (v w)
-  simp
+    G.induce s = ((⊤ : G.Subgraph).induce s).coe := by ext (v w); simp
 #align simple_graph.induce_eq_coe_induce_top SimpleGraph.induce_eq_coe_induce_top
 -/
 
Diff
@@ -1106,7 +1106,7 @@ def inclusion {x y : Subgraph G} (h : x ≤ y) : x.coe →g y.coe
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (coeFn.{succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (fun (_x : RelHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) => (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) -> (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y))) (RelHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (FunLike.coe.{succ u1, succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (fun (_x : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)) (RelHom.instRelHomClassRelHom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (FunLike.coe.{succ u1, succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (fun (_x : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.869 : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)) (RelHom.instRelHomClassRelHom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injectiveₓ'. -/
 theorem inclusion.injective {x y : Subgraph G} (h : x ≤ y) : Function.Injective (inclusion h) :=
   fun v w h => by
Diff
@@ -895,7 +895,7 @@ def SimpleGraph.toSubgraph (H : SimpleGraph V) (h : H ≤ G) : G.Subgraph
 
 /- warning: simple_graph.subgraph.support_mono -> SimpleGraph.Subgraph.support_mono is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.support_mono SimpleGraph.Subgraph.support_monoₓ'. -/
@@ -912,7 +912,7 @@ theorem SimpleGraph.toSubgraph.isSpanning (H : SimpleGraph V) (h : H ≤ G) :
 
 /- warning: simple_graph.subgraph.spanning_coe_le_of_le -> SimpleGraph.Subgraph.spanningCoe_le_of_le is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instLESimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.spanning_coe_le_of_le SimpleGraph.Subgraph.spanningCoe_le_of_leₓ'. -/
@@ -951,7 +951,7 @@ def botEquiv : (⊥ : Subgraph G).coe ≃g (⊥ : SimpleGraph Empty)
 
 /- warning: simple_graph.subgraph.edge_set_mono -> SimpleGraph.Subgraph.edgeSet_mono is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instLESet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_mono SimpleGraph.Subgraph.edgeSet_monoₓ'. -/
@@ -961,7 +961,7 @@ theorem edgeSet_mono {H₁ H₂ : Subgraph G} (h : H₁ ≤ H₂) :
 
 /- warning: disjoint.edge_set -> Disjoint.edgeSet is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.completeBooleanAlgebra.{u1} (Sym2.{u1} V))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.booleanAlgebra.{u1} (Sym2.{u1} V)))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.completeBooleanAlgebra.{u1} (Sym2.{u1} V))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.booleanAlgebra.{u1} (Sym2.{u1} V)))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfToLatticeDistribLattice.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (Preorder.toLE.{u1} (Set.{u1} (Sym2.{u1} V)) (PartialOrder.toPreorder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align disjoint.edge_set Disjoint.edgeSetₓ'. -/
@@ -1065,7 +1065,7 @@ theorem comap_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph
 
 /- warning: simple_graph.subgraph.map_le_iff_le_comap -> SimpleGraph.Subgraph.map_le_iff_le_comap is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toLE.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.completeDistribLattice.{u2} W G'))))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toHasLe.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.completeDistribLattice.{u2} W G'))))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
 but is expected to have type
   forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toLE.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u2} W G'))))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_le_iff_le_comap SimpleGraph.Subgraph.map_le_iff_le_comapₓ'. -/
@@ -1089,7 +1089,7 @@ theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph
 
 /- warning: simple_graph.subgraph.inclusion -> SimpleGraph.Subgraph.inclusion is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y) -> (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y) -> (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y) -> (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion SimpleGraph.Subgraph.inclusionₓ'. -/
@@ -1104,7 +1104,7 @@ def inclusion {x y : Subgraph G} (h : x ≤ y) : x.coe →g y.coe
 
 /- warning: simple_graph.subgraph.inclusion.injective -> SimpleGraph.Subgraph.inclusion.injective is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (coeFn.{succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (fun (_x : RelHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) => (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) -> (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y))) (RelHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (coeFn.{succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (fun (_x : RelHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) => (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) -> (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y))) (RelHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (FunLike.coe.{succ u1, succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (fun (_x : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)) (RelHom.instRelHomClassRelHom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injectiveₓ'. -/
@@ -1147,7 +1147,7 @@ theorem spanningHom.injective {x : Subgraph G} : Function.Injective x.spanningHo
 
 /- warning: simple_graph.subgraph.neighbor_set_subset_of_subgraph -> SimpleGraph.Subgraph.neighborSet_subset_of_subgraph is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_subset_of_subgraph SimpleGraph.Subgraph.neighborSet_subset_of_subgraphₓ'. -/
@@ -1172,7 +1172,7 @@ instance finiteAt {G' : Subgraph G} (v : G'.verts) [DecidableRel G'.Adj]
 
 /- warning: simple_graph.subgraph.finite_at_of_subgraph -> SimpleGraph.Subgraph.finiteAtOfSubgraph is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (forall (v : coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v)))], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v))))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (forall (v : coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v)))], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v))))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (forall (v : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v)))], Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.finite_at_of_subgraph SimpleGraph.Subgraph.finiteAtOfSubgraphₓ'. -/
@@ -1228,7 +1228,7 @@ theorem degree_le (G' : Subgraph G) (v : V) [Fintype (G'.neighborSet v)]
 
 /- warning: simple_graph.subgraph.degree_le' -> SimpleGraph.Subgraph.degree_le' is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat Nat.hasLe (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat Nat.hasLe (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat instLENat (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.degree_le' SimpleGraph.Subgraph.degree_le'ₓ'. -/
@@ -1283,7 +1283,7 @@ instance nonempty_singletonSubgraph_verts (v : V) : Nonempty (G.singletonSubgrap
 
 /- warning: simple_graph.singleton_subgraph_le_iff -> SimpleGraph.singletonSubgraph_le_iff is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
 Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_le_iff SimpleGraph.singletonSubgraph_le_iffₓ'. -/
@@ -1444,7 +1444,7 @@ theorem neighborSet_subgraphOfAdj [DecidableEq V] {u v w : V} (hvw : G.Adj v w)
 
 /- warning: simple_graph.singleton_subgraph_fst_le_subgraph_of_adj -> SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdj is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_fst_le_subgraph_of_adj SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdjₓ'. -/
@@ -1454,7 +1454,7 @@ theorem singletonSubgraph_fst_le_subgraphOfAdj {u v : V} {h : G.Adj u v} :
 
 /- warning: simple_graph.singleton_subgraph_snd_le_subgraph_of_adj -> SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdj is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_snd_le_subgraph_of_adj SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdjₓ'. -/
@@ -1602,7 +1602,7 @@ theorem coe_deleteEdges_eq (s : Set (Sym2 V)) :
 
 /- warning: simple_graph.subgraph.delete_edges_le -> SimpleGraph.Subgraph.deleteEdges_le is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_le SimpleGraph.Subgraph.deleteEdges_leₓ'. -/
@@ -1612,7 +1612,7 @@ theorem deleteEdges_le : G'.deleteEdges s ≤ G' := by
 
 /- warning: simple_graph.subgraph.delete_edges_le_of_le -> SimpleGraph.Subgraph.deleteEdges_le_of_le is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasSubset.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasSubset.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instHasSubsetSet.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_le_of_le SimpleGraph.Subgraph.deleteEdges_le_of_leₓ'. -/
@@ -1703,7 +1703,7 @@ variable {G' G'' : G.Subgraph} {s s' : Set V}
 
 /- warning: simple_graph.subgraph.induce_mono -> SimpleGraph.Subgraph.induce_mono is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono SimpleGraph.Subgraph.induce_monoₓ'. -/
@@ -1718,7 +1718,7 @@ theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.indu
 
 /- warning: simple_graph.subgraph.induce_mono_left -> SimpleGraph.Subgraph.induce_mono_left is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono_left SimpleGraph.Subgraph.induce_mono_leftₓ'. -/
@@ -1729,7 +1729,7 @@ theorem induce_mono_left (hg : G' ≤ G'') : G'.induce s ≤ G''.induce s :=
 
 /- warning: simple_graph.subgraph.induce_mono_right -> SimpleGraph.Subgraph.induce_mono_right is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono_right SimpleGraph.Subgraph.induce_mono_rightₓ'. -/
@@ -1834,7 +1834,7 @@ theorem deleteVerts_empty : G'.deleteVerts ∅ = G' := by simp [delete_verts]
 
 /- warning: simple_graph.subgraph.delete_verts_le -> SimpleGraph.Subgraph.deleteVerts_le is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_le SimpleGraph.Subgraph.deleteVerts_leₓ'. -/
@@ -1843,7 +1843,7 @@ theorem deleteVerts_le : G'.deleteVerts s ≤ G' := by constructor <;> simp [Set
 
 /- warning: simple_graph.subgraph.delete_verts_mono -> SimpleGraph.Subgraph.deleteVerts_mono is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_mono SimpleGraph.Subgraph.deleteVerts_monoₓ'. -/
@@ -1855,7 +1855,7 @@ theorem deleteVerts_mono {G' G'' : G.Subgraph} (h : G' ≤ G'') :
 
 /- warning: simple_graph.subgraph.delete_verts_anti -> SimpleGraph.Subgraph.deleteVerts_anti is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toHasLe.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_anti SimpleGraph.Subgraph.deleteVerts_antiₓ'. -/
Diff
@@ -431,7 +431,7 @@ instance : SupSet G.Subgraph :=
         exact G'.adj_sub hab
       edge_vert := by
         rintro a b ⟨G', hG', hab⟩
-        exact Set.mem_unionᵢ₂_of_mem hG' (G'.edge_vert hab)
+        exact Set.mem_iUnion₂_of_mem hG' (G'.edge_vert hab)
       symm := fun a b => Exists₂.imp fun _ _ => Adj.symm }⟩
 
 instance : InfSet G.Subgraph :=
@@ -439,7 +439,7 @@ instance : InfSet G.Subgraph :=
     { verts := ⋂ G' ∈ s, verts G'
       Adj := fun a b => (∀ ⦃G'⦄, G' ∈ s → Adj G' a b) ∧ G.Adj a b
       adj_sub := fun a b => And.right
-      edge_vert := fun a b hab => Set.mem_interᵢ₂_of_mem fun G' hG' => G'.edge_vert <| hab.1 hG'
+      edge_vert := fun a b hab => Set.mem_iInter₂_of_mem fun G' hG' => G'.edge_vert <| hab.1 hG'
       symm := fun _ _ => And.imp (forall₂_imp fun _ _ => Adj.symm) G.adj_symm }⟩
 
 /- warning: simple_graph.subgraph.sup_adj -> SimpleGraph.Subgraph.sup_adj is a dubious translation:
@@ -518,107 +518,107 @@ theorem verts_bot : (⊥ : G.Subgraph).verts = ∅ :=
 #align simple_graph.subgraph.verts_bot SimpleGraph.Subgraph.verts_bot
 -/
 
-/- warning: simple_graph.subgraph.Sup_adj -> SimpleGraph.Subgraph.supₛ_adj is a dubious translation:
+/- warning: simple_graph.subgraph.Sup_adj -> SimpleGraph.Subgraph.sSup_adj is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (SupSet.supₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) s) a b) (Exists.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (fun (G_1 : SimpleGraph.Subgraph.{u1} V G) => Exists.{0} (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) (fun (H : Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) => SimpleGraph.Subgraph.Adj.{u1} V G G_1 a b)))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (SupSet.sSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) s) a b) (Exists.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (fun (G_1 : SimpleGraph.Subgraph.{u1} V G) => Exists.{0} (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) (fun (H : Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) => SimpleGraph.Subgraph.Adj.{u1} V G G_1 a b)))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (SupSet.supₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u1} V G) s) a b) (Exists.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (fun (G_1 : SimpleGraph.Subgraph.{u1} V G) => And (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) (SimpleGraph.Subgraph.Adj.{u1} V G G_1 a b)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.supₛ_adjₓ'. -/
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (SupSet.sSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u1} V G) s) a b) (Exists.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (fun (G_1 : SimpleGraph.Subgraph.{u1} V G) => And (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) (SimpleGraph.Subgraph.Adj.{u1} V G G_1 a b)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.sSup_adjₓ'. -/
 @[simp]
-theorem supₛ_adj {s : Set G.Subgraph} : (supₛ s).Adj a b ↔ ∃ G ∈ s, Adj G a b :=
+theorem sSup_adj {s : Set G.Subgraph} : (sSup s).Adj a b ↔ ∃ G ∈ s, Adj G a b :=
   Iff.rfl
-#align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.supₛ_adj
+#align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.sSup_adj
 
-/- warning: simple_graph.subgraph.Inf_adj -> SimpleGraph.Subgraph.infₛ_adj is a dubious translation:
+/- warning: simple_graph.subgraph.Inf_adj -> SimpleGraph.Subgraph.sInf_adj is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.infₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) s) a b) (And (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)) (SimpleGraph.Adj.{u1} V G a b))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.sInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) s) a b) (And (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)) (SimpleGraph.Adj.{u1} V G a b))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.infₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u1} V G) s) a b) (And (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)) (SimpleGraph.Adj.{u1} V G a b))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.infₛ_adjₓ'. -/
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.sInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u1} V G) s) a b) (And (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)) (SimpleGraph.Adj.{u1} V G a b))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.sInf_adjₓ'. -/
 @[simp]
-theorem infₛ_adj {s : Set G.Subgraph} : (infₛ s).Adj a b ↔ (∀ G' ∈ s, Adj G' a b) ∧ G.Adj a b :=
+theorem sInf_adj {s : Set G.Subgraph} : (sInf s).Adj a b ↔ (∀ G' ∈ s, Adj G' a b) ∧ G.Adj a b :=
   Iff.rfl
-#align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.infₛ_adj
+#align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.sInf_adj
 
-/- warning: simple_graph.subgraph.supr_adj -> SimpleGraph.Subgraph.supᵢ_adj is a dubious translation:
+/- warning: simple_graph.subgraph.supr_adj -> SimpleGraph.Subgraph.iSup_adj is a dubious translation:
 lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (supᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i)) a b) (Exists.{u2} ι (fun (i : ι) => SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b))
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (iSup.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i)) a b) (Exists.{u2} ι (fun (i : ι) => SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b))
 but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (supᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (Exists.{u1} ι (fun (i : ι) => SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.supᵢ_adjₓ'. -/
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (iSup.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (Exists.{u1} ι (fun (i : ι) => SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.iSup_adjₓ'. -/
 @[simp]
-theorem supᵢ_adj {f : ι → G.Subgraph} : (⨆ i, f i).Adj a b ↔ ∃ i, (f i).Adj a b := by simp [supᵢ]
-#align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.supᵢ_adj
+theorem iSup_adj {f : ι → G.Subgraph} : (⨆ i, f i).Adj a b ↔ ∃ i, (f i).Adj a b := by simp [iSup]
+#align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.iSup_adj
 
-/- warning: simple_graph.subgraph.infi_adj -> SimpleGraph.Subgraph.infᵢ_adj is a dubious translation:
+/- warning: simple_graph.subgraph.infi_adj -> SimpleGraph.Subgraph.iInf_adj is a dubious translation:
 lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (infᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) a b) (And (forall (i : ι), SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b) (SimpleGraph.Adj.{u1} V G a b))
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (iInf.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) a b) (And (forall (i : ι), SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b) (SimpleGraph.Adj.{u1} V G a b))
 but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (infᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (And (forall (i : ι), SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b) (SimpleGraph.Adj.{u2} V G a b))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.infᵢ_adjₓ'. -/
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (iInf.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (And (forall (i : ι), SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b) (SimpleGraph.Adj.{u2} V G a b))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.iInf_adjₓ'. -/
 @[simp]
-theorem infᵢ_adj {f : ι → G.Subgraph} : (⨅ i, f i).Adj a b ↔ (∀ i, (f i).Adj a b) ∧ G.Adj a b := by
-  simp [infᵢ]
-#align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.infᵢ_adj
+theorem iInf_adj {f : ι → G.Subgraph} : (⨅ i, f i).Adj a b ↔ (∀ i, (f i).Adj a b) ∧ G.Adj a b := by
+  simp [iInf]
+#align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.iInf_adj
 
-/- warning: simple_graph.subgraph.Inf_adj_of_nonempty -> SimpleGraph.Subgraph.infₛ_adj_of_nonempty is a dubious translation:
+/- warning: simple_graph.subgraph.Inf_adj_of_nonempty -> SimpleGraph.Subgraph.sInf_adj_of_nonempty is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, (Set.Nonempty.{u1} (SimpleGraph.Subgraph.{u1} V G) s) -> (Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.infₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) s) a b) (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, (Set.Nonempty.{u1} (SimpleGraph.Subgraph.{u1} V G) s) -> (Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.sInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) s) a b) (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, (Set.Nonempty.{u1} (SimpleGraph.Subgraph.{u1} V G) s) -> (Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.infₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u1} V G) s) a b) (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.infₛ_adj_of_nonemptyₓ'. -/
-theorem infₛ_adj_of_nonempty {s : Set G.Subgraph} (hs : s.Nonempty) :
-    (infₛ s).Adj a b ↔ ∀ G' ∈ s, Adj G' a b :=
-  infₛ_adj.trans <|
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, (Set.Nonempty.{u1} (SimpleGraph.Subgraph.{u1} V G) s) -> (Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.sInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u1} V G) s) a b) (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.sInf_adj_of_nonemptyₓ'. -/
+theorem sInf_adj_of_nonempty {s : Set G.Subgraph} (hs : s.Nonempty) :
+    (sInf s).Adj a b ↔ ∀ G' ∈ s, Adj G' a b :=
+  sInf_adj.trans <|
     and_iff_left_of_imp <| by
       obtain ⟨G', hG'⟩ := hs
       exact fun h => G'.adj_sub (h _ hG')
-#align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.infₛ_adj_of_nonempty
+#align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.sInf_adj_of_nonempty
 
-/- warning: simple_graph.subgraph.infi_adj_of_nonempty -> SimpleGraph.Subgraph.infᵢ_adj_of_nonempty is a dubious translation:
+/- warning: simple_graph.subgraph.infi_adj_of_nonempty -> SimpleGraph.Subgraph.iInf_adj_of_nonempty is a dubious translation:
 lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} [_inst_1 : Nonempty.{u2} ι] {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (infᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) a b) (forall (i : ι), SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b)
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} [_inst_1 : Nonempty.{u2} ι] {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (iInf.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) a b) (forall (i : ι), SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b)
 but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} [_inst_1 : Nonempty.{u1} ι] {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (infᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (forall (i : ι), SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.infᵢ_adj_of_nonemptyₓ'. -/
-theorem infᵢ_adj_of_nonempty [Nonempty ι] {f : ι → G.Subgraph} :
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} [_inst_1 : Nonempty.{u1} ι] {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (iInf.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (forall (i : ι), SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.iInf_adj_of_nonemptyₓ'. -/
+theorem iInf_adj_of_nonempty [Nonempty ι] {f : ι → G.Subgraph} :
     (⨅ i, f i).Adj a b ↔ ∀ i, (f i).Adj a b := by
-  simp [infᵢ, Inf_adj_of_nonempty (Set.range_nonempty _)]
-#align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.infᵢ_adj_of_nonempty
+  simp [iInf, Inf_adj_of_nonempty (Set.range_nonempty _)]
+#align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.iInf_adj_of_nonempty
 
-#print SimpleGraph.Subgraph.verts_supₛ /-
+#print SimpleGraph.Subgraph.verts_sSup /-
 @[simp]
-theorem verts_supₛ (s : Set G.Subgraph) : (supₛ s).verts = ⋃ G' ∈ s, verts G' :=
+theorem verts_sSup (s : Set G.Subgraph) : (sSup s).verts = ⋃ G' ∈ s, verts G' :=
   rfl
-#align simple_graph.subgraph.verts_Sup SimpleGraph.Subgraph.verts_supₛ
+#align simple_graph.subgraph.verts_Sup SimpleGraph.Subgraph.verts_sSup
 -/
 
-#print SimpleGraph.Subgraph.verts_infₛ /-
+#print SimpleGraph.Subgraph.verts_sInf /-
 @[simp]
-theorem verts_infₛ (s : Set G.Subgraph) : (infₛ s).verts = ⋂ G' ∈ s, verts G' :=
+theorem verts_sInf (s : Set G.Subgraph) : (sInf s).verts = ⋂ G' ∈ s, verts G' :=
   rfl
-#align simple_graph.subgraph.verts_Inf SimpleGraph.Subgraph.verts_infₛ
+#align simple_graph.subgraph.verts_Inf SimpleGraph.Subgraph.verts_sInf
 -/
 
-/- warning: simple_graph.subgraph.verts_supr -> SimpleGraph.Subgraph.verts_supᵢ is a dubious translation:
+/- warning: simple_graph.subgraph.verts_supr -> SimpleGraph.Subgraph.verts_iSup is a dubious translation:
 lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (supᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i))) (Set.unionᵢ.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u1} V G (f i)))
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (iSup.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i))) (Set.iUnion.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u1} V G (f i)))
 but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.verts.{u2} V G (supᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.unionᵢ.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u2} V G (f i)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_supᵢₓ'. -/
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.verts.{u2} V G (iSup.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.iUnion.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u2} V G (f i)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_iSupₓ'. -/
 @[simp]
-theorem verts_supᵢ {f : ι → G.Subgraph} : (⨆ i, f i).verts = ⋃ i, (f i).verts := by simp [supᵢ]
-#align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_supᵢ
+theorem verts_iSup {f : ι → G.Subgraph} : (⨆ i, f i).verts = ⋃ i, (f i).verts := by simp [iSup]
+#align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_iSup
 
-/- warning: simple_graph.subgraph.verts_infi -> SimpleGraph.Subgraph.verts_infᵢ is a dubious translation:
+/- warning: simple_graph.subgraph.verts_infi -> SimpleGraph.Subgraph.verts_iInf is a dubious translation:
 lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (infᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i))) (Set.interᵢ.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u1} V G (f i)))
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (iInf.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i))) (Set.iInter.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u1} V G (f i)))
 but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.verts.{u2} V G (infᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.interᵢ.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u2} V G (f i)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_infᵢₓ'. -/
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.verts.{u2} V G (iInf.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.iInter.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u2} V G (f i)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_iInfₓ'. -/
 @[simp]
-theorem verts_infᵢ {f : ι → G.Subgraph} : (⨅ i, f i).verts = ⋂ i, (f i).verts := by simp [infᵢ]
-#align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_infᵢ
+theorem verts_iInf {f : ι → G.Subgraph} : (⨅ i, f i).verts = ⋂ i, (f i).verts := by simp [iInf]
+#align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_iInf
 
 /-- For subgraphs `G₁`, `G₂`, `G₁ ≤ G₂` iff `G₁.verts ⊆ G₂.verts` and
 `∀ a b, G₁.adj a b → G₂.adj a b`. -/
@@ -648,31 +648,31 @@ instance : CompleteDistribLattice G.Subgraph :=
     bot := ⊥
     le_top := fun G' => ⟨Set.subset_univ _, fun a b => G'.adj_sub⟩
     bot_le := fun G' => ⟨Set.empty_subset _, fun a b => False.elim⟩
-    supₛ := supₛ
-    le_sup := fun s G' hG' => ⟨Set.subset_unionᵢ₂ G' hG', fun a b hab => ⟨G', hG', hab⟩⟩
+    sSup := sSup
+    le_sup := fun s G' hG' => ⟨Set.subset_iUnion₂ G' hG', fun a b hab => ⟨G', hG', hab⟩⟩
     sup_le := fun s G' hG' =>
-      ⟨Set.unionᵢ₂_subset fun H hH => (hG' _ hH).1,
+      ⟨Set.iUnion₂_subset fun H hH => (hG' _ hH).1,
         by
         rintro a b ⟨H, hH, hab⟩
         exact (hG' _ hH).2 hab⟩
-    infₛ := infₛ
-    inf_le := fun s G' hG' => ⟨Set.interᵢ₂_subset G' hG', fun a b hab => hab.1 hG'⟩
+    sInf := sInf
+    inf_le := fun s G' hG' => ⟨Set.iInter₂_subset G' hG', fun a b hab => hab.1 hG'⟩
     le_inf := fun s G' hG' =>
-      ⟨Set.subset_interᵢ₂ fun H hH => (hG' _ hH).1, fun a b hab =>
+      ⟨Set.subset_iInter₂ fun H hH => (hG' _ hH).1, fun a b hab =>
         ⟨fun H hH => (hG' _ hH).2 hab, G'.adj_sub hab⟩⟩
-    inf_sup_le_supᵢ_inf := fun G' s =>
+    inf_sup_le_iSup_inf := fun G' s =>
       by
       refine' ⟨_, fun a b hab => _⟩
       · simp only [verts_inf, verts_Sup, verts_supr, Set.le_eq_subset]
-        exact (Set.inter_unionᵢ₂ _ _).Subset
+        exact (Set.inter_iUnion₂ _ _).Subset
       ·
         simpa only [spanning_coe_adj, exists_prop, Sup_adj, and_imp, forall_exists_index, supr_adj,
           inf_adj, ← exists_and_right, exists_and_left, and_assoc', and_self_right] using hab
-    infᵢ_sup_le_sup_inf := fun G' s =>
+    iInf_sup_le_sup_inf := fun G' s =>
       by
       refine' ⟨_, fun a b hab => _⟩
       · simp only [Set.le_eq_subset, verts_infi, verts_sup, verts_Inf]
-        exact (Set.union_interᵢ₂ _ _).Superset
+        exact (Set.union_iInter₂ _ _).Superset
       simp only [spanning_coe_adj, sup_adj, Inf_adj, sup_adj, Inf_adj, infi_adj] at hab⊢
       have : (∀ G'' ∈ s, adj G' a b ∨ adj G'' a b) ∧ G.adj a b :=
         (and_congr_left fun h => forall_congr' fun H => _).1 hab
@@ -728,47 +728,47 @@ theorem neighborSet_bot (v : V) : (⊥ : G.Subgraph).neighborSet v = ∅ :=
   rfl
 #align simple_graph.subgraph.neighbor_set_bot SimpleGraph.Subgraph.neighborSet_bot
 
-#print SimpleGraph.Subgraph.neighborSet_supₛ /-
+#print SimpleGraph.Subgraph.neighborSet_sSup /-
 @[simp]
-theorem neighborSet_supₛ (s : Set G.Subgraph) (v : V) :
-    (supₛ s).neighborSet v = ⋃ G' ∈ s, neighborSet G' v :=
+theorem neighborSet_sSup (s : Set G.Subgraph) (v : V) :
+    (sSup s).neighborSet v = ⋃ G' ∈ s, neighborSet G' v :=
   by
   ext
   simp
-#align simple_graph.subgraph.neighbor_set_Sup SimpleGraph.Subgraph.neighborSet_supₛ
+#align simple_graph.subgraph.neighbor_set_Sup SimpleGraph.Subgraph.neighborSet_sSup
 -/
 
-#print SimpleGraph.Subgraph.neighborSet_infₛ /-
+#print SimpleGraph.Subgraph.neighborSet_sInf /-
 @[simp]
-theorem neighborSet_infₛ (s : Set G.Subgraph) (v : V) :
-    (infₛ s).neighborSet v = (⋂ G' ∈ s, neighborSet G' v) ∩ G.neighborSet v :=
+theorem neighborSet_sInf (s : Set G.Subgraph) (v : V) :
+    (sInf s).neighborSet v = (⋂ G' ∈ s, neighborSet G' v) ∩ G.neighborSet v :=
   by
   ext
   simp
-#align simple_graph.subgraph.neighbor_set_Inf SimpleGraph.Subgraph.neighborSet_infₛ
+#align simple_graph.subgraph.neighbor_set_Inf SimpleGraph.Subgraph.neighborSet_sInf
 -/
 
-/- warning: simple_graph.subgraph.neighbor_set_supr -> SimpleGraph.Subgraph.neighborSet_supᵢ is a dubious translation:
+/- warning: simple_graph.subgraph.neighbor_set_supr -> SimpleGraph.Subgraph.neighborSet_iSup is a dubious translation:
 lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)) (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (supᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i)) v) (Set.unionᵢ.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u1} V G (f i) v))
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)) (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (iSup.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i)) v) (Set.iUnion.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u1} V G (f i) v))
 but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)) (v : V), Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.neighborSet.{u2} V G (supᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) v) (Set.unionᵢ.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u2} V G (f i) v))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_supᵢₓ'. -/
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)) (v : V), Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.neighborSet.{u2} V G (iSup.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) v) (Set.iUnion.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u2} V G (f i) v))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_iSupₓ'. -/
 @[simp]
-theorem neighborSet_supᵢ (f : ι → G.Subgraph) (v : V) :
-    (⨆ i, f i).neighborSet v = ⋃ i, (f i).neighborSet v := by simp [supᵢ]
-#align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_supᵢ
+theorem neighborSet_iSup (f : ι → G.Subgraph) (v : V) :
+    (⨆ i, f i).neighborSet v = ⋃ i, (f i).neighborSet v := by simp [iSup]
+#align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_iSup
 
-/- warning: simple_graph.subgraph.neighbor_set_infi -> SimpleGraph.Subgraph.neighborSet_infᵢ is a dubious translation:
+/- warning: simple_graph.subgraph.neighbor_set_infi -> SimpleGraph.Subgraph.neighborSet_iInf is a dubious translation:
 lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)) (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (infᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) v) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (Set.interᵢ.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u1} V G (f i) v)) (SimpleGraph.neighborSet.{u1} V G v))
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)) (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (iInf.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) v) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (Set.iInter.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u1} V G (f i) v)) (SimpleGraph.neighborSet.{u1} V G v))
 but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)) (v : V), Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.neighborSet.{u2} V G (infᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) v) (Inter.inter.{u2} (Set.{u2} V) (Set.instInterSet.{u2} V) (Set.interᵢ.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u2} V G (f i) v)) (SimpleGraph.neighborSet.{u2} V G v))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_infᵢₓ'. -/
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)) (v : V), Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.neighborSet.{u2} V G (iInf.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) v) (Inter.inter.{u2} (Set.{u2} V) (Set.instInterSet.{u2} V) (Set.iInter.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u2} V G (f i) v)) (SimpleGraph.neighborSet.{u2} V G v))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_iInfₓ'. -/
 @[simp]
-theorem neighborSet_infᵢ (f : ι → G.Subgraph) (v : V) :
-    (⨅ i, f i).neighborSet v = (⋂ i, (f i).neighborSet v) ∩ G.neighborSet v := by simp [infᵢ]
-#align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_infᵢ
+theorem neighborSet_iInf (f : ι → G.Subgraph) (v : V) :
+    (⨅ i, f i).neighborSet v = (⋂ i, (f i).neighborSet v) ∩ G.neighborSet v := by simp [iInf]
+#align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_iInf
 
 /- warning: simple_graph.subgraph.edge_set_top -> SimpleGraph.Subgraph.edgeSet_top is a dubious translation:
 lean 3 declaration is
@@ -816,49 +816,49 @@ theorem edgeSet_sup {H₁ H₂ : Subgraph G} :
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_sup
 
-#print SimpleGraph.Subgraph.edgeSet_supₛ /-
+#print SimpleGraph.Subgraph.edgeSet_sSup /-
 @[simp]
-theorem edgeSet_supₛ (s : Set G.Subgraph) : (supₛ s).edgeSetEmbedding = ⋃ G' ∈ s, edgeSet G' :=
+theorem edgeSet_sSup (s : Set G.Subgraph) : (sSup s).edgeSetEmbedding = ⋃ G' ∈ s, edgeSet G' :=
   by
   ext e
   induction e using Sym2.ind
   simp
-#align simple_graph.subgraph.edge_set_Sup SimpleGraph.Subgraph.edgeSet_supₛ
+#align simple_graph.subgraph.edge_set_Sup SimpleGraph.Subgraph.edgeSet_sSup
 -/
 
-#print SimpleGraph.Subgraph.edgeSet_infₛ /-
+#print SimpleGraph.Subgraph.edgeSet_sInf /-
 @[simp]
-theorem edgeSet_infₛ (s : Set G.Subgraph) :
-    (infₛ s).edgeSetEmbedding = (⋂ G' ∈ s, edgeSet G') ∩ G.edgeSetEmbedding :=
+theorem edgeSet_sInf (s : Set G.Subgraph) :
+    (sInf s).edgeSetEmbedding = (⋂ G' ∈ s, edgeSet G') ∩ G.edgeSetEmbedding :=
   by
   ext e
   induction e using Sym2.ind
   simp
-#align simple_graph.subgraph.edge_set_Inf SimpleGraph.Subgraph.edgeSet_infₛ
+#align simple_graph.subgraph.edge_set_Inf SimpleGraph.Subgraph.edgeSet_sInf
 -/
 
-/- warning: simple_graph.subgraph.edge_set_supr -> SimpleGraph.Subgraph.edgeSet_supᵢ is a dubious translation:
+/- warning: simple_graph.subgraph.edge_set_supr -> SimpleGraph.Subgraph.edgeSet_iSup is a dubious translation:
 lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)), Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (supᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i))) (Set.unionᵢ.{u1, u2} (Sym2.{u1} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u1} V G (f i)))
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)), Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (iSup.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i))) (Set.iUnion.{u1, u2} (Sym2.{u1} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u1} V G (f i)))
 but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)), Eq.{succ u2} (Set.{u2} (Sym2.{u2} V)) (SimpleGraph.Subgraph.edgeSet.{u2} V G (supᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.unionᵢ.{u2, u1} (Sym2.{u2} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u2} V G (f i)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_supᵢₓ'. -/
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)), Eq.{succ u2} (Set.{u2} (Sym2.{u2} V)) (SimpleGraph.Subgraph.edgeSet.{u2} V G (iSup.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.iUnion.{u2, u1} (Sym2.{u2} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u2} V G (f i)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_iSupₓ'. -/
 @[simp]
-theorem edgeSet_supᵢ (f : ι → G.Subgraph) :
-    (⨆ i, f i).edgeSetEmbedding = ⋃ i, (f i).edgeSetEmbedding := by simp [supᵢ]
-#align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_supᵢ
+theorem edgeSet_iSup (f : ι → G.Subgraph) :
+    (⨆ i, f i).edgeSetEmbedding = ⋃ i, (f i).edgeSetEmbedding := by simp [iSup]
+#align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_iSup
 
-/- warning: simple_graph.subgraph.edge_set_infi -> SimpleGraph.Subgraph.edgeSet_infᵢ is a dubious translation:
+/- warning: simple_graph.subgraph.edge_set_infi -> SimpleGraph.Subgraph.edgeSet_iInf is a dubious translation:
 lean 3 declaration is
-  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)), Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (infᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i))) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (Set.interᵢ.{u1, u2} (Sym2.{u1} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u1} V G (f i))) (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G))
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)), Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (iInf.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i))) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (Set.iInter.{u1, u2} (Sym2.{u1} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u1} V G (f i))) (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G))
 but is expected to have type
-  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)), Eq.{succ u2} (Set.{u2} (Sym2.{u2} V)) (SimpleGraph.Subgraph.edgeSet.{u2} V G (infᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Inter.inter.{u2} (Set.{u2} (Sym2.{u2} V)) (Set.instInterSet.{u2} (Sym2.{u2} V)) (Set.interᵢ.{u2, u1} (Sym2.{u2} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u2} V G (f i))) (SimpleGraph.edgeSet.{u2} V G))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_infi SimpleGraph.Subgraph.edgeSet_infᵢₓ'. -/
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)), Eq.{succ u2} (Set.{u2} (Sym2.{u2} V)) (SimpleGraph.Subgraph.edgeSet.{u2} V G (iInf.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Inter.inter.{u2} (Set.{u2} (Sym2.{u2} V)) (Set.instInterSet.{u2} (Sym2.{u2} V)) (Set.iInter.{u2, u1} (Sym2.{u2} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u2} V G (f i))) (SimpleGraph.edgeSet.{u2} V G))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_infi SimpleGraph.Subgraph.edgeSet_iInfₓ'. -/
 @[simp]
-theorem edgeSet_infᵢ (f : ι → G.Subgraph) :
+theorem edgeSet_iInf (f : ι → G.Subgraph) :
     (⨅ i, f i).edgeSetEmbedding = (⋂ i, (f i).edgeSetEmbedding) ∩ G.edgeSetEmbedding := by
-  simp [infᵢ]
-#align simple_graph.subgraph.edge_set_infi SimpleGraph.Subgraph.edgeSet_infᵢ
+  simp [iInf]
+#align simple_graph.subgraph.edge_set_infi SimpleGraph.Subgraph.edgeSet_iInf
 
 #print SimpleGraph.Subgraph.spanningCoe_top /-
 @[simp]
Diff
@@ -216,10 +216,12 @@ theorem Adj.of_spanningCoe {G' : Subgraph G} {u v : G'.verts} (h : G'.spanningCo
 #align simple_graph.subgraph.adj.of_spanning_coe SimpleGraph.Subgraph.Adj.of_spanningCoe
 -/
 
+#print SimpleGraph.Subgraph.spanningCoe_inj /-
 @[simp]
 theorem spanningCoe_inj : G₁.spanningCoe = G₂.spanningCoe ↔ G₁.Adj = G₂.Adj := by
   simp [subgraph.spanning_coe]
 #align simple_graph.subgraph.spanning_coe_inj SimpleGraph.Subgraph.spanningCoe_inj
+-/
 
 #print SimpleGraph.Subgraph.spanningCoeEquivCoeOfSpanning /-
 /-- `spanning_coe` is equivalent to `coe` for a subgraph that `is_spanning`.  -/
@@ -444,7 +446,7 @@ instance : InfSet G.Subgraph :=
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) G₁ G₂) a b) (Or (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) G₁ G₂) a b) (Or (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSubgraph.{u1} V G) G₁ G₂) a b) (Or (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adjₓ'. -/
 @[simp]
 theorem sup_adj : (G₁ ⊔ G₂).Adj a b ↔ G₁.Adj a b ∨ G₂.Adj a b :=
@@ -455,23 +457,25 @@ theorem sup_adj : (G₁ ⊔ G₂).Adj a b ↔ G₁.Adj a b ∨ G₂.Adj a b :=
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) G₁ G₂) a b) (And (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) G₁ G₂) a b) (And (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSubgraph.{u1} V G) G₁ G₂) a b) (And (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adjₓ'. -/
 @[simp]
 theorem inf_adj : (G₁ ⊓ G₂).Adj a b ↔ G₁.Adj a b ∧ G₂.Adj a b :=
   Iff.rfl
 #align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adj
 
+#print SimpleGraph.Subgraph.top_adj /-
 @[simp]
 theorem top_adj : (⊤ : Subgraph G).Adj a b ↔ G.Adj a b :=
   Iff.rfl
 #align simple_graph.subgraph.top_adj SimpleGraph.Subgraph.top_adj
+-/
 
 /- warning: simple_graph.subgraph.not_bot_adj -> SimpleGraph.Subgraph.not_bot_adj is a dubious translation:
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V}, Not (SimpleGraph.Subgraph.Adj.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G)) a b)
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V}, Not (SimpleGraph.Subgraph.Adj.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) a b)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V}, Not (SimpleGraph.Subgraph.Adj.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G)) a b)
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.not_bot_adj SimpleGraph.Subgraph.not_bot_adjₓ'. -/
 @[simp]
 theorem not_bot_adj : ¬(⊥ : Subgraph G).Adj a b :=
@@ -482,7 +486,7 @@ theorem not_bot_adj : ¬(⊥ : Subgraph G).Adj a b :=
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G₁ : SimpleGraph.Subgraph.{u1} V G) (G₂ : SimpleGraph.Subgraph.{u1} V G), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) G₁ G₂)) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) G₁ G₂)) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G₁ : SimpleGraph.Subgraph.{u1} V G) (G₂ : SimpleGraph.Subgraph.{u1} V G), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSubgraph.{u1} V G) G₁ G₂)) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_sup SimpleGraph.Subgraph.verts_supₓ'. -/
 @[simp]
 theorem verts_sup (G₁ G₂ : G.Subgraph) : (G₁ ⊔ G₂).verts = G₁.verts ∪ G₂.verts :=
@@ -493,42 +497,76 @@ theorem verts_sup (G₁ G₂ : G.Subgraph) : (G₁ ⊔ G₂).verts = G₁.verts
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G₁ : SimpleGraph.Subgraph.{u1} V G) (G₂ : SimpleGraph.Subgraph.{u1} V G), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) G₁ G₂)) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) G₁ G₂)) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G₁ : SimpleGraph.Subgraph.{u1} V G) (G₂ : SimpleGraph.Subgraph.{u1} V G), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSubgraph.{u1} V G) G₁ G₂)) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_inf SimpleGraph.Subgraph.verts_infₓ'. -/
 @[simp]
 theorem verts_inf (G₁ G₂ : G.Subgraph) : (G₁ ⊓ G₂).verts = G₁.verts ∩ G₂.verts :=
   rfl
 #align simple_graph.subgraph.verts_inf SimpleGraph.Subgraph.verts_inf
 
+#print SimpleGraph.Subgraph.verts_top /-
 @[simp]
 theorem verts_top : (⊤ : G.Subgraph).verts = Set.univ :=
   rfl
 #align simple_graph.subgraph.verts_top SimpleGraph.Subgraph.verts_top
+-/
 
+#print SimpleGraph.Subgraph.verts_bot /-
 @[simp]
 theorem verts_bot : (⊥ : G.Subgraph).verts = ∅ :=
   rfl
 #align simple_graph.subgraph.verts_bot SimpleGraph.Subgraph.verts_bot
+-/
 
+/- warning: simple_graph.subgraph.Sup_adj -> SimpleGraph.Subgraph.supₛ_adj is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (SupSet.supₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) s) a b) (Exists.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (fun (G_1 : SimpleGraph.Subgraph.{u1} V G) => Exists.{0} (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) (fun (H : Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) => SimpleGraph.Subgraph.Adj.{u1} V G G_1 a b)))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (SupSet.supₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u1} V G) s) a b) (Exists.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (fun (G_1 : SimpleGraph.Subgraph.{u1} V G) => And (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G_1 s) (SimpleGraph.Subgraph.Adj.{u1} V G G_1 a b)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.supₛ_adjₓ'. -/
 @[simp]
 theorem supₛ_adj {s : Set G.Subgraph} : (supₛ s).Adj a b ↔ ∃ G ∈ s, Adj G a b :=
   Iff.rfl
 #align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.supₛ_adj
 
+/- warning: simple_graph.subgraph.Inf_adj -> SimpleGraph.Subgraph.infₛ_adj is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.infₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) s) a b) (And (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)) (SimpleGraph.Adj.{u1} V G a b))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.infₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u1} V G) s) a b) (And (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)) (SimpleGraph.Adj.{u1} V G a b))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.infₛ_adjₓ'. -/
 @[simp]
 theorem infₛ_adj {s : Set G.Subgraph} : (infₛ s).Adj a b ↔ (∀ G' ∈ s, Adj G' a b) ∧ G.Adj a b :=
   Iff.rfl
 #align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.infₛ_adj
 
+/- warning: simple_graph.subgraph.supr_adj -> SimpleGraph.Subgraph.supᵢ_adj is a dubious translation:
+lean 3 declaration is
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (supᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i)) a b) (Exists.{u2} ι (fun (i : ι) => SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b))
+but is expected to have type
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (supᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (Exists.{u1} ι (fun (i : ι) => SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.supᵢ_adjₓ'. -/
 @[simp]
 theorem supᵢ_adj {f : ι → G.Subgraph} : (⨆ i, f i).Adj a b ↔ ∃ i, (f i).Adj a b := by simp [supᵢ]
 #align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.supᵢ_adj
 
+/- warning: simple_graph.subgraph.infi_adj -> SimpleGraph.Subgraph.infᵢ_adj is a dubious translation:
+lean 3 declaration is
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (infᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) a b) (And (forall (i : ι), SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b) (SimpleGraph.Adj.{u1} V G a b))
+but is expected to have type
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (infᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (And (forall (i : ι), SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b) (SimpleGraph.Adj.{u2} V G a b))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.infᵢ_adjₓ'. -/
 @[simp]
 theorem infᵢ_adj {f : ι → G.Subgraph} : (⨅ i, f i).Adj a b ↔ (∀ i, (f i).Adj a b) ∧ G.Adj a b := by
   simp [infᵢ]
 #align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.infᵢ_adj
 
+/- warning: simple_graph.subgraph.Inf_adj_of_nonempty -> SimpleGraph.Subgraph.infₛ_adj_of_nonempty is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, (Set.Nonempty.{u1} (SimpleGraph.Subgraph.{u1} V G) s) -> (Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.infₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) s) a b) (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.Mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.hasMem.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} {s : Set.{u1} (SimpleGraph.Subgraph.{u1} V G)}, (Set.Nonempty.{u1} (SimpleGraph.Subgraph.{u1} V G) s) -> (Iff (SimpleGraph.Subgraph.Adj.{u1} V G (InfSet.infₛ.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u1} V G) s) a b) (forall (G' : SimpleGraph.Subgraph.{u1} V G), (Membership.mem.{u1, u1} (SimpleGraph.Subgraph.{u1} V G) (Set.{u1} (SimpleGraph.Subgraph.{u1} V G)) (Set.instMembershipSet.{u1} (SimpleGraph.Subgraph.{u1} V G)) G' s) -> (SimpleGraph.Subgraph.Adj.{u1} V G G' a b)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.infₛ_adj_of_nonemptyₓ'. -/
 theorem infₛ_adj_of_nonempty {s : Set G.Subgraph} (hs : s.Nonempty) :
     (infₛ s).Adj a b ↔ ∀ G' ∈ s, Adj G' a b :=
   infₛ_adj.trans <|
@@ -537,25 +575,47 @@ theorem infₛ_adj_of_nonempty {s : Set G.Subgraph} (hs : s.Nonempty) :
       exact fun h => G'.adj_sub (h _ hG')
 #align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.infₛ_adj_of_nonempty
 
+/- warning: simple_graph.subgraph.infi_adj_of_nonempty -> SimpleGraph.Subgraph.infᵢ_adj_of_nonempty is a dubious translation:
+lean 3 declaration is
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V} [_inst_1 : Nonempty.{u2} ι] {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (infᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) a b) (forall (i : ι), SimpleGraph.Subgraph.Adj.{u1} V G (f i) a b)
+but is expected to have type
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {a : V} {b : V} [_inst_1 : Nonempty.{u1} ι] {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Iff (SimpleGraph.Subgraph.Adj.{u2} V G (infᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) a b) (forall (i : ι), SimpleGraph.Subgraph.Adj.{u2} V G (f i) a b)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.infᵢ_adj_of_nonemptyₓ'. -/
 theorem infᵢ_adj_of_nonempty [Nonempty ι] {f : ι → G.Subgraph} :
     (⨅ i, f i).Adj a b ↔ ∀ i, (f i).Adj a b := by
   simp [infᵢ, Inf_adj_of_nonempty (Set.range_nonempty _)]
 #align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.infᵢ_adj_of_nonempty
 
+#print SimpleGraph.Subgraph.verts_supₛ /-
 @[simp]
 theorem verts_supₛ (s : Set G.Subgraph) : (supₛ s).verts = ⋃ G' ∈ s, verts G' :=
   rfl
 #align simple_graph.subgraph.verts_Sup SimpleGraph.Subgraph.verts_supₛ
+-/
 
+#print SimpleGraph.Subgraph.verts_infₛ /-
 @[simp]
 theorem verts_infₛ (s : Set G.Subgraph) : (infₛ s).verts = ⋂ G' ∈ s, verts G' :=
   rfl
 #align simple_graph.subgraph.verts_Inf SimpleGraph.Subgraph.verts_infₛ
+-/
 
+/- warning: simple_graph.subgraph.verts_supr -> SimpleGraph.Subgraph.verts_supᵢ is a dubious translation:
+lean 3 declaration is
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (supᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i))) (Set.unionᵢ.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u1} V G (f i)))
+but is expected to have type
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.verts.{u2} V G (supᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.unionᵢ.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u2} V G (f i)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_supᵢₓ'. -/
 @[simp]
 theorem verts_supᵢ {f : ι → G.Subgraph} : (⨆ i, f i).verts = ⋃ i, (f i).verts := by simp [supᵢ]
 #align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_supᵢ
 
+/- warning: simple_graph.subgraph.verts_infi -> SimpleGraph.Subgraph.verts_infᵢ is a dubious translation:
+lean 3 declaration is
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} {f : ι -> (SimpleGraph.Subgraph.{u1} V G)}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (infᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i))) (Set.interᵢ.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u1} V G (f i)))
+but is expected to have type
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} {f : ι -> (SimpleGraph.Subgraph.{u2} V G)}, Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.verts.{u2} V G (infᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.interᵢ.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.verts.{u2} V G (f i)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_infᵢₓ'. -/
 @[simp]
 theorem verts_infᵢ {f : ι → G.Subgraph} : (⨅ i, f i).verts = ⋂ i, (f i).verts := by simp [infᵢ]
 #align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_infᵢ
@@ -630,7 +690,7 @@ instance subgraphInhabited : Inhabited (Subgraph G) :=
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSubgraph.{u1} V G) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_sup SimpleGraph.Subgraph.neighborSet_supₓ'. -/
 @[simp]
 theorem neighborSet_sup {H H' : G.Subgraph} (v : V) :
@@ -642,7 +702,7 @@ theorem neighborSet_sup {H H' : G.Subgraph} (v : V) :
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSubgraph.{u1} V G) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_infₓ'. -/
 @[simp]
 theorem neighborSet_inf {H H' : G.Subgraph} (v : V) :
@@ -650,16 +710,25 @@ theorem neighborSet_inf {H H' : G.Subgraph} (v : V) :
   rfl
 #align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_inf
 
+#print SimpleGraph.Subgraph.neighborSet_top /-
 @[simp]
 theorem neighborSet_top (v : V) : (⊤ : G.Subgraph).neighborSet v = G.neighborSet v :=
   rfl
 #align simple_graph.subgraph.neighbor_set_top SimpleGraph.Subgraph.neighborSet_top
+-/
 
+/- warning: simple_graph.subgraph.neighbor_set_bot -> SimpleGraph.Subgraph.neighborSet_bot is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G)) v) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G)) v) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_bot SimpleGraph.Subgraph.neighborSet_botₓ'. -/
 @[simp]
 theorem neighborSet_bot (v : V) : (⊥ : G.Subgraph).neighborSet v = ∅ :=
   rfl
 #align simple_graph.subgraph.neighbor_set_bot SimpleGraph.Subgraph.neighborSet_bot
 
+#print SimpleGraph.Subgraph.neighborSet_supₛ /-
 @[simp]
 theorem neighborSet_supₛ (s : Set G.Subgraph) (v : V) :
     (supₛ s).neighborSet v = ⋃ G' ∈ s, neighborSet G' v :=
@@ -667,7 +736,9 @@ theorem neighborSet_supₛ (s : Set G.Subgraph) (v : V) :
   ext
   simp
 #align simple_graph.subgraph.neighbor_set_Sup SimpleGraph.Subgraph.neighborSet_supₛ
+-/
 
+#print SimpleGraph.Subgraph.neighborSet_infₛ /-
 @[simp]
 theorem neighborSet_infₛ (s : Set G.Subgraph) (v : V) :
     (infₛ s).neighborSet v = (⋂ G' ∈ s, neighborSet G' v) ∩ G.neighborSet v :=
@@ -675,12 +746,25 @@ theorem neighborSet_infₛ (s : Set G.Subgraph) (v : V) :
   ext
   simp
 #align simple_graph.subgraph.neighbor_set_Inf SimpleGraph.Subgraph.neighborSet_infₛ
+-/
 
+/- warning: simple_graph.subgraph.neighbor_set_supr -> SimpleGraph.Subgraph.neighborSet_supᵢ is a dubious translation:
+lean 3 declaration is
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)) (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (supᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i)) v) (Set.unionᵢ.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u1} V G (f i) v))
+but is expected to have type
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)) (v : V), Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.neighborSet.{u2} V G (supᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) v) (Set.unionᵢ.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u2} V G (f i) v))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_supᵢₓ'. -/
 @[simp]
 theorem neighborSet_supᵢ (f : ι → G.Subgraph) (v : V) :
     (⨆ i, f i).neighborSet v = ⋃ i, (f i).neighborSet v := by simp [supᵢ]
 #align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_supᵢ
 
+/- warning: simple_graph.subgraph.neighbor_set_infi -> SimpleGraph.Subgraph.neighborSet_infᵢ is a dubious translation:
+lean 3 declaration is
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)) (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (infᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i)) v) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (Set.interᵢ.{u1, u2} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u1} V G (f i) v)) (SimpleGraph.neighborSet.{u1} V G v))
+but is expected to have type
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)) (v : V), Eq.{succ u2} (Set.{u2} V) (SimpleGraph.Subgraph.neighborSet.{u2} V G (infᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i)) v) (Inter.inter.{u2} (Set.{u2} V) (Set.instInterSet.{u2} V) (Set.interᵢ.{u2, u1} V ι (fun (i : ι) => SimpleGraph.Subgraph.neighborSet.{u2} V G (f i) v)) (SimpleGraph.neighborSet.{u2} V G v))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_infᵢₓ'. -/
 @[simp]
 theorem neighborSet_infᵢ (f : ι → G.Subgraph) (v : V) :
     (⨅ i, f i).neighborSet v = (⋂ i, (f i).neighborSet v) ∩ G.neighborSet v := by simp [infᵢ]
@@ -690,7 +774,7 @@ theorem neighborSet_infᵢ (f : ι → G.Subgraph) (v : V) :
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasTop.{u1} V G))) (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G)
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (SimpleGraph.edgeSet.{u1} V G)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instTopSubgraph.{u1} V G))) (SimpleGraph.edgeSet.{u1} V G)
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_top SimpleGraph.Subgraph.edgeSet_topₓ'. -/
 @[simp]
 theorem edgeSet_top : (⊤ : Subgraph G).edgeSetEmbedding = G.edgeSetEmbedding :=
@@ -701,7 +785,7 @@ theorem edgeSet_top : (⊤ : Subgraph G).edgeSetEmbedding = G.edgeSetEmbedding :
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasEmptyc.{u1} (Sym2.{u1} V)))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instEmptyCollectionSet.{u1} (Sym2.{u1} V)))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instEmptyCollectionSet.{u1} (Sym2.{u1} V)))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_bot SimpleGraph.Subgraph.edgeSet_botₓ'. -/
 @[simp]
 theorem edgeSet_bot : (⊥ : Subgraph G).edgeSetEmbedding = ∅ :=
@@ -712,7 +796,7 @@ theorem edgeSet_bot : (⊥ : Subgraph G).edgeSetEmbedding = ∅ :=
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instInterSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instInfSubgraph.{u1} V G) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instInterSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_inf SimpleGraph.Subgraph.edgeSet_infₓ'. -/
 @[simp]
 theorem edgeSet_inf {H₁ H₂ : Subgraph G} :
@@ -724,7 +808,7 @@ theorem edgeSet_inf {H₁ H₂ : Subgraph G} :
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasUnion.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instUnionSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSubgraph.{u1} V G) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instUnionSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_supₓ'. -/
 @[simp]
 theorem edgeSet_sup {H₁ H₂ : Subgraph G} :
@@ -732,6 +816,7 @@ theorem edgeSet_sup {H₁ H₂ : Subgraph G} :
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_sup
 
+#print SimpleGraph.Subgraph.edgeSet_supₛ /-
 @[simp]
 theorem edgeSet_supₛ (s : Set G.Subgraph) : (supₛ s).edgeSetEmbedding = ⋃ G' ∈ s, edgeSet G' :=
   by
@@ -739,7 +824,9 @@ theorem edgeSet_supₛ (s : Set G.Subgraph) : (supₛ s).edgeSetEmbedding = ⋃
   induction e using Sym2.ind
   simp
 #align simple_graph.subgraph.edge_set_Sup SimpleGraph.Subgraph.edgeSet_supₛ
+-/
 
+#print SimpleGraph.Subgraph.edgeSet_infₛ /-
 @[simp]
 theorem edgeSet_infₛ (s : Set G.Subgraph) :
     (infₛ s).edgeSetEmbedding = (⋂ G' ∈ s, edgeSet G') ∩ G.edgeSetEmbedding :=
@@ -748,12 +835,25 @@ theorem edgeSet_infₛ (s : Set G.Subgraph) :
   induction e using Sym2.ind
   simp
 #align simple_graph.subgraph.edge_set_Inf SimpleGraph.Subgraph.edgeSet_infₛ
+-/
 
+/- warning: simple_graph.subgraph.edge_set_supr -> SimpleGraph.Subgraph.edgeSet_supᵢ is a dubious translation:
+lean 3 declaration is
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)), Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (supᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) ι (fun (i : ι) => f i))) (Set.unionᵢ.{u1, u2} (Sym2.{u1} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u1} V G (f i)))
+but is expected to have type
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)), Eq.{succ u2} (Set.{u2} (Sym2.{u2} V)) (SimpleGraph.Subgraph.edgeSet.{u2} V G (supᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instSupSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Set.unionᵢ.{u2, u1} (Sym2.{u2} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u2} V G (f i)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_supᵢₓ'. -/
 @[simp]
 theorem edgeSet_supᵢ (f : ι → G.Subgraph) :
     (⨆ i, f i).edgeSetEmbedding = ⋃ i, (f i).edgeSetEmbedding := by simp [supᵢ]
 #align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_supᵢ
 
+/- warning: simple_graph.subgraph.edge_set_infi -> SimpleGraph.Subgraph.edgeSet_infᵢ is a dubious translation:
+lean 3 declaration is
+  forall {ι : Sort.{u2}} {V : Type.{u1}} {G : SimpleGraph.{u1} V} (f : ι -> (SimpleGraph.Subgraph.{u1} V G)), Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (infᵢ.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) ι (fun (i : ι) => f i))) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (Set.interᵢ.{u1, u2} (Sym2.{u1} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u1} V G (f i))) (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G))
+but is expected to have type
+  forall {ι : Sort.{u1}} {V : Type.{u2}} {G : SimpleGraph.{u2} V} (f : ι -> (SimpleGraph.Subgraph.{u2} V G)), Eq.{succ u2} (Set.{u2} (Sym2.{u2} V)) (SimpleGraph.Subgraph.edgeSet.{u2} V G (infᵢ.{u2, u1} (SimpleGraph.Subgraph.{u2} V G) (SimpleGraph.Subgraph.instInfSetSubgraph.{u2} V G) ι (fun (i : ι) => f i))) (Inter.inter.{u2} (Set.{u2} (Sym2.{u2} V)) (Set.instInterSet.{u2} (Sym2.{u2} V)) (Set.interᵢ.{u2, u1} (Sym2.{u2} V) ι (fun (i : ι) => SimpleGraph.Subgraph.edgeSet.{u2} V G (f i))) (SimpleGraph.edgeSet.{u2} V G))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_infi SimpleGraph.Subgraph.edgeSet_infᵢₓ'. -/
 @[simp]
 theorem edgeSet_infᵢ (f : ι → G.Subgraph) :
     (⨅ i, f i).edgeSetEmbedding = (⋂ i, (f i).edgeSetEmbedding) ∩ G.edgeSetEmbedding := by
@@ -773,7 +873,7 @@ theorem spanningCoe_top : (⊤ : Subgraph G).spanningCoe = G :=
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))) (Bot.bot.{u1} (SimpleGraph.{u1} V) (CompleteLattice.toHasBot.{u1} (SimpleGraph.{u1} V) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.{u1} V) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.{u1} V) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (SimpleGraph.{u1} V) (SimpleGraph.completeBooleanAlgebra.{u1} V))))))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (Bot.bot.{u1} (SimpleGraph.{u1} V) (BooleanAlgebra.toBot.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instBooleanAlgebraSimpleGraph.{u1} V)))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G))) (Bot.bot.{u1} (SimpleGraph.{u1} V) (CompleteLattice.toBot.{u1} (SimpleGraph.{u1} V) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.{u1} V) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.{u1} V) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (SimpleGraph.{u1} V) (SimpleGraph.completeBooleanAlgebra.{u1} V))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.spanning_coe_bot SimpleGraph.Subgraph.spanningCoe_botₓ'. -/
 @[simp]
 theorem spanningCoe_bot : (⊥ : Subgraph G).spanningCoe = ⊥ :=
@@ -797,7 +897,7 @@ def SimpleGraph.toSubgraph (H : SimpleGraph V) (h : H ≤ G) : G.Subgraph
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.support_mono SimpleGraph.Subgraph.support_monoₓ'. -/
 theorem support_mono {H H' : Subgraph G} (h : H ≤ H') : H.support ⊆ H'.support :=
   Rel.dom_mono h.2
@@ -814,7 +914,7 @@ theorem SimpleGraph.toSubgraph.isSpanning (H : SimpleGraph V) (h : H ≤ G) :
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instLESimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instLESimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.spanning_coe_le_of_le SimpleGraph.Subgraph.spanningCoe_le_of_leₓ'. -/
 theorem spanningCoe_le_of_le {H H' : Subgraph G} (h : H ≤ H') : H.spanningCoe ≤ H'.spanningCoe :=
   h.2
@@ -836,7 +936,7 @@ def topEquiv : (⊤ : Subgraph G).coe ≃g G
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, 0} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G)))) Empty (SimpleGraph.Subgraph.coe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))) (Bot.bot.{0} (SimpleGraph.{0} Empty) (CompleteLattice.toHasBot.{0} (SimpleGraph.{0} Empty) (Order.Coframe.toCompleteLattice.{0} (SimpleGraph.{0} Empty) (CompleteDistribLattice.toCoframe.{0} (SimpleGraph.{0} Empty) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (SimpleGraph.{0} Empty) (SimpleGraph.completeBooleanAlgebra.{0} Empty))))))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, 0} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))))) Empty (SimpleGraph.Subgraph.coe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (Bot.bot.{0} (SimpleGraph.{0} Empty) (BooleanAlgebra.toBot.{0} (SimpleGraph.{0} Empty) (SimpleGraph.instBooleanAlgebraSimpleGraph.{0} Empty)))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, 0} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G)))) Empty (SimpleGraph.Subgraph.coe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G))) (Bot.bot.{0} (SimpleGraph.{0} Empty) (CompleteLattice.toBot.{0} (SimpleGraph.{0} Empty) (Order.Coframe.toCompleteLattice.{0} (SimpleGraph.{0} Empty) (CompleteDistribLattice.toCoframe.{0} (SimpleGraph.{0} Empty) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (SimpleGraph.{0} Empty) (SimpleGraph.completeBooleanAlgebra.{0} Empty))))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.bot_equiv SimpleGraph.Subgraph.botEquivₓ'. -/
 /-- The bottom of the `subgraph G` lattice is equivalent to the empty graph on the empty
 vertex type. -/
@@ -853,7 +953,7 @@ def botEquiv : (⊥ : Subgraph G).coe ≃g (⊥ : SimpleGraph Empty)
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instLESet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instLESet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_mono SimpleGraph.Subgraph.edgeSet_monoₓ'. -/
 theorem edgeSet_mono {H₁ H₂ : Subgraph G} (h : H₁ ≤ H₂) :
     H₁.edgeSetEmbedding ≤ H₂.edgeSetEmbedding := fun e => Sym2.ind h.2 e
@@ -863,7 +963,7 @@ theorem edgeSet_mono {H₁ H₂ : Subgraph G} (h : H₁ ≤ H₂) :
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.completeBooleanAlgebra.{u1} (Sym2.{u1} V))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.booleanAlgebra.{u1} (Sym2.{u1} V)))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (Preorder.toLE.{u1} (Set.{u1} (Sym2.{u1} V)) (PartialOrder.toPreorder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfToLatticeDistribLattice.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (Preorder.toLE.{u1} (Set.{u1} (Sym2.{u1} V)) (PartialOrder.toPreorder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align disjoint.edge_set Disjoint.edgeSetₓ'. -/
 theorem Disjoint.edgeSet {H₁ H₂ : Subgraph G} (h : Disjoint H₁ H₂) :
     Disjoint H₁.edgeSetEmbedding H₂.edgeSetEmbedding :=
@@ -893,7 +993,7 @@ protected def map {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) : G'.Sub
 lean 3 declaration is
   forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G)))))) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.completeDistribLattice.{u2} W G')))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f)
 but is expected to have type
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)))) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G')))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f)
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G)))))) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u2} W G')))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f)
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_monotone SimpleGraph.Subgraph.map_monotoneₓ'. -/
 theorem map_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.map f) :=
   by
@@ -911,7 +1011,7 @@ theorem map_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.m
 lean 3 declaration is
   forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) H H')) (Sup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.hasSup.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
 but is expected to have type
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H')) (Sup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeSup.toSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G'))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instSupSubgraph.{u1} V G) H H')) (Sup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instSupSubgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_sup SimpleGraph.Subgraph.map_supₓ'. -/
 theorem map_sup {G : SimpleGraph V} {G' : SimpleGraph W} (f : G →g G') {H H' : G.Subgraph} :
     (H ⊔ H').map f = H.map f ⊔ H'.map f := by
@@ -948,7 +1048,7 @@ protected def comap {G' : SimpleGraph W} (f : G →g G') (H : G'.Subgraph) : G.S
 lean 3 declaration is
   forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u2, u1} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.completeDistribLattice.{u2} W G')))))) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G)))))) (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f)
 but is expected to have type
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u2, u1} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G')))) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)))) (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f)
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u2, u1} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u2} W G')))))) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G)))))) (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f)
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.comap_monotone SimpleGraph.Subgraph.comap_monotoneₓ'. -/
 theorem comap_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.comap f) :=
   by
@@ -967,7 +1067,7 @@ theorem comap_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph
 lean 3 declaration is
   forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toLE.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.completeDistribLattice.{u2} W G'))))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
 but is expected to have type
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toLE.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G'))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toLE.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u2} W G'))))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_le_iff_le_comap SimpleGraph.Subgraph.map_le_iff_le_comapₓ'. -/
 theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) (H' : G'.Subgraph) :
     H.map f ≤ H' ↔ H ≤ H'.comap f :=
@@ -991,7 +1091,7 @@ theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y) -> (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) x y) -> (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y) -> (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion SimpleGraph.Subgraph.inclusionₓ'. -/
 /-- Given two subgraphs, one a subgraph of the other, there is an induced injective homomorphism of
 the subgraphs as graphs. -/
@@ -1006,7 +1106,7 @@ def inclusion {x y : Subgraph G} (h : x ≤ y) : x.coe →g y.coe
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (coeFn.{succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (fun (_x : RelHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) => (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) -> (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y))) (RelHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) x y), Function.Injective.{succ u1, succ u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (FunLike.coe.{succ u1, succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (fun (_x : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)) (RelHom.instRelHomClassRelHom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (FunLike.coe.{succ u1, succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (fun (_x : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)) (RelHom.instRelHomClassRelHom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injectiveₓ'. -/
 theorem inclusion.injective {x y : Subgraph G} (h : x ≤ y) : Function.Injective (inclusion h) :=
   fun v w h => by
@@ -1049,7 +1149,7 @@ theorem spanningHom.injective {x : Subgraph G} : Function.Injective x.spanningHo
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_subset_of_subgraph SimpleGraph.Subgraph.neighborSet_subset_of_subgraphₓ'. -/
 theorem neighborSet_subset_of_subgraph {x y : Subgraph G} (h : x ≤ y) (v : V) :
     x.neighborSet v ⊆ y.neighborSet v := fun w h' => h.2 h'
@@ -1074,7 +1174,7 @@ instance finiteAt {G' : Subgraph G} (v : G'.verts) [DecidableRel G'.Adj]
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (forall (v : coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v)))], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v))))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (forall (v : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v)))], Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v))))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (forall (v : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v)))], Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.finite_at_of_subgraph SimpleGraph.Subgraph.finiteAtOfSubgraphₓ'. -/
 /-- If a subgraph is locally finite at a vertex, then so are subgraphs of that subgraph.
 
@@ -1130,7 +1230,7 @@ theorem degree_le (G' : Subgraph G) (v : V) [Fintype (G'.neighborSet v)]
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat Nat.hasLe (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat instLENat (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat instLENat (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.degree_le' SimpleGraph.Subgraph.degree_le'ₓ'. -/
 theorem degree_le' (G' G'' : Subgraph G) (h : G' ≤ G'') (v : V) [Fintype (G'.neighborSet v)]
     [Fintype (G''.neighborSet v)] : G'.degree v ≤ G''.degree v :=
@@ -1185,7 +1285,7 @@ instance nonempty_singletonSubgraph_verts (v : V) : Nonempty (G.singletonSubgrap
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
 Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_le_iff SimpleGraph.singletonSubgraph_le_iffₓ'. -/
 @[simp]
 theorem singletonSubgraph_le_iff (v : V) (H : G.Subgraph) :
@@ -1346,7 +1446,7 @@ theorem neighborSet_subgraphOfAdj [DecidableEq V] {u v w : V} (hvw : G.Adj v w)
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_fst_le_subgraph_of_adj SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdjₓ'. -/
 theorem singletonSubgraph_fst_le_subgraphOfAdj {u v : V} {h : G.Adj u v} :
     G.singletonSubgraph u ≤ G.subgraphOfAdj h := by constructor <;> simp [-Set.bot_eq_empty]
@@ -1356,7 +1456,7 @@ theorem singletonSubgraph_fst_le_subgraphOfAdj {u v : V} {h : G.Adj u v} :
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_snd_le_subgraph_of_adj SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdjₓ'. -/
 theorem singletonSubgraph_snd_le_subgraphOfAdj {u v : V} {h : G.Adj u v} :
     G.singletonSubgraph v ≤ G.subgraphOfAdj h := by constructor <;> simp [-Set.bot_eq_empty]
@@ -1504,7 +1604,7 @@ theorem coe_deleteEdges_eq (s : Set (Sym2 V)) :
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_le SimpleGraph.Subgraph.deleteEdges_leₓ'. -/
 theorem deleteEdges_le : G'.deleteEdges s ≤ G' := by
   constructor <;> simp (config := { contextual := true })
@@ -1514,7 +1614,7 @@ theorem deleteEdges_le : G'.deleteEdges s ≤ G' := by
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasSubset.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instHasSubsetSet.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instHasSubsetSet.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_le_of_le 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 :=
@@ -1605,7 +1705,7 @@ variable {G' G'' : G.Subgraph} {s s' : Set V}
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono SimpleGraph.Subgraph.induce_monoₓ'. -/
 theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.induce s' :=
   by
@@ -1620,7 +1720,7 @@ theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.indu
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono_left SimpleGraph.Subgraph.induce_mono_leftₓ'. -/
 @[mono]
 theorem induce_mono_left (hg : G' ≤ G'') : G'.induce s ≤ G''.induce s :=
@@ -1631,7 +1731,7 @@ theorem induce_mono_left (hg : G' ≤ G'') : G'.induce s ≤ G''.induce s :=
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono_right SimpleGraph.Subgraph.induce_mono_rightₓ'. -/
 @[mono]
 theorem induce_mono_right (hs : s ⊆ s') : G'.induce s ≤ G'.induce s' :=
@@ -1642,7 +1742,7 @@ theorem induce_mono_right (hs : s ⊆ s') : G'.induce s ≤ G'.induce s' :=
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.induce.{u1} V G G' (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))) (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.induce.{u1} V G G' (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))) (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.induce.{u1} V G G' (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))) (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instBotSubgraph.{u1} V G))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_empty SimpleGraph.Subgraph.induce_emptyₓ'. -/
 @[simp]
 theorem induce_empty : G'.induce ∅ = ⊥ := by ext <;> simp
@@ -1736,7 +1836,7 @@ theorem deleteVerts_empty : G'.deleteVerts ∅ = G' := by simp [delete_verts]
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_le SimpleGraph.Subgraph.deleteVerts_leₓ'. -/
 theorem deleteVerts_le : G'.deleteVerts s ≤ G' := by constructor <;> simp [Set.diff_subset]
 #align simple_graph.subgraph.delete_verts_le SimpleGraph.Subgraph.deleteVerts_le
@@ -1745,7 +1845,7 @@ theorem deleteVerts_le : G'.deleteVerts s ≤ G' := by constructor <;> simp [Set
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_mono SimpleGraph.Subgraph.deleteVerts_monoₓ'. -/
 @[mono]
 theorem deleteVerts_mono {G' G'' : G.Subgraph} (h : G' ≤ G'') :
@@ -1757,7 +1857,7 @@ theorem deleteVerts_mono {G' G'' : G.Subgraph} (h : G' ≤ G'') :
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instCompleteDistribLatticeSubgraph.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_anti SimpleGraph.Subgraph.deleteVerts_antiₓ'. -/
 @[mono]
 theorem deleteVerts_anti {s s' : Set V} (h : s ⊆ s') : G'.deleteVerts s' ≤ G'.deleteVerts s :=
Diff
@@ -311,7 +311,7 @@ def edgeSet (G' : Subgraph G) : Set (Sym2 V) :=
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G), HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasSubset.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G G') (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G)
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G), HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instHasSubsetSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G G') (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V))) (SimpleGraph.{u1} V) (fun (_x : SimpleGraph.{u1} V) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : SimpleGraph.{u1} V) => Set.{u1} (Sym2.{u1} V)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V))) (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)))) (RelEmbedding.toEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : SimpleGraph.{u1} V) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : SimpleGraph.{u1} V) => LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instLESimpleGraph.{u1} V) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (Sym2.{u1} V)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (Sym2.{u1} V)) => LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instLESet.{u1} (Sym2.{u1} V)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (SimpleGraph.edgeSetEmbedding.{u1} V)) G)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G), HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instHasSubsetSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G G') (SimpleGraph.edgeSet.{u1} V G)
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_subset SimpleGraph.Subgraph.edgeSet_subsetₓ'. -/
 theorem edgeSet_subset (G' : Subgraph G) : G'.edgeSetEmbedding ⊆ G.edgeSetEmbedding := fun e =>
   Quotient.ind (fun e h => G'.adj_sub h) e
@@ -690,7 +690,7 @@ theorem neighborSet_infᵢ (f : ι → G.Subgraph) (v : V) :
 lean 3 declaration is
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasTop.{u1} V G))) (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G)
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V))) (SimpleGraph.{u1} V) (fun (_x : SimpleGraph.{u1} V) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : SimpleGraph.{u1} V) => Set.{u1} (Sym2.{u1} V)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V))) (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)))) (RelEmbedding.toEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : SimpleGraph.{u1} V) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : SimpleGraph.{u1} V) => LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instLESimpleGraph.{u1} V) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (Sym2.{u1} V)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (Sym2.{u1} V)) => LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instLESet.{u1} (Sym2.{u1} V)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (SimpleGraph.edgeSetEmbedding.{u1} V)) G)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (SimpleGraph.edgeSet.{u1} V G)
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_top SimpleGraph.Subgraph.edgeSet_topₓ'. -/
 @[simp]
 theorem edgeSet_top : (⊤ : Subgraph G).edgeSetEmbedding = G.edgeSetEmbedding :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Hunter Monroe, Kyle Miller, Alena Gusakov
 
 ! This file was ported from Lean 3 source module combinatorics.simple_graph.subgraph
-! leanprover-community/mathlib commit d6e84a0d3db8910c99b3aa0c56be88fa8bab6f80
+! leanprover-community/mathlib commit c6ef6387ede9983aee397d442974e61f89dfd87b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.Combinatorics.SimpleGraph.Basic
 /-!
 # Subgraphs of a simple graph
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 A subgraph of a simple graph consists of subsets of the graph's vertices and edges such that the
 endpoints of each edge are present in the vertex subset. The edge subset is formalized as a
 sub-relation of the adjacency relation of the simple graph.
@@ -70,7 +73,7 @@ structure Subgraph {V : Type u} (G : SimpleGraph V) where
 #align simple_graph.subgraph SimpleGraph.Subgraph
 -/
 
-variable {V : Type u} {W : Type v}
+variable {ι : Sort _} {V : Type u} {W : Type v}
 
 #print SimpleGraph.singletonSubgraph /-
 /-- The one-vertex subgraph. -/
@@ -102,7 +105,7 @@ def subgraphOfAdj (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) : G.Subgraph
 
 namespace Subgraph
 
-variable {G : SimpleGraph V}
+variable {G : SimpleGraph V} {G₁ G₂ : G.Subgraph} {a b : V}
 
 #print SimpleGraph.Subgraph.loopless /-
 protected theorem loopless (G' : Subgraph G) : Irreflexive G'.Adj := fun v h =>
@@ -213,6 +216,11 @@ theorem Adj.of_spanningCoe {G' : Subgraph G} {u v : G'.verts} (h : G'.spanningCo
 #align simple_graph.subgraph.adj.of_spanning_coe SimpleGraph.Subgraph.Adj.of_spanningCoe
 -/
 
+@[simp]
+theorem spanningCoe_inj : G₁.spanningCoe = G₂.spanningCoe ↔ G₁.Adj = G₂.Adj := by
+  simp [subgraph.spanning_coe]
+#align simple_graph.subgraph.spanning_coe_inj SimpleGraph.Subgraph.spanningCoe_inj
+
 #print SimpleGraph.Subgraph.spanningCoeEquivCoeOfSpanning /-
 /-- `spanning_coe` is equivalent to `coe` for a subgraph that `is_spanning`.  -/
 @[simps]
@@ -378,210 +386,309 @@ theorem copy_eq (G' : Subgraph G) (V'' : Set V) (hV : V'' = G'.verts) (adj' : V
 #align simple_graph.subgraph.copy_eq SimpleGraph.Subgraph.copy_eq
 -/
 
-#print SimpleGraph.Subgraph.union /-
 /-- The union of two subgraphs. -/
-def union (x y : Subgraph G) : Subgraph G
-    where
-  verts := x.verts ∪ y.verts
-  Adj := x.Adj ⊔ y.Adj
-  adj_sub v w h := Or.cases_on h (fun h => x.adj_sub h) fun h => y.adj_sub h
-  edge_vert v w h := Or.cases_on h (fun h => Or.inl (x.edge_vert h)) fun h => Or.inr (y.edge_vert h)
-  symm v w h := by rwa [Pi.sup_apply, Pi.sup_apply, x.adj_comm, y.adj_comm]
-#align simple_graph.subgraph.union SimpleGraph.Subgraph.union
--/
+instance : Sup G.Subgraph :=
+  ⟨fun G₁ G₂ =>
+    { verts := G₁.verts ∪ G₂.verts
+      Adj := G₁.Adj ⊔ G₂.Adj
+      adj_sub := fun a b hab => Or.elim hab (fun h => G₁.adj_sub h) fun h => G₂.adj_sub h
+      edge_vert := fun a b => Or.imp (fun h => G₁.edge_vert h) fun h => G₂.edge_vert h
+      symm := fun a b => Or.imp G₁.adj_symm G₂.adj_symm }⟩
 
-#print SimpleGraph.Subgraph.inter /-
 /-- The intersection of two subgraphs. -/
-def inter (x y : Subgraph G) : Subgraph G
-    where
-  verts := x.verts ∩ y.verts
-  Adj := x.Adj ⊓ y.Adj
-  adj_sub v w h := x.adj_sub h.1
-  edge_vert v w h := ⟨x.edge_vert h.1, y.edge_vert h.2⟩
-  symm v w h := by rwa [Pi.inf_apply, Pi.inf_apply, x.adj_comm, y.adj_comm]
-#align simple_graph.subgraph.inter SimpleGraph.Subgraph.inter
--/
+instance : Inf G.Subgraph :=
+  ⟨fun G₁ G₂ =>
+    { verts := G₁.verts ∩ G₂.verts
+      Adj := G₁.Adj ⊓ G₂.Adj
+      adj_sub := fun a b hab => G₁.adj_sub hab.1
+      edge_vert := fun a b => And.imp (fun h => G₁.edge_vert h) fun h => G₂.edge_vert h
+      symm := fun a b => And.imp G₁.adj_symm G₂.adj_symm }⟩
 
-#print SimpleGraph.Subgraph.top /-
 /-- The `top` subgraph is `G` as a subgraph of itself. -/
-def top : Subgraph G where
-  verts := Set.univ
-  Adj := G.Adj
-  adj_sub v w h := h
-  edge_vert v w h := Set.mem_univ v
-  symm := G.symm
-#align simple_graph.subgraph.top SimpleGraph.Subgraph.top
--/
+instance : Top G.Subgraph :=
+  ⟨{  verts := Set.univ
+      Adj := G.Adj
+      adj_sub := fun v w h => h
+      edge_vert := fun v w h => Set.mem_univ v
+      symm := G.symm }⟩
 
-#print SimpleGraph.Subgraph.bot /-
 /-- The `bot` subgraph is the subgraph with no vertices or edges. -/
-def bot : Subgraph G where
-  verts := ∅
-  Adj := ⊥
-  adj_sub v w h := False.ndrec _ h
-  edge_vert v w h := False.ndrec _ h
-  symm u v h := h
-#align simple_graph.subgraph.bot SimpleGraph.Subgraph.bot
--/
-
-#print SimpleGraph.Subgraph.IsSubgraph /-
-/-- The relation that one subgraph is a subgraph of another. -/
-def IsSubgraph (x y : Subgraph G) : Prop :=
-  x.verts ⊆ y.verts ∧ ∀ ⦃v w : V⦄, x.Adj v w → y.Adj v w
-#align simple_graph.subgraph.is_subgraph SimpleGraph.Subgraph.IsSubgraph
--/
-
-instance : Lattice (Subgraph G) where
-  le := IsSubgraph
-  sup := union
-  inf := inter
-  le_refl x := ⟨rfl.Subset, fun _ _ h => h⟩
-  le_trans x y z hxy hyz := ⟨hxy.1.trans hyz.1, fun _ _ h => hyz.2 (hxy.2 h)⟩
-  le_antisymm := by
-    intro x y hxy hyx
-    ext1 v
-    exact Set.Subset.antisymm hxy.1 hyx.1
-    ext (v w)
-    exact Iff.intro (fun h => hxy.2 h) fun h => hyx.2 h
-  sup_le x y z hxy hyz :=
-    ⟨Set.union_subset hxy.1 hyz.1, fun v w h => h.casesOn (fun h => hxy.2 h) fun h => hyz.2 h⟩
-  le_sup_left x y := ⟨Set.subset_union_left x.verts y.verts, fun v w h => Or.inl h⟩
-  le_sup_right x y := ⟨Set.subset_union_right x.verts y.verts, fun v w h => Or.inr h⟩
-  le_inf x y z hxy hyz := ⟨Set.subset_inter hxy.1 hyz.1, fun v w h => ⟨hxy.2 h, hyz.2 h⟩⟩
-  inf_le_left x y := ⟨Set.inter_subset_left x.verts y.verts, fun v w h => h.1⟩
-  inf_le_right x y := ⟨Set.inter_subset_right x.verts y.verts, fun v w h => h.2⟩
-
-instance : BoundedOrder (Subgraph G) where
-  top := top
-  bot := bot
-  le_top x := ⟨Set.subset_univ _, fun v w h => x.adj_sub h⟩
-  bot_le x := ⟨Set.empty_subset _, fun v w h => False.ndrec _ h⟩
-
-#print SimpleGraph.Subgraph.subgraphInhabited /-
-@[simps]
-instance subgraphInhabited : Inhabited (Subgraph G) :=
-  ⟨⊥⟩
-#align simple_graph.subgraph.subgraph_inhabited SimpleGraph.Subgraph.subgraphInhabited
--/
+instance : Bot G.Subgraph :=
+  ⟨{  verts := ∅
+      Adj := ⊥
+      adj_sub := fun v w h => False.ndrec _ h
+      edge_vert := fun v w h => False.ndrec _ h
+      symm := fun u v h => h }⟩
+
+instance : SupSet G.Subgraph :=
+  ⟨fun s =>
+    { verts := ⋃ G' ∈ s, verts G'
+      Adj := fun a b => ∃ G' ∈ s, Adj G' a b
+      adj_sub := by
+        rintro a b ⟨G', -, hab⟩
+        exact G'.adj_sub hab
+      edge_vert := by
+        rintro a b ⟨G', hG', hab⟩
+        exact Set.mem_unionᵢ₂_of_mem hG' (G'.edge_vert hab)
+      symm := fun a b => Exists₂.imp fun _ _ => Adj.symm }⟩
+
+instance : InfSet G.Subgraph :=
+  ⟨fun s =>
+    { verts := ⋂ G' ∈ s, verts G'
+      Adj := fun a b => (∀ ⦃G'⦄, G' ∈ s → Adj G' a b) ∧ G.Adj a b
+      adj_sub := fun a b => And.right
+      edge_vert := fun a b hab => Set.mem_interᵢ₂_of_mem fun G' hG' => G'.edge_vert <| hab.1 hG'
+      symm := fun _ _ => And.imp (forall₂_imp fun _ _ => Adj.symm) G.adj_symm }⟩
 
-/- warning: simple_graph.subgraph.top_verts -> SimpleGraph.Subgraph.top_verts is a dubious translation:
+/- warning: simple_graph.subgraph.sup_adj -> SimpleGraph.Subgraph.sup_adj is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (Set.univ.{u1} V)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) G₁ G₂) a b) (Or (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (Set.univ.{u1} V)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.top_verts SimpleGraph.Subgraph.top_vertsₓ'. -/
--- TODO simp lemmas for the other lattice operations on subgraphs
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) G₁ G₂) a b) (Or (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adjₓ'. -/
 @[simp]
-theorem top_verts : (⊤ : Subgraph G).verts = Set.univ :=
-  rfl
-#align simple_graph.subgraph.top_verts SimpleGraph.Subgraph.top_verts
+theorem sup_adj : (G₁ ⊔ G₂).Adj a b ↔ G₁.Adj a b ∨ G₂.Adj a b :=
+  Iff.rfl
+#align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adj
 
-/- warning: simple_graph.subgraph.top_adj_iff -> SimpleGraph.Subgraph.top_adj_iff is a dubious translation:
+/- warning: simple_graph.subgraph.inf_adj -> SimpleGraph.Subgraph.inf_adj is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))) v w) (SimpleGraph.Adj.{u1} V G v w)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) G₁ G₂) a b) (And (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) v w) (SimpleGraph.Adj.{u1} V G v w)
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.top_adj_iff SimpleGraph.Subgraph.top_adj_iffₓ'. -/
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G} {a : V} {b : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) G₁ G₂) a b) (And (SimpleGraph.Subgraph.Adj.{u1} V G G₁ a b) (SimpleGraph.Subgraph.Adj.{u1} V G G₂ a b))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adjₓ'. -/
 @[simp]
-theorem top_adj_iff {v w : V} : (⊤ : Subgraph G).Adj v w ↔ G.Adj v w :=
+theorem inf_adj : (G₁ ⊓ G₂).Adj a b ↔ G₁.Adj a b ∧ G₂.Adj a b :=
   Iff.rfl
-#align simple_graph.subgraph.top_adj_iff SimpleGraph.Subgraph.top_adj_iff
+#align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adj
 
-/- warning: simple_graph.subgraph.bot_verts -> SimpleGraph.Subgraph.bot_verts is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.bot_verts SimpleGraph.Subgraph.bot_vertsₓ'. -/
 @[simp]
-theorem bot_verts : (⊥ : Subgraph G).verts = ∅ :=
-  rfl
-#align simple_graph.subgraph.bot_verts SimpleGraph.Subgraph.bot_verts
+theorem top_adj : (⊤ : Subgraph G).Adj a b ↔ G.Adj a b :=
+  Iff.rfl
+#align simple_graph.subgraph.top_adj SimpleGraph.Subgraph.top_adj
 
 /- warning: simple_graph.subgraph.not_bot_adj -> SimpleGraph.Subgraph.not_bot_adj is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V}, Not (SimpleGraph.Subgraph.Adj.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))) v w)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V}, Not (SimpleGraph.Subgraph.Adj.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G)) a b)
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V}, Not (SimpleGraph.Subgraph.Adj.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) v w)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {a : V} {b : V}, Not (SimpleGraph.Subgraph.Adj.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) a b)
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.not_bot_adj SimpleGraph.Subgraph.not_bot_adjₓ'. -/
 @[simp]
-theorem not_bot_adj {v w : V} : ¬(⊥ : Subgraph G).Adj v w :=
+theorem not_bot_adj : ¬(⊥ : Subgraph G).Adj a b :=
   not_false
 #align simple_graph.subgraph.not_bot_adj SimpleGraph.Subgraph.not_bot_adj
 
-/- warning: simple_graph.subgraph.inf_adj -> SimpleGraph.Subgraph.inf_adj is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂) v w) (And (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H₁ H₂) v w) (And (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adjₓ'. -/
-@[simp]
-theorem inf_adj {H₁ H₂ : Subgraph G} {v w : V} : (H₁ ⊓ H₂).Adj v w ↔ H₁.Adj v w ∧ H₂.Adj v w :=
-  Iff.rfl
-#align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adj
-
-/- warning: simple_graph.subgraph.sup_adj -> SimpleGraph.Subgraph.sup_adj is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂) v w) (Or (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H₁ H₂) v w) (Or (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adjₓ'. -/
-@[simp]
-theorem sup_adj {H₁ H₂ : Subgraph G} {v w : V} : (H₁ ⊔ H₂).Adj v w ↔ H₁.Adj v w ∨ H₂.Adj v w :=
-  Iff.rfl
-#align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adj
-
 /- warning: simple_graph.subgraph.verts_sup -> SimpleGraph.Subgraph.verts_sup is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G₁ : SimpleGraph.Subgraph.{u1} V G) (G₂ : SimpleGraph.Subgraph.{u1} V G), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) G₁ G₂)) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H')) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) G₁ G₂)) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_sup SimpleGraph.Subgraph.verts_supₓ'. -/
 @[simp]
-theorem verts_sup {H H' : G.Subgraph} : (H ⊔ H').verts = H.verts ∪ H'.verts :=
+theorem verts_sup (G₁ G₂ : G.Subgraph) : (G₁ ⊔ G₂).verts = G₁.verts ∪ G₂.verts :=
   rfl
 #align simple_graph.subgraph.verts_sup SimpleGraph.Subgraph.verts_sup
 
 /- warning: simple_graph.subgraph.verts_inf -> SimpleGraph.Subgraph.verts_inf is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G₁ : SimpleGraph.Subgraph.{u1} V G) (G₂ : SimpleGraph.Subgraph.{u1} V G), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) G₁ G₂)) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H H')) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G₁ : SimpleGraph.Subgraph.{u1} V G} {G₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) G₁ G₂)) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G₁) (SimpleGraph.Subgraph.verts.{u1} V G G₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_inf SimpleGraph.Subgraph.verts_infₓ'. -/
 @[simp]
-theorem verts_inf {H H' : G.Subgraph} : (H ⊓ H').verts = H.verts ∩ H'.verts :=
+theorem verts_inf (G₁ G₂ : G.Subgraph) : (G₁ ⊓ G₂).verts = G₁.verts ∩ G₂.verts :=
   rfl
 #align simple_graph.subgraph.verts_inf SimpleGraph.Subgraph.verts_inf
 
+@[simp]
+theorem verts_top : (⊤ : G.Subgraph).verts = Set.univ :=
+  rfl
+#align simple_graph.subgraph.verts_top SimpleGraph.Subgraph.verts_top
+
+@[simp]
+theorem verts_bot : (⊥ : G.Subgraph).verts = ∅ :=
+  rfl
+#align simple_graph.subgraph.verts_bot SimpleGraph.Subgraph.verts_bot
+
+@[simp]
+theorem supₛ_adj {s : Set G.Subgraph} : (supₛ s).Adj a b ↔ ∃ G ∈ s, Adj G a b :=
+  Iff.rfl
+#align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.supₛ_adj
+
+@[simp]
+theorem infₛ_adj {s : Set G.Subgraph} : (infₛ s).Adj a b ↔ (∀ G' ∈ s, Adj G' a b) ∧ G.Adj a b :=
+  Iff.rfl
+#align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.infₛ_adj
+
+@[simp]
+theorem supᵢ_adj {f : ι → G.Subgraph} : (⨆ i, f i).Adj a b ↔ ∃ i, (f i).Adj a b := by simp [supᵢ]
+#align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.supᵢ_adj
+
+@[simp]
+theorem infᵢ_adj {f : ι → G.Subgraph} : (⨅ i, f i).Adj a b ↔ (∀ i, (f i).Adj a b) ∧ G.Adj a b := by
+  simp [infᵢ]
+#align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.infᵢ_adj
+
+theorem infₛ_adj_of_nonempty {s : Set G.Subgraph} (hs : s.Nonempty) :
+    (infₛ s).Adj a b ↔ ∀ G' ∈ s, Adj G' a b :=
+  infₛ_adj.trans <|
+    and_iff_left_of_imp <| by
+      obtain ⟨G', hG'⟩ := hs
+      exact fun h => G'.adj_sub (h _ hG')
+#align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.infₛ_adj_of_nonempty
+
+theorem infᵢ_adj_of_nonempty [Nonempty ι] {f : ι → G.Subgraph} :
+    (⨅ i, f i).Adj a b ↔ ∀ i, (f i).Adj a b := by
+  simp [infᵢ, Inf_adj_of_nonempty (Set.range_nonempty _)]
+#align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.infᵢ_adj_of_nonempty
+
+@[simp]
+theorem verts_supₛ (s : Set G.Subgraph) : (supₛ s).verts = ⋃ G' ∈ s, verts G' :=
+  rfl
+#align simple_graph.subgraph.verts_Sup SimpleGraph.Subgraph.verts_supₛ
+
+@[simp]
+theorem verts_infₛ (s : Set G.Subgraph) : (infₛ s).verts = ⋂ G' ∈ s, verts G' :=
+  rfl
+#align simple_graph.subgraph.verts_Inf SimpleGraph.Subgraph.verts_infₛ
+
+@[simp]
+theorem verts_supᵢ {f : ι → G.Subgraph} : (⨆ i, f i).verts = ⋃ i, (f i).verts := by simp [supᵢ]
+#align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_supᵢ
+
+@[simp]
+theorem verts_infᵢ {f : ι → G.Subgraph} : (⨅ i, f i).verts = ⋂ i, (f i).verts := by simp [infᵢ]
+#align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_infᵢ
+
+/-- For subgraphs `G₁`, `G₂`, `G₁ ≤ G₂` iff `G₁.verts ⊆ G₂.verts` and
+`∀ a b, G₁.adj a b → G₂.adj a b`. -/
+instance : DistribLattice G.Subgraph :=
+  {
+    show DistribLattice G.Subgraph from
+      Function.Injective.distribLattice (fun G' => (G'.verts, G'.spanningCoe))
+        (fun G₁ G₂ h => by
+          rw [Prod.ext_iff] at h
+          exact ext _ _ h.1 (spanning_coe_inj.1 h.2))
+        (fun _ _ => rfl) fun _ _ => rfl with
+    le := fun x y => x.verts ⊆ y.verts ∧ ∀ ⦃v w : V⦄, x.Adj v w → y.Adj v w }
+
+instance : BoundedOrder (Subgraph G) where
+  top := ⊤
+  bot := ⊥
+  le_top x := ⟨Set.subset_univ _, fun v w h => x.adj_sub h⟩
+  bot_le x := ⟨Set.empty_subset _, fun v w h => False.ndrec _ h⟩
+
+-- Note that subgraphs do not form a Boolean algebra, because of `verts`.
+instance : CompleteDistribLattice G.Subgraph :=
+  { Subgraph.distribLattice with
+    le := (· ≤ ·)
+    sup := (· ⊔ ·)
+    inf := (· ⊓ ·)
+    top := ⊤
+    bot := ⊥
+    le_top := fun G' => ⟨Set.subset_univ _, fun a b => G'.adj_sub⟩
+    bot_le := fun G' => ⟨Set.empty_subset _, fun a b => False.elim⟩
+    supₛ := supₛ
+    le_sup := fun s G' hG' => ⟨Set.subset_unionᵢ₂ G' hG', fun a b hab => ⟨G', hG', hab⟩⟩
+    sup_le := fun s G' hG' =>
+      ⟨Set.unionᵢ₂_subset fun H hH => (hG' _ hH).1,
+        by
+        rintro a b ⟨H, hH, hab⟩
+        exact (hG' _ hH).2 hab⟩
+    infₛ := infₛ
+    inf_le := fun s G' hG' => ⟨Set.interᵢ₂_subset G' hG', fun a b hab => hab.1 hG'⟩
+    le_inf := fun s G' hG' =>
+      ⟨Set.subset_interᵢ₂ fun H hH => (hG' _ hH).1, fun a b hab =>
+        ⟨fun H hH => (hG' _ hH).2 hab, G'.adj_sub hab⟩⟩
+    inf_sup_le_supᵢ_inf := fun G' s =>
+      by
+      refine' ⟨_, fun a b hab => _⟩
+      · simp only [verts_inf, verts_Sup, verts_supr, Set.le_eq_subset]
+        exact (Set.inter_unionᵢ₂ _ _).Subset
+      ·
+        simpa only [spanning_coe_adj, exists_prop, Sup_adj, and_imp, forall_exists_index, supr_adj,
+          inf_adj, ← exists_and_right, exists_and_left, and_assoc', and_self_right] using hab
+    infᵢ_sup_le_sup_inf := fun G' s =>
+      by
+      refine' ⟨_, fun a b hab => _⟩
+      · simp only [Set.le_eq_subset, verts_infi, verts_sup, verts_Inf]
+        exact (Set.union_interᵢ₂ _ _).Superset
+      simp only [spanning_coe_adj, sup_adj, Inf_adj, sup_adj, Inf_adj, infi_adj] at hab⊢
+      have : (∀ G'' ∈ s, adj G' a b ∨ adj G'' a b) ∧ G.adj a b :=
+        (and_congr_left fun h => forall_congr' fun H => _).1 hab
+      simpa [forall_or_left, or_and_right, and_iff_left_of_imp G'.adj_sub] using this
+      exact and_iff_left h }
+
+#print SimpleGraph.Subgraph.subgraphInhabited /-
+@[simps]
+instance subgraphInhabited : Inhabited (Subgraph G) :=
+  ⟨⊥⟩
+#align simple_graph.subgraph.subgraph_inhabited SimpleGraph.Subgraph.subgraphInhabited
+-/
+
 /- warning: simple_graph.subgraph.neighbor_set_sup -> SimpleGraph.Subgraph.neighborSet_sup is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_sup SimpleGraph.Subgraph.neighborSet_supₓ'. -/
+@[simp]
 theorem neighborSet_sup {H H' : G.Subgraph} (v : V) :
     (H ⊔ H').neighborSet v = H.neighborSet v ∪ H'.neighborSet v :=
-  by
-  ext w
-  simp
+  rfl
 #align simple_graph.subgraph.neighbor_set_sup SimpleGraph.Subgraph.neighborSet_sup
 
 /- warning: simple_graph.subgraph.neighbor_set_inf -> SimpleGraph.Subgraph.neighborSet_inf is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_infₓ'. -/
+@[simp]
 theorem neighborSet_inf {H H' : G.Subgraph} (v : V) :
     (H ⊓ H').neighborSet v = H.neighborSet v ∩ H'.neighborSet v :=
+  rfl
+#align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_inf
+
+@[simp]
+theorem neighborSet_top (v : V) : (⊤ : G.Subgraph).neighborSet v = G.neighborSet v :=
+  rfl
+#align simple_graph.subgraph.neighbor_set_top SimpleGraph.Subgraph.neighborSet_top
+
+@[simp]
+theorem neighborSet_bot (v : V) : (⊥ : G.Subgraph).neighborSet v = ∅ :=
+  rfl
+#align simple_graph.subgraph.neighbor_set_bot SimpleGraph.Subgraph.neighborSet_bot
+
+@[simp]
+theorem neighborSet_supₛ (s : Set G.Subgraph) (v : V) :
+    (supₛ s).neighborSet v = ⋃ G' ∈ s, neighborSet G' v :=
   by
-  ext w
+  ext
   simp
-#align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_inf
+#align simple_graph.subgraph.neighbor_set_Sup SimpleGraph.Subgraph.neighborSet_supₛ
+
+@[simp]
+theorem neighborSet_infₛ (s : Set G.Subgraph) (v : V) :
+    (infₛ s).neighborSet v = (⋂ G' ∈ s, neighborSet G' v) ∩ G.neighborSet v :=
+  by
+  ext
+  simp
+#align simple_graph.subgraph.neighbor_set_Inf SimpleGraph.Subgraph.neighborSet_infₛ
+
+@[simp]
+theorem neighborSet_supᵢ (f : ι → G.Subgraph) (v : V) :
+    (⨆ i, f i).neighborSet v = ⋃ i, (f i).neighborSet v := by simp [supᵢ]
+#align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_supᵢ
+
+@[simp]
+theorem neighborSet_infᵢ (f : ι → G.Subgraph) (v : V) :
+    (⨅ i, f i).neighborSet v = (⋂ i, (f i).neighborSet v) ∩ G.neighborSet v := by simp [infᵢ]
+#align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_infᵢ
 
 /- warning: simple_graph.subgraph.edge_set_top -> SimpleGraph.Subgraph.edgeSet_top is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasTop.{u1} V G))) (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G)
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V))) (SimpleGraph.{u1} V) (fun (_x : SimpleGraph.{u1} V) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : SimpleGraph.{u1} V) => Set.{u1} (Sym2.{u1} V)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V))) (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)))) (RelEmbedding.toEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : SimpleGraph.{u1} V) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : SimpleGraph.{u1} V) => LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instLESimpleGraph.{u1} V) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (Sym2.{u1} V)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (Sym2.{u1} V)) => LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instLESet.{u1} (Sym2.{u1} V)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (SimpleGraph.edgeSetEmbedding.{u1} V)) G)
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_top SimpleGraph.Subgraph.edgeSet_topₓ'. -/
@@ -592,7 +699,7 @@ theorem edgeSet_top : (⊤ : Subgraph G).edgeSetEmbedding = G.edgeSetEmbedding :
 
 /- warning: simple_graph.subgraph.edge_set_bot -> SimpleGraph.Subgraph.edgeSet_bot is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasEmptyc.{u1} (Sym2.{u1} V)))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasEmptyc.{u1} (Sym2.{u1} V)))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instEmptyCollectionSet.{u1} (Sym2.{u1} V)))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_bot SimpleGraph.Subgraph.edgeSet_botₓ'. -/
@@ -603,7 +710,7 @@ theorem edgeSet_bot : (⊥ : Subgraph G).edgeSetEmbedding = ∅ :=
 
 /- warning: simple_graph.subgraph.edge_set_inf -> SimpleGraph.Subgraph.edgeSet_inf is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasInf.{u1} V G) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instInterSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_inf SimpleGraph.Subgraph.edgeSet_infₓ'. -/
@@ -615,7 +722,7 @@ theorem edgeSet_inf {H₁ H₂ : Subgraph G} :
 
 /- warning: simple_graph.subgraph.edge_set_sup -> SimpleGraph.Subgraph.edgeSet_sup is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasUnion.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasUnion.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instUnionSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_supₓ'. -/
@@ -625,22 +732,46 @@ theorem edgeSet_sup {H₁ H₂ : Subgraph G} :
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_sup
 
-/- warning: simple_graph.subgraph.spanning_coe_top -> SimpleGraph.Subgraph.spanningCoe_top is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) G
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) G
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.spanning_coe_top SimpleGraph.Subgraph.spanningCoe_topₓ'. -/
+@[simp]
+theorem edgeSet_supₛ (s : Set G.Subgraph) : (supₛ s).edgeSetEmbedding = ⋃ G' ∈ s, edgeSet G' :=
+  by
+  ext e
+  induction e using Sym2.ind
+  simp
+#align simple_graph.subgraph.edge_set_Sup SimpleGraph.Subgraph.edgeSet_supₛ
+
+@[simp]
+theorem edgeSet_infₛ (s : Set G.Subgraph) :
+    (infₛ s).edgeSetEmbedding = (⋂ G' ∈ s, edgeSet G') ∩ G.edgeSetEmbedding :=
+  by
+  ext e
+  induction e using Sym2.ind
+  simp
+#align simple_graph.subgraph.edge_set_Inf SimpleGraph.Subgraph.edgeSet_infₛ
+
+@[simp]
+theorem edgeSet_supᵢ (f : ι → G.Subgraph) :
+    (⨆ i, f i).edgeSetEmbedding = ⋃ i, (f i).edgeSetEmbedding := by simp [supᵢ]
+#align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_supᵢ
+
+@[simp]
+theorem edgeSet_infᵢ (f : ι → G.Subgraph) :
+    (⨅ i, f i).edgeSetEmbedding = (⋂ i, (f i).edgeSetEmbedding) ∩ G.edgeSetEmbedding := by
+  simp [infᵢ]
+#align simple_graph.subgraph.edge_set_infi SimpleGraph.Subgraph.edgeSet_infᵢ
+
+#print SimpleGraph.Subgraph.spanningCoe_top /-
 @[simp]
 theorem spanningCoe_top : (⊤ : Subgraph G).spanningCoe = G :=
   by
   ext
   rfl
 #align simple_graph.subgraph.spanning_coe_top SimpleGraph.Subgraph.spanningCoe_top
+-/
 
 /- warning: simple_graph.subgraph.spanning_coe_bot -> SimpleGraph.Subgraph.spanningCoe_bot is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (Bot.bot.{u1} (SimpleGraph.{u1} V) (BooleanAlgebra.toHasBot.{u1} (SimpleGraph.{u1} V) (SimpleGraph.booleanAlgebra.{u1} V)))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))) (Bot.bot.{u1} (SimpleGraph.{u1} V) (CompleteLattice.toHasBot.{u1} (SimpleGraph.{u1} V) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.{u1} V) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.{u1} V) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (SimpleGraph.{u1} V) (SimpleGraph.completeBooleanAlgebra.{u1} V))))))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (Bot.bot.{u1} (SimpleGraph.{u1} V) (BooleanAlgebra.toBot.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instBooleanAlgebraSimpleGraph.{u1} V)))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.spanning_coe_bot SimpleGraph.Subgraph.spanningCoe_botₓ'. -/
@@ -664,7 +795,7 @@ def SimpleGraph.toSubgraph (H : SimpleGraph V) (h : H ≤ G) : G.Subgraph
 
 /- warning: simple_graph.subgraph.support_mono -> SimpleGraph.Subgraph.support_mono is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.support_mono SimpleGraph.Subgraph.support_monoₓ'. -/
@@ -681,7 +812,7 @@ theorem SimpleGraph.toSubgraph.isSpanning (H : SimpleGraph V) (h : H ≤ G) :
 
 /- warning: simple_graph.subgraph.spanning_coe_le_of_le -> SimpleGraph.Subgraph.spanningCoe_le_of_le is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instLESimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.spanning_coe_le_of_le SimpleGraph.Subgraph.spanningCoe_le_of_leₓ'. -/
@@ -689,12 +820,7 @@ theorem spanningCoe_le_of_le {H H' : Subgraph G} (h : H ≤ H') : H.spanningCoe
   h.2
 #align simple_graph.subgraph.spanning_coe_le_of_le SimpleGraph.Subgraph.spanningCoe_le_of_le
 
-/- warning: simple_graph.subgraph.top_equiv -> SimpleGraph.Subgraph.topEquiv is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))))) V (SimpleGraph.Subgraph.coe.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) G
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))))) V (SimpleGraph.Subgraph.coe.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) G
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.top_equiv SimpleGraph.Subgraph.topEquivₓ'. -/
+#print SimpleGraph.Subgraph.topEquiv /-
 /-- The top of the `subgraph G` lattice is equivalent to the graph itself. -/
 def topEquiv : (⊤ : Subgraph G).coe ≃g G
     where
@@ -704,10 +830,11 @@ def topEquiv : (⊤ : Subgraph G).coe ≃g G
   right_inv v := rfl
   map_rel_iff' a b := Iff.rfl
 #align simple_graph.subgraph.top_equiv SimpleGraph.Subgraph.topEquiv
+-/
 
 /- warning: simple_graph.subgraph.bot_equiv -> SimpleGraph.Subgraph.botEquiv is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, 0} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))))) Empty (SimpleGraph.Subgraph.coe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (Bot.bot.{0} (SimpleGraph.{0} Empty) (BooleanAlgebra.toHasBot.{0} (SimpleGraph.{0} Empty) (SimpleGraph.booleanAlgebra.{0} Empty)))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, 0} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G)))) Empty (SimpleGraph.Subgraph.coe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))) (Bot.bot.{0} (SimpleGraph.{0} Empty) (CompleteLattice.toHasBot.{0} (SimpleGraph.{0} Empty) (Order.Coframe.toCompleteLattice.{0} (SimpleGraph.{0} Empty) (CompleteDistribLattice.toCoframe.{0} (SimpleGraph.{0} Empty) (CompleteBooleanAlgebra.toCompleteDistribLattice.{0} (SimpleGraph.{0} Empty) (SimpleGraph.completeBooleanAlgebra.{0} Empty))))))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, 0} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))))) Empty (SimpleGraph.Subgraph.coe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (Bot.bot.{0} (SimpleGraph.{0} Empty) (BooleanAlgebra.toBot.{0} (SimpleGraph.{0} Empty) (SimpleGraph.instBooleanAlgebraSimpleGraph.{0} Empty)))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.bot_equiv SimpleGraph.Subgraph.botEquivₓ'. -/
@@ -724,7 +851,7 @@ def botEquiv : (⊥ : Subgraph G).coe ≃g (⊥ : SimpleGraph Empty)
 
 /- warning: simple_graph.subgraph.edge_set_mono -> SimpleGraph.Subgraph.edgeSet_mono is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instLESet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_mono SimpleGraph.Subgraph.edgeSet_monoₓ'. -/
@@ -734,7 +861,7 @@ theorem edgeSet_mono {H₁ H₂ : Subgraph G} (h : H₁ ≤ H₂) :
 
 /- warning: disjoint.edge_set -> Disjoint.edgeSet is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.completeBooleanAlgebra.{u1} (Sym2.{u1} V))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.booleanAlgebra.{u1} (Sym2.{u1} V)))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.completeBooleanAlgebra.{u1} (Sym2.{u1} V))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.booleanAlgebra.{u1} (Sym2.{u1} V)))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (Preorder.toLE.{u1} (Set.{u1} (Sym2.{u1} V)) (PartialOrder.toPreorder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align disjoint.edge_set Disjoint.edgeSetₓ'. -/
@@ -764,7 +891,7 @@ protected def map {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) : G'.Sub
 
 /- warning: simple_graph.subgraph.map_monotone -> SimpleGraph.Subgraph.map_monotone is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G)))) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.lattice.{u2} W G')))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f)
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G)))))) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.completeDistribLattice.{u2} W G')))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f)
 but is expected to have type
   forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)))) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G')))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f)
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_monotone SimpleGraph.Subgraph.map_monotoneₓ'. -/
@@ -782,7 +909,7 @@ theorem map_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.m
 
 /- warning: simple_graph.subgraph.map_sup -> SimpleGraph.Subgraph.map_sup is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (Sup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeSup.toHasSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.lattice.{u2} W G'))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasSup.{u1} V G) H H')) (Sup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.hasSup.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
 but is expected to have type
   forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H')) (Sup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeSup.toSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G'))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_sup SimpleGraph.Subgraph.map_supₓ'. -/
@@ -819,7 +946,7 @@ protected def comap {G' : SimpleGraph W} (f : G →g G') (H : G'.Subgraph) : G.S
 
 /- warning: simple_graph.subgraph.comap_monotone -> SimpleGraph.Subgraph.comap_monotone is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u2, u1} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.lattice.{u2} W G')))) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G)))) (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f)
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u2, u1} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.completeDistribLattice.{u2} W G')))))) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G)))))) (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f)
 but is expected to have type
   forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u2, u1} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G')))) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)))) (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f)
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.comap_monotone SimpleGraph.Subgraph.comap_monotoneₓ'. -/
@@ -838,7 +965,7 @@ theorem comap_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph
 
 /- warning: simple_graph.subgraph.map_le_iff_le_comap -> SimpleGraph.Subgraph.map_le_iff_le_comap is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toLE.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.lattice.{u2} W G'))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toLE.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteSemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteLattice.toCompleteSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (Order.Coframe.toCompleteLattice.{u2} (SimpleGraph.Subgraph.{u2} W G') (CompleteDistribLattice.toCoframe.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.completeDistribLattice.{u2} W G'))))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
 but is expected to have type
   forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toLE.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G'))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_le_iff_le_comap SimpleGraph.Subgraph.map_le_iff_le_comapₓ'. -/
@@ -862,7 +989,7 @@ theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph
 
 /- warning: simple_graph.subgraph.inclusion -> SimpleGraph.Subgraph.inclusion is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) x y) -> (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y) -> (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) x y) -> (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion SimpleGraph.Subgraph.inclusionₓ'. -/
@@ -877,7 +1004,7 @@ def inclusion {x y : Subgraph G} (h : x ≤ y) : x.coe →g y.coe
 
 /- warning: simple_graph.subgraph.inclusion.injective -> SimpleGraph.Subgraph.inclusion.injective is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) x y), Function.Injective.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (coeFn.{succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (fun (_x : RelHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) => (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) -> (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y))) (RelHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y), Function.Injective.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (coeFn.{succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (fun (_x : RelHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) => (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) -> (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y))) (RelHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) x y), Function.Injective.{succ u1, succ u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (FunLike.coe.{succ u1, succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (fun (_x : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)) (RelHom.instRelHomClassRelHom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injectiveₓ'. -/
@@ -920,7 +1047,7 @@ theorem spanningHom.injective {x : Subgraph G} : Function.Injective x.spanningHo
 
 /- warning: simple_graph.subgraph.neighbor_set_subset_of_subgraph -> SimpleGraph.Subgraph.neighborSet_subset_of_subgraph is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_subset_of_subgraph SimpleGraph.Subgraph.neighborSet_subset_of_subgraphₓ'. -/
@@ -945,7 +1072,7 @@ instance finiteAt {G' : Subgraph G} (v : G'.verts) [DecidableRel G'.Adj]
 
 /- warning: simple_graph.subgraph.finite_at_of_subgraph -> SimpleGraph.Subgraph.finiteAtOfSubgraph is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) G' G'') -> (forall (v : coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v)))], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v))))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (forall (v : coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v)))], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v))))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (forall (v : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v)))], Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.finite_at_of_subgraph SimpleGraph.Subgraph.finiteAtOfSubgraphₓ'. -/
@@ -1001,7 +1128,7 @@ theorem degree_le (G' : Subgraph G) (v : V) [Fintype (G'.neighborSet v)]
 
 /- warning: simple_graph.subgraph.degree_le' -> SimpleGraph.Subgraph.degree_le' is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat Nat.hasLe (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat Nat.hasLe (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat instLENat (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.degree_le' SimpleGraph.Subgraph.degree_le'ₓ'. -/
@@ -1056,7 +1183,7 @@ instance nonempty_singletonSubgraph_verts (v : V) : Nonempty (G.singletonSubgrap
 
 /- warning: simple_graph.singleton_subgraph_le_iff -> SimpleGraph.singletonSubgraph_le_iff is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
 Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_le_iff SimpleGraph.singletonSubgraph_le_iffₓ'. -/
@@ -1217,7 +1344,7 @@ theorem neighborSet_subgraphOfAdj [DecidableEq V] {u v w : V} (hvw : G.Adj v w)
 
 /- warning: simple_graph.singleton_subgraph_fst_le_subgraph_of_adj -> SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdj is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_fst_le_subgraph_of_adj SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdjₓ'. -/
@@ -1227,7 +1354,7 @@ theorem singletonSubgraph_fst_le_subgraphOfAdj {u v : V} {h : G.Adj u v} :
 
 /- warning: simple_graph.singleton_subgraph_snd_le_subgraph_of_adj -> SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdj is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
 Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_snd_le_subgraph_of_adj SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdjₓ'. -/
@@ -1375,7 +1502,7 @@ theorem coe_deleteEdges_eq (s : Set (Sym2 V)) :
 
 /- warning: simple_graph.subgraph.delete_edges_le -> SimpleGraph.Subgraph.deleteEdges_le is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_le SimpleGraph.Subgraph.deleteEdges_leₓ'. -/
@@ -1385,7 +1512,7 @@ theorem deleteEdges_le : G'.deleteEdges s ≤ G' := by
 
 /- warning: simple_graph.subgraph.delete_edges_le_of_le -> SimpleGraph.Subgraph.deleteEdges_le_of_le is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasSubset.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasSubset.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instHasSubsetSet.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_le_of_le SimpleGraph.Subgraph.deleteEdges_le_of_leₓ'. -/
@@ -1461,18 +1588,14 @@ def induce (G' : G.Subgraph) (s : Set V) : G.Subgraph
 #align simple_graph.subgraph.induce SimpleGraph.Subgraph.induce
 -/
 
-/- warning: simple_graph.induce_eq_coe_induce_top -> SimpleGraph.induce_eq_coe_induce_top is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (s : Set.{u1} V), Eq.{succ u1} (SimpleGraph.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) s)) (SimpleGraph.induce.{u1} V s G) (SimpleGraph.Subgraph.coe.{u1} V G (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))) s))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (s : Set.{u1} V), Eq.{succ u1} (SimpleGraph.{u1} (Set.Elem.{u1} V s)) (SimpleGraph.induce.{u1} V s G) (SimpleGraph.Subgraph.coe.{u1} V G (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) s))
-Case conversion may be inaccurate. Consider using '#align simple_graph.induce_eq_coe_induce_top SimpleGraph.induce_eq_coe_induce_topₓ'. -/
+#print SimpleGraph.induce_eq_coe_induce_top /-
 theorem SimpleGraph.induce_eq_coe_induce_top (s : Set V) :
     G.induce s = ((⊤ : G.Subgraph).induce s).coe :=
   by
   ext (v w)
   simp
 #align simple_graph.induce_eq_coe_induce_top SimpleGraph.induce_eq_coe_induce_top
+-/
 
 section Induce
 
@@ -1480,7 +1603,7 @@ variable {G' G'' : G.Subgraph} {s s' : Set V}
 
 /- warning: simple_graph.subgraph.induce_mono -> SimpleGraph.Subgraph.induce_mono is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono SimpleGraph.Subgraph.induce_monoₓ'. -/
@@ -1495,7 +1618,7 @@ theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.indu
 
 /- warning: simple_graph.subgraph.induce_mono_left -> SimpleGraph.Subgraph.induce_mono_left is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono_left SimpleGraph.Subgraph.induce_mono_leftₓ'. -/
@@ -1506,7 +1629,7 @@ theorem induce_mono_left (hg : G' ≤ G'') : G'.induce s ≤ G''.induce s :=
 
 /- warning: simple_graph.subgraph.induce_mono_right -> SimpleGraph.Subgraph.induce_mono_right is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono_right SimpleGraph.Subgraph.induce_mono_rightₓ'. -/
@@ -1517,7 +1640,7 @@ theorem induce_mono_right (hs : s ⊆ s') : G'.induce s ≤ G'.induce s' :=
 
 /- warning: simple_graph.subgraph.induce_empty -> SimpleGraph.Subgraph.induce_empty is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.induce.{u1} V G G' (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))) (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.induce.{u1} V G G' (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))) (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.hasBot.{u1} V G))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.induce.{u1} V G G' (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))) (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_empty SimpleGraph.Subgraph.induce_emptyₓ'. -/
@@ -1537,22 +1660,13 @@ theorem induce_self_verts : G'.induce G'.verts = G' :=
 #align simple_graph.subgraph.induce_self_verts SimpleGraph.Subgraph.induce_self_verts
 -/
 
-/- warning: simple_graph.subgraph.singleton_subgraph_eq_induce -> SimpleGraph.Subgraph.singletonSubgraph_eq_induce is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.hasSingleton.{u1} V) v))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.instSingletonSet.{u1} V) v))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.singleton_subgraph_eq_induce SimpleGraph.Subgraph.singletonSubgraph_eq_induceₓ'. -/
+#print SimpleGraph.Subgraph.singletonSubgraph_eq_induce /-
 theorem singletonSubgraph_eq_induce {v : V} : G.singletonSubgraph v = (⊤ : G.Subgraph).induce {v} :=
   by ext <;> simp (config := { contextual := true }) [-Set.bot_eq_empty, Prop.bot_eq_false]
 #align simple_graph.subgraph.singleton_subgraph_eq_induce SimpleGraph.Subgraph.singletonSubgraph_eq_induce
+-/
 
-/- warning: simple_graph.subgraph.subgraph_of_adj_eq_induce -> SimpleGraph.Subgraph.subgraphOfAdj_eq_induce is a dubious translation:
-lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V} (hvw : SimpleGraph.Adj.{u1} V G v w), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.subgraphOfAdj.{u1} V G v w hvw) (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))) (Insert.insert.{u1, u1} V (Set.{u1} V) (Set.hasInsert.{u1} V) v (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.hasSingleton.{u1} V) w)))
-but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V} (hvw : SimpleGraph.Adj.{u1} V G v w), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.subgraphOfAdj.{u1} V G v w hvw) (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) (Insert.insert.{u1, u1} V (Set.{u1} V) (Set.instInsertSet.{u1} V) v (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.instSingletonSet.{u1} V) w)))
-Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.subgraph_of_adj_eq_induce SimpleGraph.Subgraph.subgraphOfAdj_eq_induceₓ'. -/
+#print 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} :=
   by
@@ -1563,9 +1677,10 @@ theorem subgraphOfAdj_eq_induce {v w : V} (hvw : G.Adj v w) :
       simp only [subgraph_of_adj_adj, Quotient.eq', Sym2.rel_iff] at h
       obtain ⟨rfl, rfl⟩ | ⟨rfl, rfl⟩ := h <;> simp [hvw, hvw.symm]
     · intro h
-      simp only [induce_adj, Set.mem_insert_iff, Set.mem_singleton_iff, top_adj_iff] at h
+      simp only [induce_adj, Set.mem_insert_iff, Set.mem_singleton_iff, top_adj] at h
       obtain ⟨rfl | rfl, rfl | rfl, ha⟩ := h <;> first |exact (ha.ne rfl).elim|simp
 #align simple_graph.subgraph.subgraph_of_adj_eq_induce SimpleGraph.Subgraph.subgraphOfAdj_eq_induce
+-/
 
 end Induce
 
@@ -1619,7 +1734,7 @@ theorem deleteVerts_empty : G'.deleteVerts ∅ = G' := by simp [delete_verts]
 
 /- warning: simple_graph.subgraph.delete_verts_le -> SimpleGraph.Subgraph.deleteVerts_le is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_le SimpleGraph.Subgraph.deleteVerts_leₓ'. -/
@@ -1628,7 +1743,7 @@ theorem deleteVerts_le : G'.deleteVerts s ≤ G' := by constructor <;> simp [Set
 
 /- warning: simple_graph.subgraph.delete_verts_mono -> SimpleGraph.Subgraph.deleteVerts_mono is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_mono SimpleGraph.Subgraph.deleteVerts_monoₓ'. -/
@@ -1640,7 +1755,7 @@ theorem deleteVerts_mono {G' G'' : G.Subgraph} (h : G' ≤ G'') :
 
 /- warning: simple_graph.subgraph.delete_verts_anti -> SimpleGraph.Subgraph.deleteVerts_anti is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteSemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteLattice.toCompleteSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Order.Coframe.toCompleteLattice.{u1} (SimpleGraph.Subgraph.{u1} V G) (CompleteDistribLattice.toCoframe.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.completeDistribLattice.{u1} V G))))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
 but is expected to have type
   forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_anti SimpleGraph.Subgraph.deleteVerts_antiₓ'. -/
Diff
@@ -511,9 +511,9 @@ theorem not_bot_adj {v w : V} : ¬(⊥ : Subgraph G).Adj v w :=
 
 /- warning: simple_graph.subgraph.inf_adj -> SimpleGraph.Subgraph.inf_adj is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂) v w) (And (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂) v w) (And (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H₁ H₂) v w) (And (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H₁ H₂) v w) (And (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adjₓ'. -/
 @[simp]
 theorem inf_adj {H₁ H₂ : Subgraph G} {v w : V} : (H₁ ⊓ H₂).Adj v w ↔ H₁.Adj v w ∧ H₂.Adj v w :=
@@ -522,9 +522,9 @@ theorem inf_adj {H₁ H₂ : Subgraph G} {v w : V} : (H₁ ⊓ H₂).Adj v w ↔
 
 /- warning: simple_graph.subgraph.sup_adj -> SimpleGraph.Subgraph.sup_adj is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂) v w) (Or (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂) v w) (Or (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H₁ H₂) v w) (Or (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H₁ H₂) v w) (Or (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adjₓ'. -/
 @[simp]
 theorem sup_adj {H₁ H₂ : Subgraph G} {v w : V} : (H₁ ⊔ H₂).Adj v w ↔ H₁.Adj v w ∨ H₂.Adj v w :=
@@ -533,9 +533,9 @@ theorem sup_adj {H₁ H₂ : Subgraph G} {v w : V} : (H₁ ⊔ H₂).Adj v w ↔
 
 /- warning: simple_graph.subgraph.verts_sup -> SimpleGraph.Subgraph.verts_sup is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H')) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H')) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_sup SimpleGraph.Subgraph.verts_supₓ'. -/
 @[simp]
 theorem verts_sup {H H' : G.Subgraph} : (H ⊔ H').verts = H.verts ∪ H'.verts :=
@@ -544,9 +544,9 @@ theorem verts_sup {H H' : G.Subgraph} : (H ⊔ H').verts = H.verts ∪ H'.verts
 
 /- warning: simple_graph.subgraph.verts_inf -> SimpleGraph.Subgraph.verts_inf is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H H')) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H H')) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_inf SimpleGraph.Subgraph.verts_infₓ'. -/
 @[simp]
 theorem verts_inf {H H' : G.Subgraph} : (H ⊓ H').verts = H.verts ∩ H'.verts :=
@@ -555,9 +555,9 @@ theorem verts_inf {H H' : G.Subgraph} : (H ⊓ H').verts = H.verts ∩ H'.verts
 
 /- warning: simple_graph.subgraph.neighbor_set_sup -> SimpleGraph.Subgraph.neighborSet_sup is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_sup SimpleGraph.Subgraph.neighborSet_supₓ'. -/
 theorem neighborSet_sup {H H' : G.Subgraph} (v : V) :
     (H ⊔ H').neighborSet v = H.neighborSet v ∪ H'.neighborSet v :=
@@ -568,9 +568,9 @@ theorem neighborSet_sup {H H' : G.Subgraph} (v : V) :
 
 /- warning: simple_graph.subgraph.neighbor_set_inf -> SimpleGraph.Subgraph.neighborSet_inf is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_infₓ'. -/
 theorem neighborSet_inf {H H' : G.Subgraph} (v : V) :
     (H ⊓ H').neighborSet v = H.neighborSet v ∩ H'.neighborSet v :=
@@ -603,9 +603,9 @@ theorem edgeSet_bot : (⊥ : Subgraph G).edgeSetEmbedding = ∅ :=
 
 /- warning: simple_graph.subgraph.edge_set_inf -> SimpleGraph.Subgraph.edgeSet_inf is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instInterSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Inf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instInterSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_inf SimpleGraph.Subgraph.edgeSet_infₓ'. -/
 @[simp]
 theorem edgeSet_inf {H₁ H₂ : Subgraph G} :
@@ -615,9 +615,9 @@ theorem edgeSet_inf {H₁ H₂ : Subgraph G} :
 
 /- warning: simple_graph.subgraph.edge_set_sup -> SimpleGraph.Subgraph.edgeSet_sup is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasUnion.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasUnion.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 but is expected to have type
-  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instUnionSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instUnionSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_supₓ'. -/
 @[simp]
 theorem edgeSet_sup {H₁ H₂ : Subgraph G} :
@@ -782,9 +782,9 @@ theorem map_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.m
 
 /- warning: simple_graph.subgraph.map_sup -> SimpleGraph.Subgraph.map_sup is a dubious translation:
 lean 3 declaration is
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (HasSup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeSup.toHasSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.lattice.{u2} W G'))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (Sup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeSup.toHasSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.lattice.{u2} W G'))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
 but is expected to have type
-  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H')) (HasSup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeSup.toHasSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G'))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (Sup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H')) (Sup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeSup.toSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G'))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
 Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_sup SimpleGraph.Subgraph.map_supₓ'. -/
 theorem map_sup {G : SimpleGraph V} {G' : SimpleGraph W} (f : G →g G') {H H' : G.Subgraph} :
     (H ⊔ H').map f = H.map f ⊔ H'.map f := by
Diff
@@ -54,6 +54,7 @@ universe u v
 
 namespace SimpleGraph
 
+#print SimpleGraph.Subgraph /-
 /-- A subgraph of a `simple_graph` is a subset of vertices along with a restriction of the adjacency
 relation that is symmetric and is supported by the vertex subset.  They also form a bounded lattice.
 
@@ -67,9 +68,11 @@ structure Subgraph {V : Type u} (G : SimpleGraph V) where
   edge_vert : ∀ {v w : V}, adj v w → v ∈ verts
   symm : Symmetric adj := by obviously
 #align simple_graph.subgraph SimpleGraph.Subgraph
+-/
 
 variable {V : Type u} {W : Type v}
 
+#print SimpleGraph.singletonSubgraph /-
 /-- The one-vertex subgraph. -/
 @[simps]
 protected def singletonSubgraph (G : SimpleGraph V) (v : V) : G.Subgraph
@@ -79,7 +82,9 @@ protected def singletonSubgraph (G : SimpleGraph V) (v : V) : G.Subgraph
   adj_sub := by simp [-Set.bot_eq_empty]
   edge_vert := by simp [-Set.bot_eq_empty]
 #align simple_graph.singleton_subgraph SimpleGraph.singletonSubgraph
+-/
 
+#print SimpleGraph.subgraphOfAdj /-
 /-- The one-edge subgraph. -/
 @[simps]
 def subgraphOfAdj (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) : G.Subgraph
@@ -93,44 +98,62 @@ def subgraphOfAdj (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) : G.Subgraph
     apply_fun fun e => a ∈ e  at h
     simpa using h
 #align simple_graph.subgraph_of_adj SimpleGraph.subgraphOfAdj
+-/
 
 namespace Subgraph
 
 variable {G : SimpleGraph V}
 
+#print SimpleGraph.Subgraph.loopless /-
 protected theorem loopless (G' : Subgraph G) : Irreflexive G'.Adj := fun v h =>
   G.loopless v (G'.adj_sub h)
 #align simple_graph.subgraph.loopless SimpleGraph.Subgraph.loopless
+-/
 
+#print SimpleGraph.Subgraph.adj_comm /-
 theorem adj_comm (G' : Subgraph G) (v w : V) : G'.Adj v w ↔ G'.Adj w v :=
   ⟨fun x => G'.symm x, fun x => G'.symm x⟩
 #align simple_graph.subgraph.adj_comm SimpleGraph.Subgraph.adj_comm
+-/
 
+#print SimpleGraph.Subgraph.adj_symm /-
 @[symm]
 theorem adj_symm (G' : Subgraph G) {u v : V} (h : G'.Adj u v) : G'.Adj v u :=
   G'.symm h
 #align simple_graph.subgraph.adj_symm SimpleGraph.Subgraph.adj_symm
+-/
 
+#print SimpleGraph.Subgraph.Adj.symm /-
 protected theorem Adj.symm {G' : Subgraph G} {u v : V} (h : G'.Adj u v) : G'.Adj v u :=
   G'.symm h
 #align simple_graph.subgraph.adj.symm SimpleGraph.Subgraph.Adj.symm
+-/
 
+#print SimpleGraph.Subgraph.Adj.adj_sub /-
 protected theorem Adj.adj_sub {H : G.Subgraph} {u v : V} (h : H.Adj u v) : G.Adj u v :=
   H.adj_sub h
 #align simple_graph.subgraph.adj.adj_sub SimpleGraph.Subgraph.Adj.adj_sub
+-/
 
+#print SimpleGraph.Subgraph.Adj.fst_mem /-
 protected theorem Adj.fst_mem {H : G.Subgraph} {u v : V} (h : H.Adj u v) : u ∈ H.verts :=
   H.edge_vert h
 #align simple_graph.subgraph.adj.fst_mem SimpleGraph.Subgraph.Adj.fst_mem
+-/
 
+#print SimpleGraph.Subgraph.Adj.snd_mem /-
 protected theorem Adj.snd_mem {H : G.Subgraph} {u v : V} (h : H.Adj u v) : v ∈ H.verts :=
   h.symm.fst_mem
 #align simple_graph.subgraph.adj.snd_mem SimpleGraph.Subgraph.Adj.snd_mem
+-/
 
+#print SimpleGraph.Subgraph.Adj.ne /-
 protected theorem Adj.ne {H : G.Subgraph} {u v : V} (h : H.Adj u v) : u ≠ v :=
   h.adj_sub.Ne
 #align simple_graph.subgraph.adj.ne SimpleGraph.Subgraph.Adj.ne
+-/
 
+#print SimpleGraph.Subgraph.coe /-
 /-- Coercion from `G' : subgraph G` to a `simple_graph ↥G'.verts`. -/
 @[simps]
 protected def coe (G' : Subgraph G) : SimpleGraph G'.verts
@@ -139,27 +162,37 @@ protected def coe (G' : Subgraph G) : SimpleGraph G'.verts
   symm v w h := G'.symm h
   loopless v h := loopless G v (G'.adj_sub h)
 #align simple_graph.subgraph.coe SimpleGraph.Subgraph.coe
+-/
 
+#print SimpleGraph.Subgraph.coe_adj_sub /-
 @[simp]
 theorem coe_adj_sub (G' : Subgraph G) (u v : G'.verts) (h : G'.coe.Adj u v) : G.Adj u v :=
   G'.adj_sub h
 #align simple_graph.subgraph.coe_adj_sub SimpleGraph.Subgraph.coe_adj_sub
+-/
 
+#print SimpleGraph.Subgraph.Adj.coe /-
 -- Given `h : H.adj u v`, then `h.coe : H.coe.adj ⟨u, _⟩ ⟨v, _⟩`.
 protected theorem Adj.coe {H : G.Subgraph} {u v : V} (h : H.Adj u v) :
     H.coe.Adj ⟨u, H.edge_vert h⟩ ⟨v, H.edge_vert h.symm⟩ :=
   h
 #align simple_graph.subgraph.adj.coe SimpleGraph.Subgraph.Adj.coe
+-/
 
+#print SimpleGraph.Subgraph.IsSpanning /-
 /-- A subgraph is called a *spanning subgraph* if it contains all the vertices of `G`. -/
 def IsSpanning (G' : Subgraph G) : Prop :=
   ∀ v : V, v ∈ G'.verts
 #align simple_graph.subgraph.is_spanning SimpleGraph.Subgraph.IsSpanning
+-/
 
+#print SimpleGraph.Subgraph.isSpanning_iff /-
 theorem isSpanning_iff {G' : Subgraph G} : G'.IsSpanning ↔ G'.verts = Set.univ :=
   Set.eq_univ_iff_forall.symm
 #align simple_graph.subgraph.is_spanning_iff SimpleGraph.Subgraph.isSpanning_iff
+-/
 
+#print SimpleGraph.Subgraph.spanningCoe /-
 /-- Coercion from `subgraph G` to `simple_graph V`.  If `G'` is a spanning
 subgraph, then `G'.spanning_coe` yields an isomorphic graph.
 In general, this adds in all vertices from `V` as isolated vertices. -/
@@ -170,13 +203,17 @@ protected def spanningCoe (G' : Subgraph G) : SimpleGraph V
   symm := G'.symm
   loopless v hv := G.loopless v (G'.adj_sub hv)
 #align simple_graph.subgraph.spanning_coe SimpleGraph.Subgraph.spanningCoe
+-/
 
+#print SimpleGraph.Subgraph.Adj.of_spanningCoe /-
 @[simp]
 theorem Adj.of_spanningCoe {G' : Subgraph G} {u v : G'.verts} (h : G'.spanningCoe.Adj u v) :
     G.Adj u v :=
   G'.adj_sub h
 #align simple_graph.subgraph.adj.of_spanning_coe SimpleGraph.Subgraph.Adj.of_spanningCoe
+-/
 
+#print SimpleGraph.Subgraph.spanningCoeEquivCoeOfSpanning /-
 /-- `spanning_coe` is equivalent to `coe` for a subgraph that `is_spanning`.  -/
 @[simps]
 def spanningCoeEquivCoeOfSpanning (G' : Subgraph G) (h : G'.IsSpanning) : G'.spanningCoe ≃g G'.coe
@@ -187,43 +224,61 @@ def spanningCoeEquivCoeOfSpanning (G' : Subgraph G) (h : G'.IsSpanning) : G'.spa
   right_inv := fun ⟨v, hv⟩ => rfl
   map_rel_iff' v w := Iff.rfl
 #align simple_graph.subgraph.spanning_coe_equiv_coe_of_spanning SimpleGraph.Subgraph.spanningCoeEquivCoeOfSpanning
+-/
 
+#print SimpleGraph.Subgraph.IsInduced /-
 /-- A subgraph is called an *induced subgraph* if vertices of `G'` are adjacent if
 they are adjacent in `G`. -/
 def IsInduced (G' : Subgraph G) : Prop :=
   ∀ {v w : V}, v ∈ G'.verts → w ∈ G'.verts → G.Adj v w → G'.Adj v w
 #align simple_graph.subgraph.is_induced SimpleGraph.Subgraph.IsInduced
+-/
 
+#print SimpleGraph.Subgraph.support /-
 /-- `H.support` is the set of vertices that form edges in the subgraph `H`. -/
 def support (H : Subgraph G) : Set V :=
   Rel.dom H.Adj
 #align simple_graph.subgraph.support SimpleGraph.Subgraph.support
+-/
 
+#print SimpleGraph.Subgraph.mem_support /-
 theorem mem_support (H : Subgraph G) {v : V} : v ∈ H.support ↔ ∃ w, H.Adj v w :=
   Iff.rfl
 #align simple_graph.subgraph.mem_support SimpleGraph.Subgraph.mem_support
+-/
 
+#print SimpleGraph.Subgraph.support_subset_verts /-
 theorem support_subset_verts (H : Subgraph G) : H.support ⊆ H.verts := fun v ⟨w, h⟩ => H.edge_vert h
 #align simple_graph.subgraph.support_subset_verts SimpleGraph.Subgraph.support_subset_verts
+-/
 
+#print SimpleGraph.Subgraph.neighborSet /-
 /-- `G'.neighbor_set v` is the set of vertices adjacent to `v` in `G'`. -/
 def neighborSet (G' : Subgraph G) (v : V) : Set V :=
   setOf (G'.Adj v)
 #align simple_graph.subgraph.neighbor_set SimpleGraph.Subgraph.neighborSet
+-/
 
+#print SimpleGraph.Subgraph.neighborSet_subset /-
 theorem neighborSet_subset (G' : Subgraph G) (v : V) : G'.neighborSet v ⊆ G.neighborSet v :=
   fun w h => G'.adj_sub h
 #align simple_graph.subgraph.neighbor_set_subset SimpleGraph.Subgraph.neighborSet_subset
+-/
 
+#print SimpleGraph.Subgraph.neighborSet_subset_verts /-
 theorem neighborSet_subset_verts (G' : Subgraph G) (v : V) : G'.neighborSet v ⊆ G'.verts :=
   fun _ h => G'.edge_vert (adj_symm G' h)
 #align simple_graph.subgraph.neighbor_set_subset_verts SimpleGraph.Subgraph.neighborSet_subset_verts
+-/
 
+#print SimpleGraph.Subgraph.mem_neighborSet /-
 @[simp]
 theorem mem_neighborSet (G' : Subgraph G) (v w : V) : w ∈ G'.neighborSet v ↔ G'.Adj v w :=
   Iff.rfl
 #align simple_graph.subgraph.mem_neighbor_set SimpleGraph.Subgraph.mem_neighborSet
+-/
 
+#print SimpleGraph.Subgraph.coeNeighborSetEquiv /-
 /-- A subgraph as a graph has equivalent neighbor sets. -/
 def coeNeighborSetEquiv {G' : Subgraph G} (v : G'.verts) : G'.coe.neighborSet v ≃ G'.neighborSet v
     where
@@ -235,21 +290,33 @@ def coeNeighborSetEquiv {G' : Subgraph G} (v : G'.verts) : G'.coe.neighborSet v
   left_inv w := by simp
   right_inv w := by simp
 #align simple_graph.subgraph.coe_neighbor_set_equiv SimpleGraph.Subgraph.coeNeighborSetEquiv
+-/
 
+#print SimpleGraph.Subgraph.edgeSet /-
 /-- The edge set of `G'` consists of a subset of edges of `G`. -/
 def edgeSet (G' : Subgraph G) : Set (Sym2 V) :=
   Sym2.fromRel G'.symm
 #align simple_graph.subgraph.edge_set SimpleGraph.Subgraph.edgeSet
+-/
 
+/- warning: simple_graph.subgraph.edge_set_subset -> SimpleGraph.Subgraph.edgeSet_subset is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G), HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasSubset.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G G') (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G), HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instHasSubsetSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G G') (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V))) (SimpleGraph.{u1} V) (fun (_x : SimpleGraph.{u1} V) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : SimpleGraph.{u1} V) => Set.{u1} (Sym2.{u1} V)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V))) (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)))) (RelEmbedding.toEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : SimpleGraph.{u1} V) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : SimpleGraph.{u1} V) => LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instLESimpleGraph.{u1} V) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (Sym2.{u1} V)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (Sym2.{u1} V)) => LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instLESet.{u1} (Sym2.{u1} V)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (SimpleGraph.edgeSetEmbedding.{u1} V)) G)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_subset SimpleGraph.Subgraph.edgeSet_subsetₓ'. -/
 theorem edgeSet_subset (G' : Subgraph G) : G'.edgeSetEmbedding ⊆ G.edgeSetEmbedding := fun e =>
   Quotient.ind (fun e h => G'.adj_sub h) e
 #align simple_graph.subgraph.edge_set_subset SimpleGraph.Subgraph.edgeSet_subset
 
+#print SimpleGraph.Subgraph.mem_edgeSet /-
 @[simp]
 theorem mem_edgeSet {G' : Subgraph G} {v w : V} : ⟦(v, w)⟧ ∈ G'.edgeSetEmbedding ↔ G'.Adj v w :=
   Iff.rfl
 #align simple_graph.subgraph.mem_edge_set SimpleGraph.Subgraph.mem_edgeSet
+-/
 
+#print SimpleGraph.Subgraph.mem_verts_if_mem_edge /-
 theorem mem_verts_if_mem_edge {G' : Subgraph G} {e : Sym2 V} {v : V} (he : e ∈ G'.edgeSetEmbedding)
     (hv : v ∈ e) : v ∈ G'.verts :=
   by
@@ -260,26 +327,36 @@ theorem mem_verts_if_mem_edge {G' : Subgraph G} {e : Sym2 V} {v : V} (he : e ∈
   · exact G'.edge_vert he
   · exact G'.edge_vert (G'.symm he)
 #align simple_graph.subgraph.mem_verts_if_mem_edge SimpleGraph.Subgraph.mem_verts_if_mem_edge
+-/
 
+#print SimpleGraph.Subgraph.incidenceSet /-
 /-- The `incidence_set` is the set of edges incident to a given vertex. -/
 def incidenceSet (G' : Subgraph G) (v : V) : Set (Sym2 V) :=
   { e ∈ G'.edgeSetEmbedding | v ∈ e }
 #align simple_graph.subgraph.incidence_set SimpleGraph.Subgraph.incidenceSet
+-/
 
+#print SimpleGraph.Subgraph.incidenceSet_subset_incidenceSet /-
 theorem incidenceSet_subset_incidenceSet (G' : Subgraph G) (v : V) :
     G'.incidenceSet v ⊆ G.incidenceSet v := fun e h => ⟨G'.edgeSet_subset h.1, h.2⟩
 #align simple_graph.subgraph.incidence_set_subset_incidence_set SimpleGraph.Subgraph.incidenceSet_subset_incidenceSet
+-/
 
+#print SimpleGraph.Subgraph.incidenceSet_subset /-
 theorem incidenceSet_subset (G' : Subgraph G) (v : V) : G'.incidenceSet v ⊆ G'.edgeSetEmbedding :=
   fun _ h => h.1
 #align simple_graph.subgraph.incidence_set_subset SimpleGraph.Subgraph.incidenceSet_subset
+-/
 
+#print SimpleGraph.Subgraph.vert /-
 /-- Give a vertex as an element of the subgraph's vertex type. -/
 @[reducible]
 def vert (G' : Subgraph G) (v : V) (h : v ∈ G'.verts) : G'.verts :=
   ⟨v, h⟩
 #align simple_graph.subgraph.vert SimpleGraph.Subgraph.vert
+-/
 
+#print SimpleGraph.Subgraph.copy /-
 /--
 Create an equal copy of a subgraph (see `copy_eq`) with possibly different definitional equalities.
 See Note [range copy pattern].
@@ -292,12 +369,16 @@ def copy (G' : Subgraph G) (V'' : Set V) (hV : V'' = G'.verts) (adj' : V → V 
   edge_vert _ _ := hV.symm ▸ hadj.symm ▸ G'.edge_vert
   symm := hadj.symm ▸ G'.symm
 #align simple_graph.subgraph.copy SimpleGraph.Subgraph.copy
+-/
 
+#print SimpleGraph.Subgraph.copy_eq /-
 theorem copy_eq (G' : Subgraph G) (V'' : Set V) (hV : V'' = G'.verts) (adj' : V → V → Prop)
     (hadj : adj' = G'.Adj) : G'.copy V'' hV adj' hadj = G' :=
   Subgraph.ext _ _ hV hadj
 #align simple_graph.subgraph.copy_eq SimpleGraph.Subgraph.copy_eq
+-/
 
+#print SimpleGraph.Subgraph.union /-
 /-- The union of two subgraphs. -/
 def union (x y : Subgraph G) : Subgraph G
     where
@@ -307,7 +388,9 @@ def union (x y : Subgraph G) : Subgraph G
   edge_vert v w h := Or.cases_on h (fun h => Or.inl (x.edge_vert h)) fun h => Or.inr (y.edge_vert h)
   symm v w h := by rwa [Pi.sup_apply, Pi.sup_apply, x.adj_comm, y.adj_comm]
 #align simple_graph.subgraph.union SimpleGraph.Subgraph.union
+-/
 
+#print SimpleGraph.Subgraph.inter /-
 /-- The intersection of two subgraphs. -/
 def inter (x y : Subgraph G) : Subgraph G
     where
@@ -317,7 +400,9 @@ def inter (x y : Subgraph G) : Subgraph G
   edge_vert v w h := ⟨x.edge_vert h.1, y.edge_vert h.2⟩
   symm v w h := by rwa [Pi.inf_apply, Pi.inf_apply, x.adj_comm, y.adj_comm]
 #align simple_graph.subgraph.inter SimpleGraph.Subgraph.inter
+-/
 
+#print SimpleGraph.Subgraph.top /-
 /-- The `top` subgraph is `G` as a subgraph of itself. -/
 def top : Subgraph G where
   verts := Set.univ
@@ -326,7 +411,9 @@ def top : Subgraph G where
   edge_vert v w h := Set.mem_univ v
   symm := G.symm
 #align simple_graph.subgraph.top SimpleGraph.Subgraph.top
+-/
 
+#print SimpleGraph.Subgraph.bot /-
 /-- The `bot` subgraph is the subgraph with no vertices or edges. -/
 def bot : Subgraph G where
   verts := ∅
@@ -335,11 +422,14 @@ def bot : Subgraph G where
   edge_vert v w h := False.ndrec _ h
   symm u v h := h
 #align simple_graph.subgraph.bot SimpleGraph.Subgraph.bot
+-/
 
+#print SimpleGraph.Subgraph.IsSubgraph /-
 /-- The relation that one subgraph is a subgraph of another. -/
 def IsSubgraph (x y : Subgraph G) : Prop :=
   x.verts ⊆ y.verts ∧ ∀ ⦃v w : V⦄, x.Adj v w → y.Adj v w
 #align simple_graph.subgraph.is_subgraph SimpleGraph.Subgraph.IsSubgraph
+-/
 
 instance : Lattice (Subgraph G) where
   le := IsSubgraph
@@ -367,52 +457,108 @@ instance : BoundedOrder (Subgraph G) where
   le_top x := ⟨Set.subset_univ _, fun v w h => x.adj_sub h⟩
   bot_le x := ⟨Set.empty_subset _, fun v w h => False.ndrec _ h⟩
 
+#print SimpleGraph.Subgraph.subgraphInhabited /-
 @[simps]
 instance subgraphInhabited : Inhabited (Subgraph G) :=
   ⟨⊥⟩
 #align simple_graph.subgraph.subgraph_inhabited SimpleGraph.Subgraph.subgraphInhabited
+-/
 
+/- warning: simple_graph.subgraph.top_verts -> SimpleGraph.Subgraph.top_verts is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (Set.univ.{u1} V)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (Set.univ.{u1} V)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.top_verts SimpleGraph.Subgraph.top_vertsₓ'. -/
 -- TODO simp lemmas for the other lattice operations on subgraphs
 @[simp]
 theorem top_verts : (⊤ : Subgraph G).verts = Set.univ :=
   rfl
 #align simple_graph.subgraph.top_verts SimpleGraph.Subgraph.top_verts
 
+/- warning: simple_graph.subgraph.top_adj_iff -> SimpleGraph.Subgraph.top_adj_iff is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))) v w) (SimpleGraph.Adj.{u1} V G v w)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) v w) (SimpleGraph.Adj.{u1} V G v w)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.top_adj_iff SimpleGraph.Subgraph.top_adj_iffₓ'. -/
 @[simp]
 theorem top_adj_iff {v w : V} : (⊤ : Subgraph G).Adj v w ↔ G.Adj v w :=
   Iff.rfl
 #align simple_graph.subgraph.top_adj_iff SimpleGraph.Subgraph.top_adj_iff
 
+/- warning: simple_graph.subgraph.bot_verts -> SimpleGraph.Subgraph.bot_verts is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.bot_verts SimpleGraph.Subgraph.bot_vertsₓ'. -/
 @[simp]
 theorem bot_verts : (⊥ : Subgraph G).verts = ∅ :=
   rfl
 #align simple_graph.subgraph.bot_verts SimpleGraph.Subgraph.bot_verts
 
+/- warning: simple_graph.subgraph.not_bot_adj -> SimpleGraph.Subgraph.not_bot_adj is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V}, Not (SimpleGraph.Subgraph.Adj.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))) v w)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V}, Not (SimpleGraph.Subgraph.Adj.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) v w)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.not_bot_adj SimpleGraph.Subgraph.not_bot_adjₓ'. -/
 @[simp]
 theorem not_bot_adj {v w : V} : ¬(⊥ : Subgraph G).Adj v w :=
   not_false
 #align simple_graph.subgraph.not_bot_adj SimpleGraph.Subgraph.not_bot_adj
 
+/- warning: simple_graph.subgraph.inf_adj -> SimpleGraph.Subgraph.inf_adj is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂) v w) (And (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H₁ H₂) v w) (And (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adjₓ'. -/
 @[simp]
 theorem inf_adj {H₁ H₂ : Subgraph G} {v w : V} : (H₁ ⊓ H₂).Adj v w ↔ H₁.Adj v w ∧ H₂.Adj v w :=
   Iff.rfl
 #align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adj
 
+/- warning: simple_graph.subgraph.sup_adj -> SimpleGraph.Subgraph.sup_adj is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂) v w) (Or (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G} {v : V} {w : V}, Iff (SimpleGraph.Subgraph.Adj.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H₁ H₂) v w) (Or (SimpleGraph.Subgraph.Adj.{u1} V G H₁ v w) (SimpleGraph.Subgraph.Adj.{u1} V G H₂ v w))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adjₓ'. -/
 @[simp]
 theorem sup_adj {H₁ H₂ : Subgraph G} {v w : V} : (H₁ ⊔ H₂).Adj v w ↔ H₁.Adj v w ∨ H₂.Adj v w :=
   Iff.rfl
 #align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adj
 
+/- warning: simple_graph.subgraph.verts_sup -> SimpleGraph.Subgraph.verts_sup is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H')) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_sup SimpleGraph.Subgraph.verts_supₓ'. -/
 @[simp]
 theorem verts_sup {H H' : G.Subgraph} : (H ⊔ H').verts = H.verts ∪ H'.verts :=
   rfl
 #align simple_graph.subgraph.verts_sup SimpleGraph.Subgraph.verts_sup
 
+/- warning: simple_graph.subgraph.verts_inf -> SimpleGraph.Subgraph.verts_inf is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H H')) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G H) (SimpleGraph.Subgraph.verts.{u1} V G H'))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.verts_inf SimpleGraph.Subgraph.verts_infₓ'. -/
 @[simp]
 theorem verts_inf {H H' : G.Subgraph} : (H ⊓ H').verts = H.verts ∩ H'.verts :=
   rfl
 #align simple_graph.subgraph.verts_inf SimpleGraph.Subgraph.verts_inf
 
+/- warning: simple_graph.subgraph.neighbor_set_sup -> SimpleGraph.Subgraph.neighborSet_sup is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H') v) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_sup SimpleGraph.Subgraph.neighborSet_supₓ'. -/
 theorem neighborSet_sup {H H' : G.Subgraph} (v : V) :
     (H ⊔ H').neighborSet v = H.neighborSet v ∪ H'.neighborSet v :=
   by
@@ -420,6 +566,12 @@ theorem neighborSet_sup {H H' : G.Subgraph} (v : V) :
   simp
 #align simple_graph.subgraph.neighbor_set_sup SimpleGraph.Subgraph.neighborSet_sup
 
+/- warning: simple_graph.subgraph.neighbor_set_inf -> SimpleGraph.Subgraph.neighborSet_inf is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G} (v : V), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H H') v) (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G H v) (SimpleGraph.Subgraph.neighborSet.{u1} V G H' v))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_infₓ'. -/
 theorem neighborSet_inf {H H' : G.Subgraph} (v : V) :
     (H ⊓ H').neighborSet v = H.neighborSet v ∩ H'.neighborSet v :=
   by
@@ -427,28 +579,58 @@ theorem neighborSet_inf {H H' : G.Subgraph} (v : V) :
   simp
 #align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_inf
 
+/- warning: simple_graph.subgraph.edge_set_top -> SimpleGraph.Subgraph.edgeSet_top is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (coeFn.{succ u1, succ u1} (OrderEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.hasLe.{u1} V) (Set.hasLe.{u1} (Sym2.{u1} V))) (fun (_x : RelEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) => (SimpleGraph.{u1} V) -> (Set.{u1} (Sym2.{u1} V))) (RelEmbedding.hasCoeToFun.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V)) (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)))) (SimpleGraph.edgeSetEmbedding.{u1} V) G)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (FunLike.coe.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V))) (SimpleGraph.{u1} V) (fun (_x : SimpleGraph.{u1} V) => (fun (x._@.Mathlib.Data.FunLike.Embedding._hyg.19 : SimpleGraph.{u1} V) => Set.{u1} (Sym2.{u1} V)) _x) (EmbeddingLike.toFunLike.{succ u1, succ u1, succ u1} (Function.Embedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V))) (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (Function.instEmbeddingLikeEmbedding.{succ u1, succ u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)))) (RelEmbedding.toEmbedding.{u1, u1} (SimpleGraph.{u1} V) (Set.{u1} (Sym2.{u1} V)) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.680 : SimpleGraph.{u1} V) (x._@.Mathlib.Order.Hom.Basic._hyg.682 : SimpleGraph.{u1} V) => LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instLESimpleGraph.{u1} V) x._@.Mathlib.Order.Hom.Basic._hyg.680 x._@.Mathlib.Order.Hom.Basic._hyg.682) (fun (x._@.Mathlib.Order.Hom.Basic._hyg.695 : Set.{u1} (Sym2.{u1} V)) (x._@.Mathlib.Order.Hom.Basic._hyg.697 : Set.{u1} (Sym2.{u1} V)) => LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instLESet.{u1} (Sym2.{u1} V)) x._@.Mathlib.Order.Hom.Basic._hyg.695 x._@.Mathlib.Order.Hom.Basic._hyg.697) (SimpleGraph.edgeSetEmbedding.{u1} V)) G)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_top SimpleGraph.Subgraph.edgeSet_topₓ'. -/
 @[simp]
 theorem edgeSet_top : (⊤ : Subgraph G).edgeSetEmbedding = G.edgeSetEmbedding :=
   rfl
 #align simple_graph.subgraph.edge_set_top SimpleGraph.Subgraph.edgeSet_top
 
+/- warning: simple_graph.subgraph.edge_set_bot -> SimpleGraph.Subgraph.edgeSet_bot is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasEmptyc.{u1} (Sym2.{u1} V)))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (EmptyCollection.emptyCollection.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instEmptyCollectionSet.{u1} (Sym2.{u1} V)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_bot SimpleGraph.Subgraph.edgeSet_botₓ'. -/
 @[simp]
 theorem edgeSet_bot : (⊥ : Subgraph G).edgeSetEmbedding = ∅ :=
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_bot SimpleGraph.Subgraph.edgeSet_bot
 
+/- warning: simple_graph.subgraph.edge_set_inf -> SimpleGraph.Subgraph.edgeSet_inf is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (HasInf.inf.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toHasInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)) H₁ H₂)) (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instInterSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_inf SimpleGraph.Subgraph.edgeSet_infₓ'. -/
 @[simp]
 theorem edgeSet_inf {H₁ H₂ : Subgraph G} :
     (H₁ ⊓ H₂).edgeSetEmbedding = H₁.edgeSetEmbedding ∩ H₂.edgeSetEmbedding :=
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_inf SimpleGraph.Subgraph.edgeSet_inf
 
+/- warning: simple_graph.subgraph.edge_set_sup -> SimpleGraph.Subgraph.edgeSet_sup is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasUnion.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (Set.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H₁ H₂)) (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instUnionSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_supₓ'. -/
 @[simp]
 theorem edgeSet_sup {H₁ H₂ : Subgraph G} :
     (H₁ ⊔ H₂).edgeSetEmbedding = H₁.edgeSetEmbedding ∪ H₂.edgeSetEmbedding :=
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_sup
 
+/- warning: simple_graph.subgraph.spanning_coe_top -> SimpleGraph.Subgraph.spanningCoe_top is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) G
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) G
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.spanning_coe_top SimpleGraph.Subgraph.spanningCoe_topₓ'. -/
 @[simp]
 theorem spanningCoe_top : (⊤ : Subgraph G).spanningCoe = G :=
   by
@@ -456,11 +638,18 @@ theorem spanningCoe_top : (⊤ : Subgraph G).spanningCoe = G :=
   rfl
 #align simple_graph.subgraph.spanning_coe_top SimpleGraph.Subgraph.spanningCoe_top
 
+/- warning: simple_graph.subgraph.spanning_coe_bot -> SimpleGraph.Subgraph.spanningCoe_bot is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (Bot.bot.{u1} (SimpleGraph.{u1} V) (BooleanAlgebra.toHasBot.{u1} (SimpleGraph.{u1} V) (SimpleGraph.booleanAlgebra.{u1} V)))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, Eq.{succ u1} (SimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (Bot.bot.{u1} (SimpleGraph.{u1} V) (BooleanAlgebra.toBot.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instBooleanAlgebraSimpleGraph.{u1} V)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.spanning_coe_bot SimpleGraph.Subgraph.spanningCoe_botₓ'. -/
 @[simp]
 theorem spanningCoe_bot : (⊥ : Subgraph G).spanningCoe = ⊥ :=
   rfl
 #align simple_graph.subgraph.spanning_coe_bot SimpleGraph.Subgraph.spanningCoe_bot
 
+#print SimpleGraph.toSubgraph /-
 /-- Turn a subgraph of a `simple_graph` into a member of its subgraph type. -/
 @[simps]
 def SimpleGraph.toSubgraph (H : SimpleGraph V) (h : H ≤ G) : G.Subgraph
@@ -471,20 +660,41 @@ def SimpleGraph.toSubgraph (H : SimpleGraph V) (h : H ≤ G) : G.Subgraph
   edge_vert v w h := Set.mem_univ v
   symm := H.symm
 #align simple_graph.to_subgraph SimpleGraph.toSubgraph
+-/
 
+/- warning: simple_graph.subgraph.support_mono -> SimpleGraph.Subgraph.support_mono is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H H') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.support.{u1} V G H) (SimpleGraph.Subgraph.support.{u1} V G H'))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.support_mono SimpleGraph.Subgraph.support_monoₓ'. -/
 theorem support_mono {H H' : Subgraph G} (h : H ≤ H') : H.support ⊆ H'.support :=
   Rel.dom_mono h.2
 #align simple_graph.subgraph.support_mono SimpleGraph.Subgraph.support_mono
 
+#print SimpleGraph.toSubgraph.isSpanning /-
 theorem SimpleGraph.toSubgraph.isSpanning (H : SimpleGraph V) (h : H ≤ G) :
     (H.toSubgraph h).IsSpanning :=
   Set.mem_univ
 #align simple_graph.to_subgraph.is_spanning SimpleGraph.toSubgraph.isSpanning
+-/
 
+/- warning: simple_graph.subgraph.spanning_coe_le_of_le -> SimpleGraph.Subgraph.spanningCoe_le_of_le is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.hasLe.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H H') -> (LE.le.{u1} (SimpleGraph.{u1} V) (SimpleGraph.instLESimpleGraph.{u1} V) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H) (SimpleGraph.Subgraph.spanningCoe.{u1} V G H'))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.spanning_coe_le_of_le SimpleGraph.Subgraph.spanningCoe_le_of_leₓ'. -/
 theorem spanningCoe_le_of_le {H H' : Subgraph G} (h : H ≤ H') : H.spanningCoe ≤ H'.spanningCoe :=
   h.2
 #align simple_graph.subgraph.spanning_coe_le_of_le SimpleGraph.Subgraph.spanningCoe_le_of_le
 
+/- warning: simple_graph.subgraph.top_equiv -> SimpleGraph.Subgraph.topEquiv is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))))) V (SimpleGraph.Subgraph.coe.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) G
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))))) V (SimpleGraph.Subgraph.coe.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) G
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.top_equiv SimpleGraph.Subgraph.topEquivₓ'. -/
 /-- The top of the `subgraph G` lattice is equivalent to the graph itself. -/
 def topEquiv : (⊤ : Subgraph G).coe ≃g G
     where
@@ -495,6 +705,12 @@ def topEquiv : (⊤ : Subgraph G).coe ≃g G
   map_rel_iff' a b := Iff.rfl
 #align simple_graph.subgraph.top_equiv SimpleGraph.Subgraph.topEquiv
 
+/- warning: simple_graph.subgraph.bot_equiv -> SimpleGraph.Subgraph.botEquiv is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, 0} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))))) Empty (SimpleGraph.Subgraph.coe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))) (Bot.bot.{0} (SimpleGraph.{0} Empty) (BooleanAlgebra.toHasBot.{0} (SimpleGraph.{0} Empty) (SimpleGraph.booleanAlgebra.{0} Empty)))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V}, SimpleGraph.Iso.{u1, 0} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))))) Empty (SimpleGraph.Subgraph.coe.{u1} V G (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))) (Bot.bot.{0} (SimpleGraph.{0} Empty) (BooleanAlgebra.toBot.{0} (SimpleGraph.{0} Empty) (SimpleGraph.instBooleanAlgebraSimpleGraph.{0} Empty)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.bot_equiv SimpleGraph.Subgraph.botEquivₓ'. -/
 /-- The bottom of the `subgraph G` lattice is equivalent to the empty graph on the empty
 vertex type. -/
 def botEquiv : (⊥ : Subgraph G).coe ≃g (⊥ : SimpleGraph Empty)
@@ -506,15 +722,28 @@ def botEquiv : (⊥ : Subgraph G).coe ≃g (⊥ : SimpleGraph Empty)
   map_rel_iff' a b := Iff.rfl
 #align simple_graph.subgraph.bot_equiv SimpleGraph.Subgraph.botEquiv
 
+/- warning: simple_graph.subgraph.edge_set_mono -> SimpleGraph.Subgraph.edgeSet_mono is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasLe.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H₁ H₂) -> (LE.le.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instLESet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.edge_set_mono SimpleGraph.Subgraph.edgeSet_monoₓ'. -/
 theorem edgeSet_mono {H₁ H₂ : Subgraph G} (h : H₁ ≤ H₂) :
     H₁.edgeSetEmbedding ≤ H₂.edgeSetEmbedding := fun e => Sym2.ind h.2 e
 #align simple_graph.subgraph.edge_set_mono SimpleGraph.Subgraph.edgeSet_mono
 
+/- warning: disjoint.edge_set -> Disjoint.edgeSet is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.completeBooleanAlgebra.{u1} (Sym2.{u1} V))))))) (GeneralizedBooleanAlgebra.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (BooleanAlgebra.toGeneralizedBooleanAlgebra.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.booleanAlgebra.{u1} (Sym2.{u1} V)))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {H₁ : SimpleGraph.Subgraph.{u1} V G} {H₂ : SimpleGraph.Subgraph.{u1} V G}, (Disjoint.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)) H₁ H₂) -> (Disjoint.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (BoundedOrder.toOrderBot.{u1} (Set.{u1} (Sym2.{u1} V)) (Preorder.toLE.{u1} (Set.{u1} (Sym2.{u1} V)) (PartialOrder.toPreorder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteSemilatticeInf.toPartialOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteLattice.toCompleteSemilatticeInf.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))))) (CompleteLattice.toBoundedOrder.{u1} (Set.{u1} (Sym2.{u1} V)) (Order.Coframe.toCompleteLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteDistribLattice.toCoframe.{u1} (Set.{u1} (Sym2.{u1} V)) (CompleteBooleanAlgebra.toCompleteDistribLattice.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instCompleteBooleanAlgebraSet.{u1} (Sym2.{u1} V))))))) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₁) (SimpleGraph.Subgraph.edgeSet.{u1} V G H₂))
+Case conversion may be inaccurate. Consider using '#align disjoint.edge_set Disjoint.edgeSetₓ'. -/
 theorem Disjoint.edgeSet {H₁ H₂ : Subgraph G} (h : Disjoint H₁ H₂) :
     Disjoint H₁.edgeSetEmbedding H₂.edgeSetEmbedding :=
   disjoint_iff_inf_le.mpr <| by simpa using edge_set_mono h.le_bot
 #align disjoint.edge_set Disjoint.edgeSet
 
+#print SimpleGraph.Subgraph.map /-
 /-- Graph homomorphisms induce a covariant function on subgraphs. -/
 @[simps]
 protected def map {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) : G'.Subgraph
@@ -531,7 +760,14 @@ protected def map {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) : G'.Sub
     rintro _ _ ⟨u, v, h, rfl, rfl⟩
     exact ⟨v, u, H.symm h, rfl, rfl⟩
 #align simple_graph.subgraph.map SimpleGraph.Subgraph.map
+-/
 
+/- warning: simple_graph.subgraph.map_monotone -> SimpleGraph.Subgraph.map_monotone is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G)))) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.lattice.{u2} W G')))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f)
+but is expected to have type
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u1, u2} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)))) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G')))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_monotone SimpleGraph.Subgraph.map_monotoneₓ'. -/
 theorem map_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.map f) :=
   by
   intro H H' h
@@ -544,6 +780,12 @@ theorem map_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.m
     exact ⟨_, _, h.2 ha, rfl, rfl⟩
 #align simple_graph.subgraph.map_monotone SimpleGraph.Subgraph.map_monotone
 
+/- warning: simple_graph.subgraph.map_sup -> SimpleGraph.Subgraph.map_sup is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))) H H')) (HasSup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeSup.toHasSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.lattice.{u2} W G'))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
+but is expected to have type
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') {H : SimpleGraph.Subgraph.{u1} V G} {H' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f (HasSup.sup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeSup.toHasSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeSup.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))) H H')) (HasSup.sup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeSup.toHasSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeSup.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G'))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H'))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_sup SimpleGraph.Subgraph.map_supₓ'. -/
 theorem map_sup {G : SimpleGraph V} {G' : SimpleGraph W} (f : G →g G') {H H' : G.Subgraph} :
     (H ⊔ H').map f = H.map f ⊔ H'.map f := by
   ext1
@@ -559,6 +801,7 @@ theorem map_sup {G : SimpleGraph V} {G' : SimpleGraph W} (f : G →g G') {H H' :
       · exact ⟨_, _, Or.inr h, rfl, rfl⟩
 #align simple_graph.subgraph.map_sup SimpleGraph.Subgraph.map_sup
 
+#print SimpleGraph.Subgraph.comap /-
 /-- Graph homomorphisms induce a contravariant function on subgraphs. -/
 @[simps]
 protected def comap {G' : SimpleGraph W} (f : G →g G') (H : G'.Subgraph) : G.Subgraph
@@ -572,7 +815,14 @@ protected def comap {G' : SimpleGraph W} (f : G →g G') (H : G'.Subgraph) : G.S
     rintro v w ⟨ga, ha⟩
     simp [H.edge_vert ha]
 #align simple_graph.subgraph.comap SimpleGraph.Subgraph.comap
+-/
 
+/- warning: simple_graph.subgraph.comap_monotone -> SimpleGraph.Subgraph.comap_monotone is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u2, u1} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.lattice.{u2} W G')))) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G)))) (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f)
+but is expected to have type
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G'), Monotone.{u2, u1} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G')))) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G)))) (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.comap_monotone SimpleGraph.Subgraph.comap_monotoneₓ'. -/
 theorem comap_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph.comap f) :=
   by
   intro H H' h
@@ -586,6 +836,12 @@ theorem comap_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph
     apply h.2
 #align simple_graph.subgraph.comap_monotone SimpleGraph.Subgraph.comap_monotone
 
+/- warning: simple_graph.subgraph.map_le_iff_le_comap -> SimpleGraph.Subgraph.map_le_iff_le_comap is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toLE.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.lattice.{u2} W G'))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
+but is expected to have type
+  forall {V : Type.{u1}} {W : Type.{u2}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.{u2} W} (f : SimpleGraph.Hom.{u1, u2} V W G G') (H : SimpleGraph.Subgraph.{u1} V G) (H' : SimpleGraph.Subgraph.{u2} W G'), Iff (LE.le.{u2} (SimpleGraph.Subgraph.{u2} W G') (Preorder.toLE.{u2} (SimpleGraph.Subgraph.{u2} W G') (PartialOrder.toPreorder.{u2} (SimpleGraph.Subgraph.{u2} W G') (SemilatticeInf.toPartialOrder.{u2} (SimpleGraph.Subgraph.{u2} W G') (Lattice.toSemilatticeInf.{u2} (SimpleGraph.Subgraph.{u2} W G') (SimpleGraph.Subgraph.instLatticeSubgraph.{u2} W G'))))) (SimpleGraph.Subgraph.map.{u1, u2} V W G G' f H) H') (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) H (SimpleGraph.Subgraph.comap.{u1, u2} V W G G' f H'))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.map_le_iff_le_comap SimpleGraph.Subgraph.map_le_iff_le_comapₓ'. -/
 theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph) (H' : G'.Subgraph) :
     H.map f ≤ H' ↔ H ≤ H'.comap f :=
   by
@@ -604,6 +860,12 @@ theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph
     exact this.2
 #align simple_graph.subgraph.map_le_iff_le_comap SimpleGraph.Subgraph.map_le_iff_le_comap
 
+/- warning: simple_graph.subgraph.inclusion -> SimpleGraph.Subgraph.inclusion is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) x y) -> (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) x y) -> (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion SimpleGraph.Subgraph.inclusionₓ'. -/
 /-- Given two subgraphs, one a subgraph of the other, there is an induced injective homomorphism of
 the subgraphs as graphs. -/
 @[simps]
@@ -613,12 +875,19 @@ def inclusion {x y : Subgraph G} (h : x ≤ y) : x.coe →g y.coe
   map_rel' v w hvw := h.2 hvw
 #align simple_graph.subgraph.inclusion SimpleGraph.Subgraph.inclusion
 
+/- warning: simple_graph.subgraph.inclusion.injective -> SimpleGraph.Subgraph.inclusion.injective is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) x y), Function.Injective.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (coeFn.{succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (fun (_x : RelHom.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) => (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) -> (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y))) (RelHom.hasCoeToFun.{u1, u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G} (h : LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) x y), Function.Injective.{succ u1, succ u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (FunLike.coe.{succ u1, succ u1, succ u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (fun (_x : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => (fun (x._@.Mathlib.Order.RelIso.Basic._hyg.867 : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) => Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) _x) (RelHomClass.toFunLike.{u1, u1, u1} (SimpleGraph.Hom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G x) (SimpleGraph.Subgraph.coe.{u1} V G y)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)) (RelHom.instRelHomClassRelHom.{u1, u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G x)) (SimpleGraph.Subgraph.coe.{u1} V G x)) (SimpleGraph.Adj.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G y)) (SimpleGraph.Subgraph.coe.{u1} V G y)))) (SimpleGraph.Subgraph.inclusion.{u1} V G x y h))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injectiveₓ'. -/
 theorem inclusion.injective {x y : Subgraph G} (h : x ≤ y) : Function.Injective (inclusion h) :=
   fun v w h => by
   simp only [inclusion, RelHom.coeFn_mk, Subtype.mk_eq_mk] at h
   exact Subtype.ext h
 #align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injective
 
+#print SimpleGraph.Subgraph.hom /-
 /-- There is an induced injective homomorphism of a subgraph of `G` into `G`. -/
 @[simps]
 protected def hom (x : Subgraph G) : x.coe →g G
@@ -626,10 +895,14 @@ protected def hom (x : Subgraph G) : x.coe →g G
   toFun v := v
   map_rel' v w hvw := x.adj_sub hvw
 #align simple_graph.subgraph.hom SimpleGraph.Subgraph.hom
+-/
 
+#print SimpleGraph.Subgraph.hom.injective /-
 theorem hom.injective {x : Subgraph G} : Function.Injective x.hom := fun v w h => Subtype.ext h
 #align simple_graph.subgraph.hom.injective SimpleGraph.Subgraph.hom.injective
+-/
 
+#print SimpleGraph.Subgraph.spanningHom /-
 /-- There is an induced injective homomorphism of a subgraph of `G` as
 a spanning subgraph into `G`. -/
 @[simps]
@@ -638,25 +911,44 @@ def spanningHom (x : Subgraph G) : x.spanningCoe →g G
   toFun := id
   map_rel' v w hvw := x.adj_sub hvw
 #align simple_graph.subgraph.spanning_hom SimpleGraph.Subgraph.spanningHom
+-/
 
+#print SimpleGraph.Subgraph.spanningHom.injective /-
 theorem spanningHom.injective {x : Subgraph G} : Function.Injective x.spanningHom := fun v w h => h
 #align simple_graph.subgraph.spanning_hom.injective SimpleGraph.Subgraph.spanningHom.injective
+-/
 
+/- warning: simple_graph.subgraph.neighbor_set_subset_of_subgraph -> SimpleGraph.Subgraph.neighborSet_subset_of_subgraph is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {x : SimpleGraph.Subgraph.{u1} V G} {y : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) x y) -> (forall (v : V), HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G x v) (SimpleGraph.Subgraph.neighborSet.{u1} V G y v))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.neighbor_set_subset_of_subgraph SimpleGraph.Subgraph.neighborSet_subset_of_subgraphₓ'. -/
 theorem neighborSet_subset_of_subgraph {x y : Subgraph G} (h : x ≤ y) (v : V) :
     x.neighborSet v ⊆ y.neighborSet v := fun w h' => h.2 h'
 #align simple_graph.subgraph.neighbor_set_subset_of_subgraph SimpleGraph.Subgraph.neighborSet_subset_of_subgraph
 
+#print SimpleGraph.Subgraph.neighborSet.decidablePred /-
 instance neighborSet.decidablePred (G' : Subgraph G) [h : DecidableRel G'.Adj] (v : V) :
     DecidablePred (· ∈ G'.neighborSet v) :=
   h v
 #align simple_graph.subgraph.neighbor_set.decidable_pred SimpleGraph.Subgraph.neighborSet.decidablePred
+-/
 
+#print SimpleGraph.Subgraph.finiteAt /-
 /-- If a graph is locally finite at a vertex, then so is a subgraph of that graph. -/
 instance finiteAt {G' : Subgraph G} (v : G'.verts) [DecidableRel G'.Adj]
     [Fintype (G.neighborSet v)] : Fintype (G'.neighborSet v) :=
   Set.fintypeSubset (G.neighborSet v) (G'.neighborSet_subset v)
 #align simple_graph.subgraph.finite_at SimpleGraph.Subgraph.finiteAt
+-/
 
+/- warning: simple_graph.subgraph.finite_at_of_subgraph -> SimpleGraph.Subgraph.finiteAtOfSubgraph is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) G' G'') -> (forall (v : coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v)))], Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' ((fun (a : Type.{u1}) (b : Type.{u1}) [self : HasLiftT.{succ u1, succ u1} a b] => self.0) (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (HasLiftT.mk.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (CoeTCₓ.coe.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeBase.{succ u1, succ u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G')) V (coeSubtype.{succ u1} V (fun (x : V) => Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')))))) v))))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} [_inst_1 : DecidableRel.{succ u1} V (SimpleGraph.Subgraph.Adj.{u1} V G G')], (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (forall (v : Set.Elem.{u1} V (SimpleGraph.Subgraph.verts.{u1} V G G')) [hf : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v)))], Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' (Subtype.val.{succ u1} V (fun (x : V) => Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) x (SimpleGraph.Subgraph.verts.{u1} V G G')) v))))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.finite_at_of_subgraph SimpleGraph.Subgraph.finiteAtOfSubgraphₓ'. -/
 /-- If a subgraph is locally finite at a vertex, then so are subgraphs of that subgraph.
 
 This is not an instance because `G''` cannot be inferred. -/
@@ -669,39 +961,56 @@ instance (G' : Subgraph G) [Fintype G'.verts] (v : V) [DecidablePred (· ∈ G'.
     Fintype (G'.neighborSet v) :=
   Set.fintypeSubset G'.verts (neighborSet_subset_verts G' v)
 
+#print SimpleGraph.Subgraph.coeFiniteAt /-
 instance coeFiniteAt {G' : Subgraph G} (v : G'.verts) [Fintype (G'.neighborSet v)] :
     Fintype (G'.coe.neighborSet v) :=
   Fintype.ofEquiv _ (coeNeighborSetEquiv v).symm
 #align simple_graph.subgraph.coe_finite_at SimpleGraph.Subgraph.coeFiniteAt
+-/
 
+#print SimpleGraph.Subgraph.IsSpanning.card_verts /-
 theorem IsSpanning.card_verts [Fintype V] {G' : Subgraph G} [Fintype G'.verts] (h : G'.IsSpanning) :
     G'.verts.toFinset.card = Fintype.card V :=
   by
   rw [is_spanning_iff] at h
   simpa [h]
 #align simple_graph.subgraph.is_spanning.card_verts SimpleGraph.Subgraph.IsSpanning.card_verts
+-/
 
+#print SimpleGraph.Subgraph.degree /-
 /-- The degree of a vertex in a subgraph. It's zero for vertices outside the subgraph. -/
 def degree (G' : Subgraph G) (v : V) [Fintype (G'.neighborSet v)] : ℕ :=
   Fintype.card (G'.neighborSet v)
 #align simple_graph.subgraph.degree SimpleGraph.Subgraph.degree
+-/
 
+#print SimpleGraph.Subgraph.finset_card_neighborSet_eq_degree /-
 theorem finset_card_neighborSet_eq_degree {G' : Subgraph G} {v : V} [Fintype (G'.neighborSet v)] :
     (G'.neighborSet v).toFinset.card = G'.degree v := by rw [degree, Set.toFinset_card]
 #align simple_graph.subgraph.finset_card_neighbor_set_eq_degree SimpleGraph.Subgraph.finset_card_neighborSet_eq_degree
+-/
 
+#print SimpleGraph.Subgraph.degree_le /-
 theorem degree_le (G' : Subgraph G) (v : V) [Fintype (G'.neighborSet v)]
     [Fintype (G.neighborSet v)] : G'.degree v ≤ G.degree v :=
   by
   rw [← card_neighbor_set_eq_degree]
   exact Set.card_le_of_subset (G'.neighbor_set_subset v)
 #align simple_graph.subgraph.degree_le SimpleGraph.Subgraph.degree_le
+-/
 
+/- warning: simple_graph.subgraph.degree_le' -> SimpleGraph.Subgraph.degree_le' is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat Nat.hasLe (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (G' : SimpleGraph.Subgraph.{u1} V G) (G'' : SimpleGraph.Subgraph.{u1} V G), (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (forall (v : V) [_inst_1 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G' v))] [_inst_2 : Fintype.{u1} (Set.Elem.{u1} V (SimpleGraph.Subgraph.neighborSet.{u1} V G G'' v))], LE.le.{0} Nat instLENat (SimpleGraph.Subgraph.degree.{u1} V G G' v _inst_1) (SimpleGraph.Subgraph.degree.{u1} V G G'' v _inst_2))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.degree_le' SimpleGraph.Subgraph.degree_le'ₓ'. -/
 theorem degree_le' (G' G'' : Subgraph G) (h : G' ≤ G'') (v : V) [Fintype (G'.neighborSet v)]
     [Fintype (G''.neighborSet v)] : G'.degree v ≤ G''.degree v :=
   Set.card_le_of_subset (neighborSet_subset_of_subgraph h v)
 #align simple_graph.subgraph.degree_le' SimpleGraph.Subgraph.degree_le'
 
+#print SimpleGraph.Subgraph.coe_degree /-
 @[simp]
 theorem coe_degree (G' : Subgraph G) (v : G'.verts) [Fintype (G'.coe.neighborSet v)]
     [Fintype (G'.neighborSet v)] : G'.coe.degree v = G'.degree v :=
@@ -709,7 +1018,9 @@ theorem coe_degree (G' : Subgraph G) (v : G'.verts) [Fintype (G'.coe.neighborSet
   rw [← card_neighbor_set_eq_degree]
   exact Fintype.card_congr (coe_neighbor_set_equiv v)
 #align simple_graph.subgraph.coe_degree SimpleGraph.Subgraph.coe_degree
+-/
 
+#print SimpleGraph.Subgraph.degree_spanningCoe /-
 @[simp]
 theorem degree_spanningCoe {G' : G.Subgraph} (v : V) [Fintype (G'.neighborSet v)]
     [Fintype (G'.spanningCoe.neighborSet v)] : G'.spanningCoe.degree v = G'.degree v :=
@@ -717,13 +1028,16 @@ theorem degree_spanningCoe {G' : G.Subgraph} (v : V) [Fintype (G'.neighborSet v)
   rw [← card_neighbor_set_eq_degree, subgraph.degree]
   congr
 #align simple_graph.subgraph.degree_spanning_coe SimpleGraph.Subgraph.degree_spanningCoe
+-/
 
+#print SimpleGraph.Subgraph.degree_eq_one_iff_unique_adj /-
 theorem degree_eq_one_iff_unique_adj {G' : Subgraph G} {v : V} [Fintype (G'.neighborSet v)] :
     G'.degree v = 1 ↔ ∃! w : V, G'.Adj v w :=
   by
   rw [← finset_card_neighbor_set_eq_degree, Finset.card_eq_one, Finset.singleton_iff_unique_mem]
   simp only [Set.mem_toFinset, mem_neighbor_set]
 #align simple_graph.subgraph.degree_eq_one_iff_unique_adj SimpleGraph.Subgraph.degree_eq_one_iff_unique_adj
+-/
 
 end Subgraph
 
@@ -734,10 +1048,18 @@ section MkProperties
 
 variable {G : SimpleGraph V} {G' : SimpleGraph W}
 
+#print SimpleGraph.nonempty_singletonSubgraph_verts /-
 instance nonempty_singletonSubgraph_verts (v : V) : Nonempty (G.singletonSubgraph v).verts :=
   ⟨⟨v, Set.mem_singleton v⟩⟩
 #align simple_graph.nonempty_singleton_subgraph_verts SimpleGraph.nonempty_singletonSubgraph_verts
+-/
 
+/- warning: simple_graph.singleton_subgraph_le_iff -> SimpleGraph.singletonSubgraph_le_iff is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.Mem.{u1, u1} V (Set.{u1} V) (Set.hasMem.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (v : V) (H : SimpleGraph.Subgraph.{u1} V G), Iff (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G v) H) (Membership.mem.{u1, u1} V (Set.{u1} V) (Set.instMembershipSet.{u1} V) v (SimpleGraph.Subgraph.verts.{u1} V G H))
+Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_le_iff SimpleGraph.singletonSubgraph_le_iffₓ'. -/
 @[simp]
 theorem singletonSubgraph_le_iff (v : V) (H : G.Subgraph) :
     G.singletonSubgraph v ≤ H ↔ v ∈ H.verts :=
@@ -749,6 +1071,7 @@ theorem singletonSubgraph_le_iff (v : V) (H : G.Subgraph) :
   · simp [-Set.bot_eq_empty]
 #align simple_graph.singleton_subgraph_le_iff SimpleGraph.singletonSubgraph_le_iff
 
+#print SimpleGraph.map_singletonSubgraph /-
 @[simp]
 theorem map_singletonSubgraph (f : G →g G') {v : V} :
     Subgraph.map f (G.singletonSubgraph v) = G'.singletonSubgraph (f v) := by
@@ -757,19 +1080,25 @@ theorem map_singletonSubgraph (f : G →g G') {v : V} :
       exists_and_left, and_iff_left_iff_imp, IsEmpty.forall_iff, subgraph.map_verts,
       singleton_subgraph_verts, Set.image_singleton]
 #align simple_graph.map_singleton_subgraph SimpleGraph.map_singletonSubgraph
+-/
 
+#print SimpleGraph.neighborSet_singletonSubgraph /-
 @[simp]
 theorem neighborSet_singletonSubgraph (v w : V) : (G.singletonSubgraph v).neighborSet w = ∅ :=
   by
   ext u
   rfl
 #align simple_graph.neighbor_set_singleton_subgraph SimpleGraph.neighborSet_singletonSubgraph
+-/
 
+#print SimpleGraph.edgeSet_singletonSubgraph /-
 @[simp]
 theorem edgeSet_singletonSubgraph (v : V) : (G.singletonSubgraph v).edgeSetEmbedding = ∅ :=
   Sym2.fromRel_bot
 #align simple_graph.edge_set_singleton_subgraph SimpleGraph.edgeSet_singletonSubgraph
+-/
 
+#print SimpleGraph.eq_singletonSubgraph_iff_verts_eq /-
 theorem eq_singletonSubgraph_iff_verts_eq (H : G.Subgraph) {v : V} :
     H = G.singletonSubgraph v ↔ H.verts = {v} :=
   by
@@ -784,12 +1113,16 @@ theorem eq_singletonSubgraph_iff_verts_eq (H : G.Subgraph) {v : V} :
     subst_vars
     exact ha.ne rfl
 #align simple_graph.eq_singleton_subgraph_iff_verts_eq SimpleGraph.eq_singletonSubgraph_iff_verts_eq
+-/
 
+#print SimpleGraph.nonempty_subgraphOfAdj_verts /-
 instance nonempty_subgraphOfAdj_verts {v w : V} (hvw : G.Adj v w) :
     Nonempty (G.subgraphOfAdj hvw).verts :=
   ⟨⟨v, by simp⟩⟩
 #align simple_graph.nonempty_subgraph_of_adj_verts SimpleGraph.nonempty_subgraphOfAdj_verts
+-/
 
+#print SimpleGraph.edgeSet_subgraphOfAdj /-
 @[simp]
 theorem edgeSet_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
     (G.subgraphOfAdj hvw).edgeSetEmbedding = {⟦(v, w)⟧} :=
@@ -799,11 +1132,15 @@ theorem edgeSet_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
   simp only [eq_comm, Set.mem_singleton_iff, subgraph.mem_edge_set, subgraph_of_adj_adj,
     iff_self_iff, forall₂_true_iff]
 #align simple_graph.edge_set_subgraph_of_adj SimpleGraph.edgeSet_subgraphOfAdj
+-/
 
+#print SimpleGraph.subgraphOfAdj_symm /-
 theorem subgraphOfAdj_symm {v w : V} (hvw : G.Adj v w) :
     G.subgraphOfAdj hvw.symm = G.subgraphOfAdj hvw := by ext <;> simp [or_comm', and_comm']
 #align simple_graph.subgraph_of_adj_symm SimpleGraph.subgraphOfAdj_symm
+-/
 
+#print SimpleGraph.map_subgraphOfAdj /-
 @[simp]
 theorem map_subgraphOfAdj (f : G →g G') {v w : V} (hvw : G.Adj v w) :
     Subgraph.map f (G.subgraphOfAdj hvw) = G'.subgraphOfAdj (f.map_adj hvw) :=
@@ -827,12 +1164,16 @@ theorem map_subgraphOfAdj (f : G →g G') {v w : V} (hvw : G.Adj v w) :
       · use w, v
         simp
 #align simple_graph.map_subgraph_of_adj SimpleGraph.map_subgraphOfAdj
+-/
 
+#print SimpleGraph.neighborSet_subgraphOfAdj_subset /-
 theorem neighborSet_subgraphOfAdj_subset {u v w : V} (hvw : G.Adj v w) :
     (G.subgraphOfAdj hvw).neighborSet u ⊆ {v, w} :=
   (G.subgraphOfAdj hvw).neighborSet_subset_verts _
 #align simple_graph.neighbor_set_subgraph_of_adj_subset SimpleGraph.neighborSet_subgraphOfAdj_subset
+-/
 
+#print SimpleGraph.neighborSet_fst_subgraphOfAdj /-
 @[simp]
 theorem neighborSet_fst_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
     (G.subgraphOfAdj hvw).neighborSet v = {w} :=
@@ -841,7 +1182,9 @@ theorem neighborSet_fst_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
   suffices w = u ↔ u = w by simpa [hvw.ne.symm] using this
   rw [eq_comm]
 #align simple_graph.neighbor_set_fst_subgraph_of_adj SimpleGraph.neighborSet_fst_subgraphOfAdj
+-/
 
+#print SimpleGraph.neighborSet_snd_subgraphOfAdj /-
 @[simp]
 theorem neighborSet_snd_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
     (G.subgraphOfAdj hvw).neighborSet w = {v} :=
@@ -849,7 +1192,9 @@ theorem neighborSet_snd_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
   rw [subgraph_of_adj_symm hvw.symm]
   exact neighbor_set_fst_subgraph_of_adj hvw.symm
 #align simple_graph.neighbor_set_snd_subgraph_of_adj SimpleGraph.neighborSet_snd_subgraphOfAdj
+-/
 
+#print SimpleGraph.neighborSet_subgraphOfAdj_of_ne_of_ne /-
 @[simp]
 theorem neighborSet_subgraphOfAdj_of_ne_of_ne {u v w : V} (hvw : G.Adj v w) (hv : u ≠ v)
     (hw : u ≠ w) : (G.subgraphOfAdj hvw).neighborSet u = ∅ :=
@@ -857,16 +1202,35 @@ theorem neighborSet_subgraphOfAdj_of_ne_of_ne {u v w : V} (hvw : G.Adj v w) (hv
   ext
   simp [hv.symm, hw.symm]
 #align simple_graph.neighbor_set_subgraph_of_adj_of_ne_of_ne SimpleGraph.neighborSet_subgraphOfAdj_of_ne_of_ne
+-/
 
+/- warning: simple_graph.neighbor_set_subgraph_of_adj -> SimpleGraph.neighborSet_subgraphOfAdj is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} [_inst_1 : DecidableEq.{succ u1} V] {u : V} {v : V} {w : V} (hvw : SimpleGraph.Adj.{u1} V G v w), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (SimpleGraph.subgraphOfAdj.{u1} V G v w hvw) u) (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) (ite.{succ u1} (Set.{u1} V) (Eq.{succ u1} V u v) (_inst_1 u v) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.hasSingleton.{u1} V) w) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))) (ite.{succ u1} (Set.{u1} V) (Eq.{succ u1} V u w) (_inst_1 u w) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.hasSingleton.{u1} V) v) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} [_inst_1 : DecidableEq.{succ u1} V] {u : V} {v : V} {w : V} (hvw : SimpleGraph.Adj.{u1} V G v w), Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.neighborSet.{u1} V G (SimpleGraph.subgraphOfAdj.{u1} V G v w hvw) u) (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) (ite.{succ u1} (Set.{u1} V) (Eq.{succ u1} V u v) (_inst_1 u v) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.instSingletonSet.{u1} V) w) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))) (ite.{succ u1} (Set.{u1} V) (Eq.{succ u1} V u w) (_inst_1 u w) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.instSingletonSet.{u1} V) v) (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))))
+Case conversion may be inaccurate. Consider using '#align simple_graph.neighbor_set_subgraph_of_adj SimpleGraph.neighborSet_subgraphOfAdjₓ'. -/
 theorem neighborSet_subgraphOfAdj [DecidableEq V] {u v w : V} (hvw : G.Adj v w) :
     (G.subgraphOfAdj hvw).neighborSet u = (if u = v then {w} else ∅) ∪ if u = w then {v} else ∅ :=
   by split_ifs <;> subst_vars <;> simp [*]
 #align simple_graph.neighbor_set_subgraph_of_adj SimpleGraph.neighborSet_subgraphOfAdj
 
+/- warning: simple_graph.singleton_subgraph_fst_le_subgraph_of_adj -> SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdj is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G u) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
+Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_fst_le_subgraph_of_adj SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdjₓ'. -/
 theorem singletonSubgraph_fst_le_subgraphOfAdj {u v : V} {h : G.Adj u v} :
     G.singletonSubgraph u ≤ G.subgraphOfAdj h := by constructor <;> simp [-Set.bot_eq_empty]
 #align simple_graph.singleton_subgraph_fst_le_subgraph_of_adj SimpleGraph.singletonSubgraph_fst_le_subgraphOfAdj
 
+/- warning: simple_graph.singleton_subgraph_snd_le_subgraph_of_adj -> SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdj is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {u : V} {v : V} {h : SimpleGraph.Adj.{u1} V G u v}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.subgraphOfAdj.{u1} V G u v h)
+Case conversion may be inaccurate. Consider using '#align simple_graph.singleton_subgraph_snd_le_subgraph_of_adj SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdjₓ'. -/
 theorem singletonSubgraph_snd_le_subgraphOfAdj {u v : V} {h : G.Adj u v} :
     G.singletonSubgraph v ≤ G.subgraphOfAdj h := by constructor <;> simp [-Set.bot_eq_empty]
 #align simple_graph.singleton_subgraph_snd_le_subgraph_of_adj SimpleGraph.singletonSubgraph_snd_le_subgraphOfAdj
@@ -880,19 +1244,24 @@ variable {G : SimpleGraph V}
 /-! ### Subgraphs of subgraphs -/
 
 
+#print SimpleGraph.Subgraph.coeSubgraph /-
 /-- Given a subgraph of a subgraph of `G`, construct a subgraph of `G`. -/
 @[reducible]
 protected def coeSubgraph {G' : G.Subgraph} : G'.coe.Subgraph → G.Subgraph :=
   Subgraph.map G'.hom
 #align simple_graph.subgraph.coe_subgraph SimpleGraph.Subgraph.coeSubgraph
+-/
 
+#print SimpleGraph.Subgraph.restrict /-
 /-- Given a subgraph of `G`, restrict it to being a subgraph of another subgraph `G'` by
 taking the portion of `G` that intersects `G'`. -/
 @[reducible]
 protected def restrict {G' : G.Subgraph} : G.Subgraph → G'.coe.Subgraph :=
   Subgraph.comap G'.hom
 #align simple_graph.subgraph.restrict SimpleGraph.Subgraph.restrict
+-/
 
+#print SimpleGraph.Subgraph.restrict_coeSubgraph /-
 theorem restrict_coeSubgraph {G' : G.Subgraph} (G'' : G'.coe.Subgraph) :
     G''.coeSubgraph.restrict = G'' := by
   ext
@@ -902,15 +1271,19 @@ theorem restrict_coeSubgraph {G' : G.Subgraph} (G'' : G'.coe.Subgraph) :
       exists_true_left, exists_eq_right, and_iff_right_iff_imp]
     apply G''.adj_sub
 #align simple_graph.subgraph.restrict_coe_subgraph SimpleGraph.Subgraph.restrict_coeSubgraph
+-/
 
+#print SimpleGraph.Subgraph.coeSubgraph_injective /-
 theorem coeSubgraph_injective (G' : G.Subgraph) :
     Function.Injective (Subgraph.coeSubgraph : G'.coe.Subgraph → G.Subgraph) :=
   Function.LeftInverse.injective restrict_coeSubgraph
 #align simple_graph.subgraph.coe_subgraph_injective SimpleGraph.Subgraph.coeSubgraph_injective
+-/
 
 /-! ### Edge deletion -/
 
 
+#print SimpleGraph.Subgraph.deleteEdges /-
 /-- Given a subgraph `G'` and a set of vertex pairs, remove all of the corresponding edges
 from its edge set, if present.
 
@@ -923,31 +1296,45 @@ def deleteEdges (G' : G.Subgraph) (s : Set (Sym2 V)) : G.Subgraph
   edge_vert a b h' := G'.edge_vert h'.1
   symm a b := by simp [G'.adj_comm, Sym2.eq_swap]
 #align simple_graph.subgraph.delete_edges SimpleGraph.Subgraph.deleteEdges
+-/
 
 section DeleteEdges
 
 variable {G' : G.Subgraph} (s : Set (Sym2 V))
 
+#print SimpleGraph.Subgraph.deleteEdges_verts /-
 @[simp]
 theorem deleteEdges_verts : (G'.deleteEdges s).verts = G'.verts :=
   rfl
 #align simple_graph.subgraph.delete_edges_verts SimpleGraph.Subgraph.deleteEdges_verts
+-/
 
+#print SimpleGraph.Subgraph.deleteEdges_adj /-
 @[simp]
 theorem deleteEdges_adj (v w : V) : (G'.deleteEdges s).Adj v w ↔ G'.Adj v w ∧ ¬⟦(v, w)⟧ ∈ s :=
   Iff.rfl
 #align simple_graph.subgraph.delete_edges_adj SimpleGraph.Subgraph.deleteEdges_adj
+-/
 
+/- warning: simple_graph.subgraph.delete_edges_delete_edges -> SimpleGraph.Subgraph.deleteEdges_deleteEdges is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)) (s' : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasUnion.{u1} (Sym2.{u1} V)) s s'))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)) (s' : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Union.union.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instUnionSet.{u1} (Sym2.{u1} V)) s s'))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_delete_edges SimpleGraph.Subgraph.deleteEdges_deleteEdgesₓ'. -/
 @[simp]
 theorem deleteEdges_deleteEdges (s s' : Set (Sym2 V)) :
     (G'.deleteEdges s).deleteEdges s' = G'.deleteEdges (s ∪ s') := by
   ext <;> simp [and_assoc', not_or]
 #align simple_graph.subgraph.delete_edges_delete_edges SimpleGraph.Subgraph.deleteEdges_deleteEdges
 
+#print SimpleGraph.Subgraph.deleteEdges_empty_eq /-
 @[simp]
 theorem deleteEdges_empty_eq : G'.deleteEdges ∅ = G' := by ext <;> simp
 #align simple_graph.subgraph.delete_edges_empty_eq SimpleGraph.Subgraph.deleteEdges_empty_eq
+-/
 
+#print SimpleGraph.Subgraph.deleteEdges_spanningCoe_eq /-
 @[simp]
 theorem deleteEdges_spanningCoe_eq :
     G'.spanningCoe.deleteEdges s = (G'.deleteEdges s).spanningCoe :=
@@ -955,7 +1342,9 @@ theorem deleteEdges_spanningCoe_eq :
   ext
   simp
 #align simple_graph.subgraph.delete_edges_spanning_coe_eq SimpleGraph.Subgraph.deleteEdges_spanningCoe_eq
+-/
 
+#print SimpleGraph.Subgraph.deleteEdges_coe_eq /-
 theorem deleteEdges_coe_eq (s : Set (Sym2 G'.verts)) :
     G'.coe.deleteEdges s = (G'.deleteEdges (Sym2.map coe '' s)).coe :=
   by
@@ -973,18 +1362,33 @@ theorem deleteEdges_coe_eq (s : Set (Sym2 G'.verts)) :
   · intro h' hs
     exact h' _ hs rfl
 #align simple_graph.subgraph.delete_edges_coe_eq SimpleGraph.Subgraph.deleteEdges_coe_eq
+-/
 
+#print SimpleGraph.Subgraph.coe_deleteEdges_eq /-
 theorem coe_deleteEdges_eq (s : Set (Sym2 V)) :
     (G'.deleteEdges s).coe = G'.coe.deleteEdges (Sym2.map coe ⁻¹' s) :=
   by
   ext (⟨v, hv⟩⟨w, hw⟩)
   simp
 #align simple_graph.subgraph.coe_delete_edges_eq SimpleGraph.Subgraph.coe_deleteEdges_eq
+-/
 
+/- warning: simple_graph.subgraph.delete_edges_le -> SimpleGraph.Subgraph.deleteEdges_le is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s) G'
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_le SimpleGraph.Subgraph.deleteEdges_leₓ'. -/
 theorem deleteEdges_le : G'.deleteEdges s ≤ G' := by
   constructor <;> simp (config := { contextual := true })
 #align simple_graph.subgraph.delete_edges_le SimpleGraph.Subgraph.deleteEdges_le
 
+/- warning: simple_graph.subgraph.delete_edges_le_of_le -> SimpleGraph.Subgraph.deleteEdges_le_of_le is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasSubset.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} (Sym2.{u1} V)} {s' : Set.{u1} (Sym2.{u1} V)}, (HasSubset.Subset.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instHasSubsetSet.{u1} (Sym2.{u1} V)) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s') (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_le_of_le 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 :=
   by
@@ -994,32 +1398,49 @@ theorem deleteEdges_le_of_le {s s' : Set (Sym2 V)} (h : s ⊆ s') :
   exact fun v w hvw hs' hs => hs' (h hs)
 #align simple_graph.subgraph.delete_edges_le_of_le SimpleGraph.Subgraph.deleteEdges_le_of_le
 
+/- warning: simple_graph.subgraph.delete_edges_inter_edge_set_left_eq -> SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_left_eq is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G G') s)) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instInterSet.{u1} (Sym2.{u1} V)) (SimpleGraph.Subgraph.edgeSet.{u1} V G G') s)) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_inter_edge_set_left_eq SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_left_eqₓ'. -/
 @[simp]
 theorem deleteEdges_inter_edgeSet_left_eq :
     G'.deleteEdges (G'.edgeSetEmbedding ∩ s) = G'.deleteEdges s := by
   ext <;> simp (config := { contextual := true }) [imp_false]
 #align simple_graph.subgraph.delete_edges_inter_edge_set_left_eq SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_left_eq
 
+/- warning: simple_graph.subgraph.delete_edges_inter_edge_set_right_eq -> SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_right_eq is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.hasInter.{u1} (Sym2.{u1} V)) s (SimpleGraph.Subgraph.edgeSet.{u1} V G G'))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} (Sym2.{u1} V)), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' (Inter.inter.{u1} (Set.{u1} (Sym2.{u1} V)) (Set.instInterSet.{u1} (Sym2.{u1} V)) s (SimpleGraph.Subgraph.edgeSet.{u1} V G G'))) (SimpleGraph.Subgraph.deleteEdges.{u1} V G G' s)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_edges_inter_edge_set_right_eq SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_right_eqₓ'. -/
 @[simp]
 theorem deleteEdges_inter_edgeSet_right_eq :
     G'.deleteEdges (s ∩ G'.edgeSetEmbedding) = G'.deleteEdges s := by
   ext <;> simp (config := { contextual := true }) [imp_false]
 #align simple_graph.subgraph.delete_edges_inter_edge_set_right_eq SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_right_eq
 
+#print SimpleGraph.Subgraph.coe_deleteEdges_le /-
 theorem coe_deleteEdges_le : (G'.deleteEdges s).coe ≤ (G'.coe : SimpleGraph G'.verts) := fun v w =>
   by simp (config := { contextual := true })
 #align simple_graph.subgraph.coe_delete_edges_le SimpleGraph.Subgraph.coe_deleteEdges_le
+-/
 
+#print SimpleGraph.Subgraph.spanningCoe_deleteEdges_le /-
 theorem spanningCoe_deleteEdges_le (G' : G.Subgraph) (s : Set (Sym2 V)) :
     (G'.deleteEdges s).spanningCoe ≤ G'.spanningCoe :=
   spanningCoe_le_of_le (deleteEdges_le s)
 #align simple_graph.subgraph.spanning_coe_delete_edges_le SimpleGraph.Subgraph.spanningCoe_deleteEdges_le
+-/
 
 end DeleteEdges
 
 /-! ### Induced subgraphs -/
 
 
+#print SimpleGraph.Subgraph.induce /-
 /- Given a subgraph, we can change its vertex set while removing any invalid edges, which
 gives induced subgraphs. See also `simple_graph.induce` for the `simple_graph` version, which,
 unlike for subgraphs, results in a graph with a different vertex type. -/
@@ -1038,7 +1459,14 @@ def induce (G' : G.Subgraph) (s : Set V) : G.Subgraph
     rintro ⟨h, -, -⟩
     exact h
 #align simple_graph.subgraph.induce SimpleGraph.Subgraph.induce
+-/
 
+/- warning: simple_graph.induce_eq_coe_induce_top -> SimpleGraph.induce_eq_coe_induce_top is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (s : Set.{u1} V), Eq.{succ u1} (SimpleGraph.{u1} (coeSort.{succ u1, succ (succ u1)} (Set.{u1} V) Type.{u1} (Set.hasCoeToSort.{u1} V) s)) (SimpleGraph.induce.{u1} V s G) (SimpleGraph.Subgraph.coe.{u1} V G (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))) s))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} (s : Set.{u1} V), Eq.{succ u1} (SimpleGraph.{u1} (Set.Elem.{u1} V s)) (SimpleGraph.induce.{u1} V s G) (SimpleGraph.Subgraph.coe.{u1} V G (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) s))
+Case conversion may be inaccurate. Consider using '#align simple_graph.induce_eq_coe_induce_top SimpleGraph.induce_eq_coe_induce_topₓ'. -/
 theorem SimpleGraph.induce_eq_coe_induce_top (s : Set V) :
     G.induce s = ((⊤ : G.Subgraph).induce s).coe :=
   by
@@ -1050,6 +1478,12 @@ section Induce
 
 variable {G' G'' : G.Subgraph} {s s' : Set V}
 
+/- warning: simple_graph.subgraph.induce_mono -> SimpleGraph.Subgraph.induce_mono is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s'))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono SimpleGraph.Subgraph.induce_monoₓ'. -/
 theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.induce s' :=
   by
   constructor
@@ -1059,20 +1493,39 @@ theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.indu
     exact ⟨hs hv, hs hw, hg.2 ha⟩
 #align simple_graph.subgraph.induce_mono SimpleGraph.Subgraph.induce_mono
 
+/- warning: simple_graph.subgraph.induce_mono_left -> SimpleGraph.Subgraph.induce_mono_left is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G'' s))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono_left SimpleGraph.Subgraph.induce_mono_leftₓ'. -/
 @[mono]
 theorem induce_mono_left (hg : G' ≤ G'') : G'.induce s ≤ G''.induce s :=
   induce_mono hg (by rfl)
 #align simple_graph.subgraph.induce_mono_left SimpleGraph.Subgraph.induce_mono_left
 
+/- warning: simple_graph.subgraph.induce_mono_right -> SimpleGraph.Subgraph.induce_mono_right is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.induce.{u1} V G G' s) (SimpleGraph.Subgraph.induce.{u1} V G G' s'))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_mono_right SimpleGraph.Subgraph.induce_mono_rightₓ'. -/
 @[mono]
 theorem induce_mono_right (hs : s ⊆ s') : G'.induce s ≤ G'.induce s' :=
   induce_mono (by rfl) hs
 #align simple_graph.subgraph.induce_mono_right SimpleGraph.Subgraph.induce_mono_right
 
+/- warning: simple_graph.subgraph.induce_empty -> SimpleGraph.Subgraph.induce_empty is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.induce.{u1} V G G' (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.hasEmptyc.{u1} V))) (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toHasBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G))))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.induce.{u1} V G G' (EmptyCollection.emptyCollection.{u1} (Set.{u1} V) (Set.instEmptyCollectionSet.{u1} V))) (Bot.bot.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderBot.toBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderBot.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G))))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.induce_empty SimpleGraph.Subgraph.induce_emptyₓ'. -/
 @[simp]
 theorem induce_empty : G'.induce ∅ = ⊥ := by ext <;> simp
 #align simple_graph.subgraph.induce_empty SimpleGraph.Subgraph.induce_empty
 
+#print SimpleGraph.Subgraph.induce_self_verts /-
 @[simp]
 theorem induce_self_verts : G'.induce G'.verts = G' :=
   by
@@ -1082,11 +1535,24 @@ theorem induce_self_verts : G'.induce G'.verts = G' :=
       simp (config := { contextual := true }) only [induce_adj, imp_true_iff, and_true_iff]
     exact fun ha => ⟨G'.edge_vert ha, G'.edge_vert ha.symm⟩
 #align simple_graph.subgraph.induce_self_verts SimpleGraph.Subgraph.induce_self_verts
+-/
 
+/- warning: simple_graph.subgraph.singleton_subgraph_eq_induce -> SimpleGraph.Subgraph.singletonSubgraph_eq_induce is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.hasSingleton.{u1} V) v))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.singletonSubgraph.{u1} V G v) (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.instSingletonSet.{u1} V) v))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.singleton_subgraph_eq_induce SimpleGraph.Subgraph.singletonSubgraph_eq_induceₓ'. -/
 theorem singletonSubgraph_eq_induce {v : V} : G.singletonSubgraph v = (⊤ : G.Subgraph).induce {v} :=
   by ext <;> simp (config := { contextual := true }) [-Set.bot_eq_empty, Prop.bot_eq_false]
 #align simple_graph.subgraph.singleton_subgraph_eq_induce SimpleGraph.Subgraph.singletonSubgraph_eq_induce
 
+/- warning: simple_graph.subgraph.subgraph_of_adj_eq_induce -> SimpleGraph.Subgraph.subgraphOfAdj_eq_induce is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V} (hvw : SimpleGraph.Adj.{u1} V G v w), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.subgraphOfAdj.{u1} V G v w hvw) (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toHasTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.boundedOrder.{u1} V G)))) (Insert.insert.{u1, u1} V (Set.{u1} V) (Set.hasInsert.{u1} V) v (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.hasSingleton.{u1} V) w)))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {v : V} {w : V} (hvw : SimpleGraph.Adj.{u1} V G v w), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.subgraphOfAdj.{u1} V G v w hvw) (SimpleGraph.Subgraph.induce.{u1} V G (Top.top.{u1} (SimpleGraph.Subgraph.{u1} V G) (OrderTop.toTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (BoundedOrder.toOrderTop.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.instBoundedOrderSubgraphToLEToPreorderToPartialOrderToSemilatticeInfInstLatticeSubgraph.{u1} V G)))) (Insert.insert.{u1, u1} V (Set.{u1} V) (Set.instInsertSet.{u1} V) v (Singleton.singleton.{u1, u1} V (Set.{u1} V) (Set.instSingletonSet.{u1} V) w)))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.subgraph_of_adj_eq_induce 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} :=
   by
@@ -1103,55 +1569,103 @@ theorem subgraphOfAdj_eq_induce {v w : V} (hvw : G.Adj v w) :
 
 end Induce
 
+#print SimpleGraph.Subgraph.deleteVerts /-
 /-- Given a subgraph and a set of vertices, delete all the vertices from the subgraph,
 if present. Any edges indicent to the deleted vertices are deleted as well. -/
 @[reducible]
 def deleteVerts (G' : G.Subgraph) (s : Set V) : G.Subgraph :=
   G'.induce (G'.verts \ s)
 #align simple_graph.subgraph.delete_verts SimpleGraph.Subgraph.deleteVerts
+-/
 
 section DeleteVerts
 
 variable {G' : G.Subgraph} {s : Set V}
 
+/- warning: simple_graph.subgraph.delete_verts_verts -> SimpleGraph.Subgraph.deleteVerts_verts is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)) (SDiff.sdiff.{u1} (Set.{u1} V) (BooleanAlgebra.toHasSdiff.{u1} (Set.{u1} V) (Set.booleanAlgebra.{u1} V)) (SimpleGraph.Subgraph.verts.{u1} V G G') s)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (Set.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)) (SDiff.sdiff.{u1} (Set.{u1} V) (Set.instSDiffSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G') s)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_verts SimpleGraph.Subgraph.deleteVerts_vertsₓ'. -/
 theorem deleteVerts_verts : (G'.deleteVerts s).verts = G'.verts \ s :=
   rfl
 #align simple_graph.subgraph.delete_verts_verts SimpleGraph.Subgraph.deleteVerts_verts
 
+#print 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 := by
   simp [and_assoc']
 #align simple_graph.subgraph.delete_verts_adj SimpleGraph.Subgraph.deleteVerts_adj
+-/
 
+/- warning: simple_graph.subgraph.delete_verts_delete_verts -> SimpleGraph.Subgraph.deleteVerts_deleteVerts is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} V) (s' : Set.{u1} V), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Union.union.{u1} (Set.{u1} V) (Set.hasUnion.{u1} V) s s'))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} (s : Set.{u1} V) (s' : Set.{u1} V), Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Union.union.{u1} (Set.{u1} V) (Set.instUnionSet.{u1} V) s s'))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_delete_verts SimpleGraph.Subgraph.deleteVerts_deleteVertsₓ'. -/
 @[simp]
 theorem deleteVerts_deleteVerts (s s' : Set V) :
     (G'.deleteVerts s).deleteVerts s' = G'.deleteVerts (s ∪ s') := by
   ext <;> simp (config := { contextual := true }) [not_or, and_assoc']
 #align simple_graph.subgraph.delete_verts_delete_verts SimpleGraph.Subgraph.deleteVerts_deleteVerts
 
+#print SimpleGraph.Subgraph.deleteVerts_empty /-
 @[simp]
 theorem deleteVerts_empty : G'.deleteVerts ∅ = G' := by simp [delete_verts]
 #align simple_graph.subgraph.delete_verts_empty SimpleGraph.Subgraph.deleteVerts_empty
+-/
 
+/- warning: simple_graph.subgraph.delete_verts_le -> SimpleGraph.Subgraph.deleteVerts_le is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) G'
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_le SimpleGraph.Subgraph.deleteVerts_leₓ'. -/
 theorem deleteVerts_le : G'.deleteVerts s ≤ G' := by constructor <;> simp [Set.diff_subset]
 #align simple_graph.subgraph.delete_verts_le SimpleGraph.Subgraph.deleteVerts_le
 
+/- warning: simple_graph.subgraph.delete_verts_mono -> SimpleGraph.Subgraph.deleteVerts_mono is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {s : Set.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {G'' : SimpleGraph.Subgraph.{u1} V G}, (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) G' G'') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G'' s))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_mono SimpleGraph.Subgraph.deleteVerts_monoₓ'. -/
 @[mono]
 theorem deleteVerts_mono {G' G'' : G.Subgraph} (h : G' ≤ G'') :
     G'.deleteVerts s ≤ G''.deleteVerts s :=
   induce_mono h (Set.diff_subset_diff_left h.1)
 #align simple_graph.subgraph.delete_verts_mono SimpleGraph.Subgraph.deleteVerts_mono
 
+/- warning: simple_graph.subgraph.delete_verts_anti -> SimpleGraph.Subgraph.deleteVerts_anti is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.hasSubset.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.lattice.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V} {s' : Set.{u1} V}, (HasSubset.Subset.{u1} (Set.{u1} V) (Set.instHasSubsetSet.{u1} V) s s') -> (LE.le.{u1} (SimpleGraph.Subgraph.{u1} V G) (Preorder.toLE.{u1} (SimpleGraph.Subgraph.{u1} V G) (PartialOrder.toPreorder.{u1} (SimpleGraph.Subgraph.{u1} V G) (SemilatticeInf.toPartialOrder.{u1} (SimpleGraph.Subgraph.{u1} V G) (Lattice.toSemilatticeInf.{u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.instLatticeSubgraph.{u1} V G))))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s') (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s))
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_anti SimpleGraph.Subgraph.deleteVerts_antiₓ'. -/
 @[mono]
 theorem deleteVerts_anti {s s' : Set V} (h : s ⊆ s') : G'.deleteVerts s' ≤ G'.deleteVerts s :=
   induce_mono (le_refl _) (Set.diff_subset_diff_right h)
 #align simple_graph.subgraph.delete_verts_anti SimpleGraph.Subgraph.deleteVerts_anti
 
+/- warning: simple_graph.subgraph.delete_verts_inter_verts_left_eq -> SimpleGraph.Subgraph.deleteVerts_inter_verts_left_eq is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G') s)) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) (SimpleGraph.Subgraph.verts.{u1} V G G') s)) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_inter_verts_left_eq SimpleGraph.Subgraph.deleteVerts_inter_verts_left_eqₓ'. -/
 @[simp]
 theorem deleteVerts_inter_verts_left_eq : G'.deleteVerts (G'.verts ∩ s) = G'.deleteVerts s := by
   ext <;> simp (config := { contextual := true }) [imp_false]
 #align simple_graph.subgraph.delete_verts_inter_verts_left_eq SimpleGraph.Subgraph.deleteVerts_inter_verts_left_eq
 
+/- warning: simple_graph.subgraph.delete_verts_inter_verts_set_right_eq -> SimpleGraph.Subgraph.deleteVerts_inter_verts_set_right_eq is a dubious translation:
+lean 3 declaration is
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Inter.inter.{u1} (Set.{u1} V) (Set.hasInter.{u1} V) s (SimpleGraph.Subgraph.verts.{u1} V G G'))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)
+but is expected to have type
+  forall {V : Type.{u1}} {G : SimpleGraph.{u1} V} {G' : SimpleGraph.Subgraph.{u1} V G} {s : Set.{u1} V}, Eq.{succ u1} (SimpleGraph.Subgraph.{u1} V G) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' (Inter.inter.{u1} (Set.{u1} V) (Set.instInterSet.{u1} V) s (SimpleGraph.Subgraph.verts.{u1} V G G'))) (SimpleGraph.Subgraph.deleteVerts.{u1} V G G' s)
+Case conversion may be inaccurate. Consider using '#align simple_graph.subgraph.delete_verts_inter_verts_set_right_eq SimpleGraph.Subgraph.deleteVerts_inter_verts_set_right_eqₓ'. -/
 @[simp]
 theorem deleteVerts_inter_verts_set_right_eq : G'.deleteVerts (s ∩ G'.verts) = G'.deleteVerts s :=
   by ext <;> simp (config := { contextual := true }) [imp_false]
Diff
@@ -241,16 +241,16 @@ def edgeSet (G' : Subgraph G) : Set (Sym2 V) :=
   Sym2.fromRel G'.symm
 #align simple_graph.subgraph.edge_set SimpleGraph.Subgraph.edgeSet
 
-theorem edgeSet_subset (G' : Subgraph G) : G'.edgeSet ⊆ G.edgeSet := fun e =>
+theorem edgeSet_subset (G' : Subgraph G) : G'.edgeSetEmbedding ⊆ G.edgeSetEmbedding := fun e =>
   Quotient.ind (fun e h => G'.adj_sub h) e
 #align simple_graph.subgraph.edge_set_subset SimpleGraph.Subgraph.edgeSet_subset
 
 @[simp]
-theorem mem_edgeSet {G' : Subgraph G} {v w : V} : ⟦(v, w)⟧ ∈ G'.edgeSet ↔ G'.Adj v w :=
+theorem mem_edgeSet {G' : Subgraph G} {v w : V} : ⟦(v, w)⟧ ∈ G'.edgeSetEmbedding ↔ G'.Adj v w :=
   Iff.rfl
 #align simple_graph.subgraph.mem_edge_set SimpleGraph.Subgraph.mem_edgeSet
 
-theorem mem_verts_if_mem_edge {G' : Subgraph G} {e : Sym2 V} {v : V} (he : e ∈ G'.edgeSet)
+theorem mem_verts_if_mem_edge {G' : Subgraph G} {e : Sym2 V} {v : V} (he : e ∈ G'.edgeSetEmbedding)
     (hv : v ∈ e) : v ∈ G'.verts :=
   by
   refine' Quotient.ind (fun e he hv => _) e he hv
@@ -263,15 +263,15 @@ theorem mem_verts_if_mem_edge {G' : Subgraph G} {e : Sym2 V} {v : V} (he : e ∈
 
 /-- The `incidence_set` is the set of edges incident to a given vertex. -/
 def incidenceSet (G' : Subgraph G) (v : V) : Set (Sym2 V) :=
-  { e ∈ G'.edgeSet | v ∈ e }
+  { e ∈ G'.edgeSetEmbedding | v ∈ e }
 #align simple_graph.subgraph.incidence_set SimpleGraph.Subgraph.incidenceSet
 
 theorem incidenceSet_subset_incidenceSet (G' : Subgraph G) (v : V) :
     G'.incidenceSet v ⊆ G.incidenceSet v := fun e h => ⟨G'.edgeSet_subset h.1, h.2⟩
 #align simple_graph.subgraph.incidence_set_subset_incidence_set SimpleGraph.Subgraph.incidenceSet_subset_incidenceSet
 
-theorem incidenceSet_subset (G' : Subgraph G) (v : V) : G'.incidenceSet v ⊆ G'.edgeSet := fun _ h =>
-  h.1
+theorem incidenceSet_subset (G' : Subgraph G) (v : V) : G'.incidenceSet v ⊆ G'.edgeSetEmbedding :=
+  fun _ h => h.1
 #align simple_graph.subgraph.incidence_set_subset SimpleGraph.Subgraph.incidenceSet_subset
 
 /-- Give a vertex as an element of the subgraph's vertex type. -/
@@ -428,22 +428,24 @@ theorem neighborSet_inf {H H' : G.Subgraph} (v : V) :
 #align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_inf
 
 @[simp]
-theorem edgeSet_top : (⊤ : Subgraph G).edgeSet = G.edgeSet :=
+theorem edgeSet_top : (⊤ : Subgraph G).edgeSetEmbedding = G.edgeSetEmbedding :=
   rfl
 #align simple_graph.subgraph.edge_set_top SimpleGraph.Subgraph.edgeSet_top
 
 @[simp]
-theorem edgeSet_bot : (⊥ : Subgraph G).edgeSet = ∅ :=
+theorem edgeSet_bot : (⊥ : Subgraph G).edgeSetEmbedding = ∅ :=
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_bot SimpleGraph.Subgraph.edgeSet_bot
 
 @[simp]
-theorem edgeSet_inf {H₁ H₂ : Subgraph G} : (H₁ ⊓ H₂).edgeSet = H₁.edgeSet ∩ H₂.edgeSet :=
+theorem edgeSet_inf {H₁ H₂ : Subgraph G} :
+    (H₁ ⊓ H₂).edgeSetEmbedding = H₁.edgeSetEmbedding ∩ H₂.edgeSetEmbedding :=
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_inf SimpleGraph.Subgraph.edgeSet_inf
 
 @[simp]
-theorem edgeSet_sup {H₁ H₂ : Subgraph G} : (H₁ ⊔ H₂).edgeSet = H₁.edgeSet ∪ H₂.edgeSet :=
+theorem edgeSet_sup {H₁ H₂ : Subgraph G} :
+    (H₁ ⊔ H₂).edgeSetEmbedding = H₁.edgeSetEmbedding ∪ H₂.edgeSetEmbedding :=
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_sup
 
@@ -504,12 +506,12 @@ def botEquiv : (⊥ : Subgraph G).coe ≃g (⊥ : SimpleGraph Empty)
   map_rel_iff' a b := Iff.rfl
 #align simple_graph.subgraph.bot_equiv SimpleGraph.Subgraph.botEquiv
 
-theorem edgeSet_mono {H₁ H₂ : Subgraph G} (h : H₁ ≤ H₂) : H₁.edgeSet ≤ H₂.edgeSet := fun e =>
-  Sym2.ind h.2 e
+theorem edgeSet_mono {H₁ H₂ : Subgraph G} (h : H₁ ≤ H₂) :
+    H₁.edgeSetEmbedding ≤ H₂.edgeSetEmbedding := fun e => Sym2.ind h.2 e
 #align simple_graph.subgraph.edge_set_mono SimpleGraph.Subgraph.edgeSet_mono
 
 theorem Disjoint.edgeSet {H₁ H₂ : Subgraph G} (h : Disjoint H₁ H₂) :
-    Disjoint H₁.edgeSet H₂.edgeSet :=
+    Disjoint H₁.edgeSetEmbedding H₂.edgeSetEmbedding :=
   disjoint_iff_inf_le.mpr <| by simpa using edge_set_mono h.le_bot
 #align disjoint.edge_set Disjoint.edgeSet
 
@@ -764,7 +766,7 @@ theorem neighborSet_singletonSubgraph (v w : V) : (G.singletonSubgraph v).neighb
 #align simple_graph.neighbor_set_singleton_subgraph SimpleGraph.neighborSet_singletonSubgraph
 
 @[simp]
-theorem edgeSet_singletonSubgraph (v : V) : (G.singletonSubgraph v).edgeSet = ∅ :=
+theorem edgeSet_singletonSubgraph (v : V) : (G.singletonSubgraph v).edgeSetEmbedding = ∅ :=
   Sym2.fromRel_bot
 #align simple_graph.edge_set_singleton_subgraph SimpleGraph.edgeSet_singletonSubgraph
 
@@ -790,7 +792,7 @@ instance nonempty_subgraphOfAdj_verts {v w : V} (hvw : G.Adj v w) :
 
 @[simp]
 theorem edgeSet_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
-    (G.subgraphOfAdj hvw).edgeSet = {⟦(v, w)⟧} :=
+    (G.subgraphOfAdj hvw).edgeSetEmbedding = {⟦(v, w)⟧} :=
   by
   ext e
   refine' e.ind _
@@ -993,13 +995,15 @@ theorem deleteEdges_le_of_le {s s' : Set (Sym2 V)} (h : s ⊆ s') :
 #align simple_graph.subgraph.delete_edges_le_of_le SimpleGraph.Subgraph.deleteEdges_le_of_le
 
 @[simp]
-theorem deleteEdges_inter_edgeSet_left_eq : G'.deleteEdges (G'.edgeSet ∩ s) = G'.deleteEdges s := by
+theorem deleteEdges_inter_edgeSet_left_eq :
+    G'.deleteEdges (G'.edgeSetEmbedding ∩ s) = G'.deleteEdges s := by
   ext <;> simp (config := { contextual := true }) [imp_false]
 #align simple_graph.subgraph.delete_edges_inter_edge_set_left_eq SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_left_eq
 
 @[simp]
-theorem deleteEdges_inter_edgeSet_right_eq : G'.deleteEdges (s ∩ G'.edgeSet) = G'.deleteEdges s :=
-  by ext <;> simp (config := { contextual := true }) [imp_false]
+theorem deleteEdges_inter_edgeSet_right_eq :
+    G'.deleteEdges (s ∩ G'.edgeSetEmbedding) = G'.deleteEdges s := by
+  ext <;> simp (config := { contextual := true }) [imp_false]
 #align simple_graph.subgraph.delete_edges_inter_edge_set_right_eq SimpleGraph.Subgraph.deleteEdges_inter_edgeSet_right_eq
 
 theorem coe_deleteEdges_le : (G'.deleteEdges s).coe ≤ (G'.coe : SimpleGraph G'.verts) := fun v w =>

Changes in mathlib4

mathlib3
mathlib4
refactor: move SimpleGraph.Iso.card_edgeFinset_eq to untangle imports (#11817)

The single and currently unused theorem card_edgeFinset_eq in Combinatorics.SimpleGraph.Maps causes a dependency of that file on Combinatorics.SimpleGraph.Finite, which is problematic because the key concepts of Maps don't depend on graph finiteness at all. This commit moves the offending theorem to Operations in anticipation of #9317.

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Hunter Monroe. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Hunter Monroe, Kyle Miller, Alena Gusakov
 -/
-import Mathlib.Init.Core
+import Mathlib.Combinatorics.SimpleGraph.Finite
 import Mathlib.Combinatorics.SimpleGraph.Maps
 
 #align_import combinatorics.simple_graph.subgraph from "leanprover-community/mathlib"@"c6ef6387ede9983aee397d442974e61f89dfd87b"
chore: remove more autoImplicit (#11336)

... or reduce its scope (the full removal is not as obvious).

Diff
@@ -901,8 +901,7 @@ theorem edgeSet_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
     forall₂_true_iff]
 #align simple_graph.edge_set_subgraph_of_adj SimpleGraph.edgeSet_subgraphOfAdj
 
-set_option autoImplicit true in
-lemma subgraphOfAdj_le_of_adj (H : G.Subgraph) (h : H.Adj v w) :
+lemma subgraphOfAdj_le_of_adj {v w : V} (H : G.Subgraph) (h : H.Adj v w) :
     G.subgraphOfAdj (H.adj_sub h) ≤ H := by
   constructor
   · intro x
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -468,7 +468,7 @@ instance : CompletelyDistribLattice G.Subgraph :=
     le_top := fun G' => ⟨Set.subset_univ _, fun a b => G'.adj_sub⟩
     bot_le := fun G' => ⟨Set.empty_subset _, fun a b => False.elim⟩
     sSup := sSup
-    -- porting note: needed `apply` here to modify elaboration; previously the term itself was fine.
+    -- Porting note: needed `apply` here to modify elaboration; previously the term itself was fine.
     le_sSup := fun s G' hG' => ⟨by apply Set.subset_iUnion₂ G' hG', fun a b hab => ⟨G', hG', hab⟩⟩
     sSup_le := fun s G' hG' =>
       ⟨Set.iUnion₂_subset fun H hH => (hG' _ hH).1, by
chore: reduce imports (#9830)

This uses the improved shake script from #9772 to reduce imports across mathlib. The corresponding noshake.json file has been added to #9772.

Co-authored-by: Mario Carneiro <di.gama@gmail.com>

Diff
@@ -3,6 +3,7 @@ Copyright (c) 2021 Hunter Monroe. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Hunter Monroe, Kyle Miller, Alena Gusakov
 -/
+import Mathlib.Init.Core
 import Mathlib.Combinatorics.SimpleGraph.Maps
 
 #align_import combinatorics.simple_graph.subgraph from "leanprover-community/mathlib"@"c6ef6387ede9983aee397d442974e61f89dfd87b"
chore(*): rename FunLike to DFunLike (#9785)

This prepares for the introduction of a non-dependent synonym of FunLike, which helps a lot with keeping #8386 readable.

This is entirely search-and-replace in 680197f combined with manual fixes in 4145626, e900597 and b8428f8. The commands that generated this change:

sed -i 's/\bFunLike\b/DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoFunLike\b/toDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/import Mathlib.Data.DFunLike/import Mathlib.Data.FunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bHom_FunLike\b/Hom_DFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean     
sed -i 's/\binstFunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\bfunLike\b/instDFunLike/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean
sed -i 's/\btoo many metavariables to apply `fun_like.has_coe_to_fun`/too many metavariables to apply `DFunLike.hasCoeToFun`/g' {Archive,Counterexamples,Mathlib,test}/**/*.lean

Co-authored-by: Anne Baanen <Vierkantor@users.noreply.github.com>

Diff
@@ -720,7 +720,7 @@ def inclusion {x y : Subgraph G} (h : x ≤ y) : x.coe →g y.coe where
 
 theorem inclusion.injective {x y : Subgraph G} (h : x ≤ y) : Function.Injective (inclusion h) := by
   intro v w h
-  rw [inclusion, FunLike.coe, Subtype.mk_eq_mk] at h
+  rw [inclusion, DFunLike.coe, Subtype.mk_eq_mk] at h
   exact Subtype.ext h
 #align simple_graph.subgraph.inclusion.injective SimpleGraph.Subgraph.inclusion.injective
 
refactor: split graph maps into a new file (#9579)

A continuation from https://github.com/leanprover-community/mathlib4/pull/9267#discussion_r1437052000.

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2021 Hunter Monroe. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Hunter Monroe, Kyle Miller, Alena Gusakov
 -/
-import Mathlib.Combinatorics.SimpleGraph.Basic
+import Mathlib.Combinatorics.SimpleGraph.Maps
 
 #align_import combinatorics.simple_graph.subgraph from "leanprover-community/mathlib"@"c6ef6387ede9983aee397d442974e61f89dfd87b"
 
chore: Improve Finset lemma names (#8894)

Change a few lemma names that have historically bothered me.

  • Finset.card_le_of_subsetFinset.card_le_card
  • Multiset.card_le_of_leMultiset.card_le_card
  • Multiset.card_lt_of_ltMultiset.card_lt_card
  • Set.ncard_le_of_subsetSet.ncard_le_ncard
  • Finset.image_filterFinset.filter_image
  • CompleteLattice.finset_sup_compact_of_compactCompleteLattice.isCompactElement_finset_sup
Diff
@@ -802,12 +802,12 @@ theorem finset_card_neighborSet_eq_degree {G' : Subgraph G} {v : V} [Fintype (G'
 theorem degree_le (G' : Subgraph G) (v : V) [Fintype (G'.neighborSet v)]
     [Fintype (G.neighborSet v)] : G'.degree v ≤ G.degree v := by
   rw [← card_neighborSet_eq_degree]
-  exact Set.card_le_of_subset (G'.neighborSet_subset v)
+  exact Set.card_le_card (G'.neighborSet_subset v)
 #align simple_graph.subgraph.degree_le SimpleGraph.Subgraph.degree_le
 
 theorem degree_le' (G' G'' : Subgraph G) (h : G' ≤ G'') (v : V) [Fintype (G'.neighborSet v)]
     [Fintype (G''.neighborSet v)] : G'.degree v ≤ G''.degree v :=
-  Set.card_le_of_subset (neighborSet_subset_of_subgraph h v)
+  Set.card_le_card (neighborSet_subset_of_subgraph h v)
 #align simple_graph.subgraph.degree_le' SimpleGraph.Subgraph.degree_le'
 
 @[simp]
refactor: remove Sym2's global Prod setoid instance, use s(x, y) notation for unordered pairs (#8729)

The Sym2 type used a global setoid instance on α × α so that ⟦(x, y)⟧ could stand for an unordered pair using standard Quotient syntax. This commit refactors Sym2 to not use Quotient and instead use its own s(x, y) notation. One benefit to this is that this notation produces a term with type Sym2 rather than Quotient.

The Fintype instance for Sym2 is in Mathlib.Data.Finset.Sym. We switch from using the one for Quotient because it does not require DecidableEq.

Diff
@@ -83,7 +83,7 @@ protected def singletonSubgraph (G : SimpleGraph V) (v : V) : G.Subgraph where
 @[simps]
 def subgraphOfAdj (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) : G.Subgraph where
   verts := {v, w}
-  Adj a b := ⟦(v, w)⟧ = ⟦(a, b)⟧
+  Adj a b := s(v, w) = s(a, b)
   adj_sub h := by
     rw [← G.mem_edgeSet, ← h]
     exact hvw
@@ -239,7 +239,7 @@ theorem edgeSet_subset (G' : Subgraph G) : G'.edgeSet ⊆ G.edgeSet :=
 #align simple_graph.subgraph.edge_set_subset SimpleGraph.Subgraph.edgeSet_subset
 
 @[simp]
-theorem mem_edgeSet {G' : Subgraph G} {v w : V} : ⟦(v, w)⟧ ∈ G'.edgeSet ↔ G'.Adj v w := Iff.rfl
+theorem mem_edgeSet {G' : Subgraph G} {v w : V} : s(v, w) ∈ G'.edgeSet ↔ G'.Adj v w := Iff.rfl
 #align simple_graph.subgraph.mem_edge_set SimpleGraph.Subgraph.mem_edgeSet
 
 theorem mem_verts_if_mem_edge {G' : Subgraph G} {e : Sym2 V} {v : V} (he : e ∈ G'.edgeSet)
@@ -893,7 +893,7 @@ instance nonempty_subgraphOfAdj_verts {v w : V} (hvw : G.Adj v w) :
 
 @[simp]
 theorem edgeSet_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
-    (G.subgraphOfAdj hvw).edgeSet = {⟦(v, w)⟧} := by
+    (G.subgraphOfAdj hvw).edgeSet = {s(v, w)} := by
   ext e
   refine' e.ind _
   simp only [eq_comm, Set.mem_singleton_iff, Subgraph.mem_edgeSet, subgraphOfAdj_adj, iff_self_iff,
@@ -906,7 +906,7 @@ lemma subgraphOfAdj_le_of_adj (H : G.Subgraph) (h : H.Adj v w) :
   constructor
   · intro x
     rintro (rfl | rfl) <;> simp [H.edge_vert h, H.edge_vert h.symm]
-  · simp only [subgraphOfAdj_adj, Quotient.eq, Sym2.rel_iff]
+  · simp only [subgraphOfAdj_adj, Sym2.eq, Sym2.rel_iff]
     rintro _ _ (⟨rfl, rfl⟩ | ⟨rfl, rfl⟩) <;> simp [h, h.symm]
 
 theorem subgraphOfAdj_symm {v w : V} (hvw : G.Adj v w) :
@@ -927,7 +927,7 @@ theorem map_subgraphOfAdj (f : G →g G') {v w : V} (hvw : G.Adj v w) :
         simp
       · use w
         simp
-  · simp only [Relation.Map, Subgraph.map_adj, subgraphOfAdj_adj, Quotient.eq, Sym2.rel_iff]
+  · simp only [Relation.Map, Subgraph.map_adj, subgraphOfAdj_adj, Sym2.eq, Sym2.rel_iff]
     constructor
     · rintro ⟨a, b, ⟨rfl, rfl⟩ | ⟨rfl, rfl⟩, rfl, rfl⟩ <;> simp
     · rintro (⟨rfl, rfl⟩ | ⟨rfl, rfl⟩)
@@ -1065,7 +1065,7 @@ theorem deleteEdges_verts : (G'.deleteEdges s).verts = G'.verts :=
 #align simple_graph.subgraph.delete_edges_verts SimpleGraph.Subgraph.deleteEdges_verts
 
 @[simp]
-theorem deleteEdges_adj (v w : V) : (G'.deleteEdges s).Adj v w ↔ G'.Adj v w ∧ ¬⟦(v, w)⟧ ∈ s :=
+theorem deleteEdges_adj (v w : V) : (G'.deleteEdges s).Adj v w ↔ G'.Adj v w ∧ ¬s(v, w) ∈ s :=
   Iff.rfl
 #align simple_graph.subgraph.delete_edges_adj SimpleGraph.Subgraph.deleteEdges_adj
 
@@ -1097,7 +1097,7 @@ theorem deleteEdges_coe_eq (s : Set (Sym2 G'.verts)) :
   · intro hs
     refine' Sym2.ind _
     rintro ⟨v', hv'⟩ ⟨w', hw'⟩
-    simp only [Sym2.map_pair_eq, Quotient.eq]
+    simp only [Sym2.map_pair_eq, Sym2.eq]
     contrapose!
     rintro (_ | _) <;> simpa only [Sym2.eq_swap]
   · intro h' hs
@@ -1231,7 +1231,7 @@ theorem subgraphOfAdj_eq_induce {v w : V} (hvw : G.Adj v w) :
   · simp
   · constructor
     · intro h
-      simp only [subgraphOfAdj_adj, Quotient.eq, Sym2.rel_iff] at h
+      simp only [subgraphOfAdj_adj, Sym2.eq, Sym2.rel_iff] at h
       obtain ⟨rfl, rfl⟩ | ⟨rfl, rfl⟩ := h <;> simp [hvw, hvw.symm]
     · intro h
       simp only [induce_adj, Set.mem_insert_iff, Set.mem_singleton_iff, top_adj] at h
chore: Fix name of SimpleGraph.Adj projection (#8179)

simps was generating lemmas named _Adj. This PR makes it generate _adj instead, to follow the naming convention.

Diff
@@ -65,6 +65,8 @@ structure Subgraph {V : Type u} (G : SimpleGraph V) where
   symm : Symmetric Adj := by aesop_graph -- Porting note: Originally `by obviously`
 #align simple_graph.subgraph SimpleGraph.Subgraph
 
+initialize_simps_projections SimpleGraph.Subgraph (Adj → adj)
+
 variable {ι : Sort*} {V : Type u} {W : Type v}
 
 /-- The one-vertex subgraph. -/
@@ -661,7 +663,7 @@ theorem map_sup {G : SimpleGraph V} {G' : SimpleGraph W} (f : G →g G') {H H' :
   ext1
   · simp only [Set.image_union, map_verts, verts_sup]
   · ext
-    simp only [Relation.Map, map_Adj, sup_adj]
+    simp only [Relation.Map, map_adj, sup_adj]
     constructor
     · rintro ⟨a, b, h | h, rfl, rfl⟩
       · exact Or.inl ⟨_, _, h, rfl, rfl⟩
@@ -688,7 +690,7 @@ theorem comap_monotone {G' : SimpleGraph W} (f : G →g G') : Monotone (Subgraph
     simp only [comap_verts, Set.mem_preimage]
     apply h.1
   · intro v w
-    simp (config := { contextual := true }) only [comap_Adj, and_imp, true_and_iff]
+    simp (config := { contextual := true }) only [comap_adj, and_imp, true_and_iff]
     intro
     apply h.2
 #align simple_graph.subgraph.comap_monotone SimpleGraph.Subgraph.comap_monotone
@@ -698,12 +700,12 @@ theorem map_le_iff_le_comap {G' : SimpleGraph W} (f : G →g G') (H : G.Subgraph
   refine' ⟨fun h ↦ ⟨fun v hv ↦ _, fun v w hvw ↦ _⟩, fun h ↦ ⟨fun v ↦ _, fun v w ↦ _⟩⟩
   · simp only [comap_verts, Set.mem_preimage]
     exact h.1 ⟨v, hv, rfl⟩
-  · simp only [H.adj_sub hvw, comap_Adj, true_and_iff]
+  · simp only [H.adj_sub hvw, comap_adj, true_and_iff]
     exact h.2 ⟨v, w, hvw, rfl, rfl⟩
   · simp only [map_verts, Set.mem_image, forall_exists_index, and_imp]
     rintro w hw rfl
     exact h.1 hw
-  · simp only [Relation.Map, map_Adj, forall_exists_index, and_imp]
+  · simp only [Relation.Map, map_adj, forall_exists_index, and_imp]
     rintro u u' hu rfl rfl
     exact (h.2 hu).2
 #align simple_graph.subgraph.map_le_iff_le_comap SimpleGraph.Subgraph.map_le_iff_le_comap
@@ -854,7 +856,7 @@ theorem singletonSubgraph_le_iff (v : V) (H : G.Subgraph) :
 @[simp]
 theorem map_singletonSubgraph (f : G →g G') {v : V} :
     Subgraph.map f (G.singletonSubgraph v) = G'.singletonSubgraph (f v) := by
-  ext <;> simp only [Relation.Map, Subgraph.map_Adj, singletonSubgraph_Adj, Pi.bot_apply,
+  ext <;> simp only [Relation.Map, Subgraph.map_adj, singletonSubgraph_adj, Pi.bot_apply,
     exists_and_left, and_iff_left_iff_imp, IsEmpty.forall_iff, Subgraph.map_verts,
     singletonSubgraph_verts, Set.image_singleton]
   exact False.elim
@@ -875,7 +877,7 @@ theorem eq_singletonSubgraph_iff_verts_eq (H : G.Subgraph) {v : V} :
   refine' ⟨fun h ↦ by rw [h, singletonSubgraph_verts], fun h ↦ _⟩
   ext
   · rw [h, singletonSubgraph_verts]
-  · simp only [Prop.bot_eq_false, singletonSubgraph_Adj, Pi.bot_apply, iff_false_iff]
+  · simp only [Prop.bot_eq_false, singletonSubgraph_adj, Pi.bot_apply, iff_false_iff]
     intro ha
     have ha1 := ha.fst_mem
     have ha2 := ha.snd_mem
@@ -894,7 +896,7 @@ theorem edgeSet_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
     (G.subgraphOfAdj hvw).edgeSet = {⟦(v, w)⟧} := by
   ext e
   refine' e.ind _
-  simp only [eq_comm, Set.mem_singleton_iff, Subgraph.mem_edgeSet, subgraphOfAdj_Adj, iff_self_iff,
+  simp only [eq_comm, Set.mem_singleton_iff, Subgraph.mem_edgeSet, subgraphOfAdj_adj, iff_self_iff,
     forall₂_true_iff]
 #align simple_graph.edge_set_subgraph_of_adj SimpleGraph.edgeSet_subgraphOfAdj
 
@@ -904,7 +906,7 @@ lemma subgraphOfAdj_le_of_adj (H : G.Subgraph) (h : H.Adj v w) :
   constructor
   · intro x
     rintro (rfl | rfl) <;> simp [H.edge_vert h, H.edge_vert h.symm]
-  · simp only [subgraphOfAdj_Adj, Quotient.eq, Sym2.rel_iff]
+  · simp only [subgraphOfAdj_adj, Quotient.eq, Sym2.rel_iff]
     rintro _ _ (⟨rfl, rfl⟩ | ⟨rfl, rfl⟩) <;> simp [h, h.symm]
 
 theorem subgraphOfAdj_symm {v w : V} (hvw : G.Adj v w) :
@@ -925,7 +927,7 @@ theorem map_subgraphOfAdj (f : G →g G') {v w : V} (hvw : G.Adj v w) :
         simp
       · use w
         simp
-  · simp only [Relation.Map, Subgraph.map_Adj, subgraphOfAdj_Adj, Quotient.eq, Sym2.rel_iff]
+  · simp only [Relation.Map, Subgraph.map_adj, subgraphOfAdj_adj, Quotient.eq, Sym2.rel_iff]
     constructor
     · rintro ⟨a, b, ⟨rfl, rfl⟩ | ⟨rfl, rfl⟩, rfl, rfl⟩ <;> simp
     · rintro (⟨rfl, rfl⟩ | ⟨rfl, rfl⟩)
@@ -1001,19 +1003,19 @@ protected def restrict {G' : G.Subgraph} : G.Subgraph → G'.coe.Subgraph :=
   Subgraph.comap G'.hom
 #align simple_graph.subgraph.restrict SimpleGraph.Subgraph.restrict
 
-lemma coeSubgraph_Adj {G' : G.Subgraph} (G'' : G'.coe.Subgraph) (v w : V) :
+lemma coeSubgraph_adj {G' : G.Subgraph} (G'' : G'.coe.Subgraph) (v w : V) :
     (G'.coeSubgraph G'').Adj v w ↔
       ∃ (hv : v ∈ G'.verts) (hw : w ∈ G'.verts), G''.Adj ⟨v, hv⟩ ⟨w, hw⟩ := by
   simp [Relation.Map]
 
-lemma restrict_Adj {G' G'' : G.Subgraph} (v w : G'.verts) :
+lemma restrict_adj {G' G'' : G.Subgraph} (v w : G'.verts) :
     (G'.restrict G'').Adj v w ↔ G'.Adj v w ∧ G''.Adj v w := Iff.rfl
 
 theorem restrict_coeSubgraph {G' : G.Subgraph} (G'' : G'.coe.Subgraph) :
     Subgraph.restrict (Subgraph.coeSubgraph G'') = G'' := by
   ext
   · simp
-  · rw [restrict_Adj, coeSubgraph_Adj]
+  · rw [restrict_adj, coeSubgraph_adj]
     simpa using G''.adj_sub
 #align simple_graph.subgraph.restrict_coe_subgraph SimpleGraph.Subgraph.restrict_coeSubgraph
 
@@ -1033,7 +1035,7 @@ lemma coeSubgraph_restrict_eq {H : G.Subgraph} (H' : G.Subgraph) :
     Subgraph.coeSubgraph (H.restrict H') = H ⊓ H' := by
   ext
   · simp [and_comm]
-  · simp_rw [coeSubgraph_Adj, restrict_Adj]
+  · simp_rw [coeSubgraph_adj, restrict_adj]
     simp only [exists_and_left, exists_prop, ge_iff_le, inf_adj, and_congr_right_iff]
     intro h
     simp [H.edge_vert h, H.edge_vert h.symm]
@@ -1088,7 +1090,7 @@ theorem deleteEdges_spanningCoe_eq :
 theorem deleteEdges_coe_eq (s : Set (Sym2 G'.verts)) :
     G'.coe.deleteEdges s = (G'.deleteEdges (Sym2.map (↑) '' s)).coe := by
   ext ⟨v, hv⟩ ⟨w, hw⟩
-  simp only [SimpleGraph.deleteEdges_adj, coe_Adj, deleteEdges_adj, Set.mem_image, not_exists,
+  simp only [SimpleGraph.deleteEdges_adj, coe_adj, deleteEdges_adj, Set.mem_image, not_exists,
     not_and, and_congr_right_iff]
   intro
   constructor
@@ -1174,7 +1176,7 @@ variable {G' G'' : G.Subgraph} {s s' : Set V}
 theorem induce_mono (hg : G' ≤ G'') (hs : s ⊆ s') : G'.induce s ≤ G''.induce s' := by
   constructor
   · simp [hs]
-  · simp (config := { contextual := true }) only [induce_Adj, true_and_iff, and_imp]
+  · simp (config := { contextual := true }) only [induce_adj, true_and_iff, and_imp]
     intro v w hv hw ha
     exact ⟨hs hv, hs hw, hg.2 ha⟩
 #align simple_graph.subgraph.induce_mono SimpleGraph.Subgraph.induce_mono
@@ -1199,7 +1201,7 @@ theorem induce_self_verts : G'.induce G'.verts = G' := by
   ext
   · simp
   · constructor <;>
-      simp (config := { contextual := true }) only [induce_Adj, imp_true_iff, and_true_iff]
+      simp (config := { contextual := true }) only [induce_adj, imp_true_iff, and_true_iff]
     exact fun ha ↦ ⟨G'.edge_vert ha, G'.edge_vert ha.symm⟩
 #align simple_graph.subgraph.induce_self_verts SimpleGraph.Subgraph.induce_self_verts
 
@@ -1210,7 +1212,7 @@ lemma le_induce_top_verts : G' ≤ (⊤ : G.Subgraph).induce G'.verts :=
 lemma le_induce_union : G'.induce s ⊔ G'.induce s' ≤ G'.induce (s ∪ s') := by
   constructor
   · simp only [verts_sup, induce_verts, Set.Subset.rfl]
-  · simp only [sup_adj, induce_Adj, Set.mem_union]
+  · simp only [sup_adj, induce_adj, Set.mem_union]
     rintro v w (h | h) <;> simp [h]
 
 lemma le_induce_union_left : G'.induce s ≤ G'.induce (s ∪ s') := by
@@ -1229,10 +1231,10 @@ theorem subgraphOfAdj_eq_induce {v w : V} (hvw : G.Adj v w) :
   · simp
   · constructor
     · intro h
-      simp only [subgraphOfAdj_Adj, Quotient.eq, Sym2.rel_iff] at h
+      simp only [subgraphOfAdj_adj, Quotient.eq, Sym2.rel_iff] at h
       obtain ⟨rfl, rfl⟩ | ⟨rfl, rfl⟩ := h <;> simp [hvw, hvw.symm]
     · intro h
-      simp only [induce_Adj, Set.mem_insert_iff, Set.mem_singleton_iff, top_adj] at h
+      simp only [induce_adj, Set.mem_insert_iff, Set.mem_singleton_iff, top_adj] at h
       obtain ⟨rfl | rfl, rfl | rfl, ha⟩ := h <;> first |exact (ha.ne rfl).elim|simp
 #align simple_graph.subgraph.subgraph_of_adj_eq_induce SimpleGraph.Subgraph.subgraphOfAdj_eq_induce
 
fix: disable autoImplicit globally (#6528)

Autoimplicits are highly controversial and also defeat the performance-improving work in #6474.

The intent of this PR is to make autoImplicit opt-in on a per-file basis, by disabling it in the lakefile and enabling it again with set_option autoImplicit true in the few files that rely on it.

That also keeps this PR small, as opposed to attempting to "fix" files to not need it any more.

I claim that many of the uses of autoImplicit in these files are accidental; situations such as:

  • Assuming variables are in scope, but pasting the lemma in the wrong section
  • Pasting in a lemma from a scratch file without checking to see if the variable names are consistent with the rest of the file
  • Making a copy-paste error between lemmas and forgetting to add an explicit arguments.

Having set_option autoImplicit false as the default prevents these types of mistake being made in the 90% of files where autoImplicits are not used at all, and causes them to be caught by CI during review.

I think there were various points during the port where we encouraged porters to delete the universes u v lines; I think having autoparams for universe variables only would cover a lot of the cases we actually use them, while avoiding any real shortcomings.

A Zulip poll (after combining overlapping votes accordingly) was in favor of this change with 5:5:18 as the no:dontcare:yes vote ratio.

While this PR was being reviewed, a handful of files gained some more likely-accidental autoImplicits. In these places, set_option autoImplicit true has been placed locally within a section, rather than at the top of the file.

Diff
@@ -898,6 +898,7 @@ theorem edgeSet_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
     forall₂_true_iff]
 #align simple_graph.edge_set_subgraph_of_adj SimpleGraph.edgeSet_subgraphOfAdj
 
+set_option autoImplicit true in
 lemma subgraphOfAdj_le_of_adj (H : G.Subgraph) (h : H.Adj v w) :
     G.subgraphOfAdj (H.adj_sub h) ≤ H := by
   constructor
feat: lemmas about connectivity of subgraphs and induced graphs (#5927)

(Replaces [mathlib#18454](https://github.com/leanprover-community/mathlib/pull/18454).)

Co-authored-by: Rémi Bottinelli <remi.bottinelli@bluewin.ch>

Diff
@@ -729,6 +729,9 @@ protected def hom (x : Subgraph G) : x.coe →g G where
   map_rel' := x.adj_sub
 #align simple_graph.subgraph.hom SimpleGraph.Subgraph.hom
 
+@[simp] lemma coe_hom (x : Subgraph G) :
+    (x.hom : x.verts → V) = (fun (v : x.verts) => (v : V)) := rfl
+
 theorem hom.injective {x : Subgraph G} : Function.Injective x.hom :=
   fun _ _ ↦ Subtype.ext
 #align simple_graph.subgraph.hom.injective SimpleGraph.Subgraph.hom.injective
@@ -895,6 +898,14 @@ theorem edgeSet_subgraphOfAdj {v w : V} (hvw : G.Adj v w) :
     forall₂_true_iff]
 #align simple_graph.edge_set_subgraph_of_adj SimpleGraph.edgeSet_subgraphOfAdj
 
+lemma subgraphOfAdj_le_of_adj (H : G.Subgraph) (h : H.Adj v w) :
+    G.subgraphOfAdj (H.adj_sub h) ≤ H := by
+  constructor
+  · intro x
+    rintro (rfl | rfl) <;> simp [H.edge_vert h, H.edge_vert h.symm]
+  · simp only [subgraphOfAdj_Adj, Quotient.eq, Sym2.rel_iff]
+    rintro _ _ (⟨rfl, rfl⟩ | ⟨rfl, rfl⟩) <;> simp [h, h.symm]
+
 theorem subgraphOfAdj_symm {v w : V} (hvw : G.Adj v w) :
     G.subgraphOfAdj hvw.symm = G.subgraphOfAdj hvw := by
   ext <;> simp [or_comm, and_comm]
@@ -989,14 +1000,20 @@ protected def restrict {G' : G.Subgraph} : G.Subgraph → G'.coe.Subgraph :=
   Subgraph.comap G'.hom
 #align simple_graph.subgraph.restrict SimpleGraph.Subgraph.restrict
 
+lemma coeSubgraph_Adj {G' : G.Subgraph} (G'' : G'.coe.Subgraph) (v w : V) :
+    (G'.coeSubgraph G'').Adj v w ↔
+      ∃ (hv : v ∈ G'.verts) (hw : w ∈ G'.verts), G''.Adj ⟨v, hv⟩ ⟨w, hw⟩ := by
+  simp [Relation.Map]
+
+lemma restrict_Adj {G' G'' : G.Subgraph} (v w : G'.verts) :
+    (G'.restrict G'').Adj v w ↔ G'.Adj v w ∧ G''.Adj v w := Iff.rfl
+
 theorem restrict_coeSubgraph {G' : G.Subgraph} (G'' : G'.coe.Subgraph) :
     Subgraph.restrict (Subgraph.coeSubgraph G'') = G'' := by
   ext
   · simp
-  · simp only [Relation.Map, comap_Adj, coe_Adj, Subtype.coe_prop, hom_apply, map_Adj,
-      SetCoe.exists, Subtype.coe_mk, exists_and_right, exists_eq_right_right, Subtype.coe_eta,
-      exists_true_left, exists_eq_right, and_iff_right_iff_imp]
-    apply G''.adj_sub
+  · rw [restrict_Adj, coeSubgraph_Adj]
+    simpa using G''.adj_sub
 #align simple_graph.subgraph.restrict_coe_subgraph SimpleGraph.Subgraph.restrict_coeSubgraph
 
 theorem coeSubgraph_injective (G' : G.Subgraph) :
@@ -1004,6 +1021,22 @@ theorem coeSubgraph_injective (G' : G.Subgraph) :
   Function.LeftInverse.injective restrict_coeSubgraph
 #align simple_graph.subgraph.coe_subgraph_injective SimpleGraph.Subgraph.coeSubgraph_injective
 
+lemma coeSubgraph_le {H : G.Subgraph} (H' : H.coe.Subgraph) :
+    Subgraph.coeSubgraph H' ≤ H := by
+  constructor
+  · simp
+  · rintro v w ⟨_, _, h, rfl, rfl⟩
+    exact H'.adj_sub h
+
+lemma coeSubgraph_restrict_eq {H : G.Subgraph} (H' : G.Subgraph) :
+    Subgraph.coeSubgraph (H.restrict H') = H ⊓ H' := by
+  ext
+  · simp [and_comm]
+  · simp_rw [coeSubgraph_Adj, restrict_Adj]
+    simp only [exists_and_left, exists_prop, ge_iff_le, inf_adj, and_congr_right_iff]
+    intro h
+    simp [H.edge_vert h, H.edge_vert h.symm]
+
 /-! ### Edge deletion -/
 
 
@@ -1169,6 +1202,22 @@ theorem induce_self_verts : G'.induce G'.verts = G' := by
     exact fun ha ↦ ⟨G'.edge_vert ha, G'.edge_vert ha.symm⟩
 #align simple_graph.subgraph.induce_self_verts SimpleGraph.Subgraph.induce_self_verts
 
+lemma le_induce_top_verts : G' ≤ (⊤ : G.Subgraph).induce G'.verts :=
+  calc G' = G'.induce G'.verts               := Subgraph.induce_self_verts.symm
+       _  ≤ (⊤ : G.Subgraph).induce G'.verts := Subgraph.induce_mono_left le_top
+
+lemma le_induce_union : G'.induce s ⊔ G'.induce s' ≤ G'.induce (s ∪ s') := by
+  constructor
+  · simp only [verts_sup, induce_verts, Set.Subset.rfl]
+  · simp only [sup_adj, induce_Adj, Set.mem_union]
+    rintro v w (h | h) <;> simp [h]
+
+lemma le_induce_union_left : G'.induce s ≤ G'.induce (s ∪ s') := by
+  exact (sup_le_iff.mp le_induce_union).1
+
+lemma le_induce_union_right : G'.induce s' ≤ G'.induce (s ∪ s') := by
+  exact (sup_le_iff.mp le_induce_union).2
+
 theorem singletonSubgraph_eq_induce {v : V} : G.singletonSubgraph v = (⊤ : G.Subgraph).induce {v} :=
   by ext <;> simp (config := { contextual := true }) [-Set.bot_eq_empty, Prop.bot_eq_false]
 #align simple_graph.subgraph.singleton_subgraph_eq_induce SimpleGraph.Subgraph.singletonSubgraph_eq_induce
chore: banish Type _ and Sort _ (#6499)

We remove all possible occurences of Type _ and Sort _ in favor of Type* and Sort*.

This has nice performance benefits.

Diff
@@ -65,7 +65,7 @@ structure Subgraph {V : Type u} (G : SimpleGraph V) where
   symm : Symmetric Adj := by aesop_graph -- Porting note: Originally `by obviously`
 #align simple_graph.subgraph SimpleGraph.Subgraph
 
-variable {ι : Sort _} {V : Type u} {W : Type v}
+variable {ι : Sort*} {V : Type u} {W : Type v}
 
 /-- The one-vertex subgraph. -/
 @[simps]
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2021 Hunter Monroe. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Hunter Monroe, Kyle Miller, Alena Gusakov
-
-! This file was ported from Lean 3 source module combinatorics.simple_graph.subgraph
-! leanprover-community/mathlib commit c6ef6387ede9983aee397d442974e61f89dfd87b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.Combinatorics.SimpleGraph.Basic
 
+#align_import combinatorics.simple_graph.subgraph from "leanprover-community/mathlib"@"c6ef6387ede9983aee397d442974e61f89dfd87b"
+
 /-!
 # Subgraphs of a simple graph
 
feat: CompletelyDistribLattice (#5238)

Adds new CompletelyDistribLattice/CompleteAtomicBooleanAlgebra classes for complete lattices / complete atomic Boolean algebras that are also completely distributive, and removes the misleading claim that CompleteDistribLattice/CompleteBooleanAlgebra are completely distributive.

  • Product/pi/order dual instances for completely distributive lattices, etc.
  • Every complete linear order is a completely distributive lattice.
  • Every atomic complete Boolean algebra is a complete atomic Boolean algebra.
  • Every complete atomic Boolean algebra is indeed (co)atom(ist)ic.
  • Atom(ist)ic orders are closed under pis.
  • All existing types with CompleteDistribLattice instances are upgraded to CompletelyDistribLattice.
  • All existing types with CompleteBooleanAlgebra instances are upgraded to CompleteAtomicBooleanAlgebra.

See related discussion on Zulip.

Diff
@@ -437,14 +437,17 @@ theorem verts_iSup {f : ι → G.Subgraph} : (⨆ i, f i).verts = ⋃ i, (f i).v
 theorem verts_iInf {f : ι → G.Subgraph} : (⨅ i, f i).verts = ⋂ i, (f i).verts := by simp [iInf]
 #align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_iInf
 
+theorem verts_spanningCoe_injective :
+    (fun G' : Subgraph G => (G'.verts, G'.spanningCoe)).Injective := by
+  intro G₁ G₂ h
+  rw [Prod.ext_iff] at h
+  exact Subgraph.ext _ _ h.1 (spanningCoe_inj.1 h.2)
+
 /-- For subgraphs `G₁`, `G₂`, `G₁ ≤ G₂` iff `G₁.verts ⊆ G₂.verts` and
 `∀ a b, G₁.adj a b → G₂.adj a b`. -/
 instance distribLattice : DistribLattice G.Subgraph :=
   { show DistribLattice G.Subgraph from
-      Function.Injective.distribLattice (fun G' => (G'.verts, G'.spanningCoe))
-        (fun G₁ G₂ h => by
-          rw [Prod.ext_iff] at h
-          exact Subgraph.ext _ _ h.1 (spanningCoe_inj.1 h.2))
+      verts_spanningCoe_injective.distribLattice _
         (fun _ _ => rfl) fun _ _ => rfl with
     le := fun x y => x.verts ⊆ y.verts ∧ ∀ ⦃v w : V⦄, x.Adj v w → y.Adj v w }
 
@@ -455,7 +458,7 @@ instance : BoundedOrder (Subgraph G) where
   bot_le _ := ⟨Set.empty_subset _, fun _ _ => False.elim⟩
 
 -- Note that subgraphs do not form a Boolean algebra, because of `verts`.
-instance : CompleteDistribLattice G.Subgraph :=
+instance : CompletelyDistribLattice G.Subgraph :=
   { Subgraph.distribLattice with
     le := (· ≤ ·)
     sup := (· ⊔ ·)
@@ -476,18 +479,8 @@ instance : CompleteDistribLattice G.Subgraph :=
     le_sInf := fun s G' hG' =>
       ⟨Set.subset_iInter₂ fun H hH => (hG' _ hH).1, fun a b hab =>
         ⟨fun H hH => (hG' _ hH).2 hab, G'.adj_sub hab⟩⟩
-    inf_sSup_le_iSup_inf := fun G' s => by
-      constructor
-      · intro v
-        simp
-      · intros a b
-        simp
-    iInf_sup_le_sup_sInf := fun G' s => by
-      constructor
-      · intro
-        simp [← forall_or_left]
-      · intros a b hab
-        simpa [forall_and, forall_or_left, or_and_right, and_iff_left_of_imp G'.adj_sub] using hab }
+    iInf_iSup_eq := fun f => Subgraph.ext _ _ (by simpa using iInf_iSup_eq)
+      (by ext; simp [Classical.skolem]) }
 
 @[simps]
 instance subgraphInhabited : Inhabited (Subgraph G) := ⟨⊥⟩
chore: fix many typos (#4967)

These are all doc fixes

Diff
@@ -1199,7 +1199,7 @@ theorem subgraphOfAdj_eq_induce {v w : V} (hvw : G.Adj v w) :
 end Induce
 
 /-- Given a subgraph and a set of vertices, delete all the vertices from the subgraph,
-if present. Any edges indicent to the deleted vertices are deleted as well. -/
+if present. Any edges incident to the deleted vertices are deleted as well. -/
 @[reducible]
 def deleteVerts (G' : G.Subgraph) (s : Set V) : G.Subgraph :=
   G'.induce (G'.verts \ s)
chore: Rename to sSup/iSup (#3938)

As discussed on Zulip

Renames

  • supₛsSup
  • infₛsInf
  • supᵢiSup
  • infᵢiInf
  • bsupₛbsSup
  • binfₛbsInf
  • bsupᵢbiSup
  • binfᵢbiInf
  • csupₛcsSup
  • cinfₛcsInf
  • csupᵢciSup
  • cinfᵢciInf
  • unionₛsUnion
  • interₛsInter
  • unionᵢiUnion
  • interᵢiInter
  • bunionₛbsUnion
  • binterₛbsInter
  • bunionᵢbiUnion
  • binterᵢbiInter

Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -326,7 +326,7 @@ instance : Bot G.Subgraph where
       symm := fun _ _ => id }
 
 instance : SupSet G.Subgraph where
-  supₛ s :=
+  sSup s :=
     { verts := ⋃ G' ∈ s, verts G'
       Adj := fun a b => ∃ G' ∈ s, Adj G' a b
       adj_sub := by
@@ -334,15 +334,15 @@ instance : SupSet G.Subgraph where
         exact G'.adj_sub hab
       edge_vert := by
         rintro a b ⟨G', hG', hab⟩
-        exact Set.mem_unionᵢ₂_of_mem hG' (G'.edge_vert hab)
+        exact Set.mem_iUnion₂_of_mem hG' (G'.edge_vert hab)
       symm := fun a b h => by simpa [adj_comm] using h }
 
 instance : InfSet G.Subgraph where
-  infₛ s :=
+  sInf s :=
     { verts := ⋂ G' ∈ s, verts G'
       Adj := fun a b => (∀ ⦃G'⦄, G' ∈ s → Adj G' a b) ∧ G.Adj a b
       adj_sub := And.right
-      edge_vert := fun hab => Set.mem_interᵢ₂_of_mem fun G' hG' => G'.edge_vert <| hab.1 hG'
+      edge_vert := fun hab => Set.mem_iInter₂_of_mem fun G' hG' => G'.edge_vert <| hab.1 hG'
       symm := fun _ _ => And.imp (forall₂_imp fun _ _ => Adj.symm) G.adj_symm }
 
 @[simp]
@@ -386,56 +386,56 @@ theorem verts_bot : (⊥ : G.Subgraph).verts = ∅ :=
 #align simple_graph.subgraph.verts_bot SimpleGraph.Subgraph.verts_bot
 
 @[simp]
-theorem supₛ_adj {s : Set G.Subgraph} : (supₛ s).Adj a b ↔ ∃ G ∈ s, Adj G a b :=
+theorem sSup_adj {s : Set G.Subgraph} : (sSup s).Adj a b ↔ ∃ G ∈ s, Adj G a b :=
   Iff.rfl
-#align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.supₛ_adj
+#align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.sSup_adj
 
 @[simp]
-theorem infₛ_adj {s : Set G.Subgraph} : (infₛ s).Adj a b ↔ (∀ G' ∈ s, Adj G' a b) ∧ G.Adj a b :=
+theorem sInf_adj {s : Set G.Subgraph} : (sInf s).Adj a b ↔ (∀ G' ∈ s, Adj G' a b) ∧ G.Adj a b :=
   Iff.rfl
-#align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.infₛ_adj
+#align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.sInf_adj
 
 @[simp]
-theorem supᵢ_adj {f : ι → G.Subgraph} : (⨆ i, f i).Adj a b ↔ ∃ i, (f i).Adj a b := by
-  simp [supᵢ]
-#align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.supᵢ_adj
+theorem iSup_adj {f : ι → G.Subgraph} : (⨆ i, f i).Adj a b ↔ ∃ i, (f i).Adj a b := by
+  simp [iSup]
+#align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.iSup_adj
 
 @[simp]
-theorem infᵢ_adj {f : ι → G.Subgraph} : (⨅ i, f i).Adj a b ↔ (∀ i, (f i).Adj a b) ∧ G.Adj a b := by
-  simp [infᵢ]
-#align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.infᵢ_adj
+theorem iInf_adj {f : ι → G.Subgraph} : (⨅ i, f i).Adj a b ↔ (∀ i, (f i).Adj a b) ∧ G.Adj a b := by
+  simp [iInf]
+#align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.iInf_adj
 
-theorem infₛ_adj_of_nonempty {s : Set G.Subgraph} (hs : s.Nonempty) :
-    (infₛ s).Adj a b ↔ ∀ G' ∈ s, Adj G' a b :=
-  infₛ_adj.trans <|
+theorem sInf_adj_of_nonempty {s : Set G.Subgraph} (hs : s.Nonempty) :
+    (sInf s).Adj a b ↔ ∀ G' ∈ s, Adj G' a b :=
+  sInf_adj.trans <|
     and_iff_left_of_imp <| by
       obtain ⟨G', hG'⟩ := hs
       exact fun h => G'.adj_sub (h _ hG')
-#align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.infₛ_adj_of_nonempty
+#align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.sInf_adj_of_nonempty
 
-theorem infᵢ_adj_of_nonempty [Nonempty ι] {f : ι → G.Subgraph} :
+theorem iInf_adj_of_nonempty [Nonempty ι] {f : ι → G.Subgraph} :
     (⨅ i, f i).Adj a b ↔ ∀ i, (f i).Adj a b := by
-  rw [infᵢ, infₛ_adj_of_nonempty (Set.range_nonempty _)]
+  rw [iInf, sInf_adj_of_nonempty (Set.range_nonempty _)]
   simp
-#align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.infᵢ_adj_of_nonempty
+#align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.iInf_adj_of_nonempty
 
 @[simp]
-theorem verts_supₛ (s : Set G.Subgraph) : (supₛ s).verts = ⋃ G' ∈ s, verts G' :=
+theorem verts_sSup (s : Set G.Subgraph) : (sSup s).verts = ⋃ G' ∈ s, verts G' :=
   rfl
-#align simple_graph.subgraph.verts_Sup SimpleGraph.Subgraph.verts_supₛ
+#align simple_graph.subgraph.verts_Sup SimpleGraph.Subgraph.verts_sSup
 
 @[simp]
-theorem verts_infₛ (s : Set G.Subgraph) : (infₛ s).verts = ⋂ G' ∈ s, verts G' :=
+theorem verts_sInf (s : Set G.Subgraph) : (sInf s).verts = ⋂ G' ∈ s, verts G' :=
   rfl
-#align simple_graph.subgraph.verts_Inf SimpleGraph.Subgraph.verts_infₛ
+#align simple_graph.subgraph.verts_Inf SimpleGraph.Subgraph.verts_sInf
 
 @[simp]
-theorem verts_supᵢ {f : ι → G.Subgraph} : (⨆ i, f i).verts = ⋃ i, (f i).verts := by simp [supᵢ]
-#align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_supᵢ
+theorem verts_iSup {f : ι → G.Subgraph} : (⨆ i, f i).verts = ⋃ i, (f i).verts := by simp [iSup]
+#align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_iSup
 
 @[simp]
-theorem verts_infᵢ {f : ι → G.Subgraph} : (⨅ i, f i).verts = ⋂ i, (f i).verts := by simp [infᵢ]
-#align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_infᵢ
+theorem verts_iInf {f : ι → G.Subgraph} : (⨅ i, f i).verts = ⋂ i, (f i).verts := by simp [iInf]
+#align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_iInf
 
 /-- For subgraphs `G₁`, `G₂`, `G₁ ≤ G₂` iff `G₁.verts ⊆ G₂.verts` and
 `∀ a b, G₁.adj a b → G₂.adj a b`. -/
@@ -464,25 +464,25 @@ instance : CompleteDistribLattice G.Subgraph :=
     bot := ⊥
     le_top := fun G' => ⟨Set.subset_univ _, fun a b => G'.adj_sub⟩
     bot_le := fun G' => ⟨Set.empty_subset _, fun a b => False.elim⟩
-    supₛ := supₛ
+    sSup := sSup
     -- porting note: needed `apply` here to modify elaboration; previously the term itself was fine.
-    le_supₛ := fun s G' hG' => ⟨by apply Set.subset_unionᵢ₂ G' hG', fun a b hab => ⟨G', hG', hab⟩⟩
-    supₛ_le := fun s G' hG' =>
-      ⟨Set.unionᵢ₂_subset fun H hH => (hG' _ hH).1, by
+    le_sSup := fun s G' hG' => ⟨by apply Set.subset_iUnion₂ G' hG', fun a b hab => ⟨G', hG', hab⟩⟩
+    sSup_le := fun s G' hG' =>
+      ⟨Set.iUnion₂_subset fun H hH => (hG' _ hH).1, by
         rintro a b ⟨H, hH, hab⟩
         exact (hG' _ hH).2 hab⟩
-    infₛ := infₛ
-    infₛ_le := fun s G' hG' => ⟨Set.interᵢ₂_subset G' hG', fun a b hab => hab.1 hG'⟩
-    le_infₛ := fun s G' hG' =>
-      ⟨Set.subset_interᵢ₂ fun H hH => (hG' _ hH).1, fun a b hab =>
+    sInf := sInf
+    sInf_le := fun s G' hG' => ⟨Set.iInter₂_subset G' hG', fun a b hab => hab.1 hG'⟩
+    le_sInf := fun s G' hG' =>
+      ⟨Set.subset_iInter₂ fun H hH => (hG' _ hH).1, fun a b hab =>
         ⟨fun H hH => (hG' _ hH).2 hab, G'.adj_sub hab⟩⟩
-    inf_supₛ_le_supᵢ_inf := fun G' s => by
+    inf_sSup_le_iSup_inf := fun G' s => by
       constructor
       · intro v
         simp
       · intros a b
         simp
-    infᵢ_sup_le_sup_infₛ := fun G' s => by
+    iInf_sup_le_sup_sInf := fun G' s => by
       constructor
       · intro
         simp [← forall_or_left]
@@ -512,28 +512,28 @@ theorem neighborSet_bot (v : V) : (⊥ : G.Subgraph).neighborSet v = ∅ := rfl
 #align simple_graph.subgraph.neighbor_set_bot SimpleGraph.Subgraph.neighborSet_bot
 
 @[simp]
-theorem neighborSet_supₛ (s : Set G.Subgraph) (v : V) :
-    (supₛ s).neighborSet v = ⋃ G' ∈ s, neighborSet G' v := by
+theorem neighborSet_sSup (s : Set G.Subgraph) (v : V) :
+    (sSup s).neighborSet v = ⋃ G' ∈ s, neighborSet G' v := by
   ext
   simp
-#align simple_graph.subgraph.neighbor_set_Sup SimpleGraph.Subgraph.neighborSet_supₛ
+#align simple_graph.subgraph.neighbor_set_Sup SimpleGraph.Subgraph.neighborSet_sSup
 
 @[simp]
-theorem neighborSet_infₛ (s : Set G.Subgraph) (v : V) :
-    (infₛ s).neighborSet v = (⋂ G' ∈ s, neighborSet G' v) ∩ G.neighborSet v := by
+theorem neighborSet_sInf (s : Set G.Subgraph) (v : V) :
+    (sInf s).neighborSet v = (⋂ G' ∈ s, neighborSet G' v) ∩ G.neighborSet v := by
   ext
   simp
-#align simple_graph.subgraph.neighbor_set_Inf SimpleGraph.Subgraph.neighborSet_infₛ
+#align simple_graph.subgraph.neighbor_set_Inf SimpleGraph.Subgraph.neighborSet_sInf
 
 @[simp]
-theorem neighborSet_supᵢ (f : ι → G.Subgraph) (v : V) :
-    (⨆ i, f i).neighborSet v = ⋃ i, (f i).neighborSet v := by simp [supᵢ]
-#align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_supᵢ
+theorem neighborSet_iSup (f : ι → G.Subgraph) (v : V) :
+    (⨆ i, f i).neighborSet v = ⋃ i, (f i).neighborSet v := by simp [iSup]
+#align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_iSup
 
 @[simp]
-theorem neighborSet_infᵢ (f : ι → G.Subgraph) (v : V) :
-    (⨅ i, f i).neighborSet v = (⋂ i, (f i).neighborSet v) ∩ G.neighborSet v := by simp [infᵢ]
-#align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_infᵢ
+theorem neighborSet_iInf (f : ι → G.Subgraph) (v : V) :
+    (⨅ i, f i).neighborSet v = (⋂ i, (f i).neighborSet v) ∩ G.neighborSet v := by simp [iInf]
+#align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_iInf
 
 @[simp]
 theorem edgeSet_top : (⊤ : Subgraph G).edgeSet = G.edgeSet := rfl
@@ -555,30 +555,30 @@ theorem edgeSet_sup {H₁ H₂ : Subgraph G} : (H₁ ⊔ H₂).edgeSet = H₁.ed
 #align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_sup
 
 @[simp]
-theorem edgeSet_supₛ (s : Set G.Subgraph) : (supₛ s).edgeSet = ⋃ G' ∈ s, edgeSet G' := by
+theorem edgeSet_sSup (s : Set G.Subgraph) : (sSup s).edgeSet = ⋃ G' ∈ s, edgeSet G' := by
   ext e
   induction e using Sym2.ind
   simp
-#align simple_graph.subgraph.edge_set_Sup SimpleGraph.Subgraph.edgeSet_supₛ
+#align simple_graph.subgraph.edge_set_Sup SimpleGraph.Subgraph.edgeSet_sSup
 
 @[simp]
-theorem edgeSet_infₛ (s : Set G.Subgraph) :
-    (infₛ s).edgeSet = (⋂ G' ∈ s, edgeSet G') ∩ G.edgeSet := by
+theorem edgeSet_sInf (s : Set G.Subgraph) :
+    (sInf s).edgeSet = (⋂ G' ∈ s, edgeSet G') ∩ G.edgeSet := by
   ext e
   induction e using Sym2.ind
   simp
-#align simple_graph.subgraph.edge_set_Inf SimpleGraph.Subgraph.edgeSet_infₛ
+#align simple_graph.subgraph.edge_set_Inf SimpleGraph.Subgraph.edgeSet_sInf
 
 @[simp]
-theorem edgeSet_supᵢ (f : ι → G.Subgraph) :
-    (⨆ i, f i).edgeSet = ⋃ i, (f i).edgeSet := by simp [supᵢ]
-#align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_supᵢ
+theorem edgeSet_iSup (f : ι → G.Subgraph) :
+    (⨆ i, f i).edgeSet = ⋃ i, (f i).edgeSet := by simp [iSup]
+#align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_iSup
 
 @[simp]
-theorem edgeSet_infᵢ (f : ι → G.Subgraph) :
+theorem edgeSet_iInf (f : ι → G.Subgraph) :
     (⨅ i, f i).edgeSet = (⋂ i, (f i).edgeSet) ∩ G.edgeSet := by
-  simp [infᵢ]
-#align simple_graph.subgraph.edge_set_infi SimpleGraph.Subgraph.edgeSet_infᵢ
+  simp [iInf]
+#align simple_graph.subgraph.edge_set_infi SimpleGraph.Subgraph.edgeSet_iInf
 
 @[simp]
 theorem spanningCoe_top : (⊤ : Subgraph G).spanningCoe = G := rfl
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Hunter Monroe, Kyle Miller, Alena Gusakov
 
 ! This file was ported from Lean 3 source module combinatorics.simple_graph.subgraph
-! leanprover-community/mathlib commit d6e84a0d3db8910c99b3aa0c56be88fa8bab6f80
+! leanprover-community/mathlib commit c6ef6387ede9983aee397d442974e61f89dfd87b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -68,7 +68,7 @@ structure Subgraph {V : Type u} (G : SimpleGraph V) where
   symm : Symmetric Adj := by aesop_graph -- Porting note: Originally `by obviously`
 #align simple_graph.subgraph SimpleGraph.Subgraph
 
-variable {V : Type u} {W : Type v}
+variable {ι : Sort _} {V : Type u} {W : Type v}
 
 /-- The one-vertex subgraph. -/
 @[simps]
@@ -96,7 +96,7 @@ def subgraphOfAdj (G : SimpleGraph V) {v w : V} (hvw : G.Adj v w) : G.Subgraph w
 
 namespace Subgraph
 
-variable {G : SimpleGraph V}
+variable {G : SimpleGraph V} {G₁ G₂ : G.Subgraph} {a b : V}
 
 protected theorem loopless (G' : Subgraph G) : Irreflexive G'.Adj :=
   fun v h ↦ G.loopless v (G'.adj_sub h)
@@ -174,6 +174,10 @@ theorem Adj.of_spanningCoe {G' : Subgraph G} {u v : G'.verts} (h : G'.spanningCo
   G'.adj_sub h
 #align simple_graph.subgraph.adj.of_spanning_coe SimpleGraph.Subgraph.Adj.of_spanningCoe
 
+theorem spanningCoe_inj : G₁.spanningCoe = G₂.spanningCoe ↔ G₁.Adj = G₂.Adj := by
+  simp [Subgraph.spanningCoe]
+#align simple_graph.subgraph.spanning_coe_inj SimpleGraph.Subgraph.spanningCoe_inj
+
 /-- `spanningCoe` is equivalent to `coe` for a subgraph that `IsSpanning`. -/
 @[simps]
 def spanningCoeEquivCoeOfSpanning (G' : Subgraph G) (h : G'.IsSpanning) : G'.spanningCoe ≃g G'.coe
@@ -286,123 +290,251 @@ theorem copy_eq (G' : Subgraph G) (V'' : Set V) (hV : V'' = G'.verts)
 #align simple_graph.subgraph.copy_eq SimpleGraph.Subgraph.copy_eq
 
 /-- The union of two subgraphs. -/
-def union (x y : Subgraph G) : Subgraph G where
-  verts := x.verts ∪ y.verts
-  Adj := x.Adj ⊔ y.Adj
-  adj_sub h := Or.casesOn h x.adj_sub y.adj_sub
-  edge_vert h := Or.casesOn h (fun h ↦ Or.inl (x.edge_vert h)) fun h ↦ Or.inr (y.edge_vert h)
-  symm v w h := by rwa [Pi.sup_apply, Pi.sup_apply, x.adj_comm, y.adj_comm]
-#align simple_graph.subgraph.union SimpleGraph.Subgraph.union
+instance : Sup G.Subgraph where
+  sup G₁ G₂ :=
+    { verts := G₁.verts ∪ G₂.verts
+      Adj := G₁.Adj ⊔ G₂.Adj
+      adj_sub := fun hab => Or.elim hab (fun h => G₁.adj_sub h) fun h => G₂.adj_sub h
+      edge_vert := Or.imp (fun h => G₁.edge_vert h) fun h => G₂.edge_vert h
+      symm := fun _ _ => Or.imp G₁.adj_symm G₂.adj_symm }
 
 /-- The intersection of two subgraphs. -/
-def inter (x y : Subgraph G) : Subgraph G where
-  verts := x.verts ∩ y.verts
-  Adj := x.Adj ⊓ y.Adj
-  adj_sub h := x.adj_sub h.1
-  edge_vert h := ⟨x.edge_vert h.1, y.edge_vert h.2⟩
-  symm _ _ h := by rwa [Pi.inf_apply, Pi.inf_apply, x.adj_comm, y.adj_comm]
-#align simple_graph.subgraph.inter SimpleGraph.Subgraph.inter
+instance : Inf G.Subgraph where
+  inf G₁ G₂ :=
+    { verts := G₁.verts ∩ G₂.verts
+      Adj := G₁.Adj ⊓ G₂.Adj
+      adj_sub := fun hab => G₁.adj_sub hab.1
+      edge_vert := And.imp (fun h => G₁.edge_vert h) fun h => G₂.edge_vert h
+      symm := fun _ _ => And.imp G₁.adj_symm G₂.adj_symm }
 
 /-- The `top` subgraph is `G` as a subgraph of itself. -/
-def top : Subgraph G where
-  verts := Set.univ
-  Adj := G.Adj
-  adj_sub h := h
-  edge_vert {v _} _ := Set.mem_univ v
-  symm := G.symm
-#align simple_graph.subgraph.top SimpleGraph.Subgraph.top
+instance : Top G.Subgraph where
+  top :=
+    { verts := Set.univ
+      Adj := G.Adj
+      adj_sub := id
+      edge_vert := @fun v _ _ => Set.mem_univ v
+      symm := G.symm }
 
 /-- The `bot` subgraph is the subgraph with no vertices or edges. -/
-def bot : Subgraph G where
-  verts := ∅
-  Adj := ⊥
-  adj_sub := False.elim
-  edge_vert := False.elim
-  symm _ _ := False.elim
-#align simple_graph.subgraph.bot SimpleGraph.Subgraph.bot
-
-/-- The relation that one subgraph is a subgraph of another. -/
-def IsSubgraph (x y : Subgraph G) : Prop :=
-  x.verts ⊆ y.verts ∧ ∀ ⦃v w : V⦄, x.Adj v w → y.Adj v w
-#align simple_graph.subgraph.is_subgraph SimpleGraph.Subgraph.IsSubgraph
-
-instance : Lattice (Subgraph G) where
-  le := IsSubgraph
-  sup := union
-  inf := inter
-  le_refl x := ⟨rfl.subset, fun _ _ ↦ id⟩
-  le_trans x y z hxy hyz := ⟨hxy.1.trans hyz.1, fun _ _ h ↦ hyz.2 (hxy.2 h)⟩
-  le_antisymm := by
-    intro x y hxy hyx
-    ext1
-    exact Set.Subset.antisymm hxy.1 hyx.1
-    ext v w
-    exact Iff.intro (fun h ↦ hxy.2 h) fun h ↦ hyx.2 h
-  sup_le x y z hxy hyz :=
-    ⟨Set.union_subset hxy.1 hyz.1, fun v w h ↦ h.casesOn (fun h ↦ hxy.2 h) fun h ↦ hyz.2 h⟩
-  le_sup_left x y := ⟨Set.subset_union_left x.verts y.verts, fun v w ↦ Or.inl⟩
-  le_sup_right x y := ⟨Set.subset_union_right x.verts y.verts, fun v w ↦ Or.inr⟩
-  le_inf x y z hxy hyz := ⟨Set.subset_inter hxy.1 hyz.1, fun v w h ↦ ⟨hxy.2 h, hyz.2 h⟩⟩
-  inf_le_left x y := ⟨Set.inter_subset_left x.verts y.verts, fun v w h ↦ h.1⟩
-  inf_le_right x y := ⟨Set.inter_subset_right x.verts y.verts, fun v w h ↦ h.2⟩
+instance : Bot G.Subgraph where
+  bot :=
+    { verts := ∅
+      Adj := ⊥
+      adj_sub := False.elim
+      edge_vert := False.elim
+      symm := fun _ _ => id }
+
+instance : SupSet G.Subgraph where
+  supₛ s :=
+    { verts := ⋃ G' ∈ s, verts G'
+      Adj := fun a b => ∃ G' ∈ s, Adj G' a b
+      adj_sub := by
+        rintro a b ⟨G', -, hab⟩
+        exact G'.adj_sub hab
+      edge_vert := by
+        rintro a b ⟨G', hG', hab⟩
+        exact Set.mem_unionᵢ₂_of_mem hG' (G'.edge_vert hab)
+      symm := fun a b h => by simpa [adj_comm] using h }
+
+instance : InfSet G.Subgraph where
+  infₛ s :=
+    { verts := ⋂ G' ∈ s, verts G'
+      Adj := fun a b => (∀ ⦃G'⦄, G' ∈ s → Adj G' a b) ∧ G.Adj a b
+      adj_sub := And.right
+      edge_vert := fun hab => Set.mem_interᵢ₂_of_mem fun G' hG' => G'.edge_vert <| hab.1 hG'
+      symm := fun _ _ => And.imp (forall₂_imp fun _ _ => Adj.symm) G.adj_symm }
 
-instance : BoundedOrder (Subgraph G) where
-  top := top
-  bot := bot
-  le_top x := ⟨Set.subset_univ _, fun _ _ ↦ x.adj_sub⟩
-  bot_le _ := ⟨Set.empty_subset _, fun _ _ ↦ False.elim⟩
+@[simp]
+theorem sup_adj : (G₁ ⊔ G₂).Adj a b ↔ G₁.Adj a b ∨ G₂.Adj a b :=
+  Iff.rfl
+#align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adj
 
-@[simps]
-instance subgraphInhabited : Inhabited (Subgraph G) := ⟨⊥⟩
-#align simple_graph.subgraph.subgraph_inhabited SimpleGraph.Subgraph.subgraphInhabited
+@[simp]
+theorem inf_adj : (G₁ ⊓ G₂).Adj a b ↔ G₁.Adj a b ∧ G₂.Adj a b :=
+  Iff.rfl
+#align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adj
 
--- TODO simp lemmas for the other lattice operations on subgraphs
 @[simp]
-theorem top_verts : (⊤ : Subgraph G).verts = Set.univ := rfl
-#align simple_graph.subgraph.top_verts SimpleGraph.Subgraph.top_verts
+theorem top_adj : (⊤ : Subgraph G).Adj a b ↔ G.Adj a b :=
+  Iff.rfl
+#align simple_graph.subgraph.top_adj SimpleGraph.Subgraph.top_adj
 
 @[simp]
-theorem top_adj_iff {v w : V} : (⊤ : Subgraph G).Adj v w ↔ G.Adj v w := Iff.rfl
-#align simple_graph.subgraph.top_adj_iff SimpleGraph.Subgraph.top_adj_iff
+theorem not_bot_adj : ¬ (⊥ : Subgraph G).Adj a b :=
+  not_false
+#align simple_graph.subgraph.not_bot_adj SimpleGraph.Subgraph.not_bot_adj
 
 @[simp]
-theorem bot_verts : (⊥ : Subgraph G).verts = ∅ := rfl
-#align simple_graph.subgraph.bot_verts SimpleGraph.Subgraph.bot_verts
+theorem verts_sup (G₁ G₂ : G.Subgraph) : (G₁ ⊔ G₂).verts = G₁.verts ∪ G₂.verts :=
+  rfl
+#align simple_graph.subgraph.verts_sup SimpleGraph.Subgraph.verts_sup
 
 @[simp]
-theorem not_bot_adj {v w : V} : ¬(⊥ : Subgraph G).Adj v w := not_false
-#align simple_graph.subgraph.not_bot_adj SimpleGraph.Subgraph.not_bot_adj
+theorem verts_inf (G₁ G₂ : G.Subgraph) : (G₁ ⊓ G₂).verts = G₁.verts ∩ G₂.verts :=
+  rfl
+#align simple_graph.subgraph.verts_inf SimpleGraph.Subgraph.verts_inf
+
+@[simp]
+theorem verts_top : (⊤ : G.Subgraph).verts = Set.univ :=
+  rfl
+#align simple_graph.subgraph.verts_top SimpleGraph.Subgraph.verts_top
 
 @[simp]
-theorem inf_adj {H₁ H₂ : Subgraph G} {v w : V} : (H₁ ⊓ H₂).Adj v w ↔ H₁.Adj v w ∧ H₂.Adj v w :=
+theorem verts_bot : (⊥ : G.Subgraph).verts = ∅ :=
+  rfl
+#align simple_graph.subgraph.verts_bot SimpleGraph.Subgraph.verts_bot
+
+@[simp]
+theorem supₛ_adj {s : Set G.Subgraph} : (supₛ s).Adj a b ↔ ∃ G ∈ s, Adj G a b :=
   Iff.rfl
-#align simple_graph.subgraph.inf_adj SimpleGraph.Subgraph.inf_adj
+#align simple_graph.subgraph.Sup_adj SimpleGraph.Subgraph.supₛ_adj
 
 @[simp]
-theorem sup_adj {H₁ H₂ : Subgraph G} {v w : V} : (H₁ ⊔ H₂).Adj v w ↔ H₁.Adj v w ∨ H₂.Adj v w :=
+theorem infₛ_adj {s : Set G.Subgraph} : (infₛ s).Adj a b ↔ (∀ G' ∈ s, Adj G' a b) ∧ G.Adj a b :=
   Iff.rfl
-#align simple_graph.subgraph.sup_adj SimpleGraph.Subgraph.sup_adj
+#align simple_graph.subgraph.Inf_adj SimpleGraph.Subgraph.infₛ_adj
 
 @[simp]
-theorem verts_sup {H H' : G.Subgraph} : (H ⊔ H').verts = H.verts ∪ H'.verts := rfl
-#align simple_graph.subgraph.verts_sup SimpleGraph.Subgraph.verts_sup
+theorem supᵢ_adj {f : ι → G.Subgraph} : (⨆ i, f i).Adj a b ↔ ∃ i, (f i).Adj a b := by
+  simp [supᵢ]
+#align simple_graph.subgraph.supr_adj SimpleGraph.Subgraph.supᵢ_adj
 
 @[simp]
-theorem verts_inf {H H' : G.Subgraph} : (H ⊓ H').verts = H.verts ∩ H'.verts := rfl
-#align simple_graph.subgraph.verts_inf SimpleGraph.Subgraph.verts_inf
+theorem infᵢ_adj {f : ι → G.Subgraph} : (⨅ i, f i).Adj a b ↔ (∀ i, (f i).Adj a b) ∧ G.Adj a b := by
+  simp [infᵢ]
+#align simple_graph.subgraph.infi_adj SimpleGraph.Subgraph.infᵢ_adj
+
+theorem infₛ_adj_of_nonempty {s : Set G.Subgraph} (hs : s.Nonempty) :
+    (infₛ s).Adj a b ↔ ∀ G' ∈ s, Adj G' a b :=
+  infₛ_adj.trans <|
+    and_iff_left_of_imp <| by
+      obtain ⟨G', hG'⟩ := hs
+      exact fun h => G'.adj_sub (h _ hG')
+#align simple_graph.subgraph.Inf_adj_of_nonempty SimpleGraph.Subgraph.infₛ_adj_of_nonempty
+
+theorem infᵢ_adj_of_nonempty [Nonempty ι] {f : ι → G.Subgraph} :
+    (⨅ i, f i).Adj a b ↔ ∀ i, (f i).Adj a b := by
+  rw [infᵢ, infₛ_adj_of_nonempty (Set.range_nonempty _)]
+  simp
+#align simple_graph.subgraph.infi_adj_of_nonempty SimpleGraph.Subgraph.infᵢ_adj_of_nonempty
+
+@[simp]
+theorem verts_supₛ (s : Set G.Subgraph) : (supₛ s).verts = ⋃ G' ∈ s, verts G' :=
+  rfl
+#align simple_graph.subgraph.verts_Sup SimpleGraph.Subgraph.verts_supₛ
+
+@[simp]
+theorem verts_infₛ (s : Set G.Subgraph) : (infₛ s).verts = ⋂ G' ∈ s, verts G' :=
+  rfl
+#align simple_graph.subgraph.verts_Inf SimpleGraph.Subgraph.verts_infₛ
+
+@[simp]
+theorem verts_supᵢ {f : ι → G.Subgraph} : (⨆ i, f i).verts = ⋃ i, (f i).verts := by simp [supᵢ]
+#align simple_graph.subgraph.verts_supr SimpleGraph.Subgraph.verts_supᵢ
 
+@[simp]
+theorem verts_infᵢ {f : ι → G.Subgraph} : (⨅ i, f i).verts = ⋂ i, (f i).verts := by simp [infᵢ]
+#align simple_graph.subgraph.verts_infi SimpleGraph.Subgraph.verts_infᵢ
+
+/-- For subgraphs `G₁`, `G₂`, `G₁ ≤ G₂` iff `G₁.verts ⊆ G₂.verts` and
+`∀ a b, G₁.adj a b → G₂.adj a b`. -/
+instance distribLattice : DistribLattice G.Subgraph :=
+  { show DistribLattice G.Subgraph from
+      Function.Injective.distribLattice (fun G' => (G'.verts, G'.spanningCoe))
+        (fun G₁ G₂ h => by
+          rw [Prod.ext_iff] at h
+          exact Subgraph.ext _ _ h.1 (spanningCoe_inj.1 h.2))
+        (fun _ _ => rfl) fun _ _ => rfl with
+    le := fun x y => x.verts ⊆ y.verts ∧ ∀ ⦃v w : V⦄, x.Adj v w → y.Adj v w }
+
+instance : BoundedOrder (Subgraph G) where
+  top := ⊤
+  bot := ⊥
+  le_top x := ⟨Set.subset_univ _, fun _ _ => x.adj_sub⟩
+  bot_le _ := ⟨Set.empty_subset _, fun _ _ => False.elim⟩
+
+-- Note that subgraphs do not form a Boolean algebra, because of `verts`.
+instance : CompleteDistribLattice G.Subgraph :=
+  { Subgraph.distribLattice with
+    le := (· ≤ ·)
+    sup := (· ⊔ ·)
+    inf := (· ⊓ ·)
+    top := ⊤
+    bot := ⊥
+    le_top := fun G' => ⟨Set.subset_univ _, fun a b => G'.adj_sub⟩
+    bot_le := fun G' => ⟨Set.empty_subset _, fun a b => False.elim⟩
+    supₛ := supₛ
+    -- porting note: needed `apply` here to modify elaboration; previously the term itself was fine.
+    le_supₛ := fun s G' hG' => ⟨by apply Set.subset_unionᵢ₂ G' hG', fun a b hab => ⟨G', hG', hab⟩⟩
+    supₛ_le := fun s G' hG' =>
+      ⟨Set.unionᵢ₂_subset fun H hH => (hG' _ hH).1, by
+        rintro a b ⟨H, hH, hab⟩
+        exact (hG' _ hH).2 hab⟩
+    infₛ := infₛ
+    infₛ_le := fun s G' hG' => ⟨Set.interᵢ₂_subset G' hG', fun a b hab => hab.1 hG'⟩
+    le_infₛ := fun s G' hG' =>
+      ⟨Set.subset_interᵢ₂ fun H hH => (hG' _ hH).1, fun a b hab =>
+        ⟨fun H hH => (hG' _ hH).2 hab, G'.adj_sub hab⟩⟩
+    inf_supₛ_le_supᵢ_inf := fun G' s => by
+      constructor
+      · intro v
+        simp
+      · intros a b
+        simp
+    infᵢ_sup_le_sup_infₛ := fun G' s => by
+      constructor
+      · intro
+        simp [← forall_or_left]
+      · intros a b hab
+        simpa [forall_and, forall_or_left, or_and_right, and_iff_left_of_imp G'.adj_sub] using hab }
+
+@[simps]
+instance subgraphInhabited : Inhabited (Subgraph G) := ⟨⊥⟩
+#align simple_graph.subgraph.subgraph_inhabited SimpleGraph.Subgraph.subgraphInhabited
+
+@[simp]
 theorem neighborSet_sup {H H' : G.Subgraph} (v : V) :
-    (H ⊔ H').neighborSet v = H.neighborSet v ∪ H'.neighborSet v := by
-  ext w
-  simp
+    (H ⊔ H').neighborSet v = H.neighborSet v ∪ H'.neighborSet v := rfl
 #align simple_graph.subgraph.neighbor_set_sup SimpleGraph.Subgraph.neighborSet_sup
 
+@[simp]
 theorem neighborSet_inf {H H' : G.Subgraph} (v : V) :
-    (H ⊓ H').neighborSet v = H.neighborSet v ∩ H'.neighborSet v := by
-  ext w
-  simp
+    (H ⊓ H').neighborSet v = H.neighborSet v ∩ H'.neighborSet v := rfl
 #align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_inf
 
+@[simp]
+theorem neighborSet_top (v : V) : (⊤ : G.Subgraph).neighborSet v = G.neighborSet v := rfl
+#align simple_graph.subgraph.neighbor_set_top SimpleGraph.Subgraph.neighborSet_top
+
+@[simp]
+theorem neighborSet_bot (v : V) : (⊥ : G.Subgraph).neighborSet v = ∅ := rfl
+#align simple_graph.subgraph.neighbor_set_bot SimpleGraph.Subgraph.neighborSet_bot
+
+@[simp]
+theorem neighborSet_supₛ (s : Set G.Subgraph) (v : V) :
+    (supₛ s).neighborSet v = ⋃ G' ∈ s, neighborSet G' v := by
+  ext
+  simp
+#align simple_graph.subgraph.neighbor_set_Sup SimpleGraph.Subgraph.neighborSet_supₛ
+
+@[simp]
+theorem neighborSet_infₛ (s : Set G.Subgraph) (v : V) :
+    (infₛ s).neighborSet v = (⋂ G' ∈ s, neighborSet G' v) ∩ G.neighborSet v := by
+  ext
+  simp
+#align simple_graph.subgraph.neighbor_set_Inf SimpleGraph.Subgraph.neighborSet_infₛ
+
+@[simp]
+theorem neighborSet_supᵢ (f : ι → G.Subgraph) (v : V) :
+    (⨆ i, f i).neighborSet v = ⋃ i, (f i).neighborSet v := by simp [supᵢ]
+#align simple_graph.subgraph.neighbor_set_supr SimpleGraph.Subgraph.neighborSet_supᵢ
+
+@[simp]
+theorem neighborSet_infᵢ (f : ι → G.Subgraph) (v : V) :
+    (⨅ i, f i).neighborSet v = (⋂ i, (f i).neighborSet v) ∩ G.neighborSet v := by simp [infᵢ]
+#align simple_graph.subgraph.neighbor_set_infi SimpleGraph.Subgraph.neighborSet_infᵢ
+
 @[simp]
 theorem edgeSet_top : (⊤ : Subgraph G).edgeSet = G.edgeSet := rfl
 #align simple_graph.subgraph.edge_set_top SimpleGraph.Subgraph.edgeSet_top
@@ -422,6 +554,32 @@ theorem edgeSet_sup {H₁ H₂ : Subgraph G} : (H₁ ⊔ H₂).edgeSet = H₁.ed
   Set.ext <| Sym2.ind (by simp)
 #align simple_graph.subgraph.edge_set_sup SimpleGraph.Subgraph.edgeSet_sup
 
+@[simp]
+theorem edgeSet_supₛ (s : Set G.Subgraph) : (supₛ s).edgeSet = ⋃ G' ∈ s, edgeSet G' := by
+  ext e
+  induction e using Sym2.ind
+  simp
+#align simple_graph.subgraph.edge_set_Sup SimpleGraph.Subgraph.edgeSet_supₛ
+
+@[simp]
+theorem edgeSet_infₛ (s : Set G.Subgraph) :
+    (infₛ s).edgeSet = (⋂ G' ∈ s, edgeSet G') ∩ G.edgeSet := by
+  ext e
+  induction e using Sym2.ind
+  simp
+#align simple_graph.subgraph.edge_set_Inf SimpleGraph.Subgraph.edgeSet_infₛ
+
+@[simp]
+theorem edgeSet_supᵢ (f : ι → G.Subgraph) :
+    (⨆ i, f i).edgeSet = ⋃ i, (f i).edgeSet := by simp [supᵢ]
+#align simple_graph.subgraph.edge_set_supr SimpleGraph.Subgraph.edgeSet_supᵢ
+
+@[simp]
+theorem edgeSet_infᵢ (f : ι → G.Subgraph) :
+    (⨅ i, f i).edgeSet = (⋂ i, (f i).edgeSet) ∩ G.edgeSet := by
+  simp [infᵢ]
+#align simple_graph.subgraph.edge_set_infi SimpleGraph.Subgraph.edgeSet_infᵢ
+
 @[simp]
 theorem spanningCoe_top : (⊤ : Subgraph G).spanningCoe = G := rfl
 #align simple_graph.subgraph.spanning_coe_top SimpleGraph.Subgraph.spanningCoe_top
@@ -1034,7 +1192,7 @@ theorem subgraphOfAdj_eq_induce {v w : V} (hvw : G.Adj v w) :
       simp only [subgraphOfAdj_Adj, Quotient.eq, Sym2.rel_iff] at h
       obtain ⟨rfl, rfl⟩ | ⟨rfl, rfl⟩ := h <;> simp [hvw, hvw.symm]
     · intro h
-      simp only [induce_Adj, Set.mem_insert_iff, Set.mem_singleton_iff, top_adj_iff] at h
+      simp only [induce_Adj, Set.mem_insert_iff, Set.mem_singleton_iff, top_adj] at h
       obtain ⟨rfl | rfl, rfl | rfl, ha⟩ := h <;> first |exact (ha.ne rfl).elim|simp
 #align simple_graph.subgraph.subgraph_of_adj_eq_induce SimpleGraph.Subgraph.subgraphOfAdj_eq_induce
 
chore: address some porting notes mentioning congr (#2595)

Switch to using congr! instead, which is analogous to mathlib 3's congr'.

Diff
@@ -668,9 +668,7 @@ theorem coe_degree (G' : Subgraph G) (v : G'.verts) [Fintype (G'.coe.neighborSet
 theorem degree_spanningCoe {G' : G.Subgraph} (v : V) [Fintype (G'.neighborSet v)]
     [Fintype (G'.spanningCoe.neighborSet v)] : G'.spanningCoe.degree v = G'.degree v := by
   rw [← card_neighborSet_eq_degree, Subgraph.degree]
-  congr
-  -- Porting note: congr doesn't do subsingleton elimination
-  apply Subsingleton.elim
+  congr!
 #align simple_graph.subgraph.degree_spanning_coe SimpleGraph.Subgraph.degree_spanningCoe
 
 theorem degree_eq_one_iff_unique_adj {G' : Subgraph G} {v : V} [Fintype (G'.neighborSet v)] :
fix: use edgeSet instead of edgeSetEmbedding (#2576)

Change all occurances of edgeSetEmbedding using the abbreviation and dot notation to edgeSet. The non-use of the abbreviation has been introduced with the port, which we fix here.

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -231,7 +231,7 @@ def coeNeighborSetEquiv {G' : Subgraph G} (v : G'.verts) : G'.coe.neighborSet v
 def edgeSet (G' : Subgraph G) : Set (Sym2 V) := Sym2.fromRel G'.symm
 #align simple_graph.subgraph.edge_set SimpleGraph.Subgraph.edgeSet
 
-theorem edgeSet_subset (G' : Subgraph G) : G'.edgeSet ⊆ edgeSetEmbedding V G :=
+theorem edgeSet_subset (G' : Subgraph G) : G'.edgeSet ⊆ G.edgeSet :=
   Sym2.ind (fun _ _ ↦ G'.adj_sub)
 #align simple_graph.subgraph.edge_set_subset SimpleGraph.Subgraph.edgeSet_subset
 
@@ -404,7 +404,7 @@ theorem neighborSet_inf {H H' : G.Subgraph} (v : V) :
 #align simple_graph.subgraph.neighbor_set_inf SimpleGraph.Subgraph.neighborSet_inf
 
 @[simp]
-theorem edgeSet_top : (⊤ : Subgraph G).edgeSet = edgeSetEmbedding V G := rfl
+theorem edgeSet_top : (⊤ : Subgraph G).edgeSet = G.edgeSet := rfl
 #align simple_graph.subgraph.edge_set_top SimpleGraph.Subgraph.edgeSet_top
 
 @[simp]
feat: port Combinatorics.SimpleGraph.Subgraph (#2495)

Co-authored-by: Kyle Miller <kmill31415@gmail.com>

Dependencies 6 + 216

217 files ported (97.3%)
97537 lines ported (97.8%)
Show graph

The unported dependencies are