prod
xs
prodIter
xs
s
0
prodIter
xs
x
ifProd
isempty
xs
xs
x
ifProd
true
xs
x
x
ifProd
false
xs
x
prodIter
tail
xs
times
x
head
xs
plus
0
y
y
plus
s
x
y
s
plus
x
y
times
x
y
timesIter
x
y
0
0
timesIter
x
y
z
u
ifTimes
ge
u
x
x
y
z
u
ifTimes
true
x
y
z
u
z
ifTimes
false
x
y
z
u
timesIter
x
y
plus
y
z
s
u
isempty
nil
true
isempty
cons
x
xs
false
head
nil
error
head
cons
x
xs
x
tail
nil
nil
tail
cons
x
xs
xs
ge
x
0
true
ge
0
s
y
false
ge
s
x
s
y
ge
x
y
a
b
a
c
2.2
prodIter
xs
x
isempty
xs
ifTimes
false
x
y
z
u
plus
y
z
ifProd
false
xs
x
times
x
head
xs
timesIter
x
y
z
u
ifTimes
ge
u
x
x
y
z
u
ifProd
false
xs
x
prodIter
tail
xs
times
x
head
xs
ifProd
false
xs
x
tail
xs
ifProd
false
xs
x
head
xs
ge
s
x
s
y
ge
x
y
timesIter
x
y
z
u
ge
u
x
ifTimes
false
x
y
z
u
timesIter
x
y
plus
y
z
s
u
plus
s
x
y
plus
x
y
prodIter
xs
x
ifProd
isempty
xs
xs
x
prod
xs
prodIter
xs
s
0
times
x
y
timesIter
x
y
0
0
true
prod
xs
prodIter
xs
s
0
false
prodIter
xs
x
ifProd
isempty
xs
xs
x
ifProd
false
xs
x
prodIter
tail
xs
times
x
head
xs
true
Failed!
NaTT
certifiable-1.6