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