Bob is blue. Bob is furry. Bob is rough. Bob is young. Erin is blue. Erin is nice. Fiona is white. Harry is blue. Harry is rough. Harry is smart. Harry is white. Harry is young. Smart things are nice. All nice, blue things are furry. Blue, nice things are young. If something is white then it is blue. If something is white and young then it is smart. If something is furry then it is nice. If something is blue then it is furry. If something is nice then it is furry.
Bob is blue.
("Bob" "is" "blue" "+")
Bob is furry.
("Bob" "is" "furry" "+")
Bob is rough.
("Bob" "is" "rough" "+")
Bob is young.
("Bob" "is" "young" "+")
Erin is blue.
("Erin" "is" "blue" "+")
Erin is nice.
("Erin" "is" "nice" "+")
Fiona is white.
("Fiona" "is" "white" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is rough.
("Harry" "is" "rough" "+")
Harry is smart.
("Harry" "is" "smart" "+")
Harry is white.
("Harry" "is" "white" "+")
Harry is young.
("Harry" "is" "young" "+")
Smart things are nice.
((("something" "is" "smart" "+")) -> ("something" "is" "nice" "+"))
All nice, blue things are furry.
((("something" "is" "nice" "+") ("something" "is" "blue" "+")) -> ("something" "is" "furry" "+"))
Blue, nice things are young.
((("something" "is" "blue" "+") ("something" "is" "nice" "+")) -> ("something" "is" "young" "+"))
If something is white then it is blue.
((("something" "is" "white" "+")) -> ("something" "is" "blue" "+"))
If something is white and young then it is smart.
((("something" "is" "white" "+") ("something" "is" "young" "+")) -> ("something" "is" "smart" "+"))
If something is furry then it is nice.
((("something" "is" "furry" "+")) -> ("something" "is" "nice" "+"))
If something is blue then it is furry.
((("something" "is" "blue" "+")) -> ("something" "is" "furry" "+"))
If something is nice then it is furry.
((("something" "is" "nice" "+")) -> ("something" "is" "furry" "+"))
Erin is blue.
True
1
proof
[(triple5)]
("Erin" "is" "blue" "+")
triple5
Harry is not rough.
False
1
inv-proof
[(triple9)]
("Harry" "is" "rough" "-")
triple9
Bob is nice.
True
2
proof
[(((triple2) -> rule6) OR ((((triple1) -> rule7)) -> rule6))]
("Bob" "is" "nice" "+")
((triple2) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((((triple1) -> (rule7 % int2))) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Fiona is not blue.
False
2
inv-proof
[(((triple7) -> rule4))]
("Fiona" "is" "blue" "-")
((triple7) -> (rule4 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Fiona is furry.
True
3
proof
[(((((triple7) -> rule4)) -> rule7))]
("Fiona" "is" "furry" "+")
((((triple7) -> (rule4 % int2))) -> (rule7 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is not furry.
False
3
inv-proof
[(((((triple7) -> rule4)) -> rule7))]
("Fiona" "is" "furry" "-")
((((triple7) -> (rule4 % int2))) -> (rule7 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is nice.
True
4
proof
[(((((((triple7) -> rule4)) -> rule7)) -> rule6))]
("Fiona" "is" "nice" "+")
((((((triple7) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Fiona is not nice.
False
4
inv-proof
[(((((((triple7) -> rule4)) -> rule7)) -> rule6))]
("Fiona" "is" "nice" "-")
((((((triple7) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Fiona is young.
True
7
proof
[(((((triple7) -> rule4) ((((((triple7) -> rule4)) -> rule7)) -> rule6)) -> rule3))]
("Fiona" "is" "young" "+")
((((triple7) -> (rule4 % int4)) ((((((triple7) -> (rule4 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
int4
Fiona is not young.
False
7
inv-proof
[(((((triple7) -> rule4) ((((((triple7) -> rule4)) -> rule7)) -> rule6)) -> rule3))]
("Fiona" "is" "young" "-")
((((triple7) -> (rule4 % int4)) ((((((triple7) -> (rule4 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
int4
Fiona is smart.
True
9
proof
[(((triple7 ((((triple7) -> rule4) ((((((triple7) -> rule4)) -> rule7)) -> rule6)) -> rule3)) -> rule5))]
("Fiona" "is" "smart" "+")
((triple7 ((((triple7) -> (rule4 % int5)) ((((((triple7) -> (rule4 % int5))) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Fiona is smart.
("Fiona" "is" "smart" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
int5
Fiona is not smart.
False
9
inv-proof
[(((triple7 ((((triple7) -> rule4) ((((((triple7) -> rule4)) -> rule7)) -> rule6)) -> rule3)) -> rule5))]
("Fiona" "is" "smart" "-")
((triple7 ((((triple7) -> (rule4 % int5)) ((((((triple7) -> (rule4 % int5))) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Fiona is smart.
("Fiona" "is" "smart" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
int5
Bob is not smart.
Unknown
inv-rconc
[@1: Bob is smart.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Bob" "is" "smart" "-")
Erin is smart.
Unknown
rconc
[@1: Erin is smart.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Erin" "is" "smart" "+")
Erin is not rough.
Unknown
inv-random
[@0: Erin is rough.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "rough" "-")
Bob is white.
Unknown
random
[@0: Bob is white.[CWA. Example of deepest failure = (FAIL)]]
("Bob" "is" "white" "+")
Erin is not white.
Unknown
inv-random
[@0: Erin is white.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "white" "-")
Fiona is rough.
Unknown
random
[@0: Fiona is rough.[CWA. Example of deepest failure = (FAIL)]]
("Fiona" "is" "rough" "+")
@0: Bob is blue.[(triple1)] Bob is furry.[(triple2 OR ((triple1) -> rule7))] Bob is rough.[(triple3)] Bob is young.[(triple4 OR ((triple1 ((triple2) -> rule6)) -> rule3) OR ((triple1 ((((triple1) -> rule7)) -> rule6)) -> rule3))] Erin is blue.[(triple5)] Erin is nice.[(triple6 OR ((((triple5) -> rule7)) -> rule6))] Fiona is white.[(triple7)] Harry is blue.[(triple8 OR ((triple11) -> rule4))] Harry is rough.[(triple9)] Harry is smart.[(triple10 OR ((triple11 triple12) -> rule5) OR ((triple11 ((triple8 ((((triple8) -> rule7)) -> rule6)) -> rule3)) -> rule5) OR ((triple11 ((((triple11) -> rule4) ((((triple8) -> rule7)) -> rule6)) -> rule3)) -> rule5) OR ((triple11 ((triple8 ((((((triple11) -> rule4)) -> rule7)) -> rule6)) -> rule3)) -> rule5) OR ((triple11 ((((triple11) -> rule4) ((((((triple11) -> rule4)) -> rule7)) -> rule6)) -> rule3)) -> rule5))] Harry is white.[(triple11)] Harry is young.[(triple12 OR ((triple8 ((triple10) -> rule1)) -> rule3) OR ((((triple11) -> rule4) ((triple10) -> rule1)) -> rule3) OR ((triple8 ((((triple8) -> rule7)) -> rule6)) -> rule3) OR ((((triple11) -> rule4) ((((triple8) -> rule7)) -> rule6)) -> rule3) OR ((triple8 ((((((triple11) -> rule4)) -> rule7)) -> rule6)) -> rule3) OR ((((triple11) -> rule4) ((((((triple11) -> rule4)) -> rule7)) -> rule6)) -> rule3))] @1: Bob is nice.[(((triple2) -> rule6) OR ((((triple1) -> rule7)) -> rule6))] Erin is furry.[(((triple5) -> rule7) OR ((triple6) -> rule8) OR ((triple6 triple5) -> rule2))] Erin is young.[(((triple5 triple6) -> rule3) OR ((triple5 ((((triple5) -> rule7)) -> rule6)) -> rule3))] Fiona is blue.[(((triple7) -> rule4))] Harry is furry.[(((triple8) -> rule7) OR ((((triple10) -> rule1)) -> rule8) OR ((((triple11) -> rule4)) -> rule7) OR ((((triple10) -> rule1) triple8) -> rule2) OR ((((triple10) -> rule1) ((triple11) -> rule4)) -> rule2) OR ((((((triple11 triple12) -> rule5)) -> rule1)) -> rule8) OR ((((((triple11 triple12) -> rule5)) -> rule1) triple8) -> rule2) OR ((((((triple11 triple12) -> rule5)) -> rule1) ((triple11) -> rule4)) -> rule2))] Harry is nice.[(((triple10) -> rule1) OR ((((triple8) -> rule7)) -> rule6) OR ((((triple11 triple12) -> rule5)) -> rule1) OR ((((((triple11) -> rule4)) -> rule7)) -> rule6))] @2: Fiona is furry.[(((((triple7) -> rule4)) -> rule7))] @3: Fiona is nice.[(((((((triple7) -> rule4)) -> rule7)) -> rule6))] @4: Fiona is young.[(((((triple7) -> rule4) ((((((triple7) -> rule4)) -> rule7)) -> rule6)) -> rule3))] @5: Fiona is smart.[(((triple7 ((((triple7) -> rule4) ((((((triple7) -> rule4)) -> rule7)) -> rule6)) -> rule3)) -> rule5))]
Bob is blue.
("Bob" "is" "blue" "+")
triple1
Bob is furry.
("Bob" "is" "furry" "+")
triple2
((triple1) -> (rule7 % int1))
Bob is furry.
("Bob" "is" "furry" "+")
int1
Bob is rough.
("Bob" "is" "rough" "+")
triple3
Bob is young.
("Bob" "is" "young" "+")
triple4
((triple1 ((triple2) -> (rule6 % int2))) -> (rule3 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
((triple1 ((((triple1) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Bob is young.
("Bob" "is" "young" "+")
int1
Bob is nice.
("Bob" "is" "nice" "+")
int2
Bob is furry.
("Bob" "is" "furry" "+")
int3
Erin is blue.
("Erin" "is" "blue" "+")
triple5
Erin is nice.
("Erin" "is" "nice" "+")
triple6
((((triple5) -> (rule7 % int2))) -> (rule6 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Fiona is white.
("Fiona" "is" "white" "+")
triple7
Harry is blue.
("Harry" "is" "blue" "+")
triple8
((triple11) -> (rule4 % int1))
Harry is blue.
("Harry" "is" "blue" "+")
int1
Harry is rough.
("Harry" "is" "rough" "+")
triple9
Harry is smart.
("Harry" "is" "smart" "+")
triple10
((triple11 triple12) -> (rule5 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
((triple11 ((triple8 ((((triple8) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Harry is young.
("Harry" "is" "young" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
((triple11 ((((triple11) -> (rule4 % int5)) ((((triple8) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Harry is young.
("Harry" "is" "young" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
Harry is blue.
("Harry" "is" "blue" "+")
int5
((triple11 ((triple8 ((((((triple11) -> (rule4 % int5))) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Harry is young.
("Harry" "is" "young" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
Harry is blue.
("Harry" "is" "blue" "+")
int5
((triple11 ((((triple11) -> (rule4 % int5)) ((((((triple11) -> (rule4 % int5))) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Harry is smart.
("Harry" "is" "smart" "+")
int1
Harry is young.
("Harry" "is" "young" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is furry.
("Harry" "is" "furry" "+")
int4
Harry is blue.
("Harry" "is" "blue" "+")
int5
Harry is white.
("Harry" "is" "white" "+")
triple11
Harry is young.
("Harry" "is" "young" "+")
triple12
((triple8 ((triple10) -> (rule1 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((triple11) -> (rule4 % int3)) ((triple10) -> (rule1 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
((triple8 ((((triple8) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
((((triple11) -> (rule4 % int4)) ((((triple8) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
((triple8 ((((((triple11) -> (rule4 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
((((triple11) -> (rule4 % int4)) ((((((triple11) -> (rule4 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is furry.
("Harry" "is" "furry" "+")
int3
Harry is blue.
("Harry" "is" "blue" "+")
int4
Bob is nice.
("Bob" "is" "nice" "+")
((triple2) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
((((triple1) -> (rule7 % int2))) -> (rule6 % int1))
Bob is nice.
("Bob" "is" "nice" "+")
int1
Bob is furry.
("Bob" "is" "furry" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
((triple5) -> (rule7 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
((triple6) -> (rule8 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
((triple6 triple5) -> (rule2 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Erin is young.
("Erin" "is" "young" "+")
((triple5 triple6) -> (rule3 % int1))
Erin is young.
("Erin" "is" "young" "+")
int1
((triple5 ((((triple5) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Erin is young.
("Erin" "is" "young" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
((triple7) -> (rule4 % int1))
Fiona is blue.
("Fiona" "is" "blue" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
((triple8) -> (rule7 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
((((triple10) -> (rule1 % int2))) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((triple11) -> (rule4 % int2))) -> (rule7 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
((((triple10) -> (rule1 % int2)) triple8) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((triple10) -> (rule1 % int3)) ((triple11) -> (rule4 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple11 triple12) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule8 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
int3
((((((triple11 triple12) -> (rule5 % int3))) -> (rule1 % int2)) triple8) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is smart.
("Harry" "is" "smart" "+")
int3
((((((triple11 triple12) -> (rule5 % int4))) -> (rule1 % int3)) ((triple11) -> (rule4 % int2))) -> (rule2 % int1))
Harry is furry.
("Harry" "is" "furry" "+")
int1
Harry is blue.
("Harry" "is" "blue" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is smart.
("Harry" "is" "smart" "+")
int4
Harry is nice.
("Harry" "is" "nice" "+")
((triple10) -> (rule1 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((((triple8) -> (rule7 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
((((triple11 triple12) -> (rule5 % int2))) -> (rule1 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is smart.
("Harry" "is" "smart" "+")
int2
((((((triple11) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is furry.
("Harry" "is" "furry" "+")
int2
Harry is blue.
("Harry" "is" "blue" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
((((triple7) -> (rule4 % int2))) -> (rule7 % int1))
Fiona is furry.
("Fiona" "is" "furry" "+")
int1
Fiona is blue.
("Fiona" "is" "blue" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
((((((triple7) -> (rule4 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Fiona is nice.
("Fiona" "is" "nice" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
int2
Fiona is blue.
("Fiona" "is" "blue" "+")
int3
Fiona is young.
("Fiona" "is" "young" "+")
((((triple7) -> (rule4 % int4)) ((((((triple7) -> (rule4 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Fiona is young.
("Fiona" "is" "young" "+")
int1
Fiona is nice.
("Fiona" "is" "nice" "+")
int2
Fiona is furry.
("Fiona" "is" "furry" "+")
int3
Fiona is blue.
("Fiona" "is" "blue" "+")
int4
Fiona is smart.
("Fiona" "is" "smart" "+")
((triple7 ((((triple7) -> (rule4 % int5)) ((((((triple7) -> (rule4 % int5))) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule5 % int1))
Fiona is smart.
("Fiona" "is" "smart" "+")
int1
Fiona is young.
("Fiona" "is" "young" "+")
int2
Fiona is nice.
("Fiona" "is" "nice" "+")
int3
Fiona is furry.
("Fiona" "is" "furry" "+")
int4
Fiona is blue.
("Fiona" "is" "blue" "+")
int5