Theorem: Matroid.parallel'_iff_loops_or_parallel (Matroid/Parallel.lean)

State before:
α : Type u_1
M N : Matroid α
e f g : α
I X P D : Set α
⊢ M.Parallel' e f ↔ M.Loop e ∧ M.Loop f ∨ M.Parallel e f
Tactic:
refine ⟨Parallel'.loop_or_parallel, ?_⟩
State after:
α : Type u_1
M N : Matroid α
e f g : α
I X P D : Set α
⊢ M.Loop e ∧ M.Loop f ∨ M.Parallel e f → M.Parallel' e f

State before:
α : Type u_1
M N : Matroid α
e f g : α
I X P D : Set α
⊢ M.Loop e ∧ M.Loop f ∨ M.Parallel e f → M.Parallel' e f
Tactic:
rintro (⟨he, hf⟩ | hef)
State after:
case inl.intro
α : Type u_1
M N : Matroid α
e f g : α
I X P D : Set α
he : M.Loop e
hf : M.Loop f
⊢ M.Parallel' e f

case inr
α : Type u_1
M N : Matroid α
e f g : α
I X P D : Set α
hef : M.Parallel e f
⊢ M.Parallel' e f

State before:
case inr
α : Type u_1
M N : Matroid α
e f g : α
I X P D : Set α
hef : M.Parallel e f
⊢ M.Parallel' e f
Tactic:
exact hef.parallel'
State after:
no goals

State before:
case inl.intro
α : Type u_1
M N : Matroid α
e f g : α
I X P D : Set α
he : M.Loop e
hf : M.Loop f
⊢ M.Parallel' e f
Tactic:
rw [Matroid.Parallel', he.cl, hf.cl]
State after:
case inl.intro
α : Type u_1
M N : Matroid α
e f g : α
I X P D : Set α
he : M.Loop e
hf : M.Loop f
⊢ e ∈ M.E ∧ f ∈ M.E ∧ M.cl ∅ = M.cl ∅

State before:
case inl.intro
α : Type u_1
M N : Matroid α
e f g : α
I X P D : Set α
he : M.Loop e
hf : M.Loop f
⊢ e ∈ M.E ∧ f ∈ M.E ∧ M.cl ∅ = M.cl ∅
Tactic:
simp [he.mem_ground, hf.mem_ground]
State after:
no goals