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