Step | Hyp | Ref | Expression |
1 |
|
bitr3 |
(fst p, snd p e. write F a b <-> p e. write F a b) ->
(fst p, snd p e. write F a b <-> p e. (F |` {x | x != a}) u. sn (a, b)) ->
(p e. write F a b <-> p e. (F |` {x | x != a}) u. sn (a, b)) |
2 |
|
eleq1 |
fst p, snd p = p -> (fst p, snd p e. write F a b <-> p e. write F a b) |
3 |
|
fstsnd |
fst p, snd p = p |
4 |
2, 3 |
ax_mp |
fst p, snd p e. write F a b <-> p e. write F a b |
5 |
1, 4 |
ax_mp |
(fst p, snd p e. write F a b <-> p e. (F |` {x | x != a}) u. sn (a, b)) -> (p e. write F a b <-> p e. (F |` {x | x != a}) u. sn (a, b)) |
6 |
|
bitr |
(fst p, snd p e. write F a b <-> ifp (fst p = a) (snd p = b) (fst p, snd p e. F)) ->
(ifp (fst p = a) (snd p = b) (fst p, snd p e. F) <-> p e. (F |` {x | x != a}) u. sn (a, b)) ->
(fst p, snd p e. write F a b <-> p e. (F |` {x | x != a}) u. sn (a, b)) |
7 |
|
elwrite |
fst p, snd p e. write F a b <-> ifp (fst p = a) (snd p = b) (fst p, snd p e. F) |
8 |
6, 7 |
ax_mp |
(ifp (fst p = a) (snd p = b) (fst p, snd p e. F) <-> p e. (F |` {x | x != a}) u. sn (a, b)) ->
(fst p, snd p e. write F a b <-> p e. (F |` {x | x != a}) u. sn (a, b)) |
9 |
|
bitr |
(ifp (fst p = a) (snd p = b) (fst p, snd p e. F) <-> ~fst p = a /\ fst p, snd p e. F \/ fst p = a /\ snd p = b) ->
(~fst p = a /\ fst p, snd p e. F \/ fst p = a /\ snd p = b <-> p e. (F |` {x | x != a}) u. sn (a, b)) ->
(ifp (fst p = a) (snd p = b) (fst p, snd p e. F) <-> p e. (F |` {x | x != a}) u. sn (a, b)) |
10 |
|
orcomb |
fst p = a /\ snd p = b \/ ~fst p = a /\ fst p, snd p e. F <-> ~fst p = a /\ fst p, snd p e. F \/ fst p = a /\ snd p = b |
11 |
10 |
conv ifp |
ifp (fst p = a) (snd p = b) (fst p, snd p e. F) <-> ~fst p = a /\ fst p, snd p e. F \/ fst p = a /\ snd p = b |
12 |
9, 11 |
ax_mp |
(~fst p = a /\ fst p, snd p e. F \/ fst p = a /\ snd p = b <-> p e. (F |` {x | x != a}) u. sn (a, b)) ->
(ifp (fst p = a) (snd p = b) (fst p, snd p e. F) <-> p e. (F |` {x | x != a}) u. sn (a, b)) |
13 |
|
bitr4 |
(~fst p = a /\ fst p, snd p e. F \/ fst p = a /\ snd p = b <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) ->
(p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) ->
(~fst p = a /\ fst p, snd p e. F \/ fst p = a /\ snd p = b <-> p e. (F |` {x | x != a}) u. sn (a, b)) |
14 |
|
oreq1 |
(~fst p = a /\ fst p, snd p e. F <-> fst p, snd p e. F /\ fst p e. {x | x != a}) ->
(~fst p = a /\ fst p, snd p e. F \/ fst p = a /\ snd p = b <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) |
15 |
|
bitr4 |
(~fst p = a /\ fst p, snd p e. F <-> fst p, snd p e. F /\ ~fst p = a) ->
(fst p, snd p e. F /\ fst p e. {x | x != a} <-> fst p, snd p e. F /\ ~fst p = a) ->
(~fst p = a /\ fst p, snd p e. F <-> fst p, snd p e. F /\ fst p e. {x | x != a}) |
16 |
|
ancomb |
~fst p = a /\ fst p, snd p e. F <-> fst p, snd p e. F /\ ~fst p = a |
17 |
15, 16 |
ax_mp |
(fst p, snd p e. F /\ fst p e. {x | x != a} <-> fst p, snd p e. F /\ ~fst p = a) ->
(~fst p = a /\ fst p, snd p e. F <-> fst p, snd p e. F /\ fst p e. {x | x != a}) |
18 |
|
neeq1 |
x = fst p -> (x != a <-> fst p != a) |
19 |
18 |
conv ne |
x = fst p -> (x != a <-> ~fst p = a) |
20 |
19 |
elabe |
fst p e. {x | x != a} <-> ~fst p = a |
21 |
20 |
aneq2i |
fst p, snd p e. F /\ fst p e. {x | x != a} <-> fst p, snd p e. F /\ ~fst p = a |
22 |
17, 21 |
ax_mp |
~fst p = a /\ fst p, snd p e. F <-> fst p, snd p e. F /\ fst p e. {x | x != a} |
23 |
14, 22 |
ax_mp |
~fst p = a /\ fst p, snd p e. F \/ fst p = a /\ snd p = b <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b |
24 |
13, 23 |
ax_mp |
(p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) ->
(~fst p = a /\ fst p, snd p e. F \/ fst p = a /\ snd p = b <-> p e. (F |` {x | x != a}) u. sn (a, b)) |
25 |
|
bitr3 |
(fst p, snd p e. (F |` {x | x != a}) u. sn (a, b) <-> p e. (F |` {x | x != a}) u. sn (a, b)) ->
(fst p, snd p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) ->
(p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) |
26 |
|
eleq1 |
fst p, snd p = p -> (fst p, snd p e. (F |` {x | x != a}) u. sn (a, b) <-> p e. (F |` {x | x != a}) u. sn (a, b)) |
27 |
26, 3 |
ax_mp |
fst p, snd p e. (F |` {x | x != a}) u. sn (a, b) <-> p e. (F |` {x | x != a}) u. sn (a, b) |
28 |
25, 27 |
ax_mp |
(fst p, snd p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) ->
(p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) |
29 |
|
bitr |
(fst p, snd p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F |` {x | x != a} \/ fst p, snd p e. sn (a, b)) ->
(fst p, snd p e. F |` {x | x != a} \/ fst p, snd p e. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) ->
(fst p, snd p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) |
30 |
|
elun |
fst p, snd p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F |` {x | x != a} \/ fst p, snd p e. sn (a, b) |
31 |
29, 30 |
ax_mp |
(fst p, snd p e. F |` {x | x != a} \/ fst p, snd p e. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) ->
(fst p, snd p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) |
32 |
|
oreq |
(fst p, snd p e. F |` {x | x != a} <-> fst p, snd p e. F /\ fst p e. {x | x != a}) ->
(fst p, snd p e. sn (a, b) <-> fst p = a /\ snd p = b) ->
(fst p, snd p e. F |` {x | x != a} \/ fst p, snd p e. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) |
33 |
|
prelres |
fst p, snd p e. F |` {x | x != a} <-> fst p, snd p e. F /\ fst p e. {x | x != a} |
34 |
32, 33 |
ax_mp |
(fst p, snd p e. sn (a, b) <-> fst p = a /\ snd p = b) ->
(fst p, snd p e. F |` {x | x != a} \/ fst p, snd p e. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b) |
35 |
|
bitr |
(fst p, snd p e. sn (a, b) <-> fst p, snd p = a, b) ->
(fst p, snd p = a, b <-> fst p = a /\ snd p = b) ->
(fst p, snd p e. sn (a, b) <-> fst p = a /\ snd p = b) |
36 |
|
elsn |
fst p, snd p e. sn (a, b) <-> fst p, snd p = a, b |
37 |
35, 36 |
ax_mp |
(fst p, snd p = a, b <-> fst p = a /\ snd p = b) -> (fst p, snd p e. sn (a, b) <-> fst p = a /\ snd p = b) |
38 |
|
prth |
fst p, snd p = a, b <-> fst p = a /\ snd p = b |
39 |
37, 38 |
ax_mp |
fst p, snd p e. sn (a, b) <-> fst p = a /\ snd p = b |
40 |
34, 39 |
ax_mp |
fst p, snd p e. F |` {x | x != a} \/ fst p, snd p e. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b |
41 |
31, 40 |
ax_mp |
fst p, snd p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b |
42 |
28, 41 |
ax_mp |
p e. (F |` {x | x != a}) u. sn (a, b) <-> fst p, snd p e. F /\ fst p e. {x | x != a} \/ fst p = a /\ snd p = b |
43 |
24, 42 |
ax_mp |
~fst p = a /\ fst p, snd p e. F \/ fst p = a /\ snd p = b <-> p e. (F |` {x | x != a}) u. sn (a, b) |
44 |
12, 43 |
ax_mp |
ifp (fst p = a) (snd p = b) (fst p, snd p e. F) <-> p e. (F |` {x | x != a}) u. sn (a, b) |
45 |
8, 44 |
ax_mp |
fst p, snd p e. write F a b <-> p e. (F |` {x | x != a}) u. sn (a, b) |
46 |
5, 45 |
ax_mp |
p e. write F a b <-> p e. (F |` {x | x != a}) u. sn (a, b) |
47 |
46 |
eqri |
write F a b == (F |` {x | x != a}) u. sn (a, b) |