@@ -462,12 +462,12 @@ theorem edgeSet_bot : (⊥ : SimpleGraph V).edgeSet = ∅ :=
462462 Sym2.fromRel_bot
463463
464464@[simp]
465- theorem edgeSet_top : (⊤ : SimpleGraph V).edgeSet = {e | ¬e.IsDiag} :=
466- Sym2.fromRel_ne
465+ theorem edgeSet_top : (⊤ : SimpleGraph V).edgeSet = Sym2.diagSetᶜ :=
466+ Sym2.diagSet_compl_eq_fromRel_ne.symm
467467
468468@[simp]
469- theorem edgeSet_subset_setOf_not_isDiag : G.edgeSet ⊆ {e | ¬e.IsDiag} :=
470- fun _ h => ( Sym2.fromRel_irreflexive (sym := G.symm)) .mp G.loopless h
469+ theorem edgeSet_subset_setOf_not_isDiag : G.edgeSet ⊆ Sym2.diagSetᶜ :=
470+ Sym2.irreflexive_iff_fromRel_subset_diagSet_compl G.symm |> .mp G.loopless
471471
472472@[simp]
473473theorem edgeSet_sup : (G₁ ⊔ G₂).edgeSet = G₁.edgeSet ∪ G₂.edgeSet := by
@@ -495,15 +495,12 @@ variable {G G₁ G₂}
495495@[simp] lemma edgeSet_nonempty : G.edgeSet.Nonempty ↔ G ≠ ⊥ := by
496496 rw [Set.nonempty_iff_ne_empty, edgeSet_eq_empty.ne]
497497
498- /-- This lemma, combined with `edgeSet_sdiff` and `edgeSet_from_edgeSet `,
499- allows proving `(G \ from_edgeSet s).edge_set = G.edgeSet \ s` by `simp`. -/
498+ /-- This lemma, combined with `edgeSet_sdiff` and `edgeSet_fromEdgeSet `,
499+ allows proving `(G \ fromEdgeSet s).edgeSet = G.edgeSet \ s` by `simp`. -/
500500@[simp]
501501theorem edgeSet_sdiff_sdiff_isDiag (G : SimpleGraph V) (s : Set (Sym2 V)) :
502- G.edgeSet \ (s \ { e | e.IsDiag }) = G.edgeSet \ s := by
503- ext e
504- simp only [Set.mem_diff, Set.mem_setOf_eq, not_and, not_not, and_congr_right_iff]
505- intro h
506- simp only [G.not_isDiag_of_mem_edgeSet h, imp_false]
502+ G.edgeSet \ (s \ Sym2.diagSet) = G.edgeSet \ s := by
503+ grind [Sym2.mem_diagSet_iff_isDiag, not_isDiag_of_mem_edgeSet]
507504
508505/-- Two vertices are adjacent iff there is an edge between them. The
509506condition `v ≠ w` ensures they are different endpoints of the edge,
@@ -579,7 +576,7 @@ theorem fromEdgeSet_adj : (fromEdgeSet s).Adj v w ↔ s(v, w) ∈ s ∧ v ≠ w
579576-- Note: we need to make sure `fromEdgeSet_adj` and this lemma are confluent.
580577-- In particular, both yield `s(u, v) ∈ (fromEdgeSet s).edgeSet` ==> `s(v, w) ∈ s ∧ v ≠ w`.
581578@[simp]
582- theorem edgeSet_fromEdgeSet : (fromEdgeSet s).edgeSet = s \ { e | e.IsDiag } := by
579+ theorem edgeSet_fromEdgeSet : (fromEdgeSet s).edgeSet = s \ Sym2.diagSet := by
583580 ext e
584581 exact Sym2.ind (by simp) e
585582
@@ -589,9 +586,9 @@ theorem fromEdgeSet_edgeSet : fromEdgeSet G.edgeSet = G := by
589586 exact ⟨fun h => h.1 , fun h => ⟨h, G.ne_of_adj h⟩⟩
590587
591588@[simp] lemma fromEdgeSet_le {s : Set (Sym2 V)} :
592- fromEdgeSet s ≤ G ↔ s \ {e | e.IsDiag} ⊆ G.edgeSet := by simp [← edgeSet_subset_edgeSet]
589+ fromEdgeSet s ≤ G ↔ s \ Sym2.diagSet ⊆ G.edgeSet := by simp [← edgeSet_subset_edgeSet]
593590
594- lemma edgeSet_eq_iff : G.edgeSet = s ↔ G = fromEdgeSet s ∧ Disjoint s {e | e.IsDiag} where
591+ lemma edgeSet_eq_iff : G.edgeSet = s ↔ G = fromEdgeSet s ∧ Disjoint s Sym2.diagSet where
595592 mp := by rintro rfl; simp +contextual [Set.disjoint_right]
596593 mpr := by rintro ⟨rfl, hs⟩; simp [hs]
597594
@@ -600,7 +597,7 @@ theorem fromEdgeSet_empty : fromEdgeSet (∅ : Set (Sym2 V)) = ⊥ := by
600597 ext v w
601598 simp only [fromEdgeSet_adj, Set.mem_empty_iff_false, false_and, bot_adj]
602599
603- @[simp] lemma fromEdgeSet_not_isDiag : fromEdgeSet {e : Sym2 V | ¬ e.IsDiag} = ⊤ := by ext; simp
600+ @[simp] lemma fromEdgeSet_not_isDiag : @ fromEdgeSet V Sym2.diagSetᶜ = ⊤ := by ext; simp
604601
605602@[simp]
606603theorem fromEdgeSet_univ : fromEdgeSet (Set.univ : Set (Sym2 V)) = ⊤ := by
@@ -634,9 +631,9 @@ theorem fromEdgeSet_mono {s t : Set (Sym2 V)} (h : s ⊆ t) : fromEdgeSet s ≤
634631 exact fun vws _ => h vws
635632
636633@[simp] lemma disjoint_fromEdgeSet : Disjoint G (fromEdgeSet s) ↔ Disjoint G.edgeSet s := by
637- conv_rhs => rw [← Set.diff_union_inter s {e : Sym2 V | e.IsDiag} ]
638- rw [← disjoint_edgeSet, edgeSet_fromEdgeSet, Set.disjoint_union_right, and_iff_left ]
639- exact Set.disjoint_left. 2 fun e he he' ↦ not_isDiag_of_mem_edgeSet _ he he'. 2
634+ conv_rhs => rw [← Set.diff_union_inter s Sym2.diagSet ]
635+ rw [← disjoint_edgeSet, edgeSet_fromEdgeSet]
636+ grind [edgeSet_subset_setOf_not_isDiag]
640637
641638@[simp] lemma fromEdgeSet_disjoint : Disjoint (fromEdgeSet s) G ↔ Disjoint s G.edgeSet := by
642639 rw [disjoint_comm, disjoint_fromEdgeSet, disjoint_comm]
0 commit comments