Charlie is cold. Charlie is furry. Charlie is smart. Charlie is young. Dave is big. Dave is young. Erin is round. Erin is smart. Harry is furry. Harry is nice. Harry is smart. Furry, cold things are round. All big, round things are nice. Round things are young. If something is young and round then it is furry. If something is furry and young then it is cold. If something is cold then it is big.
Charlie is cold.
("Charlie" "is" "cold" "+")
Charlie is furry.
("Charlie" "is" "furry" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Dave is big.
("Dave" "is" "big" "+")
Dave is young.
("Dave" "is" "young" "+")
Erin is round.
("Erin" "is" "round" "+")
Erin is smart.
("Erin" "is" "smart" "+")
Harry is furry.
("Harry" "is" "furry" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is smart.
("Harry" "is" "smart" "+")
Furry, cold things are round.
((("something" "is" "furry" "+") ("something" "is" "cold" "+")) -> ("something" "is" "round" "+"))
All big, round things are nice.
((("something" "is" "big" "+") ("something" "is" "round" "+")) -> ("something" "is" "nice" "+"))
Round things are young.
((("something" "is" "round" "+")) -> ("something" "is" "young" "+"))
If something is young and round then it is furry.
((("something" "is" "young" "+") ("something" "is" "round" "+")) -> ("something" "is" "furry" "+"))
If something is furry and young then it is cold.
((("something" "is" "furry" "+") ("something" "is" "young" "+")) -> ("something" "is" "cold" "+"))
If something is cold then it is big.
((("something" "is" "cold" "+")) -> ("something" "is" "big" "+"))
Charlie is furry.
True
1
proof
[(triple2)]
("Charlie" "is" "furry" "+")
triple2
Charlie is not furry.
False
1
inv-proof
[(triple2)]
("Charlie" "is" "furry" "-")
triple2
Charlie is big.
True
2
proof
[(((triple1) -> rule6) OR ((((triple2 triple4) -> rule5)) -> rule6))]
("Charlie" "is" "big" "+")
((triple1) -> (rule6 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
((((triple2 triple4) -> (rule5 % int2))) -> (rule6 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Erin is not young.
False
2
inv-proof
[(((triple7) -> rule3))]
("Erin" "is" "young" "-")
((triple7) -> (rule3 % int1))
Erin is young.
("Erin" "is" "young" "+")
int1
Charlie is nice.
True
6
proof
[(((((triple1) -> rule6) ((triple2 triple1) -> rule1)) -> rule2) OR ((((triple1) -> rule6) ((triple2 ((triple2 triple4) -> rule5)) -> rule1)) -> rule2) OR ((((((triple2 triple4) -> rule5)) -> rule6) ((triple2 triple1) -> rule1)) -> rule2) OR ((((((triple2 triple4) -> rule5)) -> rule6) ((triple2 ((triple2 triple4) -> rule5)) -> rule1)) -> rule2))]
("Charlie" "is" "nice" "+")
((((triple1) -> (rule6 % int3)) ((triple2 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
((((triple1) -> (rule6 % int4)) ((triple2 ((triple2 triple4) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is cold.
("Charlie" "is" "cold" "+")
int3
Charlie is big.
("Charlie" "is" "big" "+")
int4
((((((triple2 triple4) -> (rule5 % int4))) -> (rule6 % int3)) ((triple2 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
((((((triple2 triple4) -> (rule5 % int4))) -> (rule6 % int3)) ((triple2 ((triple2 triple4) -> (rule5 % int4))) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
Charlie is not nice.
False
6
inv-proof
[(((((triple1) -> rule6) ((triple2 triple1) -> rule1)) -> rule2) OR ((((triple1) -> rule6) ((triple2 ((triple2 triple4) -> rule5)) -> rule1)) -> rule2) OR ((((((triple2 triple4) -> rule5)) -> rule6) ((triple2 triple1) -> rule1)) -> rule2) OR ((((((triple2 triple4) -> rule5)) -> rule6) ((triple2 ((triple2 triple4) -> rule5)) -> rule1)) -> rule2))]
("Charlie" "is" "nice" "-")
((((triple1) -> (rule6 % int3)) ((triple2 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
((((triple1) -> (rule6 % int4)) ((triple2 ((triple2 triple4) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is cold.
("Charlie" "is" "cold" "+")
int3
Charlie is big.
("Charlie" "is" "big" "+")
int4
((((((triple2 triple4) -> (rule5 % int4))) -> (rule6 % int3)) ((triple2 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
((((((triple2 triple4) -> (rule5 % int4))) -> (rule6 % int3)) ((triple2 ((triple2 triple4) -> (rule5 % int4))) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
Erin is cold.
True
7
proof
[(((((((triple7) -> rule3) triple7) -> rule4) ((triple7) -> rule3)) -> rule5))]
("Erin" "is" "cold" "+")
((((((triple7) -> (rule3 % int3)) triple7) -> (rule4 % int2)) ((triple7) -> (rule3 % int3))) -> (rule5 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is young.
("Erin" "is" "young" "+")
int3
Erin is not cold.
False
7
inv-proof
[(((((((triple7) -> rule3) triple7) -> rule4) ((triple7) -> rule3)) -> rule5))]
("Erin" "is" "cold" "-")
((((((triple7) -> (rule3 % int3)) triple7) -> (rule4 % int2)) ((triple7) -> (rule3 % int3))) -> (rule5 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is young.
("Erin" "is" "young" "+")
int3
Erin is big.
True
8
proof
[(((((((((triple7) -> rule3) triple7) -> rule4) ((triple7) -> rule3)) -> rule5)) -> rule6))]
("Erin" "is" "big" "+")
((((((((triple7) -> (rule3 % int4)) triple7) -> (rule4 % int3)) ((triple7) -> (rule3 % int4))) -> (rule5 % int2))) -> (rule6 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Erin is young.
("Erin" "is" "young" "+")
int4
Erin is not big.
False
8
inv-proof
[(((((((((triple7) -> rule3) triple7) -> rule4) ((triple7) -> rule3)) -> rule5)) -> rule6))]
("Erin" "is" "big" "-")
((((((((triple7) -> (rule3 % int4)) triple7) -> (rule4 % int3)) ((triple7) -> (rule3 % int4))) -> (rule5 % int2))) -> (rule6 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Erin is young.
("Erin" "is" "young" "+")
int4
Erin is nice.
True
10
proof
[(((((((((((triple7) -> rule3) triple7) -> rule4) ((triple7) -> rule3)) -> rule5)) -> rule6) triple7) -> rule2))]
("Erin" "is" "nice" "+")
((((((((((triple7) -> (rule3 % int5)) triple7) -> (rule4 % int4)) ((triple7) -> (rule3 % int5))) -> (rule5 % int3))) -> (rule6 % int2)) triple7) -> (rule2 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is big.
("Erin" "is" "big" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
int3
Erin is furry.
("Erin" "is" "furry" "+")
int4
Erin is young.
("Erin" "is" "young" "+")
int5
Erin is not nice.
False
10
inv-proof
[(((((((((((triple7) -> rule3) triple7) -> rule4) ((triple7) -> rule3)) -> rule5)) -> rule6) triple7) -> rule2))]
("Erin" "is" "nice" "-")
((((((((((triple7) -> (rule3 % int5)) triple7) -> (rule4 % int4)) ((triple7) -> (rule3 % int5))) -> (rule5 % int3))) -> (rule6 % int2)) triple7) -> (rule2 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is big.
("Erin" "is" "big" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
int3
Erin is furry.
("Erin" "is" "furry" "+")
int4
Erin is young.
("Erin" "is" "young" "+")
int5
Harry is not big.
Unknown
inv-rconc
[@4: Harry is big.[CWA. Example of deepest failure = (rule6 <- rule5 <- rule3 <- rule1 <- FAIL)]]
("Harry" "is" "big" "-")
Dave is cold.
Unknown
rconc
[@3: Dave is cold.[CWA. Example of deepest failure = (rule5 <- rule4 <- rule1 <- FAIL)]]
("Dave" "is" "cold" "+")
Harry is not cold.
Unknown
inv-rconc
[@3: Harry is cold.[CWA. Example of deepest failure = (rule5 <- rule3 <- rule1 <- FAIL)]]
("Harry" "is" "cold" "-")
Harry is young.
Unknown
rconc
[@3: Harry is young.[CWA. Example of deepest failure = (rule3 <- rule1 <- rule5 <- FAIL)]]
("Harry" "is" "young" "+")
Dave is not nice.
Unknown
inv-rconc
[@3: Dave is nice.[CWA. Example of deepest failure = (rule2 <- rule1 <- rule4 <- FAIL)]]
("Dave" "is" "nice" "-")
Harry is round.
Unknown
rconc
[@3: Harry is round.[CWA. Example of deepest failure = (rule1 <- rule5 <- rule3 <- FAIL)]]
("Harry" "is" "round" "+")
@0: Charlie is cold.[(triple1 OR ((triple2 triple4) -> rule5))] Charlie is furry.[(triple2)] Charlie is smart.[(triple3)] Charlie is young.[(triple4 OR ((((triple2 triple1) -> rule1)) -> rule3))] Dave is big.[(triple5)] Dave is young.[(triple6)] Erin is round.[(triple7)] Erin is smart.[(triple8)] Harry is furry.[(triple9)] Harry is nice.[(triple10)] Harry is smart.[(triple11)] @1: Charlie is big.[(((triple1) -> rule6) OR ((((triple2 triple4) -> rule5)) -> rule6))] Charlie is round.[(((triple2 triple1) -> rule1) OR ((triple2 ((triple2 triple4) -> rule5)) -> rule1))] Erin is young.[(((triple7) -> rule3))] @2: Charlie is nice.[(((((triple1) -> rule6) ((triple2 triple1) -> rule1)) -> rule2) OR ((((triple1) -> rule6) ((triple2 ((triple2 triple4) -> rule5)) -> rule1)) -> rule2) OR ((((((triple2 triple4) -> rule5)) -> rule6) ((triple2 triple1) -> rule1)) -> rule2) OR ((((((triple2 triple4) -> rule5)) -> rule6) ((triple2 ((triple2 triple4) -> rule5)) -> rule1)) -> rule2))] Erin is furry.[(((((triple7) -> rule3) triple7) -> rule4))] @3: Erin is cold.[(((((((triple7) -> rule3) triple7) -> rule4) ((triple7) -> rule3)) -> rule5))] @4: Erin is big.[(((((((((triple7) -> rule3) triple7) -> rule4) ((triple7) -> rule3)) -> rule5)) -> rule6))] @5: Erin is nice.[(((((((((((triple7) -> rule3) triple7) -> rule4) ((triple7) -> rule3)) -> rule5)) -> rule6) triple7) -> rule2))]
Charlie is cold.
("Charlie" "is" "cold" "+")
triple1
((triple2 triple4) -> (rule5 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is furry.
("Charlie" "is" "furry" "+")
triple2
Charlie is smart.
("Charlie" "is" "smart" "+")
triple3
Charlie is young.
("Charlie" "is" "young" "+")
triple4
((((triple2 triple1) -> (rule1 % int2))) -> (rule3 % int1))
Charlie is young.
("Charlie" "is" "young" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Dave is big.
("Dave" "is" "big" "+")
triple5
Dave is young.
("Dave" "is" "young" "+")
triple6
Erin is round.
("Erin" "is" "round" "+")
triple7
Erin is smart.
("Erin" "is" "smart" "+")
triple8
Harry is furry.
("Harry" "is" "furry" "+")
triple9
Harry is nice.
("Harry" "is" "nice" "+")
triple10
Harry is smart.
("Harry" "is" "smart" "+")
triple11
Charlie is big.
("Charlie" "is" "big" "+")
((triple1) -> (rule6 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
((((triple2 triple4) -> (rule5 % int2))) -> (rule6 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Charlie is round.
("Charlie" "is" "round" "+")
((triple2 triple1) -> (rule1 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
((triple2 ((triple2 triple4) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is cold.
("Charlie" "is" "cold" "+")
int2
Erin is young.
("Erin" "is" "young" "+")
((triple7) -> (rule3 % int1))
Erin is young.
("Erin" "is" "young" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
((((triple1) -> (rule6 % int3)) ((triple2 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
((((triple1) -> (rule6 % int4)) ((triple2 ((triple2 triple4) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is cold.
("Charlie" "is" "cold" "+")
int3
Charlie is big.
("Charlie" "is" "big" "+")
int4
((((((triple2 triple4) -> (rule5 % int4))) -> (rule6 % int3)) ((triple2 triple1) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
((((((triple2 triple4) -> (rule5 % int4))) -> (rule6 % int3)) ((triple2 ((triple2 triple4) -> (rule5 % int4))) -> (rule1 % int2))) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is cold.
("Charlie" "is" "cold" "+")
int4
Erin is furry.
("Erin" "is" "furry" "+")
((((triple7) -> (rule3 % int2)) triple7) -> (rule4 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Erin is young.
("Erin" "is" "young" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
((((((triple7) -> (rule3 % int3)) triple7) -> (rule4 % int2)) ((triple7) -> (rule3 % int3))) -> (rule5 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is furry.
("Erin" "is" "furry" "+")
int2
Erin is young.
("Erin" "is" "young" "+")
int3
Erin is big.
("Erin" "is" "big" "+")
((((((((triple7) -> (rule3 % int4)) triple7) -> (rule4 % int3)) ((triple7) -> (rule3 % int4))) -> (rule5 % int2))) -> (rule6 % int1))
Erin is big.
("Erin" "is" "big" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
int2
Erin is furry.
("Erin" "is" "furry" "+")
int3
Erin is young.
("Erin" "is" "young" "+")
int4
Erin is nice.
("Erin" "is" "nice" "+")
((((((((((triple7) -> (rule3 % int5)) triple7) -> (rule4 % int4)) ((triple7) -> (rule3 % int5))) -> (rule5 % int3))) -> (rule6 % int2)) triple7) -> (rule2 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is big.
("Erin" "is" "big" "+")
int2
Erin is cold.
("Erin" "is" "cold" "+")
int3
Erin is furry.
("Erin" "is" "furry" "+")
int4
Erin is young.
("Erin" "is" "young" "+")
int5