| Step | Hyp | Ref | Expression |
| 1 |
|
nthlfn |
i < min (len l1) (len l2) -> nth i (lfn (\ x, nth x l1 - 1, nth x l2 - 1) (min (len l1) (len l2))) = suc ((\ x, nth x l1 - 1, nth x l2 - 1) @ i) |
| 2 |
1 |
conv zip |
i < min (len l1) (len l2) -> nth i (zip l1 l2) = suc ((\ x, nth x l1 - 1, nth x l2 - 1) @ i) |
| 3 |
|
ltmin |
i < min (len l1) (len l2) <-> i < len l1 /\ i < len l2 |
| 4 |
|
nthne0 |
nth i l1 != 0 <-> i < len l1 |
| 5 |
|
sucne0 |
nth i l1 = suc a -> nth i l1 != 0 |
| 6 |
|
hyp h1 |
G -> nth i l1 = suc a |
| 7 |
5, 6 |
syl |
G -> nth i l1 != 0 |
| 8 |
4, 7 |
sylib |
G -> i < len l1 |
| 9 |
|
nthne0 |
nth i l2 != 0 <-> i < len l2 |
| 10 |
|
sucne0 |
nth i l2 = suc b -> nth i l2 != 0 |
| 11 |
|
hyp h2 |
G -> nth i l2 = suc b |
| 12 |
10, 11 |
syl |
G -> nth i l2 != 0 |
| 13 |
9, 12 |
sylib |
G -> i < len l2 |
| 14 |
8, 13 |
iand |
G -> i < len l1 /\ i < len l2 |
| 15 |
3, 14 |
sylibr |
G -> i < min (len l1) (len l2) |
| 16 |
2, 15 |
syl |
G -> nth i (zip l1 l2) = suc ((\ x, nth x l1 - 1, nth x l2 - 1) @ i) |
| 17 |
|
sucsub1 |
suc a - 1 = a |
| 18 |
|
anr |
G /\ x = i -> x = i |
| 19 |
18 |
ntheq1d |
G /\ x = i -> nth x l1 = nth i l1 |
| 20 |
6 |
anwl |
G /\ x = i -> nth i l1 = suc a |
| 21 |
19, 20 |
eqtrd |
G /\ x = i -> nth x l1 = suc a |
| 22 |
21 |
subeq1d |
G /\ x = i -> nth x l1 - 1 = suc a - 1 |
| 23 |
17, 22 |
syl6eq |
G /\ x = i -> nth x l1 - 1 = a |
| 24 |
|
sucsub1 |
suc b - 1 = b |
| 25 |
18 |
ntheq1d |
G /\ x = i -> nth x l2 = nth i l2 |
| 26 |
11 |
anwl |
G /\ x = i -> nth i l2 = suc b |
| 27 |
25, 26 |
eqtrd |
G /\ x = i -> nth x l2 = suc b |
| 28 |
27 |
subeq1d |
G /\ x = i -> nth x l2 - 1 = suc b - 1 |
| 29 |
24, 28 |
syl6eq |
G /\ x = i -> nth x l2 - 1 = b |
| 30 |
23, 29 |
preqd |
G /\ x = i -> nth x l1 - 1, nth x l2 - 1 = a, b |
| 31 |
30 |
applamed |
G -> (\ x, nth x l1 - 1, nth x l2 - 1) @ i = a, b |
| 32 |
31 |
suceqd |
G -> suc ((\ x, nth x l1 - 1, nth x l2 - 1) @ i) = suc (a, b) |
| 33 |
16, 32 |
eqtrd |
G -> nth i (zip l1 l2) = suc (a, b) |