Anne is kind. Bob is red. Dave is kind. Harry is kind. If something is red then it is green. If something is red and green then it is smart. If Dave is smart and Dave is green then Dave is big. Smart, quiet things are green. Smart, green things are quiet. Rough, red things are quiet. All smart things are quiet. Rough things are kind.
Anne is kind.
("Anne" "is" "kind" "+")
Bob is red.
("Bob" "is" "red" "+")
Dave is kind.
("Dave" "is" "kind" "+")
Harry is kind.
("Harry" "is" "kind" "+")
If something is red then it is green.
((("something" "is" "red" "+")) -> ("something" "is" "green" "+"))
If something is red and green then it is smart.
((("something" "is" "red" "+") ("something" "is" "green" "+")) -> ("something" "is" "smart" "+"))
If Dave is smart and Dave is green then Dave is big.
((("Dave" "is" "smart" "+") ("Dave" "is" "green" "+")) -> ("Dave" "is" "big" "+"))
Smart, quiet things are green.
((("something" "is" "smart" "+") ("something" "is" "quiet" "+")) -> ("something" "is" "green" "+"))
Smart, green things are quiet.
((("something" "is" "smart" "+") ("something" "is" "green" "+")) -> ("something" "is" "quiet" "+"))
Rough, red things are quiet.
((("something" "is" "rough" "+") ("something" "is" "red" "+")) -> ("something" "is" "quiet" "+"))
All smart things are quiet.
((("something" "is" "smart" "+")) -> ("something" "is" "quiet" "+"))
Rough things are kind.
((("something" "is" "rough" "+")) -> ("something" "is" "kind" "+"))
Anne is kind.
True
1
proof
[(triple1)]
("Anne" "is" "kind" "+")
triple1
Dave is not kind.
False
1
inv-proof
[(triple3)]
("Dave" "is" "kind" "-")
triple3
Bob is green.
True
2
proof
[(((triple2) -> rule1))]
("Bob" "is" "green" "+")
((triple2) -> (rule1 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is not green.
False
2
inv-proof
[(((triple2) -> rule1))]
("Bob" "is" "green" "-")
((triple2) -> (rule1 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is smart.
True
4
proof
[(((triple2 ((triple2) -> rule1)) -> rule2))]
("Bob" "is" "smart" "+")
((triple2 ((triple2) -> (rule1 % int2))) -> (rule2 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Bob is not smart.
False
4
inv-proof
[(((triple2 ((triple2) -> rule1)) -> rule2))]
("Bob" "is" "smart" "-")
((triple2 ((triple2) -> (rule1 % int2))) -> (rule2 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Dave is not big.
Unknown
inv-rconc
[@2: Dave is big.[CWA. Example of deepest failure = (rule3 <- rule2 <- FAIL)]]
("Dave" "is" "big" "-")
Harry is green.
Unknown
rconc
[@2: Harry is green.[CWA. Example of deepest failure = (rule4 <- rule2 <- FAIL)]]
("Harry" "is" "green" "+")
Anne is not green.
Unknown
inv-rconc
[@2: Anne is green.[CWA. Example of deepest failure = (rule4 <- rule2 <- FAIL)]]
("Anne" "is" "green" "-")
Dave is rough.
Unknown
random
[@0: Dave is rough.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "rough" "+")
Harry is not big.
Unknown
inv-random
[@0: Harry is big.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "big" "-")
Dave is red.
Unknown
random
[@0: Dave is red.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "red" "+")
@0: Anne is kind.[(triple1)] Bob is red.[(triple2)] Dave is kind.[(triple3)] Harry is kind.[(triple4)] @1: Bob is green.[(((triple2) -> rule1))] @2: Bob is smart.[(((triple2 ((triple2) -> rule1)) -> rule2))] @3: Bob is quiet.[(((((triple2 ((triple2) -> rule1)) -> rule2)) -> rule7) OR ((((triple2 ((triple2) -> rule1)) -> rule2) ((triple2) -> rule1)) -> rule5))]
Anne is kind.
("Anne" "is" "kind" "+")
triple1
Bob is red.
("Bob" "is" "red" "+")
triple2
Dave is kind.
("Dave" "is" "kind" "+")
triple3
Harry is kind.
("Harry" "is" "kind" "+")
triple4
Bob is green.
("Bob" "is" "green" "+")
((triple2) -> (rule1 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
((triple2 ((triple2) -> (rule1 % int2))) -> (rule2 % int1))
Bob is smart.
("Bob" "is" "smart" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
int2
Bob is quiet.
("Bob" "is" "quiet" "+")
((((triple2 ((triple2) -> (rule1 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3
((((triple2 ((triple2) -> (rule1 % int3))) -> (rule2 % int2)) ((triple2) -> (rule1 % int3))) -> (rule5 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is smart.
("Bob" "is" "smart" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
int3