Bob is green. Bob is round. Dave is big. Dave is blue. Dave is furry. Dave is green. Dave is nice. Dave is quiet. Fiona is furry. Harry is green. Green, furry people are nice. Round people are furry. All round, green people are furry. If someone is nice then they are big. All nice, blue people are green. All green, nice people are furry. All big, furry people are quiet. All nice people are blue.
Bob is green.
("Bob" "is" "green" "+")
Bob is round.
("Bob" "is" "round" "+")
Dave is big.
("Dave" "is" "big" "+")
Dave is blue.
("Dave" "is" "blue" "+")
Dave is furry.
("Dave" "is" "furry" "+")
Dave is green.
("Dave" "is" "green" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Dave is quiet.
("Dave" "is" "quiet" "+")
Fiona is furry.
("Fiona" "is" "furry" "+")
Harry is green.
("Harry" "is" "green" "+")
Green, furry people are nice.
((("someone" "is" "green" "+") ("someone" "is" "furry" "+")) -> ("someone" "is" "nice" "+"))
Round people are furry.
((("someone" "is" "round" "+")) -> ("someone" "is" "furry" "+"))
All round, green people are furry.
((("someone" "is" "round" "+") ("someone" "is" "green" "+")) -> ("someone" "is" "furry" "+"))
If someone is nice then they are big.
((("someone" "is" "nice" "+")) -> ("someone" "is" "big" "+"))
All nice, blue people are green.
((("someone" "is" "nice" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "green" "+"))
All green, nice people are furry.
((("someone" "is" "green" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "furry" "+"))
All big, furry people are quiet.
((("someone" "is" "big" "+") ("someone" "is" "furry" "+")) -> ("someone" "is" "quiet" "+"))
All nice people are blue.
((("someone" "is" "nice" "+")) -> ("someone" "is" "blue" "+"))
Fiona is furry.
True
1
proof
[(triple9)]
("Fiona" "is" "furry" "+")
triple9
Dave is not furry.
False
1
inv-proof
[(triple5 OR ((triple6 triple7) -> rule6) OR ((((triple7 triple4) -> rule5) triple7) -> rule6) OR ((((triple7 ((triple7) -> rule8)) -> rule5) triple7) -> rule6))]
("Dave" "is" "furry" "-")
triple5
((triple6 triple7) -> (rule6 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
((((triple7 triple4) -> (rule5 % int2)) triple7) -> (rule6 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
((((triple7 ((triple7) -> (rule8 % int3))) -> (rule5 % int2)) triple7) -> (rule6 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Bob is furry.
True
2
proof
[(((triple2) -> rule2) OR ((triple2 triple1) -> rule3))]
("Bob" "is" "furry" "+")
((triple2) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple2 triple1) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is not furry.
False
2
inv-proof
[(((triple2) -> rule2) OR ((triple2 triple1) -> rule3))]
("Bob" "is" "furry" "-")
((triple2) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple2 triple1) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is nice.
True
4
proof
[(((triple1 ((triple2) -> rule2)) -> rule1) OR ((triple1 ((triple2 triple1) -> rule3)) -> rule1))]
("Bob" "is" "nice" "+")
((triple1 ((triple2) -> (rule2 % int2))) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((triple1 ((triple2 triple1) -> (rule3 % int2))) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is not nice.
False
4
inv-proof
[(((triple1 ((triple2) -> rule2)) -> rule1) OR ((triple1 ((triple2 triple1) -> rule3)) -> rule1))]
("Bob" "is" "nice" "-")
((triple1 ((triple2) -> (rule2 % int2))) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((triple1 ((triple2 triple1) -> (rule3 % int2))) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is blue.
True
5
proof
[(((((triple1 ((triple2) -> rule2)) -> rule1)) -> rule8) OR ((((triple1 ((triple2 triple1) -> rule3)) -> rule1)) -> rule8))]
("Bob" "is" "blue" "+")
((((triple1 ((triple2) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule8 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
((((triple1 ((triple2 triple1) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule8 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Bob is not blue.
False
5
inv-proof
[(((((triple1 ((triple2) -> rule2)) -> rule1)) -> rule8) OR ((((triple1 ((triple2 triple1) -> rule3)) -> rule1)) -> rule8))]
("Bob" "is" "blue" "-")
((((triple1 ((triple2) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule8 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
((((triple1 ((triple2 triple1) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule8 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Fiona is not blue.
Unknown
inv-rconc
[@3: Fiona is blue.[CWA. Example of deepest failure = (rule8 <- rule1 <- rule5 <- FAIL)]]
("Fiona" "is" "blue" "-")
Harry is blue.
Unknown
rconc
[@3: Harry is blue.[CWA. Example of deepest failure = (rule8 <- rule1 <- rule2 <- FAIL)]]
("Harry" "is" "blue" "+")
Fiona is not nice.
Unknown
inv-rconc
[@2: Fiona is nice.[CWA. Example of deepest failure = (rule1 <- rule5 <- FAIL)]]
("Fiona" "is" "nice" "-")
Harry is quiet.
Unknown
rconc
[@4: Harry is quiet.[CWA. Example of deepest failure = (rule7 <- rule4 <- rule1 <- rule2 <- FAIL)]]
("Harry" "is" "quiet" "+")
Dave is not round.
Unknown
inv-random
[@0: Dave is round.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "round" "-")
Harry is round.
Unknown
random
[@0: Harry is round.[CWA. Example of deepest failure = (FAIL)]]
("Harry" "is" "round" "+")
@0: Bob is green.[(triple1)] Bob is round.[(triple2)] Dave is big.[(triple3 OR ((triple7) -> rule4) OR ((((triple6 triple5) -> rule1)) -> rule4))] Dave is blue.[(triple4 OR ((triple7) -> rule8) OR ((((triple6 triple5) -> rule1)) -> rule8))] Dave is furry.[(triple5 OR ((triple6 triple7) -> rule6) OR ((((triple7 triple4) -> rule5) triple7) -> rule6) OR ((((triple7 ((triple7) -> rule8)) -> rule5) triple7) -> rule6))] Dave is green.[(triple6 OR ((triple7 triple4) -> rule5) OR ((triple7 ((triple7) -> rule8)) -> rule5))] Dave is nice.[(triple7 OR ((triple6 triple5) -> rule1))] Dave is quiet.[(triple8 OR ((triple3 triple5) -> rule7) OR ((triple3 ((triple6 triple7) -> rule6)) -> rule7) OR ((((triple7) -> rule4) triple5) -> rule7) OR ((((triple7) -> rule4) ((triple6 triple7) -> rule6)) -> rule7) OR ((triple3 ((((triple7 triple4) -> rule5) triple7) -> rule6)) -> rule7) OR ((((((triple6 triple5) -> rule1)) -> rule4) triple5) -> rule7) OR ((((triple7) -> rule4) ((((triple7 triple4) -> rule5) triple7) -> rule6)) -> rule7) OR ((((((triple6 triple5) -> rule1)) -> rule4) ((triple6 triple7) -> rule6)) -> rule7) OR ((((((triple6 triple5) -> rule1)) -> rule4) ((((triple7 triple4) -> rule5) triple7) -> rule6)) -> rule7) OR ((triple3 ((((triple7 ((triple7) -> rule8)) -> rule5) triple7) -> rule6)) -> rule7) OR ((((triple7) -> rule4) ((((triple7 ((triple7) -> rule8)) -> rule5) triple7) -> rule6)) -> rule7) OR ((((((triple6 triple5) -> rule1)) -> rule4) ((((triple7 ((triple7) -> rule8)) -> rule5) triple7) -> rule6)) -> rule7))] Fiona is furry.[(triple9)] Harry is green.[(triple10)] @1: Bob is furry.[(((triple2) -> rule2) OR ((triple2 triple1) -> rule3))] @2: Bob is nice.[(((triple1 ((triple2) -> rule2)) -> rule1) OR ((triple1 ((triple2 triple1) -> rule3)) -> rule1))] @3: Bob is big.[(((((triple1 ((triple2) -> rule2)) -> rule1)) -> rule4) OR ((((triple1 ((triple2 triple1) -> rule3)) -> rule1)) -> rule4))] Bob is blue.[(((((triple1 ((triple2) -> rule2)) -> rule1)) -> rule8) OR ((((triple1 ((triple2 triple1) -> rule3)) -> rule1)) -> rule8))] @4: Bob is quiet.[(((((((triple1 ((triple2) -> rule2)) -> rule1)) -> rule4) ((triple2) -> rule2)) -> rule7) OR ((((((triple1 ((triple2) -> rule2)) -> rule1)) -> rule4) ((triple2 triple1) -> rule3)) -> rule7) OR ((((((triple1 ((triple2 triple1) -> rule3)) -> rule1)) -> rule4) ((triple2) -> rule2)) -> rule7) OR ((((((triple1 ((triple2 triple1) -> rule3)) -> rule1)) -> rule4) ((triple2 triple1) -> rule3)) -> rule7))]
Bob is green.
("Bob" "is" "green" "+")
triple1
Bob is round.
("Bob" "is" "round" "+")
triple2
Dave is big.
("Dave" "is" "big" "+")
triple3
((triple7) -> (rule4 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
((((triple6 triple5) -> (rule1 % int2))) -> (rule4 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
triple4
((triple7) -> (rule8 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
((((triple6 triple5) -> (rule1 % int2))) -> (rule8 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
triple5
((triple6 triple7) -> (rule6 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
((((triple7 triple4) -> (rule5 % int2)) triple7) -> (rule6 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
((((triple7 ((triple7) -> (rule8 % int3))) -> (rule5 % int2)) triple7) -> (rule6 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is green.
("Dave" "is" "green" "+")
triple6
((triple7 triple4) -> (rule5 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
((triple7 ((triple7) -> (rule8 % int2))) -> (rule5 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
triple7
((triple6 triple5) -> (rule1 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is quiet.
("Dave" "is" "quiet" "+")
triple8
((triple3 triple5) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
((triple3 ((triple6 triple7) -> (rule6 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
((((triple7) -> (rule4 % int2)) triple5) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
((((triple7) -> (rule4 % int3)) ((triple6 triple7) -> (rule6 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
int3
((triple3 ((((triple7 triple4) -> (rule5 % int3)) triple7) -> (rule6 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
((((((triple6 triple5) -> (rule1 % int3))) -> (rule4 % int2)) triple5) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
((((triple7) -> (rule4 % int4)) ((((triple7 triple4) -> (rule5 % int3)) triple7) -> (rule6 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is big.
("Dave" "is" "big" "+")
int4
((((((triple6 triple5) -> (rule1 % int4))) -> (rule4 % int3)) ((triple6 triple7) -> (rule6 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
int3
Dave is nice.
("Dave" "is" "nice" "+")
int4
((((((triple6 triple5) -> (rule1 % int5))) -> (rule4 % int4)) ((((triple7 triple4) -> (rule5 % int3)) triple7) -> (rule6 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is big.
("Dave" "is" "big" "+")
int4
Dave is nice.
("Dave" "is" "nice" "+")
int5
((triple3 ((((triple7 ((triple7) -> (rule8 % int4))) -> (rule5 % int3)) triple7) -> (rule6 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is blue.
("Dave" "is" "blue" "+")
int4
((((triple7) -> (rule4 % int5)) ((((triple7 ((triple7) -> (rule8 % int4))) -> (rule5 % int3)) triple7) -> (rule6 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is blue.
("Dave" "is" "blue" "+")
int4
Dave is big.
("Dave" "is" "big" "+")
int5
((((((triple6 triple5) -> (rule1 % int6))) -> (rule4 % int5)) ((((triple7 ((triple7) -> (rule8 % int4))) -> (rule5 % int3)) triple7) -> (rule6 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is furry.
("Dave" "is" "furry" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is blue.
("Dave" "is" "blue" "+")
int4
Dave is big.
("Dave" "is" "big" "+")
int5
Dave is nice.
("Dave" "is" "nice" "+")
int6
Fiona is furry.
("Fiona" "is" "furry" "+")
triple9
Harry is green.
("Harry" "is" "green" "+")
triple10
Bob is furry.
("Bob" "is" "furry" "+")
((triple2) -> (rule2 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
((triple2 triple1) -> (rule3 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
((triple1 ((triple2) -> (rule2 % int2))) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
((triple1 ((triple2 triple1) -> (rule3 % int2))) -> (rule1 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Bob is big.
("Bob" "is" "big" "+")
((((triple1 ((triple2) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
((((triple1 ((triple2 triple1) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule4 % int1))
Bob is big.
("Bob" "is" "big" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
((((triple1 ((triple2) -> (rule2 % int3))) -> (rule1 % int2))) -> (rule8 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
((((triple1 ((triple2 triple1) -> (rule3 % int3))) -> (rule1 % int2))) -> (rule8 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Bob is quiet.
("Bob" "is" "quiet" "+")
((((((triple1 ((triple2) -> (rule2 % int4))) -> (rule1 % int3))) -> (rule4 % int2)) ((triple2) -> (rule2 % int4))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((((((triple1 ((triple2) -> (rule2 % int4))) -> (rule1 % int3))) -> (rule4 % int2)) ((triple2 triple1) -> (rule3 % int4))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((((((triple1 ((triple2 triple1) -> (rule3 % int4))) -> (rule1 % int3))) -> (rule4 % int2)) ((triple2) -> (rule2 % int4))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4
((((((triple1 ((triple2 triple1) -> (rule3 % int4))) -> (rule1 % int3))) -> (rule4 % int2)) ((triple2 triple1) -> (rule3 % int4))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is big.
("Bob" "is" "big" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is furry.
("Bob" "is" "furry" "+")
int4