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