Bob is nice. Bob is rough. Dave is big. Dave is furry. Dave is green. Dave is not nice. Dave is not red. Dave is rough. Dave is white. Fiona is big. Fiona is not nice. Fiona is rough. Gary is nice. Gary is red. All red, green things are furry. Big things are rough. If Fiona is furry then Fiona is not rough. All furry things are big. If something is nice then it is big. Nice, rough things are green. Furry things are white.
Bob is nice.
("Bob" "is" "nice" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Dave is big.
("Dave" "is" "big" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is green.
("Dave" "is" "green" "+")
Dave is not nice.
("Dave" "is" "nice" "-")
Dave is not red.
("Dave" "is" "red" "-")
Dave is rough.
("Dave" "is" "rough" "+")
Dave is white.
("Dave" "is" "white" "+")
Fiona is big.
("Fiona" "is" "big" "+")
Fiona is not nice.
("Fiona" "is" "nice" "-")
Fiona is rough.
("Fiona" "is" "rough" "+")
Gary is nice.
("Gary" "is" "nice" "+")
Gary is red.
("Gary" "is" "red" "+")
All red, green things are furry.
((("something" "is" "red" "+") ("something" "is" "green" "+")) -> ("something" "is" "furry" "+"))
Big things are rough.
((("something" "is" "big" "+")) -> ("something" "is" "rough" "+"))
If Fiona is furry then Fiona is not rough.
((("Fiona" "is" "furry" "+")) -> ("Fiona" "is" "rough" "-"))
All furry things are big.
((("something" "is" "furry" "+")) -> ("something" "is" "big" "+"))
If something is nice then it is big.
((("something" "is" "nice" "+")) -> ("something" "is" "big" "+"))
Nice, rough things are green.
((("something" "is" "nice" "+") ("something" "is" "rough" "+")) -> ("something" "is" "green" "+"))
Furry things are white.
((("something" "is" "furry" "+")) -> ("something" "is" "white" "+"))
Dave is not red.
True
1
proof
[(triple7)]
("Dave" "is" "red" "-")
triple7
Dave is not furry.
False
1
inv-proof
[(triple4)]
("Dave" "is" "furry" "-")
triple4
Bob is big.
True
2
proof
[(((triple1) -> rule5))]
("Bob" "is" "big" "+")
((triple1) -> (rule5 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is not big.
False
2
inv-proof
[(((triple1) -> rule5))]
("Bob" "is" "big" "-")
((triple1) -> (rule5 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Gary is rough.
True
3
proof
[(((((triple13) -> rule5)) -> rule2))]
("Gary" "is" "rough" "+")
((((triple13) -> (rule5 % int2))) -> (rule2 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is not rough.
False
3
inv-proof
[(((((triple13) -> rule5)) -> rule2))]
("Gary" "is" "rough" "-")
((((triple13) -> (rule5 % int2))) -> (rule2 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is green.
True
5
proof
[(((triple13 ((((triple13) -> rule5)) -> rule2)) -> rule6))]
("Gary" "is" "green" "+")
((triple13 ((((triple13) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Gary is green.
("Gary" "is" "green" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
int3
Gary is not green.
False
5
inv-proof
[(((triple13 ((((triple13) -> rule5)) -> rule2)) -> rule6))]
("Gary" "is" "green" "-")
((triple13 ((((triple13) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Gary is green.
("Gary" "is" "green" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
int3
Gary is furry.
True
7
proof
[(((triple14 ((triple13 ((((triple13) -> rule5)) -> rule2)) -> rule6)) -> rule1))]
("Gary" "is" "furry" "+")
((triple14 ((triple13 ((((triple13) -> (rule5 % int4))) -> (rule2 % int3))) -> (rule6 % int2))) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is green.
("Gary" "is" "green" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
Gary is not furry.
False
7
inv-proof
[(((triple14 ((triple13 ((((triple13) -> rule5)) -> rule2)) -> rule6)) -> rule1))]
("Gary" "is" "furry" "-")
((triple14 ((triple13 ((((triple13) -> (rule5 % int4))) -> (rule2 % int3))) -> (rule6 % int2))) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is green.
("Gary" "is" "green" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
Gary is white.
True
8
proof
[(((((triple14 ((triple13 ((((triple13) -> rule5)) -> rule2)) -> rule6)) -> rule1)) -> rule7))]
("Gary" "is" "white" "+")
((((triple14 ((triple13 ((((triple13) -> (rule5 % int5))) -> (rule2 % int4))) -> (rule6 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Gary is white.
("Gary" "is" "white" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is green.
("Gary" "is" "green" "+")
int3
Gary is rough.
("Gary" "is" "rough" "+")
int4
Gary is big.
("Gary" "is" "big" "+")
int5
Gary is not white.
False
8
inv-proof
[(((((triple14 ((triple13 ((((triple13) -> rule5)) -> rule2)) -> rule6)) -> rule1)) -> rule7))]
("Gary" "is" "white" "-")
((((triple14 ((triple13 ((((triple13) -> (rule5 % int5))) -> (rule2 % int4))) -> (rule6 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Gary is white.
("Gary" "is" "white" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is green.
("Gary" "is" "green" "+")
int3
Gary is rough.
("Gary" "is" "rough" "+")
int4
Gary is big.
("Gary" "is" "big" "+")
int5
Fiona is not white.
Unknown
inv-rconc
[@2: Fiona is white.[CWA. Example of deepest failure = (rule7 <- rule1 <- FAIL)]]
("Fiona" "is" "white" "-")
Bob is furry.
Unknown
rconc
[@1: Bob is furry.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Bob" "is" "furry" "+")
Bob is not white.
Unknown
inv-rconc
[@2: Bob is white.[CWA. Example of deepest failure = (rule7 <- rule1 <- FAIL)]]
("Bob" "is" "white" "-")
Fiona is furry.
Unknown
rconc
[@1: Fiona is furry.[CWA. Example of deepest failure = (rule1 <- FAIL)]]
("Fiona" "is" "furry" "+")
Fiona is not green.
Unknown
inv-rconc
[@1: Fiona is green.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Fiona" "is" "green" "-")
Bob is red.
Unknown
random
[@0: Bob is red.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "red" "+")
@0: Bob is nice.[(triple1)] Bob is rough.[(triple2 OR ((((triple1) -> rule5)) -> rule2))] Dave is big.[(triple3 OR ((triple4) -> rule4))] Dave is furry.[(triple4)] Dave is green.[(triple5)] Dave is not nice.[(triple6)] Dave is not red.[(triple7)] Dave is rough.[(triple8 OR ((triple3) -> rule2) OR ((((triple4) -> rule4)) -> rule2))] Dave is white.[(triple9 OR ((triple4) -> rule7))] Fiona is big.[(triple10)] Fiona is not nice.[(triple11)] Fiona is rough.[(triple12 OR ((triple10) -> rule2))] Gary is nice.[(triple13)] Gary is red.[(triple14)] @1: Bob is big.[(((triple1) -> rule5))] Bob is green.[(((triple1 triple2) -> rule6) OR ((triple1 ((((triple1) -> rule5)) -> rule2)) -> rule6))] Gary is big.[(((triple13) -> rule5))] @2: Gary is rough.[(((((triple13) -> rule5)) -> rule2))] @3: Gary is green.[(((triple13 ((((triple13) -> rule5)) -> rule2)) -> rule6))] @4: Gary is furry.[(((triple14 ((triple13 ((((triple13) -> rule5)) -> rule2)) -> rule6)) -> rule1))] @5: Gary is white.[(((((triple14 ((triple13 ((((triple13) -> rule5)) -> rule2)) -> rule6)) -> rule1)) -> rule7))]
Bob is nice.
("Bob" "is" "nice" "+")
triple1
Bob is rough.
("Bob" "is" "rough" "+")
triple2
((((triple1) -> (rule5 % int2))) -> (rule2 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
triple3
((triple4) -> (rule4 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
triple4
Dave is green.
("Dave" "is" "green" "+")
triple5
Dave is not nice.
("Dave" "is" "nice" "-")
triple6
Dave is not red.
("Dave" "is" "red" "-")
triple7
Dave is rough.
("Dave" "is" "rough" "+")
triple8
((triple3) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
((((triple4) -> (rule4 % int2))) -> (rule2 % int1))
Dave is rough.
("Dave" "is" "rough" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
triple9
((triple4) -> (rule7 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Fiona is big.
("Fiona" "is" "big" "+")
triple10
Fiona is not nice.
("Fiona" "is" "nice" "-")
triple11
Fiona is rough.
("Fiona" "is" "rough" "+")
triple12
((triple10) -> (rule2 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Gary is nice.
("Gary" "is" "nice" "+")
triple13
Gary is red.
("Gary" "is" "red" "+")
triple14
Bob is big.
("Bob" "is" "big" "+")
((triple1) -> (rule5 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is green.
("Bob" "is" "green" "+")
((triple1 triple2) -> (rule6 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
((triple1 ((((triple1) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Bob is green.
("Bob" "is" "green" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is big.
("Bob" "is" "big" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
((triple13) -> (rule5 % int1))
Gary is big.
("Gary" "is" "big" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
((((triple13) -> (rule5 % int2))) -> (rule2 % int1))
Gary is rough.
("Gary" "is" "rough" "+")
int1
Gary is big.
("Gary" "is" "big" "+")
int2
Gary is green.
("Gary" "is" "green" "+")
((triple13 ((((triple13) -> (rule5 % int3))) -> (rule2 % int2))) -> (rule6 % int1))
Gary is green.
("Gary" "is" "green" "+")
int1
Gary is rough.
("Gary" "is" "rough" "+")
int2
Gary is big.
("Gary" "is" "big" "+")
int3
Gary is furry.
("Gary" "is" "furry" "+")
((triple14 ((triple13 ((((triple13) -> (rule5 % int4))) -> (rule2 % int3))) -> (rule6 % int2))) -> (rule1 % int1))
Gary is furry.
("Gary" "is" "furry" "+")
int1
Gary is green.
("Gary" "is" "green" "+")
int2
Gary is rough.
("Gary" "is" "rough" "+")
int3
Gary is big.
("Gary" "is" "big" "+")
int4
Gary is white.
("Gary" "is" "white" "+")
((((triple14 ((triple13 ((((triple13) -> (rule5 % int5))) -> (rule2 % int4))) -> (rule6 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Gary is white.
("Gary" "is" "white" "+")
int1
Gary is furry.
("Gary" "is" "furry" "+")
int2
Gary is green.
("Gary" "is" "green" "+")
int3
Gary is rough.
("Gary" "is" "rough" "+")
int4
Gary is big.
("Gary" "is" "big" "+")
int5