This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Pushing-forward via a function induces a mapping on filters. (Contributed by Stefan O'Rear, 8-Aug-2015)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | fmf | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → ( 𝑋 FilMap 𝐹 ) : ( fBas ‘ 𝑌 ) ⟶ ( Fil ‘ 𝑋 ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | ovex | ⊢ ( 𝑋 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) ∈ V | |
| 2 | eqid | ⊢ ( 𝑏 ∈ ( fBas ‘ 𝑌 ) ↦ ( 𝑋 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) ) = ( 𝑏 ∈ ( fBas ‘ 𝑌 ) ↦ ( 𝑋 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) ) | |
| 3 | 1 2 | fnmpti | ⊢ ( 𝑏 ∈ ( fBas ‘ 𝑌 ) ↦ ( 𝑋 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) ) Fn ( fBas ‘ 𝑌 ) |
| 4 | df-fm | ⊢ FilMap = ( 𝑥 ∈ V , 𝑓 ∈ V ↦ ( 𝑏 ∈ ( fBas ‘ dom 𝑓 ) ↦ ( 𝑥 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝑓 “ 𝑦 ) ) ) ) ) | |
| 5 | 4 | a1i | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → FilMap = ( 𝑥 ∈ V , 𝑓 ∈ V ↦ ( 𝑏 ∈ ( fBas ‘ dom 𝑓 ) ↦ ( 𝑥 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝑓 “ 𝑦 ) ) ) ) ) ) |
| 6 | dmeq | ⊢ ( 𝑓 = 𝐹 → dom 𝑓 = dom 𝐹 ) | |
| 7 | 6 | adantl | ⊢ ( ( 𝑥 = 𝑋 ∧ 𝑓 = 𝐹 ) → dom 𝑓 = dom 𝐹 ) |
| 8 | fdm | ⊢ ( 𝐹 : 𝑌 ⟶ 𝑋 → dom 𝐹 = 𝑌 ) | |
| 9 | 8 | 3ad2ant3 | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → dom 𝐹 = 𝑌 ) |
| 10 | 7 9 | sylan9eqr | ⊢ ( ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝑥 = 𝑋 ∧ 𝑓 = 𝐹 ) ) → dom 𝑓 = 𝑌 ) |
| 11 | 10 | fveq2d | ⊢ ( ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝑥 = 𝑋 ∧ 𝑓 = 𝐹 ) ) → ( fBas ‘ dom 𝑓 ) = ( fBas ‘ 𝑌 ) ) |
| 12 | id | ⊢ ( 𝑥 = 𝑋 → 𝑥 = 𝑋 ) | |
| 13 | imaeq1 | ⊢ ( 𝑓 = 𝐹 → ( 𝑓 “ 𝑦 ) = ( 𝐹 “ 𝑦 ) ) | |
| 14 | 13 | mpteq2dv | ⊢ ( 𝑓 = 𝐹 → ( 𝑦 ∈ 𝑏 ↦ ( 𝑓 “ 𝑦 ) ) = ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) |
| 15 | 14 | rneqd | ⊢ ( 𝑓 = 𝐹 → ran ( 𝑦 ∈ 𝑏 ↦ ( 𝑓 “ 𝑦 ) ) = ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) |
| 16 | 12 15 | oveqan12d | ⊢ ( ( 𝑥 = 𝑋 ∧ 𝑓 = 𝐹 ) → ( 𝑥 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝑓 “ 𝑦 ) ) ) = ( 𝑋 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) ) |
| 17 | 16 | adantl | ⊢ ( ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝑥 = 𝑋 ∧ 𝑓 = 𝐹 ) ) → ( 𝑥 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝑓 “ 𝑦 ) ) ) = ( 𝑋 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) ) |
| 18 | 11 17 | mpteq12dv | ⊢ ( ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) ∧ ( 𝑥 = 𝑋 ∧ 𝑓 = 𝐹 ) ) → ( 𝑏 ∈ ( fBas ‘ dom 𝑓 ) ↦ ( 𝑥 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝑓 “ 𝑦 ) ) ) ) = ( 𝑏 ∈ ( fBas ‘ 𝑌 ) ↦ ( 𝑋 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) ) ) |
| 19 | elex | ⊢ ( 𝑋 ∈ 𝐴 → 𝑋 ∈ V ) | |
| 20 | 19 | 3ad2ant1 | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → 𝑋 ∈ V ) |
| 21 | fex2 | ⊢ ( ( 𝐹 : 𝑌 ⟶ 𝑋 ∧ 𝑌 ∈ 𝐵 ∧ 𝑋 ∈ 𝐴 ) → 𝐹 ∈ V ) | |
| 22 | 21 | 3com13 | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → 𝐹 ∈ V ) |
| 23 | fvex | ⊢ ( fBas ‘ 𝑌 ) ∈ V | |
| 24 | 23 | mptex | ⊢ ( 𝑏 ∈ ( fBas ‘ 𝑌 ) ↦ ( 𝑋 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) ) ∈ V |
| 25 | 24 | a1i | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → ( 𝑏 ∈ ( fBas ‘ 𝑌 ) ↦ ( 𝑋 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) ) ∈ V ) |
| 26 | 5 18 20 22 25 | ovmpod | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → ( 𝑋 FilMap 𝐹 ) = ( 𝑏 ∈ ( fBas ‘ 𝑌 ) ↦ ( 𝑋 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) ) ) |
| 27 | 26 | fneq1d | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → ( ( 𝑋 FilMap 𝐹 ) Fn ( fBas ‘ 𝑌 ) ↔ ( 𝑏 ∈ ( fBas ‘ 𝑌 ) ↦ ( 𝑋 filGen ran ( 𝑦 ∈ 𝑏 ↦ ( 𝐹 “ 𝑦 ) ) ) ) Fn ( fBas ‘ 𝑌 ) ) ) |
| 28 | 3 27 | mpbiri | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → ( 𝑋 FilMap 𝐹 ) Fn ( fBas ‘ 𝑌 ) ) |
| 29 | simpl1 | ⊢ ( ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) ∧ 𝑏 ∈ ( fBas ‘ 𝑌 ) ) → 𝑋 ∈ 𝐴 ) | |
| 30 | simpr | ⊢ ( ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) ∧ 𝑏 ∈ ( fBas ‘ 𝑌 ) ) → 𝑏 ∈ ( fBas ‘ 𝑌 ) ) | |
| 31 | simpl3 | ⊢ ( ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) ∧ 𝑏 ∈ ( fBas ‘ 𝑌 ) ) → 𝐹 : 𝑌 ⟶ 𝑋 ) | |
| 32 | fmfil | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑏 ∈ ( fBas ‘ 𝑌 ) ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → ( ( 𝑋 FilMap 𝐹 ) ‘ 𝑏 ) ∈ ( Fil ‘ 𝑋 ) ) | |
| 33 | 29 30 31 32 | syl3anc | ⊢ ( ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) ∧ 𝑏 ∈ ( fBas ‘ 𝑌 ) ) → ( ( 𝑋 FilMap 𝐹 ) ‘ 𝑏 ) ∈ ( Fil ‘ 𝑋 ) ) |
| 34 | 33 | ralrimiva | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → ∀ 𝑏 ∈ ( fBas ‘ 𝑌 ) ( ( 𝑋 FilMap 𝐹 ) ‘ 𝑏 ) ∈ ( Fil ‘ 𝑋 ) ) |
| 35 | ffnfv | ⊢ ( ( 𝑋 FilMap 𝐹 ) : ( fBas ‘ 𝑌 ) ⟶ ( Fil ‘ 𝑋 ) ↔ ( ( 𝑋 FilMap 𝐹 ) Fn ( fBas ‘ 𝑌 ) ∧ ∀ 𝑏 ∈ ( fBas ‘ 𝑌 ) ( ( 𝑋 FilMap 𝐹 ) ‘ 𝑏 ) ∈ ( Fil ‘ 𝑋 ) ) ) | |
| 36 | 28 34 35 | sylanbrc | ⊢ ( ( 𝑋 ∈ 𝐴 ∧ 𝑌 ∈ 𝐵 ∧ 𝐹 : 𝑌 ⟶ 𝑋 ) → ( 𝑋 FilMap 𝐹 ) : ( fBas ‘ 𝑌 ) ⟶ ( Fil ‘ 𝑋 ) ) |