Bob is blue. Bob is nice. Bob is young. Charlie is blue. Charlie is round. Charlie is white. Charlie is young. Erin is rough. Erin is white. Erin is young. Fiona is blue. Fiona is nice. Fiona is round. Fiona is white. Fiona is young. If Bob is blue and Bob is young then Bob is round. All young people are white. If someone is rough and young then they are red. Round people are rough. All blue people are white. All white, round people are nice.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is nice.
("Bob" "is" "nice" "+")
Bob is young.
("Bob" "is" "young" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Erin is rough.
("Erin" "is" "rough" "+")
Erin is white.
("Erin" "is" "white" "+")
Erin is young.
("Erin" "is" "young" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is white.
("Fiona" "is" "white" "+")
Fiona is young.
("Fiona" "is" "young" "+")
If Bob is blue and Bob is young then Bob is round.
((("Bob" "is" "blue" "+") ("Bob" "is" "young" "+")) -> ("Bob" "is" "round" "+"))
All young people are white.
((("someone" "is" "young" "+")) -> ("someone" "is" "white" "+"))
If someone is rough and young then they are red.
((("someone" "is" "rough" "+") ("someone" "is" "young" "+")) -> ("someone" "is" "red" "+"))
Round people are rough.
((("someone" "is" "round" "+")) -> ("someone" "is" "rough" "+"))
All blue people are white.
((("someone" "is" "blue" "+")) -> ("someone" "is" "white" "+"))
All white, round people are nice.
((("someone" "is" "white" "+") ("someone" "is" "round" "+")) -> ("someone" "is" "nice" "+"))
Fiona is white.
True
1
proof
[(triple14 OR ((triple11) -> rule5) OR ((triple15) -> rule2))]
("Fiona" "is" "white" "+")
triple14
((triple11) -> (rule5 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
((triple15) -> (rule2 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Charlie is not round.
False
1
inv-proof
[(triple5)]
("Charlie" "is" "round" "-")
triple5
Fiona is rough.
True
2
proof
[(((triple13) -> rule4))]
("Fiona" "is" "rough" "+")
((triple13) -> (rule4 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Bob is not white.
False
2
inv-proof
[(((triple1) -> rule5) OR ((triple3) -> rule2))]
("Bob" "is" "white" "-")
((triple1) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
((triple3) -> (rule2 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is rough.
True
4
proof
[(((((triple1 triple3) -> rule1)) -> rule4))]
("Bob" "is" "rough" "+")
((((triple1 triple3) -> (rule1 % int2))) -> (rule4 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is not rough.
False
4
inv-proof
[(((((triple1 triple3) -> rule1)) -> rule4))]
("Bob" "is" "rough" "-")
((((triple1 triple3) -> (rule1 % int2))) -> (rule4 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is red.
True
6
proof
[(((((((triple1 triple3) -> rule1)) -> rule4) triple3) -> rule3))]
("Bob" "is" "red" "+")
((((((triple1 triple3) -> (rule1 % int3))) -> (rule4 % int2)) triple3) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Bob is not red.
False
6
inv-proof
[(((((((triple1 triple3) -> rule1)) -> rule4) triple3) -> rule3))]
("Bob" "is" "red" "-")
((((((triple1 triple3) -> (rule1 % int3))) -> (rule4 % int2)) triple3) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3
Erin is not nice.
Unknown
inv-rconc
[@1: Erin is nice.[CWA. Example of deepest failure = (rule6 <- FAIL)]]
("Erin" "is" "nice" "-")
Erin is round.
Unknown
random
[@0: Erin is round.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "round" "+")
@0: Bob is blue.[(triple1)] Bob is nice.[(triple2 OR ((((triple1) -> rule5) ((triple1 triple3) -> rule1)) -> rule6) OR ((((triple3) -> rule2) ((triple1 triple3) -> rule1)) -> rule6))] Bob is young.[(triple3)] Charlie is blue.[(triple4)] Charlie is round.[(triple5)] Charlie is white.[(triple6 OR ((triple4) -> rule5) OR ((triple7) -> rule2))] Charlie is young.[(triple7)] Erin is rough.[(triple8)] Erin is white.[(triple9 OR ((triple10) -> rule2))] Erin is young.[(triple10)] Fiona is blue.[(triple11)] Fiona is nice.[(triple12 OR ((triple14 triple13) -> rule6) OR ((((triple11) -> rule5) triple13) -> rule6) OR ((((triple15) -> rule2) triple13) -> rule6))] Fiona is round.[(triple13)] Fiona is white.[(triple14 OR ((triple11) -> rule5) OR ((triple15) -> rule2))] Fiona is young.[(triple15)] @1: Bob is round.[(((triple1 triple3) -> rule1))] Bob is white.[(((triple1) -> rule5) OR ((triple3) -> rule2))] Charlie is nice.[(((triple6 triple5) -> rule6) OR ((((triple4) -> rule5) triple5) -> rule6) OR ((((triple7) -> rule2) triple5) -> rule6))] Charlie is rough.[(((triple5) -> rule4))] Erin is red.[(((triple8 triple10) -> rule3))] Fiona is rough.[(((triple13) -> rule4))] @2: Bob is rough.[(((((triple1 triple3) -> rule1)) -> rule4))] Charlie is red.[(((((triple5) -> rule4) triple7) -> rule3))] Fiona is red.[(((((triple13) -> rule4) triple15) -> rule3))] @3: Bob is red.[(((((((triple1 triple3) -> rule1)) -> rule4) triple3) -> rule3))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
Bob is nice.
("Bob" "is" "nice" "+")
triple2
((((triple1) -> (rule5 % int3)) ((triple1 triple3) -> (rule1 % int2))) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
((((triple3) -> (rule2 % int3)) ((triple1 triple3) -> (rule1 % int2))) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Bob is white.
("Bob" "is" "white" "+")
int3
Bob is young.
("Bob" "is" "young" "+")
triple3
Charlie is blue.
("Charlie" "is" "blue" "+")
triple4
Charlie is round.
("Charlie" "is" "round" "+")
triple5
Charlie is white.
("Charlie" "is" "white" "+")
triple6
((triple4) -> (rule5 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
((triple7) -> (rule2 % int1))
Charlie is white.
("Charlie" "is" "white" "+")
int1
Charlie is young.
("Charlie" "is" "young" "+")
triple7
Erin is rough.
("Erin" "is" "rough" "+")
triple8
Erin is white.
("Erin" "is" "white" "+")
triple9
((triple10) -> (rule2 % int1))
Erin is white.
("Erin" "is" "white" "+")
int1
Erin is young.
("Erin" "is" "young" "+")
triple10
Fiona is blue.
("Fiona" "is" "blue" "+")
triple11
Fiona is nice.
("Fiona" "is" "nice" "+")
triple12
((triple14 triple13) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
((((triple11) -> (rule5 % int2)) triple13) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
((((triple15) -> (rule2 % int2)) triple13) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
triple13
Fiona is white.
("Fiona" "is" "white" "+")
triple14
((triple11) -> (rule5 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
((triple15) -> (rule2 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
triple15
Bob is round.
("Bob" "is" "round" "+")
((triple1 triple3) -> (rule1 % int1))
Bob is round.
("Bob" "is" "round" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
((triple1) -> (rule5 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
((triple3) -> (rule2 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
((triple6 triple5) -> (rule6 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((((triple4) -> (rule5 % int2)) triple5) -> (rule6 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
((((triple7) -> (rule2 % int2)) triple5) -> (rule6 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is white.
("Charlie" "is" "white" "+")
int2
Charlie is rough.
("Charlie" "is" "rough" "+")
((triple5) -> (rule4 % int1))
Charlie is rough.
("Charlie" "is" "rough" "+")
int1
Erin is red.
("Erin" "is" "red" "+")
((triple8 triple10) -> (rule3 % int1))
Erin is red.
("Erin" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
((triple13) -> (rule4 % int1))
Fiona is rough.
("Fiona" "is" "rough" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
((((triple1 triple3) -> (rule1 % int2))) -> (rule4 % int1))
Bob is rough.
("Bob" "is" "rough" "+")
int1
Bob is round.
("Bob" "is" "round" "+")
int2
Charlie is red.
("Charlie" "is" "red" "+")
((((triple5) -> (rule4 % int2)) triple7) -> (rule3 % int1))
Charlie is red.
("Charlie" "is" "red" "+")
int1
Charlie is rough.
("Charlie" "is" "rough" "+")
int2
Fiona is red.
("Fiona" "is" "red" "+")
((((triple13) -> (rule4 % int2)) triple15) -> (rule3 % int1))
Fiona is red.
("Fiona" "is" "red" "+")
int1
Fiona is rough.
("Fiona" "is" "rough" "+")
int2
Bob is red.
("Bob" "is" "red" "+")
((((((triple1 triple3) -> (rule1 % int3))) -> (rule4 % int2)) triple3) -> (rule3 % int1))
Bob is red.
("Bob" "is" "red" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
int2
Bob is round.
("Bob" "is" "round" "+")
int3