Bob is blue. Bob is cold. Bob is green. Bob is white. Dave is white. Fiona is blue. Harry is nice. Nice people are young. Blue, young people are nice. If someone is blue then they are white. If Bob is cold and Bob is nice then Bob is white. All white people are cold. If someone is quiet and cold then they are nice. Blue, young people are quiet. All cold people are blue. If someone is blue then they are nice.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is cold.
("Bob" "is" "cold" "+")
Bob is green.
("Bob" "is" "green" "+")
Bob is white.
("Bob" "is" "white" "+")
Dave is white.
("Dave" "is" "white" "+")
Fiona is blue.
("Fiona" "is" "blue" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Nice people are young.
((("someone" "is" "nice" "+")) -> ("someone" "is" "young" "+"))
Blue, young people are nice.
((("someone" "is" "blue" "+") ("someone" "is" "young" "+")) -> ("someone" "is" "nice" "+"))
If someone is blue then they are white.
((("someone" "is" "blue" "+")) -> ("someone" "is" "white" "+"))
If Bob is cold and Bob is nice then Bob is white.
((("Bob" "is" "cold" "+") ("Bob" "is" "nice" "+")) -> ("Bob" "is" "white" "+"))
All white people are cold.
((("someone" "is" "white" "+")) -> ("someone" "is" "cold" "+"))
If someone is quiet and cold then they are nice.
((("someone" "is" "quiet" "+") ("someone" "is" "cold" "+")) -> ("someone" "is" "nice" "+"))
Blue, young people are quiet.
((("someone" "is" "blue" "+") ("someone" "is" "young" "+")) -> ("someone" "is" "quiet" "+"))
All cold people are blue.
((("someone" "is" "cold" "+")) -> ("someone" "is" "blue" "+"))
If someone is blue then they are nice.
((("someone" "is" "blue" "+")) -> ("someone" "is" "nice" "+"))
Harry is nice.
True
1
proof
[(triple7)]
("Harry" "is" "nice" "+")
triple7
Fiona is not blue.
False
1
inv-proof
[(triple6)]
("Fiona" "is" "blue" "-")
triple6
Bob is nice.
True
2
proof
[(((triple1) -> rule9) OR ((((triple2) -> rule8)) -> rule9) OR ((((((triple4) -> rule5)) -> rule8)) -> rule9))]
("Bob" "is" "nice" "+")
((triple1) -> (rule9 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((((triple2) -> (rule8 % int2))) -> (rule9 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((((triple4) -> (rule5 % int3))) -> (rule8 % int2))) -> (rule9 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Fiona is not white.
False
2
inv-proof
[(((triple6) -> rule3))]
("Fiona" "is" "white" "-")
((triple6) -> (rule3 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Fiona is young.
True
3
proof
[(((((triple6) -> rule9)) -> rule1))]
("Fiona" "is" "young" "+")
((((triple6) -> (rule9 % int2))) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Bob is not young.
False
3
inv-proof
[(((((triple1) -> rule9)) -> rule1) OR ((((((triple2) -> rule8)) -> rule9)) -> rule1) OR ((((((((triple4) -> rule5)) -> rule8)) -> rule9)) -> rule1))]
("Bob" "is" "young" "-")
((((triple1) -> (rule9 % int2))) -> (rule1 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((((triple2) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule1 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((((triple4) -> (rule5 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule1 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Bob is cold.
("Bob" "is" "cold" "+")
int4
Fiona is quiet.
True
5
proof
[(((triple6 ((((triple6) -> rule9)) -> rule1)) -> rule7))]
("Fiona" "is" "quiet" "+")
((triple6 ((((triple6) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Dave is not nice.
False
4
inv-proof
[(((((((triple5) -> rule5)) -> rule8)) -> rule9))]
("Dave" "is" "nice" "-")
((((((triple5) -> (rule5 % int3))) -> (rule8 % int2))) -> (rule9 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
Dave is cold.
("Dave" "is" "cold" "+")
int3
Dave is young.
True
5
proof
[(((((((((triple5) -> rule5)) -> rule8)) -> rule9)) -> rule1))]
("Dave" "is" "young" "+")
((((((((triple5) -> (rule5 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule1 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is cold.
("Dave" "is" "cold" "+")
int4
Dave is not young.
False
5
inv-proof
[(((((((((triple5) -> rule5)) -> rule8)) -> rule9)) -> rule1))]
("Dave" "is" "young" "-")
((((((((triple5) -> (rule5 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule1 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is cold.
("Dave" "is" "cold" "+")
int4
Dave is quiet.
True
9
proof
[(((((((triple5) -> rule5)) -> rule8) ((((((((triple5) -> rule5)) -> rule8)) -> rule9)) -> rule1)) -> rule7))]
("Dave" "is" "quiet" "+")
((((((triple5) -> (rule5 % int5))) -> (rule8 % int4)) ((((((((triple5) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is blue.
("Dave" "is" "blue" "+")
int4
Dave is cold.
("Dave" "is" "cold" "+")
int5
Dave is not quiet.
False
9
inv-proof
[(((((((triple5) -> rule5)) -> rule8) ((((((((triple5) -> rule5)) -> rule8)) -> rule9)) -> rule1)) -> rule7))]
("Dave" "is" "quiet" "-")
((((((triple5) -> (rule5 % int5))) -> (rule8 % int4)) ((((((((triple5) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is blue.
("Dave" "is" "blue" "+")
int4
Dave is cold.
("Dave" "is" "cold" "+")
int5
Harry is not white.
Unknown
inv-rconc
[@3: Harry is white.[CWA. Example of deepest failure = (rule3 <- rule8 <- rule5 <- FAIL)]]
("Harry" "is" "white" "-")
Harry is quiet.
Unknown
rconc
[@4: Harry is quiet.[CWA. Example of deepest failure = (rule7 <- rule8 <- rule5 <- rule3 <- FAIL)]]
("Harry" "is" "quiet" "+")
Harry is not cold.
Unknown
inv-rconc
[@3: Harry is cold.[CWA. Example of deepest failure = (rule5 <- rule3 <- rule8 <- FAIL)]]
("Harry" "is" "cold" "-")
Harry is blue.
Unknown
rconc
[@3: Harry is blue.[CWA. Example of deepest failure = (rule8 <- rule5 <- rule3 <- FAIL)]]
("Harry" "is" "blue" "+")
Dave is not green.
Unknown
inv-random
[@0: Dave is green.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "green" "-")
Fiona is green.
Unknown
random
[@0: Fiona is green.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "green" "+")
@0: Bob is blue.[(triple1 OR ((triple2) -> rule8) OR ((((triple4) -> rule5)) -> rule8))] Bob is cold.[(triple2 OR ((triple4) -> rule5) OR ((((triple1) -> rule3)) -> rule5))] Bob is green.[(triple3)] Bob is white.[(triple4 OR ((triple1) -> rule3) OR ((((triple2) -> rule8)) -> rule3) OR ((triple2 ((triple1) -> rule9)) -> rule4) OR ((triple2 ((((triple2) -> rule8)) -> rule9)) -> rule4))] Dave is white.[(triple5)] Fiona is blue.[(triple6)] Harry is nice.[(triple7)] @1: Bob is nice.[(((triple1) -> rule9) OR ((((triple2) -> rule8)) -> rule9) OR ((((((triple4) -> rule5)) -> rule8)) -> rule9))] Dave is cold.[(((triple5) -> rule5))] Fiona is nice.[(((triple6) -> rule9))] Fiona is white.[(((triple6) -> rule3))] Harry is young.[(((triple7) -> rule1))] @2: Bob is young.[(((((triple1) -> rule9)) -> rule1) OR ((((((triple2) -> rule8)) -> rule9)) -> rule1) OR ((((((((triple4) -> rule5)) -> rule8)) -> rule9)) -> rule1))] Dave is blue.[(((((triple5) -> rule5)) -> rule8))] Fiona is cold.[(((((triple6) -> rule3)) -> rule5))] Fiona is young.[(((((triple6) -> rule9)) -> rule1))] @3: Bob is quiet.[(((triple1 ((((triple1) -> rule9)) -> rule1)) -> rule7) OR ((((triple2) -> rule8) ((((triple1) -> rule9)) -> rule1)) -> rule7) OR ((((((triple4) -> rule5)) -> rule8) ((((triple1) -> rule9)) -> rule1)) -> rule7) OR ((triple1 ((((((triple2) -> rule8)) -> rule9)) -> rule1)) -> rule7) OR ((((triple2) -> rule8) ((((((triple2) -> rule8)) -> rule9)) -> rule1)) -> rule7) OR ((((((triple4) -> rule5)) -> rule8) ((((((triple2) -> rule8)) -> rule9)) -> rule1)) -> rule7) OR ((triple1 ((((((((triple4) -> rule5)) -> rule8)) -> rule9)) -> rule1)) -> rule7) OR ((((triple2) -> rule8) ((((((((triple4) -> rule5)) -> rule8)) -> rule9)) -> rule1)) -> rule7) OR ((((((triple4) -> rule5)) -> rule8) ((((((((triple4) -> rule5)) -> rule8)) -> rule9)) -> rule1)) -> rule7))] Dave is nice.[(((((((triple5) -> rule5)) -> rule8)) -> rule9))] Fiona is quiet.[(((triple6 ((((triple6) -> rule9)) -> rule1)) -> rule7))] @4: Dave is young.[(((((((((triple5) -> rule5)) -> rule8)) -> rule9)) -> rule1))] @5: Dave is quiet.[(((((((triple5) -> rule5)) -> rule8) ((((((((triple5) -> rule5)) -> rule8)) -> rule9)) -> rule1)) -> rule7))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
((triple2) -> (rule8 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
((((triple4) -> (rule5 % int2))) -> (rule8 % int1))
Bob is blue.
("Bob" "is" "blue" "+")
int1
Bob is cold.
("Bob" "is" "cold" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
triple2
((triple4) -> (rule5 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
((((triple1) -> (rule3 % int2))) -> (rule5 % int1))
Bob is cold.
("Bob" "is" "cold" "+")
int1
Bob is white.
("Bob" "is" "white" "+")
int2
Bob is green.
("Bob" "is" "green" "+")
triple3
Bob is white.
("Bob" "is" "white" "+")
triple4
((triple1) -> (rule3 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
((((triple2) -> (rule8 % int2))) -> (rule3 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((triple2 ((triple1) -> (rule9 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((triple2 ((((triple2) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule4 % int1))
Bob is white.
("Bob" "is" "white" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Dave is white.
("Dave" "is" "white" "+")
triple5
Fiona is blue.
("Fiona" "is" "blue" "+")
triple6
Harry is nice.
("Harry" "is" "nice" "+")
triple7
Bob is nice.
("Bob" "is" "nice" "+")
((triple1) -> (rule9 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((((triple2) -> (rule8 % int2))) -> (rule9 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
((((((triple4) -> (rule5 % int3))) -> (rule8 % int2))) -> (rule9 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is blue.
("Bob" "is" "blue" "+")
int2
Bob is cold.
("Bob" "is" "cold" "+")
int3
Dave is cold.
("Dave" "is" "cold" "+")
((triple5) -> (rule5 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
((triple6) -> (rule9 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
((triple6) -> (rule3 % int1))
Fiona is white.
("Fiona" "is" "white" "+")
int1
Harry is young.
("Harry" "is" "young" "+")
((triple7) -> (rule1 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
((((triple1) -> (rule9 % int2))) -> (rule1 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((((((triple2) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule1 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
((((((((triple4) -> (rule5 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule1 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is blue.
("Bob" "is" "blue" "+")
int3
Bob is cold.
("Bob" "is" "cold" "+")
int4
Dave is blue.
("Dave" "is" "blue" "+")
((((triple5) -> (rule5 % int2))) -> (rule8 % int1))
Dave is blue.
("Dave" "is" "blue" "+")
int1
Dave is cold.
("Dave" "is" "cold" "+")
int2
Fiona is cold.
("Fiona" "is" "cold" "+")
((((triple6) -> (rule3 % int2))) -> (rule5 % int1))
Fiona is cold.
("Fiona" "is" "cold" "+")
int1
Fiona is white.
("Fiona" "is" "white" "+")
int2
Fiona is young.
("Fiona" "is" "young" "+")
((((triple6) -> (rule9 % int2))) -> (rule1 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Bob is quiet.
("Bob" "is" "quiet" "+")
((triple1 ((((triple1) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
((((triple2) -> (rule8 % int4)) ((((triple1) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
((((((triple4) -> (rule5 % int5))) -> (rule8 % int4)) ((((triple1) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is cold.
("Bob" "is" "cold" "+")
int5
((triple1 ((((((triple2) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
((((triple2) -> (rule8 % int4)) ((((((triple2) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
((((((triple4) -> (rule5 % int5))) -> (rule8 % int4)) ((((((triple2) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is cold.
("Bob" "is" "cold" "+")
int5
((triple1 ((((((((triple4) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is cold.
("Bob" "is" "cold" "+")
int5
((((triple2) -> (rule8 % int5)) ((((((((triple4) -> (rule5 % int4))) -> (rule8 % int5))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is cold.
("Bob" "is" "cold" "+")
int4
Bob is blue.
("Bob" "is" "blue" "+")
int5
((((((triple4) -> (rule5 % int5))) -> (rule8 % int4)) ((((((((triple4) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Bob is quiet.
("Bob" "is" "quiet" "+")
int1
Bob is young.
("Bob" "is" "young" "+")
int2
Bob is nice.
("Bob" "is" "nice" "+")
int3
Bob is blue.
("Bob" "is" "blue" "+")
int4
Bob is cold.
("Bob" "is" "cold" "+")
int5
Dave is nice.
("Dave" "is" "nice" "+")
((((((triple5) -> (rule5 % int3))) -> (rule8 % int2))) -> (rule9 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is blue.
("Dave" "is" "blue" "+")
int2
Dave is cold.
("Dave" "is" "cold" "+")
int3
Fiona is quiet.
("Fiona" "is" "quiet" "+")
((triple6 ((((triple6) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Fiona is quiet.
("Fiona" "is" "quiet" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Dave is young.
("Dave" "is" "young" "+")
((((((((triple5) -> (rule5 % int4))) -> (rule8 % int3))) -> (rule9 % int2))) -> (rule1 % int1))
Dave is young.
("Dave" "is" "young" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is blue.
("Dave" "is" "blue" "+")
int3
Dave is cold.
("Dave" "is" "cold" "+")
int4
Dave is quiet.
("Dave" "is" "quiet" "+")
((((((triple5) -> (rule5 % int5))) -> (rule8 % int4)) ((((((((triple5) -> (rule5 % int5))) -> (rule8 % int4))) -> (rule9 % int3))) -> (rule1 % int2))) -> (rule7 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is young.
("Dave" "is" "young" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is blue.
("Dave" "is" "blue" "+")
int4
Dave is cold.
("Dave" "is" "cold" "+")
int5