packages feed

code-conjure-0.4.0: bench/candidates.out

Candidates for: foo :: Int -> Int
  pruning with 6/10 rules
  [3,0,4,0,8,0] direct candidates
  [3,4,8,21,39,70] pattern candidates

rules:
x * y == x + y
x * y == y + x
x + 0 == x
0 + x == x
(x + y) + z == x + (y + z)
(x + y) + z == y + (x + z)
equations:
y + x == x + y
y + (x + z) == x + (y + z)
z + (x + y) == x + (y + z)
z + (y + x) == x + (y + z)

direct candidates:

foo x  =  x

foo x  =  0

foo x  =  1

foo x  =  x + x

foo x  =  x + 1

foo x  =  1 + x

foo x  =  1 + 1

foo x  =  x + (x + x)

foo x  =  x + (x + 1)

foo x  =  x + (1 + x)

foo x  =  x + (1 + 1)

foo x  =  1 + (x + x)

foo x  =  1 + (x + 1)

foo x  =  1 + (1 + x)

foo x  =  1 + (1 + 1)


pattern candidates:

foo x  =  x

foo x  =  0

foo x  =  1

foo 0  =  0
foo x  =  x

foo 0  =  0
foo x  =  1

foo 0  =  1
foo x  =  x

foo 0  =  1
foo x  =  0

foo x  =  x + x

foo x  =  x + 1

foo x  =  1 + x

foo x  =  1 + 1

foo 1  =  0
foo x  =  x

foo 1  =  0
foo x  =  1

foo 1  =  1
foo x  =  x

foo 1  =  1
foo x  =  0

foo 0  =  0
foo x  =  x + x

foo 0  =  0
foo x  =  x + 1

foo 0  =  0
foo x  =  1 + x

foo 0  =  0
foo x  =  1 + 1

foo 0  =  1
foo x  =  x + x

foo 0  =  1
foo x  =  x + 1

foo 0  =  1
foo x  =  1 + x

foo 0  =  1
foo x  =  1 + 1

foo 0  =  1 + 1
foo x  =  x

foo 0  =  1 + 1
foo x  =  0

foo 0  =  1 + 1
foo x  =  1

foo 0  =  0
foo 1  =  0
foo x  =  x

foo 0  =  0
foo 1  =  0
foo x  =  1

foo 0  =  0
foo 1  =  1
foo x  =  x

foo 0  =  0
foo 1  =  1
foo x  =  0

foo 0  =  0
foo 1  =  1
foo x  =  1

foo 0  =  1
foo 1  =  0
foo x  =  x

foo 0  =  1
foo 1  =  0
foo x  =  0

foo 0  =  1
foo 1  =  0
foo x  =  1

foo 0  =  1
foo 1  =  1
foo x  =  x

foo 0  =  1
foo 1  =  1
foo x  =  0

foo 0  =  0
foo x  =  foo (x + x)

foo 0  =  0
foo x  =  foo (x + 1)

foo 0  =  0
foo x  =  foo (x + 1)

foo 0  =  0
foo x  =  foo (1 + x)

foo 0  =  0
foo x  =  foo (1 + x)

foo 0  =  0
foo x  =  foo (x + x)

foo 0  =  0
foo x  =  foo (x + 1)

foo 0  =  0
foo x  =  foo (x + 1)

foo 0  =  0
foo x  =  foo (1 + x)

foo 0  =  0
foo x  =  foo (1 + x)

foo 0  =  1
foo x  =  foo (x + x)

foo 0  =  1
foo x  =  foo (x + 1)

foo 0  =  1
foo x  =  foo (x + 1)

foo 0  =  1
foo x  =  foo (1 + x)

foo 0  =  1
foo x  =  foo (1 + x)

foo 0  =  1
foo x  =  foo (x + x)

foo 0  =  1
foo x  =  foo (x + 1)

foo 0  =  1
foo x  =  foo (x + 1)

foo 0  =  1
foo x  =  foo (1 + x)

foo 0  =  1
foo x  =  foo (1 + x)

foo x  =  x + (x + x)

foo x  =  x + (x + 1)

foo x  =  x + (1 + x)

foo x  =  x + (1 + 1)

foo x  =  1 + (x + x)

foo x  =  1 + (x + 1)

foo x  =  1 + (1 + x)

foo x  =  1 + (1 + 1)

foo 1  =  0
foo x  =  x + x

foo 1  =  0
foo x  =  x + 1

foo 1  =  0
foo x  =  1 + x

foo 1  =  0
foo x  =  1 + 1

foo 1  =  1
foo x  =  x + x

foo 1  =  1
foo x  =  x + 1

foo 1  =  1
foo x  =  1 + x

foo 1  =  1
foo x  =  1 + 1

foo 1  =  1 + 1
foo x  =  x

foo 1  =  1 + 1
foo x  =  0

foo 1  =  1 + 1
foo x  =  1

foo 1  =  0
foo x  =  foo (x + x)

foo 1  =  0
foo x  =  foo (x + 1)

foo 1  =  0
foo x  =  foo (x + 1)

foo 1  =  0
foo x  =  foo (1 + x)

foo 1  =  0
foo x  =  foo (1 + x)

foo 1  =  0
foo x  =  foo (x + x)

foo 1  =  0
foo x  =  foo (x + 1)

foo 1  =  0
foo x  =  foo (x + 1)

foo 1  =  0
foo x  =  foo (1 + x)

foo 1  =  0
foo x  =  foo (1 + x)

foo 1  =  1
foo x  =  foo (x + x)

foo 1  =  1
foo x  =  foo (x + 1)

foo 1  =  1
foo x  =  foo (x + 1)

foo 1  =  1
foo x  =  foo (1 + x)

foo 1  =  1
foo x  =  foo (1 + x)

foo 1  =  1
foo x  =  foo (x + x)

foo 1  =  1
foo x  =  foo (x + 1)

foo 1  =  1
foo x  =  foo (x + 1)

foo 1  =  1
foo x  =  foo (1 + x)

foo 1  =  1
foo x  =  foo (1 + x)

foo 0  =  0
foo x  =  x + (x + x)

foo 0  =  0
foo x  =  x + (x + 1)

foo 0  =  0
foo x  =  x + (1 + x)

foo 0  =  0
foo x  =  x + (1 + 1)

foo 0  =  0
foo x  =  1 + (x + x)

foo 0  =  0
foo x  =  1 + (x + 1)

foo 0  =  0
foo x  =  1 + (1 + x)

foo 0  =  0
foo x  =  1 + (1 + 1)

foo 0  =  1
foo x  =  x + (x + x)

foo 0  =  1
foo x  =  x + (x + 1)

foo 0  =  1
foo x  =  x + (1 + x)

foo 0  =  1
foo x  =  x + (1 + 1)

foo 0  =  1
foo x  =  1 + (x + x)

foo 0  =  1
foo x  =  1 + (x + 1)

foo 0  =  1
foo x  =  1 + (1 + x)

foo 0  =  1
foo x  =  1 + (1 + 1)

foo 0  =  1 + 1
foo x  =  x + x

foo 0  =  1 + 1
foo x  =  x + 1

foo 0  =  1 + 1
foo x  =  1 + x

foo 0  =  1 + (1 + 1)
foo x  =  x

foo 0  =  1 + (1 + 1)
foo x  =  0

foo 0  =  1 + (1 + 1)
foo x  =  1

foo 0  =  0
foo 1  =  0
foo x  =  x + x

foo 0  =  0
foo 1  =  0
foo x  =  x + 1

foo 0  =  0
foo 1  =  0
foo x  =  1 + x

foo 0  =  0
foo 1  =  0
foo x  =  1 + 1

foo 0  =  0
foo 1  =  1
foo x  =  x + x

foo 0  =  0
foo 1  =  1
foo x  =  x + 1

foo 0  =  0
foo 1  =  1
foo x  =  1 + x

foo 0  =  0
foo 1  =  1
foo x  =  1 + 1

foo 0  =  0
foo 1  =  1 + 1
foo x  =  x

foo 0  =  0
foo 1  =  1 + 1
foo x  =  0

foo 0  =  0
foo 1  =  1 + 1
foo x  =  1

foo 0  =  1
foo 1  =  0
foo x  =  x + x

foo 0  =  1
foo 1  =  0
foo x  =  x + 1

foo 0  =  1
foo 1  =  0
foo x  =  1 + x

foo 0  =  1
foo 1  =  0
foo x  =  1 + 1

foo 0  =  1
foo 1  =  1
foo x  =  x + x

foo 0  =  1
foo 1  =  1
foo x  =  x + 1

foo 0  =  1
foo 1  =  1
foo x  =  1 + x

foo 0  =  1
foo 1  =  1
foo x  =  1 + 1

foo 0  =  1
foo 1  =  1 + 1
foo x  =  x

foo 0  =  1
foo 1  =  1 + 1
foo x  =  0

foo 0  =  1
foo 1  =  1 + 1
foo x  =  1

foo 0  =  1 + 1
foo 1  =  0
foo x  =  x

foo 0  =  1 + 1
foo 1  =  0
foo x  =  0

foo 0  =  1 + 1
foo 1  =  0
foo x  =  1

foo 0  =  1 + 1
foo 1  =  1
foo x  =  x

foo 0  =  1 + 1
foo 1  =  1
foo x  =  0

foo 0  =  1 + 1
foo 1  =  1
foo x  =  1


Candidates for: ? :: Int -> Int -> Int
  pruning with 6/10 rules
  [3,0,4,0] direct candidates
  [3,8,15,84] pattern candidates

rules:
x * y == x + y
x * y == y + x
x + 0 == x
0 + x == x
(x + y) + z == x + (y + z)
(x + y) + z == y + (x + z)
equations:
y + x == x + y
y + (x + z) == x + (y + z)
z + (x + y) == x + (y + z)
z + (y + x) == x + (y + z)

direct candidates:

x ? y  =  x

x ? y  =  y

x ? y  =  0

x ? y  =  x + x

x ? y  =  x + y

x ? y  =  y + x

x ? y  =  y + y


pattern candidates:

x ? y  =  x

x ? y  =  y

x ? y  =  0

x ? 0  =  x
x ? y  =  y

x ? 0  =  x
x ? y  =  0

x ? 0  =  0
x ? y  =  x

x ? 0  =  0
x ? y  =  y

0 ? x  =  x
x ? y  =  y

0 ? x  =  x
x ? y  =  0

0 ? x  =  0
x ? y  =  x

0 ? x  =  0
x ? y  =  y

x ? y  =  x + x

x ? y  =  x + y

x ? y  =  y + x

x ? y  =  y + y

0 ? 0  =  0
0 ? x  =  x
x ? 0  =  x
x ? y  =  x

0 ? 0  =  0
0 ? x  =  x
x ? 0  =  x
x ? y  =  y

0 ? 0  =  0
0 ? x  =  x
x ? 0  =  x
x ? y  =  0

0 ? 0  =  0
0 ? x  =  x
x ? 0  =  0
x ? y  =  x

0 ? 0  =  0
0 ? x  =  x
x ? 0  =  0
x ? y  =  y

0 ? 0  =  0
0 ? x  =  x
x ? 0  =  0
x ? y  =  0

0 ? 0  =  0
0 ? x  =  0
x ? 0  =  x
x ? y  =  x

0 ? 0  =  0
0 ? x  =  0
x ? 0  =  x
x ? y  =  y

0 ? 0  =  0
0 ? x  =  0
x ? 0  =  x
x ? y  =  0

0 ? 0  =  0
0 ? x  =  0
x ? 0  =  0
x ? y  =  x

0 ? 0  =  0
0 ? x  =  0
x ? 0  =  0
x ? y  =  y

x ? 0  =  x
x ? y  =  x ? x

x ? 0  =  x
x ? y  =  x ? 0

x ? 0  =  x
x ? y  =  x ? 0

x ? 0  =  x
x ? y  =  y ? x

x ? 0  =  x
x ? y  =  y ? y

x ? 0  =  x
x ? y  =  y ? 0

x ? 0  =  x
x ? y  =  y ? 0

x ? 0  =  x
x ? y  =  0 ? x

x ? 0  =  x
x ? y  =  0 ? y

x ? 0  =  x
x ? y  =  0 ? x

x ? 0  =  x
x ? y  =  0 ? y

x ? 0  =  x ? x
x ? y  =  x

x ? 0  =  0 ? x
x ? y  =  x

x ? 0  =  0 ? x
x ? y  =  x

x ? 0  =  x ? x
x ? y  =  y

x ? 0  =  0 ? x
x ? y  =  y

x ? 0  =  0 ? x
x ? y  =  y

x ? 0  =  x ? x
x ? y  =  0

x ? 0  =  0 ? x
x ? y  =  0

x ? 0  =  0 ? x
x ? y  =  0

x ? 0  =  0
x ? y  =  x ? x

x ? 0  =  0
x ? y  =  x ? 0

x ? 0  =  0
x ? y  =  x ? 0

x ? 0  =  0
x ? y  =  y ? x

x ? 0  =  0
x ? y  =  y ? y

x ? 0  =  0
x ? y  =  y ? 0

x ? 0  =  0
x ? y  =  y ? 0

x ? 0  =  0
x ? y  =  0 ? x

x ? 0  =  0
x ? y  =  0 ? y

x ? 0  =  0
x ? y  =  0 ? x

x ? 0  =  0
x ? y  =  0 ? y

0 ? x  =  x
x ? y  =  x ? x

0 ? x  =  x
x ? y  =  x ? 0

0 ? x  =  x
x ? y  =  x ? 0

0 ? x  =  x
x ? y  =  y ? x

0 ? x  =  x
x ? y  =  y ? y

0 ? x  =  x
x ? y  =  y ? 0

0 ? x  =  x
x ? y  =  y ? 0

0 ? x  =  x
x ? y  =  0 ? x

0 ? x  =  x
x ? y  =  0 ? y

0 ? x  =  x
x ? y  =  0 ? x

0 ? x  =  x
x ? y  =  0 ? y

0 ? x  =  x ? x
x ? y  =  x

0 ? x  =  x ? 0
x ? y  =  x

0 ? x  =  x ? 0
x ? y  =  x

0 ? x  =  x ? x
x ? y  =  y

0 ? x  =  x ? 0
x ? y  =  y

0 ? x  =  x ? 0
x ? y  =  y

0 ? x  =  x ? x
x ? y  =  0

0 ? x  =  x ? 0
x ? y  =  0

0 ? x  =  x ? 0
x ? y  =  0

0 ? x  =  0
x ? y  =  x ? x

0 ? x  =  0
x ? y  =  x ? 0

0 ? x  =  0
x ? y  =  x ? 0

0 ? x  =  0
x ? y  =  y ? x

0 ? x  =  0
x ? y  =  y ? y

0 ? x  =  0
x ? y  =  y ? 0

0 ? x  =  0
x ? y  =  y ? 0

0 ? x  =  0
x ? y  =  0 ? x

0 ? x  =  0
x ? y  =  0 ? y

0 ? x  =  0
x ? y  =  0 ? x

0 ? x  =  0
x ? y  =  0 ? y

x ? 0  =  x
x ? y  =  x + x

x ? 0  =  x
x ? y  =  x + y

x ? 0  =  x
x ? y  =  y + x

x ? 0  =  x
x ? y  =  y + y

x ? 0  =  0
x ? y  =  x + x

x ? 0  =  0
x ? y  =  x + y

x ? 0  =  0
x ? y  =  y + x

x ? 0  =  0
x ? y  =  y + y

x ? 0  =  x + x
x ? y  =  x

x ? 0  =  x + x
x ? y  =  y

x ? 0  =  x + x
x ? y  =  0

0 ? x  =  x
x ? y  =  x + x

0 ? x  =  x
x ? y  =  x + y

0 ? x  =  x
x ? y  =  y + x

0 ? x  =  x
x ? y  =  y + y

0 ? x  =  0
x ? y  =  x + x

0 ? x  =  0
x ? y  =  x + y

0 ? x  =  0
x ? y  =  y + x

0 ? x  =  0
x ? y  =  y + y

0 ? x  =  x + x
x ? y  =  x

0 ? x  =  x + x
x ? y  =  y

0 ? x  =  x + x
x ? y  =  0


Candidates for: goo :: [Int] -> [Int]
  pruning with 4/4 rules
  [2,0,1,0,1,0] direct candidates
  [2,1,2,3,10,7] pattern candidates

rules:
xs ++ [] == xs
[] ++ xs == xs
(xs ++ ys) ++ zs == xs ++ (ys ++ zs)
(x:xs) ++ ys == x:(xs ++ ys)

direct candidates:

goo xs  =  xs

goo xs  =  []

goo xs  =  xs ++ xs

goo xs  =  xs ++ (xs ++ xs)


pattern candidates:

goo xs  =  xs

goo xs  =  []

goo []  =  []
goo (x:xs)  =  xs

goo []  =  []
goo (x:xs)  =  goo xs

goo xs  =  xs ++ xs

goo []  =  []
goo (x:xs)  =  x:xs

goo []  =  []
goo (x:xs)  =  [x]

goo []  =  []
goo (x:xs)  =  xs ++ xs

goo []  =  []
goo (x:xs)  =  goo [x]

goo []  =  []
goo (x:xs)  =  goo [x]

goo []  =  []
goo (x:xs)  =  goo [x]

goo []  =  []
goo (x:xs)  =  goo [x]

goo []  =  []
goo (x:xs)  =  goo (xs ++ xs)

goo []  =  []
goo (x:xs)  =  goo (xs ++ xs)

goo []  =  []
goo (x:xs)  =  x:goo xs

goo []  =  []
goo (x:xs)  =  xs ++ goo xs

goo []  =  []
goo (x:xs)  =  goo xs ++ xs

goo xs  =  xs ++ (xs ++ xs)

goo []  =  []
goo (x:xs)  =  goo xs ++ goo xs

goo []  =  []
goo (x:xs)  =  x:x:xs

goo []  =  []
goo (x:xs)  =  [x,x]

goo []  =  []
goo (x:xs)  =  x:(xs ++ xs)

goo []  =  []
goo (x:xs)  =  xs ++ (x:xs)

goo []  =  []
goo (x:xs)  =  xs ++ [x]

goo []  =  []
goo (x:xs)  =  xs ++ (xs ++ xs)


Candidates for: ?? :: [Int] -> [Int] -> [Int]
  pruning with 4/4 rules
  [3,0,4,0] direct candidates
  [3,8,15,82] pattern candidates

rules:
xs ++ [] == xs
[] ++ xs == xs
(xs ++ ys) ++ zs == xs ++ (ys ++ zs)
(x:xs) ++ ys == x:(xs ++ ys)

direct candidates:

xs ?? ys  =  xs

xs ?? ys  =  ys

xs ?? ys  =  []

xs ?? ys  =  xs ++ xs

xs ?? ys  =  xs ++ ys

xs ?? ys  =  ys ++ xs

xs ?? ys  =  ys ++ ys


pattern candidates:

xs ?? ys  =  xs

xs ?? ys  =  ys

xs ?? ys  =  []

xs ?? []  =  xs
xs ?? (x:ys)  =  ys

xs ?? []  =  xs
xs ?? (x:ys)  =  []

xs ?? []  =  []
xs ?? (x:ys)  =  xs

xs ?? []  =  []
xs ?? (x:ys)  =  ys

[] ?? xs  =  xs
(x:xs) ?? ys  =  ys

[] ?? xs  =  xs
(x:xs) ?? ys  =  []

[] ?? xs  =  []
(x:xs) ?? ys  =  xs

[] ?? xs  =  []
(x:xs) ?? ys  =  ys

xs ?? ys  =  xs ++ xs

xs ?? ys  =  xs ++ ys

xs ?? ys  =  ys ++ xs

xs ?? ys  =  ys ++ ys

[] ?? []  =  []
[] ?? (x:xs)  =  xs
(x:xs) ?? []  =  xs
(x:xs) ?? (y:ys)  =  xs

[] ?? []  =  []
[] ?? (x:xs)  =  xs
(x:xs) ?? []  =  xs
(x:xs) ?? (y:ys)  =  ys

[] ?? []  =  []
[] ?? (x:xs)  =  xs
(x:xs) ?? []  =  xs
(x:xs) ?? (y:ys)  =  []

[] ?? []  =  []
[] ?? (x:xs)  =  xs
(x:xs) ?? []  =  []
(x:xs) ?? (y:ys)  =  xs

[] ?? []  =  []
[] ?? (x:xs)  =  xs
(x:xs) ?? []  =  []
(x:xs) ?? (y:ys)  =  ys

[] ?? []  =  []
[] ?? (x:xs)  =  xs
(x:xs) ?? []  =  []
(x:xs) ?? (y:ys)  =  []

[] ?? []  =  []
[] ?? (x:xs)  =  []
(x:xs) ?? []  =  xs
(x:xs) ?? (y:ys)  =  xs

[] ?? []  =  []
[] ?? (x:xs)  =  []
(x:xs) ?? []  =  xs
(x:xs) ?? (y:ys)  =  ys

[] ?? []  =  []
[] ?? (x:xs)  =  []
(x:xs) ?? []  =  xs
(x:xs) ?? (y:ys)  =  []

[] ?? []  =  []
[] ?? (x:xs)  =  []
(x:xs) ?? []  =  []
(x:xs) ?? (y:ys)  =  xs

[] ?? []  =  []
[] ?? (x:xs)  =  []
(x:xs) ?? []  =  []
(x:xs) ?? (y:ys)  =  ys

xs ?? []  =  xs
xs ?? (x:ys)  =  xs ?? xs

xs ?? []  =  xs
xs ?? (x:ys)  =  xs ?? ys

xs ?? []  =  xs
xs ?? (x:ys)  =  xs ?? []

xs ?? []  =  xs
xs ?? (x:ys)  =  xs ?? []

xs ?? []  =  xs
xs ?? (x:ys)  =  ys ?? xs

xs ?? []  =  xs
xs ?? (x:ys)  =  ys ?? ys

xs ?? []  =  xs
xs ?? (x:ys)  =  ys ?? []

xs ?? []  =  xs
xs ?? (x:ys)  =  ys ?? []

xs ?? []  =  xs
xs ?? (x:ys)  =  [] ?? xs

xs ?? []  =  xs
xs ?? (x:ys)  =  [] ?? ys

xs ?? []  =  xs
xs ?? (x:ys)  =  [] ?? xs

xs ?? []  =  xs
xs ?? (x:ys)  =  [] ?? ys

xs ?? []  =  []
xs ?? (x:ys)  =  xs ?? xs

xs ?? []  =  []
xs ?? (x:ys)  =  xs ?? ys

xs ?? []  =  []
xs ?? (x:ys)  =  xs ?? []

xs ?? []  =  []
xs ?? (x:ys)  =  xs ?? []

xs ?? []  =  []
xs ?? (x:ys)  =  ys ?? xs

xs ?? []  =  []
xs ?? (x:ys)  =  ys ?? ys

xs ?? []  =  []
xs ?? (x:ys)  =  ys ?? []

xs ?? []  =  []
xs ?? (x:ys)  =  ys ?? []

xs ?? []  =  []
xs ?? (x:ys)  =  [] ?? xs

xs ?? []  =  []
xs ?? (x:ys)  =  [] ?? ys

xs ?? []  =  []
xs ?? (x:ys)  =  [] ?? xs

xs ?? []  =  []
xs ?? (x:ys)  =  [] ?? ys

[] ?? xs  =  xs
(x:xs) ?? ys  =  xs ?? xs

[] ?? xs  =  xs
(x:xs) ?? ys  =  xs ?? ys

[] ?? xs  =  xs
(x:xs) ?? ys  =  xs ?? []

[] ?? xs  =  xs
(x:xs) ?? ys  =  xs ?? []

[] ?? xs  =  xs
(x:xs) ?? ys  =  ys ?? xs

[] ?? xs  =  xs
(x:xs) ?? ys  =  ys ?? ys

[] ?? xs  =  xs
(x:xs) ?? ys  =  ys ?? []

[] ?? xs  =  xs
(x:xs) ?? ys  =  ys ?? []

[] ?? xs  =  xs
(x:xs) ?? ys  =  [] ?? xs

[] ?? xs  =  xs
(x:xs) ?? ys  =  [] ?? ys

[] ?? xs  =  xs
(x:xs) ?? ys  =  [] ?? xs

[] ?? xs  =  xs
(x:xs) ?? ys  =  [] ?? ys

[] ?? xs  =  []
(x:xs) ?? ys  =  xs ?? xs

[] ?? xs  =  []
(x:xs) ?? ys  =  xs ?? ys

[] ?? xs  =  []
(x:xs) ?? ys  =  xs ?? []

[] ?? xs  =  []
(x:xs) ?? ys  =  xs ?? []

[] ?? xs  =  []
(x:xs) ?? ys  =  ys ?? xs

[] ?? xs  =  []
(x:xs) ?? ys  =  ys ?? ys

[] ?? xs  =  []
(x:xs) ?? ys  =  ys ?? []

[] ?? xs  =  []
(x:xs) ?? ys  =  ys ?? []

[] ?? xs  =  []
(x:xs) ?? ys  =  [] ?? xs

[] ?? xs  =  []
(x:xs) ?? ys  =  [] ?? ys

[] ?? xs  =  []
(x:xs) ?? ys  =  [] ?? xs

[] ?? xs  =  []
(x:xs) ?? ys  =  [] ?? ys

xs ?? []  =  xs
xs ?? (x:ys)  =  x:xs

xs ?? []  =  xs
xs ?? (x:ys)  =  x:ys

xs ?? []  =  xs
xs ?? (x:ys)  =  [x]

xs ?? []  =  xs
xs ?? (x:ys)  =  xs ++ xs

xs ?? []  =  xs
xs ?? (x:ys)  =  xs ++ ys

xs ?? []  =  xs
xs ?? (x:ys)  =  ys ++ xs

xs ?? []  =  xs
xs ?? (x:ys)  =  ys ++ ys

xs ?? []  =  []
xs ?? (x:ys)  =  x:xs

xs ?? []  =  []
xs ?? (x:ys)  =  x:ys

xs ?? []  =  []
xs ?? (x:ys)  =  [x]

xs ?? []  =  []
xs ?? (x:ys)  =  xs ++ xs

xs ?? []  =  []
xs ?? (x:ys)  =  xs ++ ys

xs ?? []  =  []
xs ?? (x:ys)  =  ys ++ xs

xs ?? []  =  []
xs ?? (x:ys)  =  ys ++ ys

xs ?? []  =  xs ++ xs
xs ?? (x:ys)  =  xs

xs ?? []  =  xs ++ xs
xs ?? (x:ys)  =  ys

xs ?? []  =  xs ++ xs
xs ?? (x:ys)  =  []

[] ?? xs  =  xs
(x:xs) ?? ys  =  x:xs

[] ?? xs  =  xs
(x:xs) ?? ys  =  x:ys

[] ?? xs  =  xs
(x:xs) ?? ys  =  [x]

[] ?? xs  =  xs
(x:xs) ?? ys  =  xs ++ xs

[] ?? xs  =  xs
(x:xs) ?? ys  =  xs ++ ys

[] ?? xs  =  xs
(x:xs) ?? ys  =  ys ++ xs

[] ?? xs  =  xs
(x:xs) ?? ys  =  ys ++ ys

[] ?? xs  =  []
(x:xs) ?? ys  =  x:xs

[] ?? xs  =  []
(x:xs) ?? ys  =  x:ys

[] ?? xs  =  []
(x:xs) ?? ys  =  [x]

[] ?? xs  =  []
(x:xs) ?? ys  =  xs ++ xs

[] ?? xs  =  []
(x:xs) ?? ys  =  xs ++ ys

[] ?? xs  =  []
(x:xs) ?? ys  =  ys ++ xs

[] ?? xs  =  []
(x:xs) ?? ys  =  ys ++ ys

[] ?? xs  =  xs ++ xs
(x:xs) ?? ys  =  xs

[] ?? xs  =  xs ++ xs
(x:xs) ?? ys  =  ys

[] ?? xs  =  xs ++ xs
(x:xs) ?? ys  =  []


Candidates for: ton :: Bool -> Bool
  pruning with 39/49 rules
  [3,1,0,0,2,4] direct candidates
  [3,3,0,0,0,0] pattern candidates

rules:
not False == True
not True == False
p && p == p
p || p == p
not (not p) == p
p && False == False
p && True == p
False && p == False
True && p == p
p || False == p
p || True == True
False || p == p
True || p == True
not (p && q) == not p || not q
not (p && q) == not q || not p
not (p || q) == not p && not q
not (p || q) == not q && not p
p && not p == False
not p && p == False
p || not p == True
not p || p == True
(p && q) && r == p && (q && r)
(p && q) && r == q && (p && r)
(p || q) || r == p || (q || r)
(p || q) || r == q || (p || r)
p && (p && q) == p && q
p && (q && p) == p && q
p && (q && p) == q && p
p || (p || q) == p || q
p || (q || p) == p || q
p || (q || p) == q || p
p && (p || q) == p
p && (q || p) == p
(p || q) && p == p
(p || q) && q == q
p || p && q == p
p || q && p == p
p && q || p == p
p && q || q == q
equations:
q && p == p && q
q || p == p || q
q && (p && r) == p && (q && r)
r && (p && q) == p && (q && r)
r && (q && p) == p && (q && r)
q || (p || r) == p || (q || r)
r || (p || q) == p || (q || r)
r || (q || p) == p || (q || r)
(r || q) && p == p && (q || r)
r && q || p == p || q && r

direct candidates:

ton p  =  p

ton p  =  False

ton p  =  True

ton p  =  not p

ton p  =  p && ton (not p)

ton p  =  p || ton (not p)

ton p  =  p && not (ton (not p))

ton p  =  not p && ton (not p)

ton p  =  p || not (ton (not p))

ton p  =  not p || ton (not p)


pattern candidates:

ton p  =  p

ton p  =  False

ton p  =  True

ton p  =  not p

ton False  =  False
ton True  =  True

ton False  =  True
ton True  =  False


Candidates for: &| :: Bool -> Bool -> Bool
  pruning with 39/49 rules
  [4,2,4,8,4,72] direct candidates
  [4,14,30,8,4,32] pattern candidates

rules:
not False == True
not True == False
p && p == p
p || p == p
not (not p) == p
p && False == False
p && True == p
False && p == False
True && p == p
p || False == p
p || True == True
False || p == p
True || p == True
not (p && q) == not p || not q
not (p && q) == not q || not p
not (p || q) == not p && not q
not (p || q) == not q && not p
p && not p == False
not p && p == False
p || not p == True
not p || p == True
(p && q) && r == p && (q && r)
(p && q) && r == q && (p && r)
(p || q) || r == p || (q || r)
(p || q) || r == q || (p || r)
p && (p && q) == p && q
p && (q && p) == p && q
p && (q && p) == q && p
p || (p || q) == p || q
p || (q || p) == p || q
p || (q || p) == q || p
p && (p || q) == p
p && (q || p) == p
(p || q) && p == p
(p || q) && q == q
p || p && q == p
p || q && p == p
p && q || p == p
p && q || q == q
equations:
q && p == p && q
q || p == p || q
q && (p && r) == p && (q && r)
r && (p && q) == p && (q && r)
r && (q && p) == p && (q && r)
q || (p || r) == p || (q || r)
r || (p || q) == p || (q || r)
r || (q || p) == p || (q || r)
(r || q) && p == p && (q || r)
r && q || p == p || q && r

direct candidates:

p &| q  =  p

p &| q  =  q

p &| q  =  False

p &| q  =  True

p &| q  =  not p

p &| q  =  not q

p &| q  =  p && q

p &| q  =  q && p

p &| q  =  p || q

p &| q  =  q || p

p &| q  =  not p && q

p &| q  =  not q && p

p &| q  =  not p || q

p &| q  =  not q || p

p &| q  =  p && not q

p &| q  =  q && not p

p &| q  =  p || not q

p &| q  =  q || not p

p &| q  =  not p && not q

p &| q  =  not q && not p

p &| q  =  not p || not q

p &| q  =  not q || not p

p &| q  =  p && (not p && q)

p &| q  =  p && (not p || q)

p &| q  =  p && (q && not p)

p &| q  =  p && (q || not p)

p &| q  =  q && (not q && p)

p &| q  =  q && (not q || p)

p &| q  =  q && (p && not q)

p &| q  =  q && (p || not q)

p &| q  =  p || not p && q

p &| q  =  p || (not p || q)

p &| q  =  p || q && not p

p &| q  =  p || (q || not p)

p &| q  =  q || not q && p

p &| q  =  q || (not q || p)

p &| q  =  q || p && not q

p &| q  =  q || (p || not q)

p &| q  =  not p && (p || q)

p &| q  =  not p && (q || p)

p &| q  =  not q && (p || q)

p &| q  =  not q && (q || p)

p &| q  =  not p || p && q

p &| q  =  not p || q && p

p &| q  =  not q || p && q

p &| q  =  not q || q && p

p &| q  =  (p || q) && not p

p &| q  =  (p || q) && not q

p &| q  =  (q || p) && not p

p &| q  =  (q || p) && not q

p &| q  =  p && q || not p

p &| q  =  p && q || not q

p &| q  =  q && p || not p

p &| q  =  q && p || not q

p &| q  =  p && p &| not q

p &| q  =  p && q &| not p

p &| q  =  p && q &| not q

p &| q  =  p && False &| not q

p &| q  =  p && True &| not q

p &| q  =  p && not p &| p

p &| q  =  p && not p &| q

p &| q  =  p && not p &| False

p &| q  =  p && not p &| True

p &| q  =  p && not q &| p

p &| q  =  q && p &| not q

p &| q  =  q && q &| not p

p &| q  =  q && q &| not q

p &| q  =  q && False &| not q

p &| q  =  q && True &| not q

p &| q  =  q && not p &| p

p &| q  =  q && not p &| q

p &| q  =  q && not p &| False

p &| q  =  q && not p &| True

p &| q  =  q && not q &| p

p &| q  =  p || p &| not q

p &| q  =  p || q &| not p

p &| q  =  p || q &| not q

p &| q  =  p || False &| not q

p &| q  =  p || True &| not q

p &| q  =  p || not p &| p

p &| q  =  p || not p &| q

p &| q  =  p || not p &| False

p &| q  =  p || not p &| True

p &| q  =  p || not q &| p

p &| q  =  q || p &| not q

p &| q  =  q || q &| not p

p &| q  =  q || q &| not q

p &| q  =  q || False &| not q

p &| q  =  q || True &| not q

p &| q  =  q || not p &| p

p &| q  =  q || not p &| q

p &| q  =  q || not p &| False

p &| q  =  q || not p &| True

p &| q  =  q || not q &| p


pattern candidates:

p &| q  =  p

p &| q  =  q

p &| q  =  False

p &| q  =  True

p &| q  =  not p

p &| q  =  not q

p &| False  =  p
p &| True  =  False

p &| False  =  p
p &| True  =  True

p &| False  =  False
p &| True  =  p

p &| False  =  False
p &| True  =  True

p &| False  =  True
p &| True  =  p

p &| False  =  True
p &| True  =  False

False &| p  =  p
True &| p  =  False

False &| p  =  p
True &| p  =  True

False &| p  =  False
True &| p  =  p

False &| p  =  False
True &| p  =  True

False &| p  =  True
True &| p  =  p

False &| p  =  True
True &| p  =  False

p &| q  =  p && q

p &| q  =  q && p

p &| q  =  p || q

p &| q  =  q || p

p &| False  =  p
p &| True  =  not p

p &| False  =  False
p &| True  =  not p

p &| False  =  True
p &| True  =  not p

p &| False  =  not p
p &| True  =  p

p &| False  =  not p
p &| True  =  False

p &| False  =  not p
p &| True  =  True

False &| p  =  p
True &| p  =  not p

False &| p  =  False
True &| p  =  not p

False &| p  =  True
True &| p  =  not p

False &| p  =  not p
True &| p  =  p

False &| p  =  not p
True &| p  =  False

False &| p  =  not p
True &| p  =  True

False &| False  =  False
False &| True  =  False
True &| False  =  False
True &| True  =  True

False &| False  =  False
False &| True  =  False
True &| False  =  True
True &| True  =  False

False &| False  =  False
False &| True  =  False
True &| False  =  True
True &| True  =  True

False &| False  =  False
False &| True  =  True
True &| False  =  False
True &| True  =  False

False &| False  =  False
False &| True  =  True
True &| False  =  False
True &| True  =  True

False &| False  =  False
False &| True  =  True
True &| False  =  True
True &| True  =  False

False &| False  =  False
False &| True  =  True
True &| False  =  True
True &| True  =  True

False &| False  =  True
False &| True  =  False
True &| False  =  False
True &| True  =  False

False &| False  =  True
False &| True  =  False
True &| False  =  False
True &| True  =  True

False &| False  =  True
False &| True  =  False
True &| False  =  True
True &| True  =  False

False &| False  =  True
False &| True  =  False
True &| False  =  True
True &| True  =  True

False &| False  =  True
False &| True  =  True
True &| False  =  False
True &| True  =  False

False &| False  =  True
False &| True  =  True
True &| False  =  False
True &| True  =  True

False &| False  =  True
False &| True  =  True
True &| False  =  True
True &| True  =  False

p &| q  =  not p && q

p &| q  =  not q && p

p &| q  =  not p || q

p &| q  =  not q || p

p &| q  =  p && not q

p &| q  =  q && not p

p &| q  =  p || not q

p &| q  =  q || not p

p &| q  =  not p && not q

p &| q  =  not q && not p

p &| q  =  not p || not q

p &| q  =  not q || not p

p &| q  =  p && (not p && q)

p &| q  =  p && (not p || q)

p &| q  =  p && (q && not p)

p &| q  =  p && (q || not p)

p &| q  =  q && (not q && p)

p &| q  =  q && (not q || p)

p &| q  =  q && (p && not q)

p &| q  =  q && (p || not q)

p &| q  =  p || not p && q

p &| q  =  p || (not p || q)

p &| q  =  p || q && not p

p &| q  =  p || (q || not p)

p &| q  =  q || not q && p

p &| q  =  q || (not q || p)

p &| q  =  q || p && not q

p &| q  =  q || (p || not q)

p &| q  =  not p && (p || q)

p &| q  =  not p && (q || p)

p &| q  =  not q && (p || q)

p &| q  =  not q && (q || p)

p &| q  =  not p || p && q

p &| q  =  not p || q && p

p &| q  =  not q || p && q

p &| q  =  not q || q && p

p &| q  =  (p || q) && not p

p &| q  =  (p || q) && not q

p &| q  =  (q || p) && not p

p &| q  =  (q || p) && not q

p &| q  =  p && q || not p

p &| q  =  p && q || not q

p &| q  =  q && p || not p

p &| q  =  q && p || not q