Metamath Proof Explorer


Theorem bj-gabima

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 φ x φ
bj-gabima.nff φ _ x F
bj-gabima.fun φ Fun F
bj-gabima.dm φ x | ψ dom F
Assertion bj-gabima Could not format assertion : No typesetting found for |- ( ph -> {{ ( F ` x ) | x | ps }} = ( F " { x | ps } ) ) with typecode |-

Proof

Step Hyp Ref Expression
1 bj-gabima.nf φ x φ
2 bj-gabima.nff φ _ x F
3 bj-gabima.fun φ Fun F
4 bj-gabima.dm φ x | ψ dom F
5 nfcvd φ _ x y
6 vex y V
7 6 a1i φ y V
8 df-rex z x | ψ F z = y z z x | ψ F z = y
9 8 a1i φ z x | ψ F z = y z z x | ψ F z = y
10 eqcom y = F z F z = y
11 df-clab z x | ψ z x ψ
12 11 bicomi z x ψ z x | ψ
13 10 12 anbi12ci y = F z z x ψ z x | ψ F z = y
14 13 exbii z y = F z z x ψ z z x | ψ F z = y
15 14 a1i φ z y = F z z x ψ z z x | ψ F z = y
16 1 nf5i x φ
17 nfcv _ x y
18 17 a1i φ _ x y
19 nfcv _ x z
20 19 a1i φ _ x z
21 2 20 nffvd φ _ x F z
22 18 21 nfeqd φ x y = F z
23 nfs1v x z x ψ
24 23 a1i φ x z x ψ
25 22 24 nfand φ x y = F z z x ψ
26 fveq2 z = x F z = F x
27 26 eqeq2d z = x y = F z y = F x
28 sbequ12r z = x z x ψ ψ
29 27 28 anbi12d z = x y = F z z x ψ y = F x ψ
30 29 a1i φ z = x y = F z z x ψ y = F x ψ
31 16 25 30 cbvexdw φ z y = F z z x ψ x y = F x ψ
32 9 15 31 3bitr2rd φ x y = F x ψ z x | ψ F z = y
33 1 5 7 32 bj-elgab Could not format ( ph -> ( y e. {{ ( F ` x ) | x | ps }} <-> E. z e. { x | ps } ( F ` z ) = y ) ) : No typesetting found for |- ( ph -> ( y e. {{ ( F ` x ) | x | ps }} <-> E. z e. { x | ps } ( F ` z ) = y ) ) with typecode |-
34 3 funfnd φ F Fn dom F
35 34 4 fvelimabd φ y F x | ψ z x | ψ F z = y
36 33 35 bitr4d Could not format ( ph -> ( y e. {{ ( F ` x ) | x | ps }} <-> y e. ( F " { x | ps } ) ) ) : No typesetting found for |- ( ph -> ( y e. {{ ( F ` x ) | x | ps }} <-> y e. ( F " { x | ps } ) ) ) with typecode |-
37 36 eqrdv Could not format ( ph -> {{ ( F ` x ) | x | ps }} = ( F " { x | ps } ) ) : No typesetting found for |- ( ph -> {{ ( F ` x ) | x | ps }} = ( F " { x | ps } ) ) with typecode |-