Theorem: Matroid.Nonloop.nonloop_of_mem_cl (Matroid/Loop.lean)

State before:
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
⊢ M.Nonloop f
Tactic:
rw [Nonloop, and_comm]
State after:
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
⊢ f ∈ M.E ∧ ¬M.Loop f

State before:
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
⊢ f ∈ M.E ∧ ¬M.Loop f
Tactic:
by_contra! h
State after:
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → M.Loop f
⊢ False

State before:
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → M.Loop f
⊢ False
Tactic:
apply he.not_loop
State after:
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → M.Loop f
⊢ M.Loop e

State before:
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → M.Loop f
⊢ M.Loop e
Tactic:
rw [loop_iff_mem_cl_empty] at *
State after:
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → f ∈ M.cl ∅
⊢ e ∈ M.cl ∅

State before:
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → f ∈ M.cl ∅
⊢ e ∈ M.cl ∅
Tactic:
convert hef using 1
State after:
case h.e'_5
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → f ∈ M.cl ∅
⊢ M.cl ∅ = M.cl {f}

State before:
case h.e'_5
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → f ∈ M.cl ∅
⊢ M.cl ∅ = M.cl {f}
Tactic:
obtain (hf | hf) := em (f ∈ M.E)
State after:
case h.e'_5.inl
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → f ∈ M.cl ∅
hf : f ∈ M.E
⊢ M.cl ∅ = M.cl {f}

case h.e'_5.inr
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → f ∈ M.cl ∅
hf : f ∉ M.E
⊢ M.cl ∅ = M.cl {f}

State before:
case h.e'_5.inr
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → f ∈ M.cl ∅
hf : f ∉ M.E
⊢ M.cl ∅ = M.cl {f}
Tactic:
rw [eq_comm, ← cl_inter_ground, inter_comm, inter_singleton_eq_empty.mpr hf]
State after:
no goals

State before:
case h.e'_5.inl
α : Type u_1
β : Type u_2
M N : Matroid α
e f : α
B L L' I X Y Z F C K : Set α
he : M.Nonloop e
hef : e ∈ M.cl {f}
h : f ∈ M.E → f ∈ M.cl ∅
hf : f ∈ M.E
⊢ M.cl ∅ = M.cl {f}
Tactic:
rw [← cl_cl _ ∅, ← insert_eq_of_mem (h hf), cl_insert_cl_eq_cl_insert, insert_emptyc_eq]
State after:
no goals