@@ -299,17 +299,20 @@ theorem Iso.connected_iff {G : SimpleGraph V} {H : SimpleGraph V'} (e : G ≃g H
299299lemma 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
308310theorem 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
314317theorem connected_or_connected_compl [Nonempty V] : G.Connected ∨ Gᶜ.Connected :=
315318 G.connected_or_preconnected_compl.elim .inl (.inr ⟨·⟩)
0 commit comments