Description: Generalized class abstraction as a direct image.
TODO: improve the support lemmas elimag and fvelima to nonfreeness hypothesis (and for the latter, biconditional). (Contributed by BJ, 4-Oct-2024)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | bj-gabima.nf | ⊢ ( 𝜑 → ∀ 𝑥 𝜑 ) | |
| bj-gabima.nff | ⊢ ( 𝜑 → Ⅎ 𝑥 𝐹 ) | ||
| bj-gabima.fun | ⊢ ( 𝜑 → Fun 𝐹 ) | ||
| bj-gabima.dm | ⊢ ( 𝜑 → { 𝑥 ∣ 𝜓 } ⊆ dom 𝐹 ) | ||
| Assertion | bj-gabima | ⊢ ( 𝜑 → { ( 𝐹 ‘ 𝑥 ) ∣ 𝑥 ∣ 𝜓 } = ( 𝐹 “ { 𝑥 ∣ 𝜓 } ) ) | 
| Step | Hyp | Ref | Expression | 
|---|---|---|---|
| 1 | bj-gabima.nf | ⊢ ( 𝜑 → ∀ 𝑥 𝜑 ) | |
| 2 | bj-gabima.nff | ⊢ ( 𝜑 → Ⅎ 𝑥 𝐹 ) | |
| 3 | bj-gabima.fun | ⊢ ( 𝜑 → Fun 𝐹 ) | |
| 4 | bj-gabima.dm | ⊢ ( 𝜑 → { 𝑥 ∣ 𝜓 } ⊆ dom 𝐹 ) | |
| 5 | nfcvd | ⊢ ( 𝜑 → Ⅎ 𝑥 𝑦 ) | |
| 6 | vex | ⊢ 𝑦 ∈ V | |
| 7 | 6 | a1i | ⊢ ( 𝜑 → 𝑦 ∈ V ) | 
| 8 | df-rex | ⊢ ( ∃ 𝑧 ∈ { 𝑥 ∣ 𝜓 } ( 𝐹 ‘ 𝑧 ) = 𝑦 ↔ ∃ 𝑧 ( 𝑧 ∈ { 𝑥 ∣ 𝜓 } ∧ ( 𝐹 ‘ 𝑧 ) = 𝑦 ) ) | |
| 9 | 8 | a1i | ⊢ ( 𝜑 → ( ∃ 𝑧 ∈ { 𝑥 ∣ 𝜓 } ( 𝐹 ‘ 𝑧 ) = 𝑦 ↔ ∃ 𝑧 ( 𝑧 ∈ { 𝑥 ∣ 𝜓 } ∧ ( 𝐹 ‘ 𝑧 ) = 𝑦 ) ) ) | 
| 10 | eqcom | ⊢ ( 𝑦 = ( 𝐹 ‘ 𝑧 ) ↔ ( 𝐹 ‘ 𝑧 ) = 𝑦 ) | |
| 11 | df-clab | ⊢ ( 𝑧 ∈ { 𝑥 ∣ 𝜓 } ↔ [ 𝑧 / 𝑥 ] 𝜓 ) | |
| 12 | 11 | bicomi | ⊢ ( [ 𝑧 / 𝑥 ] 𝜓 ↔ 𝑧 ∈ { 𝑥 ∣ 𝜓 } ) | 
| 13 | 10 12 | anbi12ci | ⊢ ( ( 𝑦 = ( 𝐹 ‘ 𝑧 ) ∧ [ 𝑧 / 𝑥 ] 𝜓 ) ↔ ( 𝑧 ∈ { 𝑥 ∣ 𝜓 } ∧ ( 𝐹 ‘ 𝑧 ) = 𝑦 ) ) | 
| 14 | 13 | exbii | ⊢ ( ∃ 𝑧 ( 𝑦 = ( 𝐹 ‘ 𝑧 ) ∧ [ 𝑧 / 𝑥 ] 𝜓 ) ↔ ∃ 𝑧 ( 𝑧 ∈ { 𝑥 ∣ 𝜓 } ∧ ( 𝐹 ‘ 𝑧 ) = 𝑦 ) ) | 
| 15 | 14 | a1i | ⊢ ( 𝜑 → ( ∃ 𝑧 ( 𝑦 = ( 𝐹 ‘ 𝑧 ) ∧ [ 𝑧 / 𝑥 ] 𝜓 ) ↔ ∃ 𝑧 ( 𝑧 ∈ { 𝑥 ∣ 𝜓 } ∧ ( 𝐹 ‘ 𝑧 ) = 𝑦 ) ) ) | 
| 16 | 1 | nf5i | ⊢ Ⅎ 𝑥 𝜑 | 
| 17 | nfcv | ⊢ Ⅎ 𝑥 𝑦 | |
| 18 | 17 | a1i | ⊢ ( 𝜑 → Ⅎ 𝑥 𝑦 ) | 
| 19 | nfcv | ⊢ Ⅎ 𝑥 𝑧 | |
| 20 | 19 | a1i | ⊢ ( 𝜑 → Ⅎ 𝑥 𝑧 ) | 
| 21 | 2 20 | nffvd | ⊢ ( 𝜑 → Ⅎ 𝑥 ( 𝐹 ‘ 𝑧 ) ) | 
| 22 | 18 21 | nfeqd | ⊢ ( 𝜑 → Ⅎ 𝑥 𝑦 = ( 𝐹 ‘ 𝑧 ) ) | 
| 23 | nfs1v | ⊢ Ⅎ 𝑥 [ 𝑧 / 𝑥 ] 𝜓 | |
| 24 | 23 | a1i | ⊢ ( 𝜑 → Ⅎ 𝑥 [ 𝑧 / 𝑥 ] 𝜓 ) | 
| 25 | 22 24 | nfand | ⊢ ( 𝜑 → Ⅎ 𝑥 ( 𝑦 = ( 𝐹 ‘ 𝑧 ) ∧ [ 𝑧 / 𝑥 ] 𝜓 ) ) | 
| 26 | fveq2 | ⊢ ( 𝑧 = 𝑥 → ( 𝐹 ‘ 𝑧 ) = ( 𝐹 ‘ 𝑥 ) ) | |
| 27 | 26 | eqeq2d | ⊢ ( 𝑧 = 𝑥 → ( 𝑦 = ( 𝐹 ‘ 𝑧 ) ↔ 𝑦 = ( 𝐹 ‘ 𝑥 ) ) ) | 
| 28 | sbequ12r | ⊢ ( 𝑧 = 𝑥 → ( [ 𝑧 / 𝑥 ] 𝜓 ↔ 𝜓 ) ) | |
| 29 | 27 28 | anbi12d | ⊢ ( 𝑧 = 𝑥 → ( ( 𝑦 = ( 𝐹 ‘ 𝑧 ) ∧ [ 𝑧 / 𝑥 ] 𝜓 ) ↔ ( 𝑦 = ( 𝐹 ‘ 𝑥 ) ∧ 𝜓 ) ) ) | 
| 30 | 29 | a1i | ⊢ ( 𝜑 → ( 𝑧 = 𝑥 → ( ( 𝑦 = ( 𝐹 ‘ 𝑧 ) ∧ [ 𝑧 / 𝑥 ] 𝜓 ) ↔ ( 𝑦 = ( 𝐹 ‘ 𝑥 ) ∧ 𝜓 ) ) ) ) | 
| 31 | 16 25 30 | cbvexdw | ⊢ ( 𝜑 → ( ∃ 𝑧 ( 𝑦 = ( 𝐹 ‘ 𝑧 ) ∧ [ 𝑧 / 𝑥 ] 𝜓 ) ↔ ∃ 𝑥 ( 𝑦 = ( 𝐹 ‘ 𝑥 ) ∧ 𝜓 ) ) ) | 
| 32 | 9 15 31 | 3bitr2rd | ⊢ ( 𝜑 → ( ∃ 𝑥 ( 𝑦 = ( 𝐹 ‘ 𝑥 ) ∧ 𝜓 ) ↔ ∃ 𝑧 ∈ { 𝑥 ∣ 𝜓 } ( 𝐹 ‘ 𝑧 ) = 𝑦 ) ) | 
| 33 | 1 5 7 32 | bj-elgab | ⊢ ( 𝜑 → ( 𝑦 ∈ { ( 𝐹 ‘ 𝑥 ) ∣ 𝑥 ∣ 𝜓 } ↔ ∃ 𝑧 ∈ { 𝑥 ∣ 𝜓 } ( 𝐹 ‘ 𝑧 ) = 𝑦 ) ) | 
| 34 | 3 | funfnd | ⊢ ( 𝜑 → 𝐹 Fn dom 𝐹 ) | 
| 35 | 34 4 | fvelimabd | ⊢ ( 𝜑 → ( 𝑦 ∈ ( 𝐹 “ { 𝑥 ∣ 𝜓 } ) ↔ ∃ 𝑧 ∈ { 𝑥 ∣ 𝜓 } ( 𝐹 ‘ 𝑧 ) = 𝑦 ) ) | 
| 36 | 33 35 | bitr4d | ⊢ ( 𝜑 → ( 𝑦 ∈ { ( 𝐹 ‘ 𝑥 ) ∣ 𝑥 ∣ 𝜓 } ↔ 𝑦 ∈ ( 𝐹 “ { 𝑥 ∣ 𝜓 } ) ) ) | 
| 37 | 36 | eqrdv | ⊢ ( 𝜑 → { ( 𝐹 ‘ 𝑥 ) ∣ 𝑥 ∣ 𝜓 } = ( 𝐹 “ { 𝑥 ∣ 𝜓 } ) ) |