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