This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Distribute proper substitution through the function predicate. (Contributed by Alexander van der Vekens, 23-Jul-2017)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | sbcfung | |- ( A e. V -> ( [. A / x ]. Fun F <-> Fun [_ A / x ]_ F ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | sbcan | |- ( [. A / x ]. ( Rel F /\ A. w E. y A. z ( w F z -> z = y ) ) <-> ( [. A / x ]. Rel F /\ [. A / x ]. A. w E. y A. z ( w F z -> z = y ) ) ) |
|
| 2 | sbcrel | |- ( A e. V -> ( [. A / x ]. Rel F <-> Rel [_ A / x ]_ F ) ) |
|
| 3 | sbcal | |- ( [. A / x ]. A. w E. y A. z ( w F z -> z = y ) <-> A. w [. A / x ]. E. y A. z ( w F z -> z = y ) ) |
|
| 4 | sbcex2 | |- ( [. A / x ]. E. y A. z ( w F z -> z = y ) <-> E. y [. A / x ]. A. z ( w F z -> z = y ) ) |
|
| 5 | sbcal | |- ( [. A / x ]. A. z ( w F z -> z = y ) <-> A. z [. A / x ]. ( w F z -> z = y ) ) |
|
| 6 | sbcimg | |- ( A e. V -> ( [. A / x ]. ( w F z -> z = y ) <-> ( [. A / x ]. w F z -> [. A / x ]. z = y ) ) ) |
|
| 7 | sbcbr123 | |- ( [. A / x ]. w F z <-> [_ A / x ]_ w [_ A / x ]_ F [_ A / x ]_ z ) |
|
| 8 | csbconstg | |- ( A e. V -> [_ A / x ]_ w = w ) |
|
| 9 | csbconstg | |- ( A e. V -> [_ A / x ]_ z = z ) |
|
| 10 | 8 9 | breq12d | |- ( A e. V -> ( [_ A / x ]_ w [_ A / x ]_ F [_ A / x ]_ z <-> w [_ A / x ]_ F z ) ) |
| 11 | 7 10 | bitrid | |- ( A e. V -> ( [. A / x ]. w F z <-> w [_ A / x ]_ F z ) ) |
| 12 | sbcg | |- ( A e. V -> ( [. A / x ]. z = y <-> z = y ) ) |
|
| 13 | 11 12 | imbi12d | |- ( A e. V -> ( ( [. A / x ]. w F z -> [. A / x ]. z = y ) <-> ( w [_ A / x ]_ F z -> z = y ) ) ) |
| 14 | 6 13 | bitrd | |- ( A e. V -> ( [. A / x ]. ( w F z -> z = y ) <-> ( w [_ A / x ]_ F z -> z = y ) ) ) |
| 15 | 14 | albidv | |- ( A e. V -> ( A. z [. A / x ]. ( w F z -> z = y ) <-> A. z ( w [_ A / x ]_ F z -> z = y ) ) ) |
| 16 | 5 15 | bitrid | |- ( A e. V -> ( [. A / x ]. A. z ( w F z -> z = y ) <-> A. z ( w [_ A / x ]_ F z -> z = y ) ) ) |
| 17 | 16 | exbidv | |- ( A e. V -> ( E. y [. A / x ]. A. z ( w F z -> z = y ) <-> E. y A. z ( w [_ A / x ]_ F z -> z = y ) ) ) |
| 18 | 4 17 | bitrid | |- ( A e. V -> ( [. A / x ]. E. y A. z ( w F z -> z = y ) <-> E. y A. z ( w [_ A / x ]_ F z -> z = y ) ) ) |
| 19 | 18 | albidv | |- ( A e. V -> ( A. w [. A / x ]. E. y A. z ( w F z -> z = y ) <-> A. w E. y A. z ( w [_ A / x ]_ F z -> z = y ) ) ) |
| 20 | 3 19 | bitrid | |- ( A e. V -> ( [. A / x ]. A. w E. y A. z ( w F z -> z = y ) <-> A. w E. y A. z ( w [_ A / x ]_ F z -> z = y ) ) ) |
| 21 | 2 20 | anbi12d | |- ( A e. V -> ( ( [. A / x ]. Rel F /\ [. A / x ]. A. w E. y A. z ( w F z -> z = y ) ) <-> ( Rel [_ A / x ]_ F /\ A. w E. y A. z ( w [_ A / x ]_ F z -> z = y ) ) ) ) |
| 22 | 1 21 | bitrid | |- ( A e. V -> ( [. A / x ]. ( Rel F /\ A. w E. y A. z ( w F z -> z = y ) ) <-> ( Rel [_ A / x ]_ F /\ A. w E. y A. z ( w [_ A / x ]_ F z -> z = y ) ) ) ) |
| 23 | dffun3 | |- ( Fun F <-> ( Rel F /\ A. w E. y A. z ( w F z -> z = y ) ) ) |
|
| 24 | 23 | sbcbii | |- ( [. A / x ]. Fun F <-> [. A / x ]. ( Rel F /\ A. w E. y A. z ( w F z -> z = y ) ) ) |
| 25 | dffun3 | |- ( Fun [_ A / x ]_ F <-> ( Rel [_ A / x ]_ F /\ A. w E. y A. z ( w [_ A / x ]_ F z -> z = y ) ) ) |
|
| 26 | 22 24 25 | 3bitr4g | |- ( A e. V -> ( [. A / x ]. Fun F <-> Fun [_ A / x ]_ F ) ) |