Metamath Proof Explorer


Theorem umgrnloopv

Description: In a multigraph, there is no loop, i.e. no edge connecting a vertex with itself. (Contributed by Alexander van der Vekens, 26-Jan-2018) (Revised by AV, 11-Dec-2020)

Ref Expression
Hypothesis umgrnloopv.e 𝐸 = ( iEdg ‘ 𝐺 )
Assertion umgrnloopv ( ( 𝐺 ∈ UMGraph ∧ 𝑀𝑊 ) → ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } → 𝑀𝑁 ) )

Proof

Step Hyp Ref Expression
1 umgrnloopv.e 𝐸 = ( iEdg ‘ 𝐺 )
2 prnzg ( 𝑀𝑊 → { 𝑀 , 𝑁 } ≠ ∅ )
3 2 adantl ( ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } ∧ 𝑀𝑊 ) → { 𝑀 , 𝑁 } ≠ ∅ )
4 neeq1 ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } → ( ( 𝐸𝑋 ) ≠ ∅ ↔ { 𝑀 , 𝑁 } ≠ ∅ ) )
5 4 adantr ( ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } ∧ 𝑀𝑊 ) → ( ( 𝐸𝑋 ) ≠ ∅ ↔ { 𝑀 , 𝑁 } ≠ ∅ ) )
6 3 5 mpbird ( ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } ∧ 𝑀𝑊 ) → ( 𝐸𝑋 ) ≠ ∅ )
7 fvfundmfvn0 ( ( 𝐸𝑋 ) ≠ ∅ → ( 𝑋 ∈ dom 𝐸 ∧ Fun ( 𝐸 ↾ { 𝑋 } ) ) )
8 6 7 syl ( ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } ∧ 𝑀𝑊 ) → ( 𝑋 ∈ dom 𝐸 ∧ Fun ( 𝐸 ↾ { 𝑋 } ) ) )
9 eqid ( Vtx ‘ 𝐺 ) = ( Vtx ‘ 𝐺 )
10 9 1 umgredg2 ( ( 𝐺 ∈ UMGraph ∧ 𝑋 ∈ dom 𝐸 ) → ( ♯ ‘ ( 𝐸𝑋 ) ) = 2 )
11 fveqeq2 ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } → ( ( ♯ ‘ ( 𝐸𝑋 ) ) = 2 ↔ ( ♯ ‘ { 𝑀 , 𝑁 } ) = 2 ) )
12 eqid { 𝑀 , 𝑁 } = { 𝑀 , 𝑁 }
13 12 hashprdifel ( ( ♯ ‘ { 𝑀 , 𝑁 } ) = 2 → ( 𝑀 ∈ { 𝑀 , 𝑁 } ∧ 𝑁 ∈ { 𝑀 , 𝑁 } ∧ 𝑀𝑁 ) )
14 13 simp3d ( ( ♯ ‘ { 𝑀 , 𝑁 } ) = 2 → 𝑀𝑁 )
15 11 14 syl6bi ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } → ( ( ♯ ‘ ( 𝐸𝑋 ) ) = 2 → 𝑀𝑁 ) )
16 15 adantr ( ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } ∧ 𝑀𝑊 ) → ( ( ♯ ‘ ( 𝐸𝑋 ) ) = 2 → 𝑀𝑁 ) )
17 10 16 syl5com ( ( 𝐺 ∈ UMGraph ∧ 𝑋 ∈ dom 𝐸 ) → ( ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } ∧ 𝑀𝑊 ) → 𝑀𝑁 ) )
18 17 expcom ( 𝑋 ∈ dom 𝐸 → ( 𝐺 ∈ UMGraph → ( ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } ∧ 𝑀𝑊 ) → 𝑀𝑁 ) ) )
19 18 com23 ( 𝑋 ∈ dom 𝐸 → ( ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } ∧ 𝑀𝑊 ) → ( 𝐺 ∈ UMGraph → 𝑀𝑁 ) ) )
20 19 adantr ( ( 𝑋 ∈ dom 𝐸 ∧ Fun ( 𝐸 ↾ { 𝑋 } ) ) → ( ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } ∧ 𝑀𝑊 ) → ( 𝐺 ∈ UMGraph → 𝑀𝑁 ) ) )
21 8 20 mpcom ( ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } ∧ 𝑀𝑊 ) → ( 𝐺 ∈ UMGraph → 𝑀𝑁 ) )
22 21 ex ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } → ( 𝑀𝑊 → ( 𝐺 ∈ UMGraph → 𝑀𝑁 ) ) )
23 22 com13 ( 𝐺 ∈ UMGraph → ( 𝑀𝑊 → ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } → 𝑀𝑁 ) ) )
24 23 imp ( ( 𝐺 ∈ UMGraph ∧ 𝑀𝑊 ) → ( ( 𝐸𝑋 ) = { 𝑀 , 𝑁 } → 𝑀𝑁 ) )