@@ -180,17 +180,19 @@ theorem edegree_le_maxEDegree : G.edegree v ≤ G.maxEDegree :=
180180theorem minEDegree_le_edegree : G.minEDegree ≤ G.edegree v :=
181181 iInf_le G.edegree v
182182
183- variable {v} in
183+ variable {G v} in
184184theorem maxEDegree_eq_top_of_edegree_eq_top (h : G.edegree v = ⊤) : G.maxEDegree = ⊤ :=
185185 eq_top_iff.mpr <| G.edegree_le_maxEDegree v |>.trans_eq' h
186186
187- variable {v} in
187+ variable {G v} in
188188theorem minEDegree_eq_zero_of_edegree_eq_zero (h : G.edegree v = 0 ) : G.minEDegree = 0 :=
189189 nonpos_iff_eq_zero.mp <| G.minEDegree_le_edegree v |>.trans_eq h
190190
191+ variable {G} in
191192theorem maxEDegree_le_of_forall_edegree_le {n : ℕ∞} (h : ∀ v, G.edegree v ≤ n) : G.maxEDegree ≤ n :=
192193 iSup_le h
193194
195+ variable {G} in
194196theorem le_minEDegree_of_forall_le_edegree {n : ℕ∞} (h : ∀ v, n ≤ G.edegree v) : n ≤ G.minEDegree :=
195197 le_iInf h
196198
@@ -323,7 +325,7 @@ theorem minEDegree_le_encard_edgeSet [Nonempty V] (G : SimpleGraph V) :
323325 exact hv ▸ G.edegree_le_encard_edgeSet v
324326
325327theorem maxEDegree_le_encard_edgeSet : G.maxEDegree ≤ G.edgeSet.encard :=
326- maxEDegree_le_of_forall_edegree_le _ G.edegree_le_encard_edgeSet
328+ maxEDegree_le_of_forall_edegree_le G.edegree_le_encard_edgeSet
327329
328330theorem minEDegree_le_maxEDegree [Nonempty V] (G : SimpleGraph V) :
329331 G.minEDegree ≤ G.maxEDegree := by
@@ -358,4 +360,33 @@ theorem IsRegularOfDegree.minEDegree_eq [Nonempty V] [G.LocallyFinite] {d : ℕ}
358360 (h : G.IsRegularOfDegree d) : G.minEDegree = d := by
359361 simp [minEDegree_eq_iInf, h.edegree_eq]
360362
363+ section Induce
364+
365+ variable {s : Set V}
366+
367+ variable {G} in
368+ theorem edegree_induce_of_neighborSet_subset {v : s} (h : G.neighborSet v ⊆ s) :
369+ (G.induce s).edegree v = G.edegree v := by
370+ rw [← encard_neighborSet, ← encard_neighborSet, neighborSet_induce,
371+ Set.encard_preimage_of_injective_subset_range Subtype.val_injective <| by simpa]
372+
373+ variable {G} in
374+ theorem maxEDegree_induce_of_support_subset (h : G.support ⊆ s) :
375+ (G.induce s).maxEDegree = G.maxEDegree := by
376+ apply le_antisymm <| Embedding.induce s |>.isContained.maxEDegree_le
377+ refine G.maxEDegree_le_of_forall_edegree_le fun v ↦ ?_
378+ by_cases hv : G.IsIsolated v
379+ · simp [hv]
380+ grw [← edegree_le_maxEDegree _ ⟨v, h <| G.mem_support_iff_not_isIsolated.mpr hv⟩,
381+ edegree_induce_of_neighborSet_subset <| G.neighborSet_subset_support v |>.trans h]
382+
383+ variable {G} in
384+ theorem le_minEDegree_induce_of_support_subset (h : G.support ⊆ s) :
385+ G.minEDegree ≤ (G.induce s).minEDegree := by
386+ refine le_minEDegree_of_forall_le_edegree fun v ↦ ?_
387+ grw [G.minEDegree_le_edegree v, edegree_induce_of_neighborSet_subset]
388+ grw [neighborSet_subset_support, h]
389+
390+ end Induce
391+
361392end SimpleGraph
0 commit comments