active
eq
0
0
mark
true
active
eq
s
X
s
Y
mark
eq
X
Y
active
eq
X
Y
mark
false
active
inf
X
mark
cons
X
inf
s
X
active
take
0
X
mark
nil
active
take
s
X
cons
Y
L
mark
cons
Y
take
X
L
active
length
nil
mark
0
active
length
cons
X
L
mark
s
length
L
active
inf
X
inf
active
X
active
take
X1
X2
take
active
X1
X2
active
take
X1
X2
take
X1
active
X2
active
length
X
length
active
X
inf
mark
X
mark
inf
X
take
mark
X1
X2
mark
take
X1
X2
take
X1
mark
X2
mark
take
X1
X2
length
mark
X
mark
length
X
proper
eq
X1
X2
eq
proper
X1
proper
X2
proper
0
ok
0
proper
true
ok
true
proper
s
X
s
proper
X
proper
false
ok
false
proper
inf
X
inf
proper
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
take
X1
X2
take
proper
X1
proper
X2
proper
nil
ok
nil
proper
length
X
length
proper
X
eq
ok
X1
ok
X2
ok
eq
X1
X2
s
ok
X
ok
s
X
inf
ok
X
ok
inf
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
take
ok
X1
ok
X2
ok
take
X1
X2
length
ok
X
ok
length
X
top
mark
X
top
proper
X
top
ok
X
top
active
X
2.2
inf
ok
X
inf
X
active
inf
X
cons
X
inf
s
X
proper
inf
X
proper
X
proper
eq
X1
X2
proper
X2
take
X1
mark
X2
take
X1
X2
active
length
cons
X
L
length
L
proper
length
X
length
proper
X
proper
length
X
proper
X
active
inf
X
inf
active
X
active
length
cons
X
L
s
length
L
proper
cons
X1
X2
cons
proper
X1
proper
X2
active
take
X1
X2
active
X2
proper
take
X1
X2
proper
X1
active
take
X1
X2
active
X1
active
take
X1
X2
take
active
X1
X2
active
inf
X
s
X
proper
take
X1
X2
proper
X2
top
ok
X
active
X
proper
cons
X1
X2
proper
X1
top
ok
X
top
active
X
top
mark
X
top
proper
X
cons
ok
X1
ok
X2
cons
X1
X2
active
inf
X
active
X
length
mark
X
length
X
proper
take
X1
X2
take
proper
X1
proper
X2
proper
eq
X1
X2
eq
proper
X1
proper
X2
inf
mark
X
inf
X
active
inf
X
inf
s
X
proper
inf
X
inf
proper
X
proper
s
X
proper
X
proper
eq
X1
X2
proper
X1
s
ok
X
s
X
active
length
X
active
X
eq
ok
X1
ok
X2
eq
X1
X2
take
mark
X1
X2
take
X1
X2
top
mark
X
proper
X
length
ok
X
length
X
proper
s
X
s
proper
X
active
length
X
length
active
X
active
take
s
X
cons
Y
L
cons
Y
take
X
L
active
eq
s
X
s
Y
eq
X
Y
active
take
X1
X2
take
X1
active
X2
proper
cons
X1
X2
proper
X2
active
take
s
X
cons
Y
L
take
X
L
take
ok
X1
ok
X2
take
X1
X2
true
top
mark
X
top
proper
X
top
ok
X
top
active
X
true
2
1
cons
2
0
0
s
1
1
0
0
0
1
1
39209
take
2
0
0
take
2
0
1
0
1
1
0
1
0
1
2
1
18677
top
1
0
0
eq
2
0
1
0
0
1
0
1
0
0
2
1
28635
false
0
1
28634
top
1
1
0
1
1
1
0
0
true
0
1
1
eq
2
0
0
proper
1
1
0
0
ok
1
1
0
0
0
0
1
1
s
1
0
0
nil
0
16130
2527
mark
1
0
1
0
1
1
1
0
proper
1
0
0
inf
1
0
0
active
1
1
0
0
cons
2
0
1
0
0
1
0
1
0
0
2
1980
23509
active
1
0
0
length
1
0
1
0
1
1
1
13722
length
1
0
0
inf
1
0
1
0
1
1
1
25490
top
ok
X
top
active
X
proper
0
ok
0
active
inf
X
mark
cons
X
inf
s
X
take
X1
mark
X2
mark
take
X1
X2
active
length
cons
X
L
mark
s
length
L
active
eq
0
0
mark
true
active
eq
X
Y
mark
false
length
mark
X
mark
length
X
proper
false
ok
false
proper
length
X
length
proper
X
proper
true
ok
true
length
ok
X
ok
length
X
proper
eq
X1
X2
eq
proper
X1
proper
X2
eq
ok
X1
ok
X2
ok
eq
X1
X2
proper
inf
X
inf
proper
X
s
ok
X
ok
s
X
active
take
0
X
mark
nil
active
take
X1
X2
take
active
X1
X2
active
length
nil
mark
0
proper
s
X
s
proper
X
proper
nil
ok
nil
cons
ok
X1
ok
X2
ok
cons
X1
X2
take
mark
X1
X2
mark
take
X1
X2
take
ok
X1
ok
X2
ok
take
X1
X2
active
length
X
length
active
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
take
X1
X2
take
proper
X1
proper
X2
active
take
X1
X2
take
X1
active
X2
active
inf
X
inf
active
X
inf
mark
X
mark
inf
X
active
take
s
X
cons
Y
L
mark
cons
Y
take
X
L
inf
ok
X
ok
inf
X
active
eq
s
X
s
Y
mark
eq
X
Y
top
ok
X
top
active
X
true
cons
2
0
s
1
1
0
take
2
0
take
2
1
0
top
1
0
eq
2
2
0
false
0
1
top
1
1
0
true
0
1
eq
2
0
proper
1
33019
ok
1
1
33018
0
0
1
s
1
0
nil
0
1
mark
1
0
proper
1
0
inf
1
0
active
1
1
33017
cons
2
1
0
active
1
0
length
1
1
0
length
1
0
inf
1
1
0
proper
0
ok
0
active
inf
X
mark
cons
X
inf
s
X
take
X1
mark
X2
mark
take
X1
X2
active
length
cons
X
L
mark
s
length
L
active
eq
0
0
mark
true
active
eq
X
Y
mark
false
length
mark
X
mark
length
X
proper
false
ok
false
proper
length
X
length
proper
X
proper
true
ok
true
length
ok
X
ok
length
X
proper
eq
X1
X2
eq
proper
X1
proper
X2
eq
ok
X1
ok
X2
ok
eq
X1
X2
proper
inf
X
inf
proper
X
s
ok
X
ok
s
X
active
take
0
X
mark
nil
active
take
X1
X2
take
active
X1
X2
active
length
nil
mark
0
proper
s
X
s
proper
X
proper
nil
ok
nil
cons
ok
X1
ok
X2
ok
cons
X1
X2
take
mark
X1
X2
mark
take
X1
X2
take
ok
X1
ok
X2
ok
take
X1
X2
active
length
X
length
active
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
take
X1
X2
take
proper
X1
proper
X2
active
take
X1
X2
take
X1
active
X2
active
inf
X
inf
active
X
inf
mark
X
mark
inf
X
active
take
s
X
cons
Y
L
mark
cons
Y
take
X
L
inf
ok
X
ok
inf
X
active
eq
s
X
s
Y
mark
eq
X
Y
top
ok
X
active
X
false
top
mark
X
proper
X
false
active
take
X1
X2
active
X1
active
take
X1
X2
active
X2
active
length
X
active
X
active
inf
X
active
X
true
cons
2
0
s
1
1
0
take
2
0
take
2
1
2
0
top
1
0
eq
2
2
0
false
0
1
top
1
0
true
0
1
eq
2
0
proper
1
3
ok
1
1
1
0
0
2
s
1
0
nil
0
1
mark
1
1
1
proper
1
0
inf
1
0
active
1
1
0
cons
2
1
2
0
active
1
1
0
length
1
1
0
length
1
0
inf
1
1
1
active
length
X
active
X
active
take
X1
X2
active
X2
active
take
X1
X2
active
X1
proper
0
ok
0
take
X1
mark
X2
mark
take
X1
X2
active
eq
0
0
mark
true
length
mark
X
mark
length
X
proper
false
ok
false
proper
true
ok
true
length
ok
X
ok
length
X
eq
ok
X1
ok
X2
ok
eq
X1
X2
s
ok
X
ok
s
X
active
take
0
X
mark
nil
proper
nil
ok
nil
cons
ok
X1
ok
X2
ok
cons
X1
X2
take
mark
X1
X2
mark
take
X1
X2
take
ok
X1
ok
X2
ok
take
X1
X2
inf
mark
X
mark
inf
X
inf
ok
X
ok
inf
X
active
take
X1
X2
active
X1
active
length
X
active
X
active
take
X1
X2
active
X2
true
cons
2
0
s
1
0
take
2
0
take
2
1
2
0
top
1
0
eq
2
2
1
false
0
1
top
1
0
true
0
0
eq
2
0
proper
1
1
1
ok
1
1
0
0
1
s
1
0
nil
0
0
mark
1
1
1
proper
1
0
inf
1
0
active
1
0
cons
2
1
2
0
active
1
1
0
length
1
1
1
length
1
0
inf
1
1
1
active
take
X1
X2
active
X2
active
take
X1
X2
active
X1
proper
0
ok
0
take
X1
mark
X2
mark
take
X1
X2
length
mark
X
mark
length
X
proper
false
ok
false
proper
true
ok
true
length
ok
X
ok
length
X
eq
ok
X1
ok
X2
ok
eq
X1
X2
proper
nil
ok
nil
cons
ok
X1
ok
X2
ok
cons
X1
X2
take
mark
X1
X2
mark
take
X1
X2
take
ok
X1
ok
X2
ok
take
X1
X2
inf
mark
X
mark
inf
X
inf
ok
X
ok
inf
X
active
take
X1
X2
active
X1
active
take
X1
X2
active
X2
true
cons
2
0
s
1
1
1
take
2
0
take
2
1
2
1
top
1
0
eq
2
1
1
false
0
1
top
1
0
true
0
1
eq
2
0
proper
1
1
0
ok
1
1
0
0
0
1
s
1
0
nil
0
0
mark
1
5
proper
1
0
inf
1
0
active
1
1
1
cons
2
1
active
1
1
0
length
1
1
1
length
1
0
inf
1
1
1
proper
0
ok
0
take
X1
mark
X2
mark
take
X1
X2
length
mark
X
mark
length
X
proper
false
ok
false
proper
length
X
length
proper
X
proper
true
ok
true
length
ok
X
ok
length
X
proper
eq
X1
X2
eq
proper
X1
proper
X2
eq
ok
X1
ok
X2
ok
eq
X1
X2
proper
inf
X
inf
proper
X
s
ok
X
ok
s
X
proper
s
X
s
proper
X
proper
nil
ok
nil
cons
ok
X1
ok
X2
ok
cons
X1
X2
take
mark
X1
X2
mark
take
X1
X2
take
ok
X1
ok
X2
ok
take
X1
X2
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
take
X1
X2
take
proper
X1
proper
X2
inf
mark
X
mark
inf
X
inf
ok
X
ok
inf
X
active
eq
s
X
s
Y
eq
X
Y
false
active
take
s
X
cons
Y
L
cons
Y
take
X
L
false
active
take
s
X
cons
Y
L
take
X
L
false
active
inf
X
inf
active
X
false
active
take
X1
X2
take
X1
active
X2
false
active
length
X
length
active
X
false
active
take
X1
X2
take
active
X1
X2
false
active
length
cons
X
L
s
length
L
false
active
length
cons
X
L
length
L
false
active
inf
X
inf
s
X
false
active
inf
X
s
X
false
proper
cons
X1
X2
proper
X1
proper
cons
X1
X2
proper
X2
proper
take
X1
X2
proper
X2
proper
take
X1
X2
proper
X1
proper
length
X
proper
X
proper
eq
X1
X2
proper
X1
proper
s
X
proper
X
proper
eq
X1
X2
proper
X2
proper
inf
X
proper
X
true
cons
2
0
s
1
1
1
take
2
0
take
2
1
2
1
top
1
0
eq
2
1
2
1
false
0
1
top
1
0
true
0
1
eq
2
0
proper
1
1
0
ok
1
1
0
0
0
1
s
1
0
nil
0
0
mark
1
1
26600
proper
1
1
0
inf
1
0
active
1
1
26597
cons
2
1
2
1
active
1
0
length
1
1
1
length
1
0
inf
1
1
1
proper
0
ok
0
take
X1
mark
X2
mark
take
X1
X2
length
mark
X
mark
length
X
proper
false
ok
false
proper
length
X
length
proper
X
proper
true
ok
true
length
ok
X
ok
length
X
proper
eq
X1
X2
eq
proper
X1
proper
X2
eq
ok
X1
ok
X2
ok
eq
X1
X2
proper
inf
X
inf
proper
X
s
ok
X
ok
s
X
proper
s
X
s
proper
X
proper
nil
ok
nil
cons
ok
X1
ok
X2
ok
cons
X1
X2
take
mark
X1
X2
mark
take
X1
X2
take
ok
X1
ok
X2
ok
take
X1
X2
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
take
X1
X2
take
proper
X1
proper
X2
inf
mark
X
mark
inf
X
inf
ok
X
ok
inf
X
proper
take
X1
X2
take
proper
X1
proper
X2
false
take
ok
X1
ok
X2
take
X1
X2
take
mark
X1
X2
take
X1
X2
take
X1
mark
X2
take
X1
X2
true
cons
2
0
s
1
1
1
take
2
2
0
take
2
1
2
1
top
1
0
eq
2
1
2
1
false
0
47313
top
1
0
true
0
1
eq
2
0
proper
1
1
0
ok
1
1
0
0
0
1
s
1
0
nil
0
0
mark
1
1
45965
proper
1
0
inf
1
0
active
1
1
45962
cons
2
1
2
1
active
1
0
length
1
1
1
length
1
0
inf
1
1
1
take
mark
X1
X2
take
X1
X2
take
ok
X1
ok
X2
take
X1
X2
proper
0
ok
0
take
X1
mark
X2
mark
take
X1
X2
length
mark
X
mark
length
X
proper
false
ok
false
proper
length
X
length
proper
X
proper
true
ok
true
length
ok
X
ok
length
X
proper
eq
X1
X2
eq
proper
X1
proper
X2
eq
ok
X1
ok
X2
ok
eq
X1
X2
proper
inf
X
inf
proper
X
s
ok
X
ok
s
X
proper
s
X
s
proper
X
proper
nil
ok
nil
cons
ok
X1
ok
X2
ok
cons
X1
X2
take
mark
X1
X2
mark
take
X1
X2
take
ok
X1
ok
X2
ok
take
X1
X2
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
take
X1
X2
take
proper
X1
proper
X2
inf
mark
X
mark
inf
X
inf
ok
X
ok
inf
X
take
mark
X1
X2
take
X1
X2
take
ok
X1
ok
X2
take
X1
X2
true
cons
2
0
s
1
1
1
take
2
1
0
take
2
1
2
1
top
1
0
eq
2
1
2
1
false
0
1
top
1
0
true
0
1
eq
2
0
proper
1
1
0
ok
1
1
0
0
0
1
s
1
0
nil
0
0
mark
1
1
4
proper
1
0
inf
1
0
active
1
1
1
cons
2
1
2
1
active
1
0
length
1
1
1
length
1
0
inf
1
1
1
take
ok
X1
ok
X2
take
X1
X2
proper
0
ok
0
take
X1
mark
X2
mark
take
X1
X2
length
mark
X
mark
length
X
proper
false
ok
false
proper
length
X
length
proper
X
proper
true
ok
true
length
ok
X
ok
length
X
proper
eq
X1
X2
eq
proper
X1
proper
X2
eq
ok
X1
ok
X2
ok
eq
X1
X2
proper
inf
X
inf
proper
X
s
ok
X
ok
s
X
proper
s
X
s
proper
X
proper
nil
ok
nil
cons
ok
X1
ok
X2
ok
cons
X1
X2
take
mark
X1
X2
mark
take
X1
X2
take
ok
X1
ok
X2
ok
take
X1
X2
proper
cons
X1
X2
cons
proper
X1
proper
X2
proper
take
X1
X2
take
proper
X1
proper
X2
inf
mark
X
mark
inf
X
inf
ok
X
ok
inf
X
take
ok
X1
ok
X2
take
X1
X2
true
cons
2
0
s
1
1
1
take
2
2
0
take
2
2
1
top
1
0
eq
2
1
1
false
0
1
top
1
0
true
0
4003
eq
2
0
proper
1
1
1
ok
1
1
1
0
0
1
s
1
0
nil
0
1
mark
1
1
2
proper
1
0
inf
1
0
active
1
1
0
cons
2
1
22498
active
1
0
length
1
1
length
1
0
inf
1
1
1
proper
0
ok
0
proper
false
ok
false
proper
true
ok
true
eq
ok
X1
ok
X2
ok
eq
X1
X2
s
ok
X
ok
s
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
inf
mark
X
mark
inf
X
inf
ok
X
ok
inf
X
proper
cons
X1
X2
cons
proper
X1
proper
X2
false
proper
s
X
s
proper
X
false
s
ok
X
s
X
true
cons
2
0
s
1
1
1
take
2
0
take
2
2
1
top
1
0
eq
2
1
1
false
0
1
top
1
0
true
0
1
eq
2
0
proper
1
1
5082
ok
1
1
1
0
0
1
s
1
1
0
nil
0
1
mark
1
1
2
proper
1
0
inf
1
0
active
1
1
0
cons
2
1
42875
active
1
0
length
1
1
length
1
0
inf
1
1
2082
proper
0
ok
0
proper
false
ok
false
proper
true
ok
true
eq
ok
X1
ok
X2
ok
eq
X1
X2
s
ok
X
ok
s
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
inf
mark
X
mark
inf
X
inf
ok
X
ok
inf
X
proper
inf
X
inf
proper
X
false
proper
eq
X1
X2
eq
proper
X1
proper
X2
false
eq
ok
X1
ok
X2
eq
X1
X2
true
cons
2
0
s
1
1
1
take
2
0
take
2
2
1
top
1
0
eq
2
1
1
false
0
1
top
1
0
true
0
1
eq
2
2
0
proper
1
1
1
ok
1
1
1
0
0
1
s
1
0
nil
0
42433
mark
1
1
2
proper
1
0
inf
1
0
active
1
1
0
cons
2
1
1
active
1
0
length
1
1
length
1
0
inf
1
1
1
proper
0
ok
0
proper
false
ok
false
proper
true
ok
true
eq
ok
X1
ok
X2
ok
eq
X1
X2
s
ok
X
ok
s
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
inf
mark
X
mark
inf
X
inf
ok
X
ok
inf
X
proper
length
X
length
proper
X
false
length
ok
X
length
X
length
mark
X
length
X
true
cons
2
0
s
1
1
1
take
2
0
take
2
2
1
top
1
0
eq
2
1
31226
false
0
1
top
1
0
true
0
28966
eq
2
0
proper
1
1
36242
ok
1
1
8127
0
0
56050
s
1
0
nil
0
42433
mark
1
1
58311
proper
1
0
inf
1
0
active
1
1
0
cons
2
1
46686
active
1
0
length
1
1
length
1
1
0
inf
1
1
30727
proper
0
ok
0
proper
false
ok
false
proper
true
ok
true
eq
ok
X1
ok
X2
ok
eq
X1
X2
s
ok
X
ok
s
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
inf
mark
X
mark
inf
X
inf
ok
X
ok
inf
X
active
inf
X
cons
X
inf
s
X
false
inf
mark
X
inf
X
inf
ok
X
inf
X
true
cons
2
0
s
1
1
1
take
2
0
take
2
2
1
top
1
0
eq
2
1
1
false
0
39220
top
1
0
true
0
1
eq
2
0
proper
1
1
31320
ok
1
1
10113
0
0
1
s
1
0
nil
0
6829
mark
1
1
2
proper
1
0
inf
1
1
0
active
1
1
0
cons
2
1
46686
active
1
0
length
1
1
length
1
0
inf
1
1
30727
proper
0
ok
0
proper
false
ok
false
proper
true
ok
true
eq
ok
X1
ok
X2
ok
eq
X1
X2
s
ok
X
ok
s
X
cons
ok
X1
ok
X2
ok
cons
X1
X2
inf
mark
X
mark
inf
X
inf
ok
X
ok
inf
X
cons
ok
X1
ok
X2
cons
X1
X2
true
cons
2
2
0
s
1
1
1
take
2
0
take
2
2
top
1
0
eq
2
32067
false
0
1
top
1
0
true
0
33242
eq
2
0
proper
1
1
ok
1
1
23951
0
0
24235
s
1
0
nil
0
8517
mark
1
1
1
proper
1
0
inf
1
0
active
1
1
cons
2
1
2
41482
active
1
0
length
1
26389
length
1
0
inf
1
1
5552
NaTT
certifiable-1.6