Charlie is big. Charlie is nice. Charlie is round. Charlie is white. Charlie is young. Dave is big. Dave is round. Erin is big. Erin is furry. Erin is young. All big things are round. Young things are nice. All big things are furry. All white things are nice. All white things are big. If something is round then it is cold. White things are furry. All nice, white things are cold.
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is nice.
("Charlie" "is" "nice" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Charlie is white.
("Charlie" "is" "white" "+")
Charlie is young.
("Charlie" "is" "young" "+")
Dave is big.
("Dave" "is" "big" "+")
Dave is round.
("Dave" "is" "round" "+")
Erin is big.
("Erin" "is" "big" "+")
Erin is furry.
("Erin" "is" "furry" "+")
Erin is young.
("Erin" "is" "young" "+")
All big things are round.
((("something" "is" "big" "+")) -> ("something" "is" "round" "+"))
Young things are nice.
((("something" "is" "young" "+")) -> ("something" "is" "nice" "+"))
All big things are furry.
((("something" "is" "big" "+")) -> ("something" "is" "furry" "+"))
All white things are nice.
((("something" "is" "white" "+")) -> ("something" "is" "nice" "+"))
All white things are big.
((("something" "is" "white" "+")) -> ("something" "is" "big" "+"))
If something is round then it is cold.
((("something" "is" "round" "+")) -> ("something" "is" "cold" "+"))
White things are furry.
((("something" "is" "white" "+")) -> ("something" "is" "furry" "+"))
All nice, white things are cold.
((("something" "is" "nice" "+") ("something" "is" "white" "+")) -> ("something" "is" "cold" "+"))
Charlie is nice.
True
1
proof
[(triple2 OR ((triple4) -> rule4) OR ((triple5) -> rule2))]
("Charlie" "is" "nice" "+")
triple2
((triple4) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((triple5) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Erin is not young.
False
1
inv-proof
[(triple10)]
("Erin" "is" "young" "-")
triple10
Erin is nice.
True
2
proof
[(((triple10) -> rule2))]
("Erin" "is" "nice" "+")
((triple10) -> (rule2 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is not nice.
False
2
inv-proof
[(((triple10) -> rule2))]
("Erin" "is" "nice" "-")
((triple10) -> (rule2 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is cold.
True
3
proof
[(((((triple8) -> rule1)) -> rule6))]
("Erin" "is" "cold" "+")
((((triple8) -> (rule1 % int2))) -> (rule6 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is round.
("Erin" "is" "round" "+")
int2
Erin is not cold.
False
3
inv-proof
[(((((triple8) -> rule1)) -> rule6))]
("Erin" "is" "cold" "-")
((((triple8) -> (rule1 % int2))) -> (rule6 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is round.
("Erin" "is" "round" "+")
int2
Dave is not nice.
Unknown
inv-rconc
[@1: Dave is nice.[CWA. Example of deepest failure = (rule2 <- FAIL)]]
("Dave" "is" "nice" "-")
Erin is white.
Unknown
random
[@0: Erin is white.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "white" "+")
Dave is not white.
Unknown
inv-random
[@0: Dave is white.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "white" "-")
Dave is young.
Unknown
random
[@0: Dave is young.[CWA. Example of deepest failure = (FAIL)]]
("Dave" "is" "young" "+")
@0: Charlie is big.[(triple1 OR ((triple4) -> rule5))] Charlie is nice.[(triple2 OR ((triple4) -> rule4) OR ((triple5) -> rule2))] Charlie is round.[(triple3 OR ((triple1) -> rule1) OR ((((triple4) -> rule5)) -> rule1))] Charlie is white.[(triple4)] Charlie is young.[(triple5)] Dave is big.[(triple6)] Dave is round.[(triple7 OR ((triple6) -> rule1))] Erin is big.[(triple8)] Erin is furry.[(triple9 OR ((triple8) -> rule3))] Erin is young.[(triple10)] @1: Charlie is cold.[(((triple3) -> rule6) OR ((triple2 triple4) -> rule8) OR ((((triple1) -> rule1)) -> rule6) OR ((((triple4) -> rule4) triple4) -> rule8) OR ((((triple5) -> rule2) triple4) -> rule8) OR ((((((triple4) -> rule5)) -> rule1)) -> rule6))] Charlie is furry.[(((triple1) -> rule3) OR ((triple4) -> rule7) OR ((((triple4) -> rule5)) -> rule3))] Dave is cold.[(((triple7) -> rule6) OR ((((triple6) -> rule1)) -> rule6))] Dave is furry.[(((triple6) -> rule3))] Erin is nice.[(((triple10) -> rule2))] Erin is round.[(((triple8) -> rule1))] @2: Erin is cold.[(((((triple8) -> rule1)) -> rule6))]
Charlie is big.
("Charlie" "is" "big" "+")
triple1
((triple4) -> (rule5 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
triple2
((triple4) -> (rule4 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
((triple5) -> (rule2 % int1))
Charlie is nice.
("Charlie" "is" "nice" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
triple3
((triple1) -> (rule1 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
((((triple4) -> (rule5 % int2))) -> (rule1 % int1))
Charlie is round.
("Charlie" "is" "round" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Charlie is white.
("Charlie" "is" "white" "+")
triple4
Charlie is young.
("Charlie" "is" "young" "+")
triple5
Dave is big.
("Dave" "is" "big" "+")
triple6
Dave is round.
("Dave" "is" "round" "+")
triple7
((triple6) -> (rule1 % int1))
Dave is round.
("Dave" "is" "round" "+")
int1
Erin is big.
("Erin" "is" "big" "+")
triple8
Erin is furry.
("Erin" "is" "furry" "+")
triple9
((triple8) -> (rule3 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Erin is young.
("Erin" "is" "young" "+")
triple10
Charlie is cold.
("Charlie" "is" "cold" "+")
((triple3) -> (rule6 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
((triple2 triple4) -> (rule8 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
((((triple1) -> (rule1 % int2))) -> (rule6 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
((((triple4) -> (rule4 % int2)) triple4) -> (rule8 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((triple5) -> (rule2 % int2)) triple4) -> (rule8 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is nice.
("Charlie" "is" "nice" "+")
int2
((((((triple4) -> (rule5 % int3))) -> (rule1 % int2))) -> (rule6 % int1))
Charlie is cold.
("Charlie" "is" "cold" "+")
int1
Charlie is round.
("Charlie" "is" "round" "+")
int2
Charlie is big.
("Charlie" "is" "big" "+")
int3
Charlie is furry.
("Charlie" "is" "furry" "+")
((triple1) -> (rule3 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((triple4) -> (rule7 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
((((triple4) -> (rule5 % int2))) -> (rule3 % int1))
Charlie is furry.
("Charlie" "is" "furry" "+")
int1
Charlie is big.
("Charlie" "is" "big" "+")
int2
Dave is cold.
("Dave" "is" "cold" "+")
((triple7) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
((((triple6) -> (rule1 % int2))) -> (rule6 % int1))
Dave is cold.
("Dave" "is" "cold" "+")
int1
Dave is round.
("Dave" "is" "round" "+")
int2
Dave is furry.
("Dave" "is" "furry" "+")
((triple6) -> (rule3 % int1))
Dave is furry.
("Dave" "is" "furry" "+")
int1
Erin is nice.
("Erin" "is" "nice" "+")
((triple10) -> (rule2 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Erin is round.
("Erin" "is" "round" "+")
((triple8) -> (rule1 % int1))
Erin is round.
("Erin" "is" "round" "+")
int1
Erin is cold.
("Erin" "is" "cold" "+")
((((triple8) -> (rule1 % int2))) -> (rule6 % int1))
Erin is cold.
("Erin" "is" "cold" "+")
int1
Erin is round.
("Erin" "is" "round" "+")
int2