Charlie is big. Charlie is smart. Charlie is white. Dave is big. Dave is cold. Dave is red. Dave is smart. Dave is young. Gary is cold. Gary is not nice. If something is young then it is nice. If something is smart then it is nice. If something is smart then it is cold. If something is smart then it is red. Red things are big. If something is nice and white then it is not young.
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Dave is big.
("Dave" "is" "big" "+")
Dave is cold.
("Dave" "is" "cold" "+")
Dave is red.
("Dave" "is" "red" "+")
Dave is smart.
("Dave" "is" "smart" "+")
Dave is young.
("Dave" "is" "young" "+")
Gary is cold.
("Gary" "is" "cold" "+")
Gary is not nice.
("Gary" "is" "nice" "-")
If something is young then it is nice.
((("something" "is" "young" "+")) -> ("something" "is" "nice" "+"))
If something is smart then it is nice.
((("something" "is" "smart" "+")) -> ("something" "is" "nice" "+"))
If something is smart then it is cold.
((("something" "is" "smart" "+")) -> ("something" "is" "cold" "+"))
If something is smart then it is red.
((("something" "is" "smart" "+")) -> ("something" "is" "red" "+"))
Red things are big.
((("something" "is" "red" "+")) -> ("something" "is" "big" "+"))
If something is nice and white then it is not young.
((("something" "is" "nice" "+") ("something" "is" "white" "+")) -> ("something" "is" "young" "-"))
Charlie is big.
True
1
proof
[(triple1 OR ((((triple2) -> rule4)) -> rule5))]
("Charlie" "is" "big" "+")
triple1
((((triple2) -> (rule4 % int2))) -> (rule5 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Dave is not young.
False
1
inv-proof
[(triple8)]
("Dave" "is" "young" "-")
triple8
Gary is not big.
Unknown
inv-rconc
[@2: Gary is big.[CWA. Example of deepest failure = (rule5 <- rule4 <- FAIL)]]
("Gary" "is" "big" "-")
Gary is young.
Unknown
random
[@0: Gary is young.[CWA. Example of deepest failure = (FAIL)]]
("Gary" "is" "young" "+")
@0: Charlie is big.[(triple1 OR ((((triple2) -> rule4)) -> rule5))] Charlie is smart.[(triple2)] Charlie is white.[(triple3)] Dave is big.[(triple4 OR ((triple6) -> rule5) OR ((((triple7) -> rule4)) -> rule5))] Dave is cold.[(triple5 OR ((triple7) -> rule3))] Dave is red.[(triple6 OR ((triple7) -> rule4))] Dave is smart.[(triple7)] Dave is young.[(triple8)] Gary is cold.[(triple9)] Gary is not nice.[(triple10)] @1: Charlie is cold.[(((triple2) -> rule3))] Charlie is nice.[(((triple2) -> rule2))] Charlie is red.[(((triple2) -> rule4))] Dave is nice.[(((triple7) -> rule2) OR ((triple8) -> rule1))] @2: Charlie is not young.[(((((triple2) -> rule2) triple3) -> rule6))]
Charlie is big.
("Charlie" "is" "big" "+")
triple1
((((triple2) -> (rule4 % int2))) -> (rule5 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
int2
Charlie is smart.
("Charlie" "is" "smart" "+")
triple2
Charlie is white.
("Charlie" "is" "white" "+")
triple3
Dave is big.
("Dave" "is" "big" "+")
triple4
((triple6) -> (rule5 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
((((triple7) -> (rule4 % int2))) -> (rule5 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is cold.
("Dave" "is" "cold" "+")
triple5
((triple7) -> (rule3 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
triple6
((triple7) -> (rule4 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is smart.
("Dave" "is" "smart" "+")
triple7
Dave is young.
("Dave" "is" "young" "+")
triple8
Gary is cold.
("Gary" "is" "cold" "+")
triple9
Gary is not nice.
("Gary" "is" "nice" "-")
triple10
Charlie is cold.
("Charlie" "is" "cold" "+")
((triple2) -> (rule3 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
((triple2) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is red.
("Charlie" "is" "red" "+")
((triple2) -> (rule4 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
((triple7) -> (rule2 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((triple8) -> (rule1 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Charlie is not young.
("Charlie" "is" "young" "-")
((((triple2) -> (rule2 % int2)) triple3) -> (rule6 % int1))
Charlie is not young.
("Charlie" "is" "young" "-")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2