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

Theorem sbcom 1242
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 drsb1 1158 . . . . . 6 |- (A.x x = z -> ([y / x][y / x]ph <-> [y / z][y / x]ph))
2 hbae 1128 . . . . . . 7 |- (A.x x = z -> A.xA.x x = z)
3 drsb1 1158 . . . . . . 7 |- (A.x x = z -> ([y / x]ph <-> [y / z]ph))
42, 3sbbid 1230 . . . . . 6 |- (A.x x = z -> ([y / x][y / x]ph <-> [y / x][y / z]ph))
51, 4bitr3d 528 . . . . 5 |- (A.x x = z -> ([y / z][y / x]ph <-> [y / x][y / z]ph))
65adantr 389 . . . 4 |- ((A.x x = z /\ (-. A.x x = y /\ -. A.z z = y)) -> ([y / z][y / x]ph <-> [y / x][y / z]ph))
7 hbnae 1130 . . . . . . . . 9 |- (-. A.x x = z -> A.z -. A.x x = z)
8 hbnae 1130 . . . . . . . . 9 |- (-. A.x x = y -> A.z -. A.x x = y)
97, 8hban 985 . . . . . . . 8 |- ((-. A.x x = z /\ -. A.x x = y) -> A.z(-. A.x x = z /\ -. A.x x = y))
10 hbnae 1130 . . . . . . . . . 10 |- (-. A.x x = z -> A.x -. A.x x = z)
11 hbnae 1130 . . . . . . . . . 10 |- (-. A.x x = y -> A.x -. A.x x = y)
1210, 11hban 985 . . . . . . . . 9 |- ((-. A.x x = z /\ -. A.x x = y) -> A.x(-. A.x x = z /\ -. A.x x = y))
13 ax-12 1104 . . . . . . . . . . 11 |- (-. A.x x = z -> (-. A.x x = y -> (z = y -> A.x z = y)))
1413imp 350 . . . . . . . . . 10 |- ((-. A.x x = z /\ -. A.x x = y) -> (z = y -> A.x z = y))
151419.20i 968 . . . . . . . . 9 |- (A.x(-. A.x x = z /\ -. A.x x = y) -> A.x(z = y -> A.x z = y))
16 19.21t 1091 . . . . . . . . 9 |- (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 20 . . . . . . . 8 |- ((-. A.x x = z /\ -. A.x x = y) -> (A.x(z = y -> (x = y -> ph)) <-> (z = y -> A.x(x = y -> ph))))
189, 17albid 1080 . . . . . . 7 |- ((-. 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 395 . . . . . 6 |- ((-. 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 hbnae 1130 . . . . . . . . . 10 |- (-. A.z z = y -> A.x -. A.z z = y)
2110, 20hban 985 . . . . . . . . 9 |- ((-. A.x x = z /\ -. A.z z = y) -> A.x(-. A.x x = z /\ -. A.z z = y))
22 hbnae 1130 . . . . . . . . . . . 12 |- (-. A.z z = y -> A.z -. A.z z = y)
237, 22hban 985 . . . . . . . . . . 11 |- ((-. A.x x = z /\ -. A.z z = y) -> A.z(-. A.x x = z /\ -. A.z z = y))
24 ax-12 1104 . . . . . . . . . . . . . 14 |- (-. A.z z = x -> (-. A.z z = y -> (x = y -> A.z x = y)))
2524nalequcoms 1127 . . . . . . . . . . . . 13 |- (-. A.x x = z -> (-. A.z z = y -> (x = y -> A.z x = y)))
2625imp 350 . . . . . . . . . . . 12 |- ((-. A.x x = z /\ -. A.z z = y) -> (x = y -> A.z x = y))
272619.20i 968 . . . . . . . . . . 11 |- (A.z(-. A.x x = z /\ -. A.z z = y) -> A.z(x = y -> A.z x = y))
28 19.21t 1091 . . . . . . . . . . 11 |- (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 20 . . . . . . . . . 10 |- ((-. 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 160 . . . . . . . . . . 11 |- ((z = y -> (x = y -> ph)) <-> (x = y -> (z = y -> ph)))
3130albii 975 . . . . . . . . . 10 |- (A.z(z = y -> (x = y -> ph)) <-> A.z(x = y -> (z = y -> ph)))
3229, 31syl5bb 530 . . . . . . . . 9 |- ((-. A.x x = z /\ -. A.z z = y) -> (A.z(z = y -> (x = y -> ph)) <-> (x = y -> A.z(z = y -> ph))))
3321, 32albid 1080 . . . . . . . 8 |- ((-. 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 1008 . . . . . . . 8 |- (A.zA.x(z = y -> (x = y -> ph)) <-> A.xA.z(z = y -> (x = y -> ph)))
3533, 34syl5bb 530 . . . . . . 7 |- ((-. 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 394 . . . . . 6 |- ((-. 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 528 . . . . 5 |- ((-. 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 1208 . . . . . . 7 |- (-. A.z z = y -> ([y / z][y / x]ph <-> A.z(z = y -> [y / x]ph)))
39 sb4b 1208 . . . . . . . . 9 |- (-. A.x x = y -> ([y / x]ph <-> A.x(x = y -> ph)))
4039imbi2d 610 . . . . . . . 8 |- (-. A.x x = y -> ((z = y -> [y / x]ph) <-> (z = y -> A.x(x = y -> ph))))
418, 40albid 1080 . . . . . . 7 |- (-. A.x x = y -> (A.z(z = y -> [y / x]ph) <-> A.z(z = y -> A.x(x = y -> ph))))
4238, 41sylan9bbr 539 . . . . . 6 |- ((-. A.x x = y /\ -. A.z z = y) -> ([y / z][y / x]ph <-> A.z(z = y -> A.x(x = y -> ph))))
4342adantl 388 . . . . 5 |- ((-. 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 1208 . . . . . . 7 |- (-. A.x x = y -> ([y / x][y / z]ph <-> A.x(x = y -> [y / z]ph)))
45 sb4b 1208 . . . . . . . . 9 |- (-. A.z z = y -> ([y / z]ph <-> A.z(z = y -> ph)))
4645imbi2d 610 . . . . . . . 8 |- (-. A.z z = y -> ((x = y -> [y / z]ph) <-> (x = y -> A.z(z = y -> ph))))
4720, 46albid 1080 . . . . . . 7 |- (-. A.z z = y -> (A.x(x = y -> [y / z]ph) <-> A.x(x = y -> A.z(z = y -> ph))))
4844, 47sylan9bb 538 . . . . . 6 |- ((-. A.x x = y /\ -. A.z z = y) -> ([y / x][y / z]ph <-> A.x(x = y -> A.z(z = y -> ph))))
4948adantl 388 . . . . 5 |- ((-. 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 548 . . . 4 |- ((-. A.x x = z /\ (-. A.x x = y /\ -. A.z z = y)) -> ([y / z][y / x]ph <-> [y / x][y / z]ph))
516, 50pm2.61ian 475 . . 3 |- ((-. A.x x = y /\ -. A.z z = y) -> ([y / z][y / x]ph <-> [y / x][y / z]ph