Metamath Proof Explorer


Theorem eupths

Description: The Eulerian paths on the graph G . (Contributed by AV, 18-Feb-2021) (Revised by AV, 29-Oct-2021)

Ref Expression
Hypothesis eupths.i 𝐼 = ( iEdg ‘ 𝐺 )
Assertion eupths ( EulerPaths ‘ 𝐺 ) = { ⟨ 𝑓 , 𝑝 ⟩ ∣ ( 𝑓 ( Trails ‘ 𝐺 ) 𝑝𝑓 : ( 0 ..^ ( ♯ ‘ 𝑓 ) ) –onto→ dom 𝐼 ) }

Proof

Step Hyp Ref Expression
1 eupths.i 𝐼 = ( iEdg ‘ 𝐺 )
2 fveq2 ( 𝑔 = 𝐺 → ( iEdg ‘ 𝑔 ) = ( iEdg ‘ 𝐺 ) )
3 2 1 eqtr4di ( 𝑔 = 𝐺 → ( iEdg ‘ 𝑔 ) = 𝐼 )
4 3 dmeqd ( 𝑔 = 𝐺 → dom ( iEdg ‘ 𝑔 ) = dom 𝐼 )
5 foeq3 ( dom ( iEdg ‘ 𝑔 ) = dom 𝐼 → ( 𝑓 : ( 0 ..^ ( ♯ ‘ 𝑓 ) ) –onto→ dom ( iEdg ‘ 𝑔 ) ↔ 𝑓 : ( 0 ..^ ( ♯ ‘ 𝑓 ) ) –onto→ dom 𝐼 ) )
6 4 5 syl ( 𝑔 = 𝐺 → ( 𝑓 : ( 0 ..^ ( ♯ ‘ 𝑓 ) ) –onto→ dom ( iEdg ‘ 𝑔 ) ↔ 𝑓 : ( 0 ..^ ( ♯ ‘ 𝑓 ) ) –onto→ dom 𝐼 ) )
7 6 adantl ( ( ⊤ ∧ 𝑔 = 𝐺 ) → ( 𝑓 : ( 0 ..^ ( ♯ ‘ 𝑓 ) ) –onto→ dom ( iEdg ‘ 𝑔 ) ↔ 𝑓 : ( 0 ..^ ( ♯ ‘ 𝑓 ) ) –onto→ dom 𝐼 ) )
8 wksv { ⟨ 𝑓 , 𝑝 ⟩ ∣ 𝑓 ( Walks ‘ 𝐺 ) 𝑝 } ∈ V
9 trliswlk ( 𝑓 ( Trails ‘ 𝐺 ) 𝑝𝑓 ( Walks ‘ 𝐺 ) 𝑝 )
10 9 ssopab2i { ⟨ 𝑓 , 𝑝 ⟩ ∣ 𝑓 ( Trails ‘ 𝐺 ) 𝑝 } ⊆ { ⟨ 𝑓 , 𝑝 ⟩ ∣ 𝑓 ( Walks ‘ 𝐺 ) 𝑝 }
11 8 10 ssexi { ⟨ 𝑓 , 𝑝 ⟩ ∣ 𝑓 ( Trails ‘ 𝐺 ) 𝑝 } ∈ V
12 11 a1i ( ⊤ → { ⟨ 𝑓 , 𝑝 ⟩ ∣ 𝑓 ( Trails ‘ 𝐺 ) 𝑝 } ∈ V )
13 df-eupth EulerPaths = ( 𝑔 ∈ V ↦ { ⟨ 𝑓 , 𝑝 ⟩ ∣ ( 𝑓 ( Trails ‘ 𝑔 ) 𝑝𝑓 : ( 0 ..^ ( ♯ ‘ 𝑓 ) ) –onto→ dom ( iEdg ‘ 𝑔 ) ) } )
14 7 12 13 fvmptopab ( ⊤ → ( EulerPaths ‘ 𝐺 ) = { ⟨ 𝑓 , 𝑝 ⟩ ∣ ( 𝑓 ( Trails ‘ 𝐺 ) 𝑝𝑓 : ( 0 ..^ ( ♯ ‘ 𝑓 ) ) –onto→ dom 𝐼 ) } )
15 14 mptru ( EulerPaths ‘ 𝐺 ) = { ⟨ 𝑓 , 𝑝 ⟩ ∣ ( 𝑓 ( Trails ‘ 𝐺 ) 𝑝𝑓 : ( 0 ..^ ( ♯ ‘ 𝑓 ) ) –onto→ dom 𝐼 ) }