| Step | Hyp | Ref | Expression |
| 1 |
|
bitr3 |
(rev (l1 |> a), rev l2 e. all2 R <-> l1 |> a, l2 e. all2 R) ->
(rev (l1 |> a), rev l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) ->
(l1 |> a, l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) |
| 2 |
|
all2rev |
rev (l1 |> a), rev l2 e. all2 R <-> l1 |> a, l2 e. all2 R |
| 3 |
1, 2 |
ax_mp |
(rev (l1 |> a), rev l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) ->
(l1 |> a, l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) |
| 4 |
|
bitr |
(rev (l1 |> a), rev l2 e. all2 R <-> a : rev l1, rev l2 e. all2 R) ->
(a : rev l1, rev l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) ->
(rev (l1 |> a), rev l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) |
| 5 |
|
eleq1 |
rev (l1 |> a), rev l2 = a : rev l1, rev l2 -> (rev (l1 |> a), rev l2 e. all2 R <-> a : rev l1, rev l2 e. all2 R) |
| 6 |
|
preq1 |
rev (l1 |> a) = a : rev l1 -> rev (l1 |> a), rev l2 = a : rev l1, rev l2 |
| 7 |
|
revsnoc |
rev (l1 |> a) = a : rev l1 |
| 8 |
6, 7 |
ax_mp |
rev (l1 |> a), rev l2 = a : rev l1, rev l2 |
| 9 |
5, 8 |
ax_mp |
rev (l1 |> a), rev l2 e. all2 R <-> a : rev l1, rev l2 e. all2 R |
| 10 |
4, 9 |
ax_mp |
(a : rev l1, rev l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) ->
(rev (l1 |> a), rev l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) |
| 11 |
|
bitr |
(a : rev l1, rev l2 e. all2 R <-> E. b E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R))) ->
(E. b E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) ->
(a : rev l1, rev l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) |
| 12 |
|
all2S1 |
a : rev l1, rev l2 e. all2 R <-> E. b E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) |
| 13 |
11, 12 |
ax_mp |
(E. b E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) ->
(a : rev l1, rev l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) |
| 14 |
|
bitr |
(E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) <-> E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R))) ->
(E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R)) <-> E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) ->
(E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) <-> E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) |
| 15 |
|
aneq |
(l2 = rev _1 |> b <-> rev l2 = b : _1) ->
(a, b e. R /\ rev l1, rev (rev _1) e. all2 R <-> a, b e. R /\ rev l1, _1 e. all2 R) ->
(l2 = rev _1 |> b /\ (a, b e. R /\ rev l1, rev (rev _1) e. all2 R) <-> rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) |
| 16 |
|
bitr3 |
(rev l2 = rev (rev _1 |> b) <-> l2 = rev _1 |> b) -> (rev l2 = rev (rev _1 |> b) <-> rev l2 = b : _1) -> (l2 = rev _1 |> b <-> rev l2 = b : _1) |
| 17 |
|
revinj |
rev l2 = rev (rev _1 |> b) <-> l2 = rev _1 |> b |
| 18 |
16, 17 |
ax_mp |
(rev l2 = rev (rev _1 |> b) <-> rev l2 = b : _1) -> (l2 = rev _1 |> b <-> rev l2 = b : _1) |
| 19 |
|
eqeq2 |
rev (rev _1 |> b) = b : _1 -> (rev l2 = rev (rev _1 |> b) <-> rev l2 = b : _1) |
| 20 |
|
eqtr3 |
rev (rev (b : _1)) = rev (rev _1 |> b) -> rev (rev (b : _1)) = b : _1 -> rev (rev _1 |> b) = b : _1 |
| 21 |
|
reveq |
rev (b : _1) = rev _1 |> b -> rev (rev (b : _1)) = rev (rev _1 |> b) |
| 22 |
|
revS |
rev (b : _1) = rev _1 |> b |
| 23 |
21, 22 |
ax_mp |
rev (rev (b : _1)) = rev (rev _1 |> b) |
| 24 |
20, 23 |
ax_mp |
rev (rev (b : _1)) = b : _1 -> rev (rev _1 |> b) = b : _1 |
| 25 |
|
revrev |
rev (rev (b : _1)) = b : _1 |
| 26 |
24, 25 |
ax_mp |
rev (rev _1 |> b) = b : _1 |
| 27 |
19, 26 |
ax_mp |
rev l2 = rev (rev _1 |> b) <-> rev l2 = b : _1 |
| 28 |
18, 27 |
ax_mp |
l2 = rev _1 |> b <-> rev l2 = b : _1 |
| 29 |
15, 28 |
ax_mp |
(a, b e. R /\ rev l1, rev (rev _1) e. all2 R <-> a, b e. R /\ rev l1, _1 e. all2 R) ->
(l2 = rev _1 |> b /\ (a, b e. R /\ rev l1, rev (rev _1) e. all2 R) <-> rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) |
| 30 |
|
eleq1 |
rev l1, rev (rev _1) = rev l1, _1 -> (rev l1, rev (rev _1) e. all2 R <-> rev l1, _1 e. all2 R) |
| 31 |
|
preq2 |
rev (rev _1) = _1 -> rev l1, rev (rev _1) = rev l1, _1 |
| 32 |
|
revrev |
rev (rev _1) = _1 |
| 33 |
31, 32 |
ax_mp |
rev l1, rev (rev _1) = rev l1, _1 |
| 34 |
30, 33 |
ax_mp |
rev l1, rev (rev _1) e. all2 R <-> rev l1, _1 e. all2 R |
| 35 |
34 |
aneq2i |
a, b e. R /\ rev l1, rev (rev _1) e. all2 R <-> a, b e. R /\ rev l1, _1 e. all2 R |
| 36 |
29, 35 |
ax_mp |
l2 = rev _1 |> b /\ (a, b e. R /\ rev l1, rev (rev _1) e. all2 R) <-> rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R) |
| 37 |
|
id |
l2_ = rev _1 -> l2_ = rev _1 |
| 38 |
37 |
snoceq1d |
l2_ = rev _1 -> l2_ |> b = rev _1 |> b |
| 39 |
38 |
eqeq2d |
l2_ = rev _1 -> (l2 = l2_ |> b <-> l2 = rev _1 |> b) |
| 40 |
37 |
reveqd |
l2_ = rev _1 -> rev l2_ = rev (rev _1) |
| 41 |
40 |
preq2d |
l2_ = rev _1 -> rev l1, rev l2_ = rev l1, rev (rev _1) |
| 42 |
41 |
eleq1d |
l2_ = rev _1 -> (rev l1, rev l2_ e. all2 R <-> rev l1, rev (rev _1) e. all2 R) |
| 43 |
42 |
aneq2d |
l2_ = rev _1 -> (a, b e. R /\ rev l1, rev l2_ e. all2 R <-> a, b e. R /\ rev l1, rev (rev _1) e. all2 R) |
| 44 |
39, 43 |
aneqd |
l2_ = rev _1 -> (l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R) <-> l2 = rev _1 |> b /\ (a, b e. R /\ rev l1, rev (rev _1) e. all2 R)) |
| 45 |
44 |
iexe |
l2 = rev _1 |> b /\ (a, b e. R /\ rev l1, rev (rev _1) e. all2 R) -> E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R)) |
| 46 |
36, 45 |
sylbir |
rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R) -> E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R)) |
| 47 |
46 |
eex |
E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) -> E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R)) |
| 48 |
|
bitr3 |
(rev l2 = rev (l2_ |> b) <-> rev l2 = b : rev l2_) -> (rev l2 = rev (l2_ |> b) <-> l2 = l2_ |> b) -> (rev l2 = b : rev l2_ <-> l2 = l2_ |> b) |
| 49 |
|
eqeq2 |
rev (l2_ |> b) = b : rev l2_ -> (rev l2 = rev (l2_ |> b) <-> rev l2 = b : rev l2_) |
| 50 |
|
revsnoc |
rev (l2_ |> b) = b : rev l2_ |
| 51 |
49, 50 |
ax_mp |
rev l2 = rev (l2_ |> b) <-> rev l2 = b : rev l2_ |
| 52 |
48, 51 |
ax_mp |
(rev l2 = rev (l2_ |> b) <-> l2 = l2_ |> b) -> (rev l2 = b : rev l2_ <-> l2 = l2_ |> b) |
| 53 |
|
revinj |
rev l2 = rev (l2_ |> b) <-> l2 = l2_ |> b |
| 54 |
52, 53 |
ax_mp |
rev l2 = b : rev l2_ <-> l2 = l2_ |> b |
| 55 |
54 |
aneq1i |
rev l2 = b : rev l2_ /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R) <-> l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R) |
| 56 |
|
id |
_1 = rev l2_ -> _1 = rev l2_ |
| 57 |
56 |
conseq2d |
_1 = rev l2_ -> b : _1 = b : rev l2_ |
| 58 |
57 |
eqeq2d |
_1 = rev l2_ -> (rev l2 = b : _1 <-> rev l2 = b : rev l2_) |
| 59 |
56 |
preq2d |
_1 = rev l2_ -> rev l1, _1 = rev l1, rev l2_ |
| 60 |
59 |
eleq1d |
_1 = rev l2_ -> (rev l1, _1 e. all2 R <-> rev l1, rev l2_ e. all2 R) |
| 61 |
60 |
aneq2d |
_1 = rev l2_ -> (a, b e. R /\ rev l1, _1 e. all2 R <-> a, b e. R /\ rev l1, rev l2_ e. all2 R) |
| 62 |
58, 61 |
aneqd |
_1 = rev l2_ -> (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R) <-> rev l2 = b : rev l2_ /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R)) |
| 63 |
62 |
iexe |
rev l2 = b : rev l2_ /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R) -> E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) |
| 64 |
55, 63 |
sylbir |
l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R) -> E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) |
| 65 |
64 |
eex |
E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R)) -> E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) |
| 66 |
47, 65 |
ibii |
E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) <-> E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R)) |
| 67 |
14, 66 |
ax_mp |
(E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R)) <-> E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) ->
(E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) <-> E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R))) |
| 68 |
|
all2rev |
rev l1, rev l2_ e. all2 R <-> l1, l2_ e. all2 R |
| 69 |
68 |
aneq2i |
a, b e. R /\ rev l1, rev l2_ e. all2 R <-> a, b e. R /\ l1, l2_ e. all2 R |
| 70 |
69 |
aneq2i |
l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R) <-> l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R) |
| 71 |
70 |
exeqi |
E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ rev l1, rev l2_ e. all2 R)) <-> E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R)) |
| 72 |
67, 71 |
ax_mp |
E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) <-> E. l2_ (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R)) |
| 73 |
72 |
biexexi |
E. b E. _1 (rev l2 = b : _1 /\ (a, b e. R /\ rev l1, _1 e. all2 R)) <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R)) |
| 74 |
13, 73 |
ax_mp |
a : rev l1, rev l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R)) |
| 75 |
10, 74 |
ax_mp |
rev (l1 |> a), rev l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R)) |
| 76 |
3, 75 |
ax_mp |
l1 |> a, l2 e. all2 R <-> E. l2_ E. b (l2 = l2_ |> b /\ (a, b e. R /\ l1, l2_ e. all2 R)) |