Step | Hyp | Ref | Expression |
1 |
|
bitr3 |
(~rev l = 0 <-> l != 0) -> (~rev l = 0 <-> E. l2 E. a l = l2 |> a) -> (l != 0 <-> E. l2 E. a l = l2 |> a) |
2 |
|
noteq |
(rev l = 0 <-> l = 0) -> (~rev l = 0 <-> ~l = 0) |
3 |
2 |
conv ne |
(rev l = 0 <-> l = 0) -> (~rev l = 0 <-> l != 0) |
4 |
|
reveq0 |
rev l = 0 <-> l = 0 |
5 |
3, 4 |
ax_mp |
~rev l = 0 <-> l != 0 |
6 |
1, 5 |
ax_mp |
(~rev l = 0 <-> E. l2 E. a l = l2 |> a) -> (l != 0 <-> E. l2 E. a l = l2 |> a) |
7 |
|
bitr |
(~rev l = 0 <-> E. a E. a1 rev l = a : a1) -> (E. a E. a1 rev l = a : a1 <-> E. l2 E. a l = l2 |> a) -> (~rev l = 0 <-> E. l2 E. a l = l2 |> a) |
8 |
|
excons |
rev l != 0 <-> E. a E. a1 rev l = a : a1 |
9 |
8 |
conv ne |
~rev l = 0 <-> E. a E. a1 rev l = a : a1 |
10 |
7, 9 |
ax_mp |
(E. a E. a1 rev l = a : a1 <-> E. l2 E. a l = l2 |> a) -> (~rev l = 0 <-> E. l2 E. a l = l2 |> a) |
11 |
|
bitr |
(E. a1 rev l = a : a1 <-> E. a1 l = rev a1 |> a) -> (E. a1 l = rev a1 |> a <-> E. l2 l = l2 |> a) -> (E. a1 rev l = a : a1 <-> E. l2 l = l2 |> a) |
12 |
|
bitr |
(rev l = a : a1 <-> rev l = rev (rev a1 |> a)) -> (rev l = rev (rev a1 |> a) <-> l = rev a1 |> a) -> (rev l = a : a1 <-> l = rev a1 |> a) |
13 |
|
eqeq2 |
a : a1 = rev (rev a1 |> a) -> (rev l = a : a1 <-> rev l = rev (rev a1 |> a)) |
14 |
|
eqtr3 |
rev (rev (a : a1)) = a : a1 -> rev (rev (a : a1)) = rev (rev a1 |> a) -> a : a1 = rev (rev a1 |> a) |
15 |
|
revrev |
rev (rev (a : a1)) = a : a1 |
16 |
14, 15 |
ax_mp |
rev (rev (a : a1)) = rev (rev a1 |> a) -> a : a1 = rev (rev a1 |> a) |
17 |
|
reveq |
rev (a : a1) = rev a1 |> a -> rev (rev (a : a1)) = rev (rev a1 |> a) |
18 |
|
revS |
rev (a : a1) = rev a1 |> a |
19 |
17, 18 |
ax_mp |
rev (rev (a : a1)) = rev (rev a1 |> a) |
20 |
16, 19 |
ax_mp |
a : a1 = rev (rev a1 |> a) |
21 |
13, 20 |
ax_mp |
rev l = a : a1 <-> rev l = rev (rev a1 |> a) |
22 |
12, 21 |
ax_mp |
(rev l = rev (rev a1 |> a) <-> l = rev a1 |> a) -> (rev l = a : a1 <-> l = rev a1 |> a) |
23 |
|
revinj |
rev l = rev (rev a1 |> a) <-> l = rev a1 |> a |
24 |
22, 23 |
ax_mp |
rev l = a : a1 <-> l = rev a1 |> a |
25 |
24 |
exeqi |
E. a1 rev l = a : a1 <-> E. a1 l = rev a1 |> a |
26 |
11, 25 |
ax_mp |
(E. a1 l = rev a1 |> a <-> E. l2 l = l2 |> a) -> (E. a1 rev l = a : a1 <-> E. l2 l = l2 |> a) |
27 |
|
snoceq1 |
l2 = rev a1 -> l2 |> a = rev a1 |> a |
28 |
27 |
eqeq2d |
l2 = rev a1 -> (l = l2 |> a <-> l = rev a1 |> a) |
29 |
28 |
iexe |
l = rev a1 |> a -> E. l2 l = l2 |> a |
30 |
29 |
eex |
E. a1 l = rev a1 |> a -> E. l2 l = l2 |> a |
31 |
|
revrev |
rev (rev l2) = l2 |
32 |
|
reveq |
a1 = rev l2 -> rev a1 = rev (rev l2) |
33 |
31, 32 |
syl6eq |
a1 = rev l2 -> rev a1 = l2 |
34 |
33 |
snoceq1d |
a1 = rev l2 -> rev a1 |> a = l2 |> a |
35 |
34 |
eqeq2d |
a1 = rev l2 -> (l = rev a1 |> a <-> l = l2 |> a) |
36 |
35 |
iexe |
l = l2 |> a -> E. a1 l = rev a1 |> a |
37 |
36 |
eex |
E. l2 l = l2 |> a -> E. a1 l = rev a1 |> a |
38 |
30, 37 |
ibii |
E. a1 l = rev a1 |> a <-> E. l2 l = l2 |> a |
39 |
26, 38 |
ax_mp |
E. a1 rev l = a : a1 <-> E. l2 l = l2 |> a |
40 |
39 |
biexexi |
E. a E. a1 rev l = a : a1 <-> E. l2 E. a l = l2 |> a |
41 |
10, 40 |
ax_mp |
~rev l = 0 <-> E. l2 E. a l = l2 |> a |
42 |
6, 41 |
ax_mp |
l != 0 <-> E. l2 E. a l = l2 |> a |