Anne is cold. Bob is blue. Bob is round. Gary is cold. Gary is rough. Gary is round. Gary is young. Harry is blue. Harry is red. Harry is rough. Harry is smart. Harry is young. Rough people are blue. All cold people are rough. If Anne is blue and Anne is red then Anne is rough. If Gary is smart then Gary is young. If someone is blue and cold then they are young. If someone is rough and smart then they are cold.
Anne is cold.
("Anne" "is" "cold" "+")
Bob is blue.
("Bob" "is" "blue" "+")
Bob is round.
("Bob" "is" "round" "+")
Gary is cold.
("Gary" "is" "cold" "+")
Gary is rough.
("Gary" "is" "rough" "+")
Gary is round.
("Gary" "is" "round" "+")
Gary is young.
("Gary" "is" "young" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is red.
("Harry" "is" "red" "+")
Harry is rough.
("Harry" "is" "rough" "+")
Harry is smart.
("Harry" "is" "smart" "+")
Harry is young.
("Harry" "is" "young" "+")
Rough people are blue.
((("someone" "is" "rough" "+")) -> ("someone" "is" "blue" "+"))
All cold people are rough.
((("someone" "is" "cold" "+")) -> ("someone" "is" "rough" "+"))
If Anne is blue and Anne is red then Anne is rough.
((("Anne" "is" "blue" "+") ("Anne" "is" "red" "+")) -> ("Anne" "is" "rough" "+"))
If Gary is smart then Gary is young.
((("Gary" "is" "smart" "+")) -> ("Gary" "is" "young" "+"))
If someone is blue and cold then they are young.
((("someone" "is" "blue" "+") ("someone" "is" "cold" "+")) -> ("someone" "is" "young" "+"))
If someone is rough and smart then they are cold.
((("someone" "is" "rough" "+") ("someone" "is" "smart" "+")) -> ("someone" "is" "cold" "+"))
Gary is rough.
True
1
proof
[(triple5 OR ((triple4) -> rule2))]
("Gary" "is" "rough" "+")
triple5
((triple4) -> (rule2 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Harry is not young.
False
1
inv-proof
[(triple12 OR ((triple8 ((triple10 triple11) -> rule6)) -> rule5) OR ((((triple10) -> rule1) ((triple10 triple11) -> rule6)) -> rule5))]
("Harry" "is" "young" "-")
triple12
((triple8 ((triple10 triple11) -> (rule6 % int2))) -> (rule5 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
((((triple10) -> (rule1 % int3)) ((triple10 triple11) -> (rule6 % int2))) -> (rule5 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Anne is rough.
True
2
proof
[(((triple1) -> rule2))]
("Anne" "is" "rough" "+")
((triple1) -> (rule2 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Gary is not blue.
False
2
inv-proof
[(((triple5) -> rule1) OR ((((triple4) -> rule2)) -> rule1))]
("Gary" "is" "blue" "-")
((triple5) -> (rule1 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((((triple4) -> (rule2 % int2))) -> (rule1 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Anne is blue.
True
3
proof
[(((((triple1) -> rule2)) -> rule1))]
("Anne" "is" "blue" "+")
((((triple1) -> (rule2 % int2))) -> (rule1 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is not blue.
False
3
inv-proof
[(((((triple1) -> rule2)) -> rule1))]
("Anne" "is" "blue" "-")
((((triple1) -> (rule2 % int2))) -> (rule1 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is young.
True
5
proof
[(((((((triple1) -> rule2)) -> rule1) triple1) -> rule5))]
("Anne" "is" "young" "+")
((((((triple1) -> (rule2 % int3))) -> (rule1 % int2)) triple1) -> (rule5 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Anne is not young.
False
5
inv-proof
[(((((((triple1) -> rule2)) -> rule1) triple1) -> rule5))]
("Anne" "is" "young" "-")
((((((triple1) -> (rule2 % int3))) -> (rule1 % int2)) triple1) -> (rule5 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3
Bob is not rough.
Unknown
inv-rconc
[@2: Bob is rough.[CWA. Example of deepest failure = (rule2 <- rule6 <- FAIL)]]
("Bob" "is" "rough" "-")
Bob is young.
Unknown
rconc
[@2: Bob is young.[CWA. Example of deepest failure = (rule5 <- rule6 <- FAIL)]]
("Bob" "is" "young" "+")
Bob is not cold.
Unknown
inv-rconc
[@1: Bob is cold.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Bob" "is" "cold" "-")
Gary is smart.
Unknown
random
[@0: Gary is smart.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "smart" "+")
Harry is not round.
Unknown
inv-random
[@0: Harry is round.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "round" "-")
Bob is red.
Unknown
random
[@0: Bob is red.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "red" "+")
Anne is not red.
Unknown
inv-random
[@0: Anne is red.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "red" "-")
Anne is smart.
Unknown
random
[@0: Anne is smart.[CWA. Example of deepest failure = (FAIL)]]
("Anne" "is" "smart" "+")
@0: Anne is cold.[(triple1)] Bob is blue.[(triple2)] Bob is round.[(triple3)] Gary is cold.[(triple4)] Gary is rough.[(triple5 OR ((triple4) -> rule2))] Gary is round.[(triple6)] Gary is young.[(triple7 OR ((((triple5) -> rule1) triple4) -> rule5) OR ((((((triple4) -> rule2)) -> rule1) triple4) -> rule5))] Harry is blue.[(triple8 OR ((triple10) -> rule1))] Harry is red.[(triple9)] Harry is rough.[(triple10)] Harry is smart.[(triple11)] Harry is young.[(triple12 OR ((triple8 ((triple10 triple11) -> rule6)) -> rule5) OR ((((triple10) -> rule1) ((triple10 triple11) -> rule6)) -> rule5))] @1: Anne is rough.[(((triple1) -> rule2))] Gary is blue.[(((triple5) -> rule1) OR ((((triple4) -> rule2)) -> rule1))] Harry is cold.[(((triple10 triple11) -> rule6))] @2: Anne is blue.[(((((triple1) -> rule2)) -> rule1))] @3: Anne is young.[(((((((triple1) -> rule2)) -> rule1) triple1) -> rule5))]
Anne is cold.
("Anne" "is" "cold" "+")
triple1
Bob is blue.
("Bob" "is" "blue" "+")
triple2
Bob is round.
("Bob" "is" "round" "+")
triple3
Gary is cold.
("Gary" "is" "cold" "+")
triple4
Gary is rough.
("Gary" "is" "rough" "+")
triple5
((triple4) -> (rule2 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is round.
("Gary" "is" "round" "+")
triple6
Gary is young.
("Gary" "is" "young" "+")
triple7
((((triple5) -> (rule1 % int2)) triple4) -> (rule5 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
((((((triple4) -> (rule2 % int3))) -> (rule1 % int2)) triple4) -> (rule5 % int1))
Gary is young.
("Gary" "is" "young" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
triple8
((triple10) -> (rule1 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
triple9
Harry is rough.
("Harry" "is" "rough" "+")
triple10
Harry is smart.
("Harry" "is" "smart" "+")
triple11
Harry is young.
("Harry" "is" "young" "+")
triple12
((triple8 ((triple10 triple11) -> (rule6 % int2))) -> (rule5 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
((((triple10) -> (rule1 % int3)) ((triple10 triple11) -> (rule6 % int2))) -> (rule5 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is cold.
("Harry" "is" "cold" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Anne is rough.
("Anne" "is" "rough" "+")
((triple1) -> (rule2 % int1))
Anne is rough.
("Anne" "is" "rough" "+")
int1
Gary is blue.
("Gary" "is" "blue" "+")
((triple5) -> (rule1 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
((((triple4) -> (rule2 % int2))) -> (rule1 % int1))
Gary is blue.
("Gary" "is" "blue" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Harry is cold.
("Harry" "is" "cold" "+")
((triple10 triple11) -> (rule6 % int1))
Harry is cold.
("Harry" "is" "cold" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
((((triple1) -> (rule2 % int2))) -> (rule1 % int1))
Anne is blue.
("Anne" "is" "blue" "+")
int1
Anne is rough.
("Anne" "is" "rough" "+")
int2
Anne is young.
("Anne" "is" "young" "+")
((((((triple1) -> (rule2 % int3))) -> (rule1 % int2)) triple1) -> (rule5 % int1))
Anne is young.
("Anne" "is" "young" "+")
int1
Anne is blue.
("Anne" "is" "blue" "+")
int2
Anne is rough.
("Anne" "is" "rough" "+")
int3