Step | Hyp | Ref | Expression |
1 |
|
eor |
(len l1 <= len r1 -> l1 ++ l2 = r1 ++ r2 -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2)) ->
(len r1 <= len l1 -> l1 ++ l2 = r1 ++ r2 -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2)) ->
len l1 <= len r1 \/ len r1 <= len l1 ->
l1 ++ l2 = r1 ++ r2 ->
E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |
2 |
|
eqcom |
l1 ++ l2 = r1 ++ r2 -> r1 ++ r2 = l1 ++ l2 |
3 |
|
eqappendlem |
len l1 <= len r1 /\ r1 ++ r2 = l1 ++ l2 -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2) |
4 |
|
orl |
r1 = l1 ++ a /\ l2 = a ++ r2 -> r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2 |
5 |
4 |
eximi |
E. a (r1 = l1 ++ a /\ l2 = a ++ r2) -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |
6 |
3, 5 |
rsyl |
len l1 <= len r1 /\ r1 ++ r2 = l1 ++ l2 -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |
7 |
6 |
exp |
len l1 <= len r1 -> r1 ++ r2 = l1 ++ l2 -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |
8 |
2, 7 |
syl5 |
len l1 <= len r1 -> l1 ++ l2 = r1 ++ r2 -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |
9 |
1, 8 |
ax_mp |
(len r1 <= len l1 -> l1 ++ l2 = r1 ++ r2 -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2)) ->
len l1 <= len r1 \/ len r1 <= len l1 ->
l1 ++ l2 = r1 ++ r2 ->
E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |
10 |
|
eqappendlem |
len r1 <= len l1 /\ l1 ++ l2 = r1 ++ r2 -> E. a (l1 = r1 ++ a /\ r2 = a ++ l2) |
11 |
|
orr |
l1 = r1 ++ a /\ r2 = a ++ l2 -> r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2 |
12 |
11 |
eximi |
E. a (l1 = r1 ++ a /\ r2 = a ++ l2) -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |
13 |
10, 12 |
rsyl |
len r1 <= len l1 /\ l1 ++ l2 = r1 ++ r2 -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |
14 |
13 |
exp |
len r1 <= len l1 -> l1 ++ l2 = r1 ++ r2 -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |
15 |
9, 14 |
ax_mp |
len l1 <= len r1 \/ len r1 <= len l1 -> l1 ++ l2 = r1 ++ r2 -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |
16 |
|
leorle |
len l1 <= len r1 \/ len r1 <= len l1 |
17 |
15, 16 |
ax_mp |
l1 ++ l2 = r1 ++ r2 -> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |
18 |
|
eor |
(r1 = l1 ++ a /\ l2 = a ++ r2 -> l1 ++ l2 = r1 ++ r2) ->
(l1 = r1 ++ a /\ r2 = a ++ l2 -> l1 ++ l2 = r1 ++ r2) ->
r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2 ->
l1 ++ l2 = r1 ++ r2 |
19 |
|
eqcom |
(l1 ++ a) ++ r2 = l1 ++ a ++ r2 -> l1 ++ a ++ r2 = (l1 ++ a) ++ r2 |
20 |
|
appendass |
(l1 ++ a) ++ r2 = l1 ++ a ++ r2 |
21 |
19, 20 |
ax_mp |
l1 ++ a ++ r2 = (l1 ++ a) ++ r2 |
22 |
|
eqidd |
r1 = l1 ++ a /\ l2 = a ++ r2 -> l1 = l1 |
23 |
|
id |
l2 = a ++ r2 -> l2 = a ++ r2 |
24 |
23 |
anwr |
r1 = l1 ++ a /\ l2 = a ++ r2 -> l2 = a ++ r2 |
25 |
22, 24 |
appendeqd |
r1 = l1 ++ a /\ l2 = a ++ r2 -> l1 ++ l2 = l1 ++ a ++ r2 |
26 |
|
id |
r1 = l1 ++ a -> r1 = l1 ++ a |
27 |
26 |
anwl |
r1 = l1 ++ a /\ l2 = a ++ r2 -> r1 = l1 ++ a |
28 |
|
eqidd |
r1 = l1 ++ a /\ l2 = a ++ r2 -> r2 = r2 |
29 |
27, 28 |
appendeqd |
r1 = l1 ++ a /\ l2 = a ++ r2 -> r1 ++ r2 = (l1 ++ a) ++ r2 |
30 |
25, 29 |
eqeqd |
r1 = l1 ++ a /\ l2 = a ++ r2 -> (l1 ++ l2 = r1 ++ r2 <-> l1 ++ a ++ r2 = (l1 ++ a) ++ r2) |
31 |
21, 30 |
mpbiri |
r1 = l1 ++ a /\ l2 = a ++ r2 -> l1 ++ l2 = r1 ++ r2 |
32 |
18, 31 |
ax_mp |
(l1 = r1 ++ a /\ r2 = a ++ l2 -> l1 ++ l2 = r1 ++ r2) -> r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2 -> l1 ++ l2 = r1 ++ r2 |
33 |
|
appendass |
(r1 ++ a) ++ l2 = r1 ++ a ++ l2 |
34 |
|
id |
l1 = r1 ++ a -> l1 = r1 ++ a |
35 |
34 |
anwl |
l1 = r1 ++ a /\ r2 = a ++ l2 -> l1 = r1 ++ a |
36 |
|
eqidd |
l1 = r1 ++ a /\ r2 = a ++ l2 -> l2 = l2 |
37 |
35, 36 |
appendeqd |
l1 = r1 ++ a /\ r2 = a ++ l2 -> l1 ++ l2 = (r1 ++ a) ++ l2 |
38 |
|
eqidd |
l1 = r1 ++ a /\ r2 = a ++ l2 -> r1 = r1 |
39 |
|
id |
r2 = a ++ l2 -> r2 = a ++ l2 |
40 |
39 |
anwr |
l1 = r1 ++ a /\ r2 = a ++ l2 -> r2 = a ++ l2 |
41 |
38, 40 |
appendeqd |
l1 = r1 ++ a /\ r2 = a ++ l2 -> r1 ++ r2 = r1 ++ a ++ l2 |
42 |
37, 41 |
eqeqd |
l1 = r1 ++ a /\ r2 = a ++ l2 -> (l1 ++ l2 = r1 ++ r2 <-> (r1 ++ a) ++ l2 = r1 ++ a ++ l2) |
43 |
33, 42 |
mpbiri |
l1 = r1 ++ a /\ r2 = a ++ l2 -> l1 ++ l2 = r1 ++ r2 |
44 |
32, 43 |
ax_mp |
r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2 -> l1 ++ l2 = r1 ++ r2 |
45 |
44 |
eex |
E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) -> l1 ++ l2 = r1 ++ r2 |
46 |
17, 45 |
ibii |
l1 ++ l2 = r1 ++ r2 <-> E. a (r1 = l1 ++ a /\ l2 = a ++ r2 \/ l1 = r1 ++ a /\ r2 = a ++ l2) |