Skip to content

Commit ce7a172

Browse files
committed
feat(Combinatorics/SimpleGraph/Connectivity/Connected): elaborate more in reachable_or_reachable_compl and connected_or_preconnected_compl
1 parent 1a46bca commit ce7a172

1 file changed

Lines changed: 11 additions & 8 deletions

File tree

Mathlib/Combinatorics/SimpleGraph/Connectivity/Connected.lean

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -299,17 +299,20 @@ theorem Iso.connected_iff {G : SimpleGraph V} {H : SimpleGraph V'} (e : G ≃g H
299299
lemma reachable_or_compl_adj (u v : V) : G.Reachable u v ∨ Gᶜ.Adj u v :=
300300
or_iff_not_imp_left.mpr fun huv ↦ ⟨fun heq ↦ huv <| heq ▸ Reachable.rfl, mt Adj.reachable huv⟩
301301

302-
theorem reachable_or_reachable_compl (u v w : V) : G.Reachable u v ∨ Gᶜ.Reachable u w :=
303-
or_iff_not_imp_left.mpr fun huv ↦ (em <| G.Reachable u w).elim
304-
(fun huw ↦ G.reachable_or_compl_adj .. |>.resolve_left huv |>.reachable.trans <|
305-
(G.reachable_or_compl_adj .. |>.resolve_left fun hvw ↦ huv <| huw.trans hvw.symm).reachable)
306-
(fun huw ↦ G.reachable_or_compl_adj .. |>.resolve_left huw |>.reachable)
302+
theorem reachable_or_reachable_compl (u v w : V) : G.Reachable u v ∨ Gᶜ.Reachable u w := by
303+
refine or_iff_not_imp_left.mpr fun huv ↦ ?_
304+
by_cases huw : G.Reachable u w
305+
· have huv' := G.reachable_or_compl_adj .. |>.resolve_left huv
306+
have hvw' := G.reachable_or_compl_adj .. |>.resolve_left fun hvw ↦ huv <| huw.trans hvw.symm
307+
exact huv'.reachable.trans hvw'.reachable
308+
exact G.reachable_or_compl_adj .. |>.resolve_left huw |>.reachable
307309

308310
theorem connected_or_preconnected_compl : G.Connected ∨ Gᶜ.Preconnected := by
309311
rw [or_iff_not_imp_left, G.connected_iff_exists_forall_reachable]
310-
push_neg
311-
exact fun h ↦ fun u v ↦ h u |>.elim fun w huw ↦
312-
reachable_or_reachable_compl .. |>.resolve_left huw
312+
intro h u v
313+
push_neg at h
314+
have ⟨w, huw⟩ := h u
315+
exact reachable_or_reachable_compl .. |>.resolve_left huw
313316

314317
theorem connected_or_connected_compl [Nonempty V] : G.Connected ∨ Gᶜ.Connected :=
315318
G.connected_or_preconnected_compl.elim .inl (.inr ⟨·⟩)

0 commit comments

Comments
 (0)