HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Theorem sbcom 916
Description: A commutativity law for substitution.
Assertion
Ref Expression
sbcom |- ([y / z][y / x]ph <-> [y / x][y / z]ph)

Proof of Theorem sbcom
StepHypRef Expression
1 del43b 857 . . . . . 6 |- (A.x x = z -> ([y / x][y / x]ph <-> [y / z][y / x]ph))
2 eq5 824 . . . . . . 7 |- (A.x x = z -> A.xA.x x = z)
3 del43b 857 . . . . . . 7 |- (A.x x = z -> ([y / x]ph <-> [y / z]ph))
42, 3bisbd 897 . . . . . 6 |- (A.x x = z -> ([y / x][y / x]ph <-> [y / x][y / z]ph))
51, 4bitr3d 408 . . . . 5 |- (A.x x = z -> ([y / z][y / x]ph <-> [y / x][y / z]ph))
65a1d 14 . . . 4 |- (A.x x = z -> ((-. A.x x = y /\ -. A.z z = y) -> ([y / z][y / x]ph <-> [y / x][y / z]ph)))
7 eq6 826 . . . . . . . . . 10 |- (-. A.x x = z -> A.z -. A.x x = z)
8 eq6 826 . . . . . . . . . 10 |- (-. A.x x = y -> A.z -. A.x x = y)
97, 8hban 704 . . . . . . . . 9 |- ((-. A.x x = z /\ -. A.x x = y) -> A.z(-. A.x x = z /\ -. A.x x = y))
10 eq6 826 . . . . . . . . . . 11 |- (-. A.x x = z -> A.x -. A.x x = z)
11 eq6 826 . . . . . . . . . . 11 |- (-. A.x x = y -> A.x -. A.x x = y)
1210, 11hban 704 . . . . . . . . . 10 |- ((-. A.x x = z /\ -. A.x x = y) -> A.x(-. A.x x = z /\ -. A.x x = y))
13 ax-12 802 . . . . . . . . . . . 12 |- (-. A.x x = z -> (-. A.x x = y -> (z = y -> A.x z = y)))
1413imp 277 . . . . . . . . . . 11 |- ((-. A.x x = z /\ -. A.x x = y) -> (z = y -> A.x z = y))
151419.20i 691 . . . . . . . . . 10 |- (A.x(-. A.x x = z /\ -. A.x x = y) -> A.x(z = y -> A.x z = y))
16 19.21g 792 . . . . . . . . . 10 |- (A.x(z = y -> A.x z = y) -> (A.x(z = y -> (x = y -> ph)) <-> (z = y -> A.x(x = y -> ph))))
1712, 15, 163syl 21 . . . . . . . . 9 |- ((-. A.x x = z /\ -. A.x x = y) -> (A.x(z = y -> (x = y -> ph)) <-> (z = y -> A.x(x = y -> ph))))
189, 17biald 782 . . . . . . . 8 |- ((-. A.x x = z /\ -. A.x x = y) -> (A.zA.x(z = y -> (x = y -> ph)) <-> A.z(z = y -> A.x(x = y -> ph))))
1918adantrr 312 . . . . . . 7 |- ((-. A.x x = z /\ (-. A.x x = y /\ -. A.z z = y)) -> (A.zA.x(z = y -> (x = y -> ph)) <-> A.z(z = y -> A.x(x = y -> ph))))
20 eq6 826 . . . . . . . . . . 11 |- (-. A.z z = y -> A.x -. A.z z = y)
2110, 20hban 704 . . . . . . . . . 10 |- ((-. A.x x = z /\ -. A.z z = y) -> A.x(-. A.x x = z /\ -. A.z z = y))
22 eq6 826 . . . . . . . . . . . . 13 |- (-. A.z z = y -> A.z -. A.z z = y)
237, 22hban 704 . . . . . . . . . . . 12 |- ((-. A.x x = z /\ -. A.z z = y) -> A.z(-. A.x x = z /\ -. A.z z = y))
24 ax-12 802 . . . . . . . . . . . . . . 15 |- (-. A.z z = x -> (-. A.z z = y -> (x = y -> A.z x = y)))
2524eq4ds 823 . . . . . . . . . . . . . 14 |- (-. A.x x = z -> (-. A.z z = y -> (x = y -> A.z x = y)))
2625imp 277 . . . . . . . . . . . . 13 |- ((-. A.x x = z /\ -. A.z z = y) -> (x = y -> A.z x = y))
272619.20i 691 . . . . . . . . . . . 12 |- (A.z(-. A.x x = z /\ -. A.z z = y) -> A.z(x = y -> A.z x = y))
28 19.21g 792 . . . . . . . . . . . 12 |- (A.z(x = y -> A.z x = y) -> (A.z(x = y -> (z = y -> ph)) <-> (x = y -> A.z(z = y -> ph))))
2923, 27, 283syl 21 . . . . . . . . . . 11 |- ((-. A.x x = z /\ -. A.z z = y) -> (A.z(x = y -> (z = y -> ph)) <-> (x = y -> A.z(z = y -> ph))))
30 bi2.04 141 . . . . . . . . . . . 12 |- ((z = y -> (x = y -> ph)) <-> (x = y -> (z = y -> ph)))
3130bial 695 . . . . . . . . . . 11 |- (A.z(z = y -> (x = y -> ph)) <-> A.z(x = y -> (z = y -> ph)))
3229, 31syl5bb 410 . . . . . . . . . 10 |- ((-. A.x x = z /\ -. A.z z = y) -> (A.z(z = y -> (x = y -> ph)) <-> (x = y -> A.z(z = y -> ph))))
3321, 32biald 782 . . . . . . . . 9 |- ((-. A.x x = z /\ -. A.z z = y) -> (A.xA.z(z = y -> (x = y -> ph)) <-> A.x(x = y -> A.z(z = y -> ph))))
34 alcom 715 . . . . . . . . 9 |- (A.zA.x(z = y -> (x = y -> ph)) <-> A.xA.z(z = y -> (x = y -> ph)))
3533, 34syl5bb 410 . . . . . . . 8 |- ((-. A.x x = z /\ -. A.z z = y) -> (A.zA.x(z = y -> (x = y -> ph)) <-> A.x(x = y -> A.z(z = y -> ph))))
3635adantrl 311 . . . . . . 7 |- ((-. A.x x = z /\ (-. A.x x = y /\ -. A.z z = y)) -> (A.zA.x(z = y -> (x = y -> ph)) <-> A.x(x = y -> A.z(z = y -> ph))))
3719, 36bitr3d 408 . . . . . 6 |- ((-. A.x x = z /\ (-. A.x x = y /\ -. A.z z = y)) -> (A.z(z = y -> A.x(x = y -> ph)) <-> A.x(x = y -> A.z(z = y -> ph))))
38 sb4b 862 . . . . . . . 8 |- (-. A.z z = y -> ([y / z][y / x]ph <-> A.z(z = y -> [y / x]ph)))
39 sb4b 862 . . . . . . . . . 10 |- (-. A.x x = y -> ([y / x]ph <-> A.x(x = y -> ph)))
4039imbi2d 464 . . . . . . . . 9 |- (-. A.x x = y -> ((z = y -> [y / x]ph) <-> (z = y -> A.x(x = y -> ph))))
418, 40biald 782 . . . . . . . 8 |- (-. A.x x = y -> (A.z(z = y -> [y / x]ph) <-> A.z(z = y -> A.x(x = y -> ph))))
4238, 41sylan9bbr 419 . . . . . . 7 |- ((-. A.x x = y /\ -. A.z z = y) -> ([y / z][y / x]ph <-> A.z(z = y -> A.x(x = y -> ph))))
4342adantl 305 . . . . . 6 |- ((-. A.x x = z /\ (-. A.x x = y /\ -. A.z z = y)) -> ([y / z][y / x]ph <-> A.z(z = y -> A.x(x = y -> ph))))
44 sb4b 862 . . . . . . . 8 |- (-. A.x x = y -> ([y / x][y / z]ph <-> A.x(x = y -> [y / z]ph)))
45 sb4b 862 . . . . . . . . . 10 |- (-. A.z z = y -> ([y / z]ph <-> A.z(z = y -> ph)))
4645imbi2d 464 . . . . . . . . 9 |- (-. A.z z = y -> ((x = y -> [y / z]ph) <-> (x = y -> A.z(z = y -> ph))))
4720, 46biald 782 . . . . . . . 8 |- (-. A.z z = y -> (A.x(x = y -> [y / z]ph) <-> A.x(x = y -> A.z(z = y -> ph))))
4844, 47sylan9bb 418 . . . . . . 7 |- ((-. A.x x = y /\ -. A.z z = y) -> ([y / x][y / z]ph <-> A.x(x = y -> A.z(z = y -> ph))))
4948adantl 305 . . . . . 6 |- ((-. A.x x = z /\ (-. A.x x = y /\ -. A.z z = y)) -> ([y / x][y / z]ph <-> A.x(x = y -> A.z(z = y -> ph))))
5037, 43, 493bitr4d 424 . . . . 5 |- ((-. A.x x = z /\ (-. A.x x = y /\ -. A.z z = y)) -> ([y / z][y / x]ph <-> [y / x][y / z]ph))
5150exp 291 . . . 4 |- (-. A.x x = z -> ((-. A.x x = y /\ -. A.z z = y) -> ([y / z][y / x]ph <-> [y / x][y / z]ph)))
526, 51pm2.61i 110 . . 3 |- ((-. A.x x = y /\ -. A.z z = y) -> ([y / z][y / x]ph <-> [y / x][y / z]ph))
5352exp 291 . 2 |- (-. A.x x =