Bob is big. Bob is green. Bob is red. Bob is round. Erin is cold. Erin is rough. Fiona is big. Fiona is cold. Fiona is round. Gary is big. Gary is blue. Gary is cold. Gary is red. Gary is rough. Gary is round. Red things are big. All round things are red. Round, rough things are cold. All round, red things are big. Green things are big. If something is round then it is rough. All round things are big. If Gary is big then Gary is round.
Bob is big.
("Bob" "is" "big" "+")
Bob is green.
("Bob" "is" "green" "+")
Bob is red.
("Bob" "is" "red" "+")
Bob is round.
("Bob" "is" "round" "+")
Erin is cold.
("Erin" "is" "cold" "+")
Erin is rough.
("Erin" "is" "rough" "+")
Fiona is big.
("Fiona" "is" "big" "+")
Fiona is cold.
("Fiona" "is" "cold" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Gary is big.
("Gary" "is" "big" "+")
Gary is blue.
("Gary" "is" "blue" "+")
Gary is cold.
("Gary" "is" "cold" "+")
Gary is red.
("Gary" "is" "red" "+")
Gary is rough.
("Gary" "is" "rough" "+")
Gary is round.
("Gary" "is" "round" "+")
Red things are big.
((("something" "is" "red" "+")) -> ("something" "is" "big" "+"))
All round things are red.
((("something" "is" "round" "+")) -> ("something" "is" "red" "+"))
Round, rough things are cold.
((("something" "is" "round" "+") ("something" "is" "rough" "+")) -> ("something" "is" "cold" "+"))
All round, red things are big.
((("something" "is" "round" "+") ("something" "is" "red" "+")) -> ("something" "is" "big" "+"))
Green things are big.
((("something" "is" "green" "+")) -> ("something" "is" "big" "+"))
If something is round then it is rough.
((("something" "is" "round" "+")) -> ("something" "is" "rough" "+"))
All round things are big.
((("something" "is" "round" "+")) -> ("something" "is" "big" "+"))
If Gary is big then Gary is round.
((("Gary" "is" "big" "+")) -> ("Gary" "is" "round" "+"))
Gary is cold.
True
1
proof
[(triple12 OR ((triple15 triple14) -> rule3) OR ((triple15 ((triple15) -> rule6)) -> rule3) OR ((((triple10) -> rule8) triple14) -> rule3) OR ((((triple10) -> rule8) ((triple15) -> rule6)) -> rule3) OR ((triple15 ((((triple10) -> rule8)) -> rule6)) -> rule3) OR ((((((triple13) -> rule1)) -> rule8) triple14) -> rule3) OR ((((triple10) -> rule8) ((((triple10) -> rule8)) -> rule6)) -> rule3) OR ((((((triple13) -> rule1)) -> rule8) ((triple15) -> rule6)) -> rule3) OR ((((((triple13) -> rule1)) -> rule8) ((((triple10) -> rule8)) -> rule6)) -> rule3) OR ((triple15 ((((((triple13) -> rule1)) -> rule8)) -> rule6)) -> rule3) OR ((((triple10) -> rule8) ((((((triple13) -> rule1)) -> rule8)) -> rule6)) -> rule3) OR ((((((triple13) -> rule1)) -> rule8) ((((((triple13) -> rule1)) -> rule8)) -> rule6)) -> rule3))]
("Gary" "is" "cold" "+")
triple12
((triple15 triple14) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
((triple15 ((triple15) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
((((triple10) -> (rule8 % int2)) triple14) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
((((triple10) -> (rule8 % int3)) ((triple15) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
((triple15 ((((triple10) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
((((((triple13) -> (rule1 % int3))) -> (rule8 % int2)) triple14) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
int3
((((triple10) -> (rule8 % int3)) ((((triple10) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
((((((triple13) -> (rule1 % int4))) -> (rule8 % int3)) ((triple15) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
((((((triple13) -> (rule1 % int4))) -> (rule8 % int3)) ((((triple10) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
((triple15 ((((((triple13) -> (rule1 % int4))) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
((((triple10) -> (rule8 % int4)) ((((((triple13) -> (rule1 % int3))) -> (rule8 % int4))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
int3
Gary is round.
("Gary" "is" "round" "+")
int4
((((((triple13) -> (rule1 % int4))) -> (rule8 % int3)) ((((((triple13) -> (rule1 % int4))) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
Bob is not round.
False
1
inv-proof
[(triple4)]
("Bob" "is" "round" "-")
triple4
Fiona is red.
True
2
proof
[(((triple9) -> rule2))]
("Fiona" "is" "red" "+")
((triple9) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Bob is not rough.
False
2
inv-proof
[(((triple4) -> rule6))]
("Bob" "is" "rough" "-")
((triple4) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Erin is not red.
Unknown
inv-rconc
[@1: Erin is red.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Erin" "is" "red" "-")
Erin is big.
Unknown
rconc
[@2: Erin is big.[CWA. Example of deepest failure = (rule1 <- rule2 <- FAIL)]]
("Erin" "is" "big" "+")
Erin is not round.
Unknown
inv-random
[@0: Erin is round.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "round" "-")
Gary is green.
Unknown
random
[@0: Gary is green.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "green" "+")
@0: Bob is big.[(triple1 OR ((triple2) -> rule5) OR ((triple3) -> rule1) OR ((triple4) -> rule7) OR ((triple4 triple3) -> rule4) OR ((((triple4) -> rule2)) -> rule1) OR ((triple4 ((triple4) -> rule2)) -> rule4))] Bob is green.[(triple2)] Bob is red.[(triple3 OR ((triple4) -> rule2))] Bob is round.[(triple4)] Erin is cold.[(triple5)] Erin is rough.[(triple6)] Fiona is big.[(triple7 OR ((triple9) -> rule7) OR ((((triple9) -> rule2)) -> rule1) OR ((triple9 ((triple9) -> rule2)) -> rule4))] Fiona is cold.[(triple8 OR ((triple9 ((triple9) -> rule6)) -> rule3))] Fiona is round.[(triple9)] Gary is big.[(triple10 OR ((triple13) -> rule1) OR ((triple15) -> rule7) OR ((triple15 triple13) -> rule4) OR ((((triple15) -> rule2)) -> rule1) OR ((triple15 ((triple15) -> rule2)) -> rule4))] Gary is blue.[(triple11)] Gary is cold.[(triple12 OR ((triple15 triple14) -> rule3) OR ((triple15 ((triple15) -> rule6)) -> rule3) OR ((((triple10) -> rule8) triple14) -> rule3) OR ((((triple10) -> rule8) ((triple15) -> rule6)) -> rule3) OR ((triple15 ((((triple10) -> rule8)) -> rule6)) -> rule3) OR ((((((triple13) -> rule1)) -> rule8) triple14) -> rule3) OR ((((triple10) -> rule8) ((((triple10) -> rule8)) -> rule6)) -> rule3) OR ((((((triple13) -> rule1)) -> rule8) ((triple15) -> rule6)) -> rule3) OR ((((((triple13) -> rule1)) -> rule8) ((((triple10) -> rule8)) -> rule6)) -> rule3) OR ((triple15 ((((((triple13) -> rule1)) -> rule8)) -> rule6)) -> rule3) OR ((((triple10) -> rule8) ((((((triple13) -> rule1)) -> rule8)) -> rule6)) -> rule3) OR ((((((triple13) -> rule1)) -> rule8) ((((((triple13) -> rule1)) -> rule8)) -> rule6)) -> rule3))] Gary is red.[(triple13 OR ((triple15) -> rule2) OR ((((triple10) -> rule8)) -> rule2))] Gary is rough.[(triple14 OR ((triple15) -> rule6) OR ((((triple10) -> rule8)) -> rule6) OR ((((((triple13) -> rule1)) -> rule8)) -> rule6))] Gary is round.[(triple15 OR ((triple10) -> rule8) OR ((((triple13) -> rule1)) -> rule8))] @1: Bob is rough.[(((triple4) -> rule6))] Fiona is red.[(((triple9) -> rule2))] Fiona is rough.[(((triple9) -> rule6))] @2: Bob is cold.[(((triple4 ((triple4) -> rule6)) -> rule3))]
Bob is big.
("Bob" "is" "big" "+")
triple1
((triple2) -> (rule5 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
((triple3) -> (rule1 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
((triple4) -> (rule7 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
((triple4 triple3) -> (rule4 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
((((triple4) -> (rule2 % int2))) -> (rule1 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
((triple4 ((triple4) -> (rule2 % int2))) -> (rule4 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is red.
("Bob" "is" "red" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
triple2
Bob is red.
("Bob" "is" "red" "+")
triple3
((triple4) -> (rule2 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
triple4
Erin is cold.
("Erin" "is" "cold" "+")
triple5
Erin is rough.
("Erin" "is" "rough" "+")
triple6
Fiona is big.
("Fiona" "is" "big" "+")
triple7
((triple9) -> (rule7 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
((((triple9) -> (rule2 % int2))) -> (rule1 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
((triple9 ((triple9) -> (rule2 % int2))) -> (rule4 % int1))
Fiona is big.
("Fiona" "is" "big" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
triple8
((triple9 ((triple9) -> (rule6 % int2))) -> (rule3 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
triple9
Gary is big.
("Gary" "is" "big" "+")
triple10
((triple13) -> (rule1 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
((triple15) -> (rule7 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
((triple15 triple13) -> (rule4 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
((((triple15) -> (rule2 % int2))) -> (rule1 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
((triple15 ((triple15) -> (rule2 % int2))) -> (rule4 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is red.
("Gary" "is" "red" "+")
int2
Gary is blue.
("Gary" "is" "blue" "+")
triple11
Gary is cold.
("Gary" "is" "cold" "+")
triple12
((triple15 triple14) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
((triple15 ((triple15) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
((((triple10) -> (rule8 % int2)) triple14) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
((((triple10) -> (rule8 % int3)) ((triple15) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
((triple15 ((((triple10) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
((((((triple13) -> (rule1 % int3))) -> (rule8 % int2)) triple14) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
int3
((((triple10) -> (rule8 % int3)) ((((triple10) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
((((((triple13) -> (rule1 % int4))) -> (rule8 % int3)) ((triple15) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
((((((triple13) -> (rule1 % int4))) -> (rule8 % int3)) ((((triple10) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
((triple15 ((((((triple13) -> (rule1 % int4))) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
((((triple10) -> (rule8 % int4)) ((((((triple13) -> (rule1 % int3))) -> (rule8 % int4))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
int3
Gary is round.
("Gary" "is" "round" "+")
int4
((((((triple13) -> (rule1 % int4))) -> (rule8 % int3)) ((((((triple13) -> (rule1 % int4))) -> (rule8 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Gary is cold.
("Gary" "is" "cold" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is round.
("Gary" "is" "round" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
Gary is red.
("Gary" "is" "red" "+")
triple13
((triple15) -> (rule2 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
((((triple10) -> (rule8 % int2))) -> (rule2 % int1))
Gary is red.
("Gary" "is" "red" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
triple14
((triple15) -> (rule6 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
((((triple10) -> (rule8 % int2))) -> (rule6 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
((((((triple13) -> (rule1 % int3))) -> (rule8 % int2))) -> (rule6 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
int3
Gary is round.
("Gary" "is" "round" "+")
triple15
((triple10) -> (rule8 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
((((triple13) -> (rule1 % int2))) -> (rule8 % int1))
Gary is round.
("Gary" "is" "round" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Bob is rough.
("Bob" "is" "rough" "+")
((triple4) -> (rule6 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Fiona is red.
("Fiona" "is" "red" "+")
((triple9) -> (rule2 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
((triple9) -> (rule6 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
((triple4 ((triple4) -> (rule6 % int2))) -> (rule3 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2