Erin is red. Harry is blue. Harry is kind. Harry is nice. Harry is red. Harry is round. Harry is young. If Harry is blue and Harry is green then Harry is red. If Harry is kind then Harry is green. All kind people are red. If Harry is kind then Harry is green. Blue people are nice. Green, nice people are young. All nice people are green. All kind, blue people are nice.
Erin is red.
("Erin" "is" "red" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is kind.
("Harry" "is" "kind" "+")
Harry is nice.
("Harry" "is" "nice" "+")
Harry is red.
("Harry" "is" "red" "+")
Harry is round.
("Harry" "is" "round" "+")
Harry is young.
("Harry" "is" "young" "+")
If Harry is blue and Harry is green then Harry is red.
((("Harry" "is" "blue" "+") ("Harry" "is" "green" "+")) -> ("Harry" "is" "red" "+"))
If Harry is kind then Harry is green.
((("Harry" "is" "kind" "+")) -> ("Harry" "is" "green" "+"))
All kind people are red.
((("someone" "is" "kind" "+")) -> ("someone" "is" "red" "+"))
If Harry is kind then Harry is green.
((("Harry" "is" "kind" "+")) -> ("Harry" "is" "green" "+"))
Blue people are nice.
((("someone" "is" "blue" "+")) -> ("someone" "is" "nice" "+"))
Green, nice people are young.
((("someone" "is" "green" "+") ("someone" "is" "nice" "+")) -> ("someone" "is" "young" "+"))
All nice people are green.
((("someone" "is" "nice" "+")) -> ("someone" "is" "green" "+"))
All kind, blue people are nice.
((("someone" "is" "kind" "+") ("someone" "is" "blue" "+")) -> ("someone" "is" "nice" "+"))
Harry is red.
True
1
proof
[(triple5 OR ((triple3) -> rule3) OR ((triple2 ((triple3) -> rule2)) -> rule1) OR ((triple2 ((triple3) -> rule4)) -> rule1) OR ((triple2 ((triple4) -> rule7)) -> rule1) OR ((triple2 ((((triple2) -> rule5)) -> rule7)) -> rule1) OR ((triple2 ((((triple3 triple2) -> rule8)) -> rule7)) -> rule1))]
("Harry" "is" "red" "+")
triple5
((triple3) -> (rule3 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
((triple2 ((triple3) -> (rule2 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((triple2 ((triple3) -> (rule4 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((triple2 ((triple4) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((triple2 ((((triple2) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((triple2 ((((triple3 triple2) -> (rule8 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is not young.
False
1
inv-proof
[(triple7 OR ((((triple3) -> rule2) triple4) -> rule6) OR ((((triple3) -> rule4) triple4) -> rule6) OR ((((triple4) -> rule7) triple4) -> rule6) OR ((((triple3) -> rule2) ((triple2) -> rule5)) -> rule6) OR ((((triple3) -> rule2) ((triple3 triple2) -> rule8)) -> rule6) OR ((((triple3) -> rule4) ((triple2) -> rule5)) -> rule6) OR ((((triple3) -> rule4) ((triple3 triple2) -> rule8)) -> rule6) OR ((((triple4) -> rule7) ((triple2) -> rule5)) -> rule6) OR ((((triple4) -> rule7) ((triple3 triple2) -> rule8)) -> rule6) OR ((((((triple2) -> rule5)) -> rule7) triple4) -> rule6) OR ((((((triple3 triple2) -> rule8)) -> rule7) triple4) -> rule6) OR ((((((triple2) -> rule5)) -> rule7) ((triple2) -> rule5)) -> rule6) OR ((((((triple2) -> rule5)) -> rule7) ((triple3 triple2) -> rule8)) -> rule6) OR ((((((triple3 triple2) -> rule8)) -> rule7) ((triple2) -> rule5)) -> rule6) OR ((((((triple3 triple2) -> rule8)) -> rule7) ((triple3 triple2) -> rule8)) -> rule6))]
("Harry" "is" "young" "-")
triple7
((((triple3) -> (rule2 % int2)) triple4) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((triple3) -> (rule4 % int2)) triple4) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((triple4) -> (rule7 % int2)) triple4) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((triple3) -> (rule2 % int3)) ((triple2) -> (rule5 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((triple3) -> (rule2 % int3)) ((triple3 triple2) -> (rule8 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((triple3) -> (rule4 % int3)) ((triple2) -> (rule5 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((triple3) -> (rule4 % int3)) ((triple3 triple2) -> (rule8 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((triple4) -> (rule7 % int3)) ((triple2) -> (rule5 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((triple4) -> (rule7 % int3)) ((triple3 triple2) -> (rule8 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((((triple2) -> (rule5 % int3))) -> (rule7 % int2)) triple4) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple3 triple2) -> (rule8 % int3))) -> (rule7 % int2)) triple4) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple2) -> (rule5 % int3))) -> (rule7 % int2)) ((triple2) -> (rule5 % int3))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple2) -> (rule5 % int3))) -> (rule7 % int2)) ((triple3 triple2) -> (rule8 % int3))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple3 triple2) -> (rule8 % int3))) -> (rule7 % int2)) ((triple2) -> (rule5 % int3))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple3 triple2) -> (rule8 % int3))) -> (rule7 % int2)) ((triple3 triple2) -> (rule8 % int3))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is green.
True
2
proof
[(((triple3) -> rule2) OR ((triple3) -> rule4) OR ((triple4) -> rule7) OR ((((triple2) -> rule5)) -> rule7) OR ((((triple3 triple2) -> rule8)) -> rule7))]
("Harry" "is" "green" "+")
((triple3) -> (rule2 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((triple3) -> (rule4 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((triple4) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((((triple2) -> (rule5 % int2))) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((triple3 triple2) -> (rule8 % int2))) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is not green.
False
2
inv-proof
[(((triple3) -> rule2) OR ((triple3) -> rule4) OR ((triple4) -> rule7) OR ((((triple2) -> rule5)) -> rule7) OR ((((triple3 triple2) -> rule8)) -> rule7))]
("Harry" "is" "green" "-")
((triple3) -> (rule2 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((triple3) -> (rule4 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((triple4) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((((triple2) -> (rule5 % int2))) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((triple3 triple2) -> (rule8 % int2))) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Erin is not nice.
Unknown
inv-rconc
[@1: Erin is nice.[CWA. Example of deepest failure = (rule5 <- FAIL)]]
("Erin" "is" "nice" "-")
Erin is young.
Unknown
rconc
[@2: Erin is young.[CWA. Example of deepest failure = (rule6 <- rule5 <- FAIL)]]
("Erin" "is" "young" "+")
Erin is not round.
Unknown
inv-random
[@0: Erin is round.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "round" "-")
Erin is kind.
Unknown
random
[@0: Erin is kind.[CWA. Example of deepest failure = (FAIL)]]
("Erin" "is" "kind" "+")
@0: Erin is red.[(triple1)] Harry is blue.[(triple2)] Harry is kind.[(triple3)] Harry is nice.[(triple4 OR ((triple2) -> rule5) OR ((triple3 triple2) -> rule8))] Harry is red.[(triple5 OR ((triple3) -> rule3) OR ((triple2 ((triple3) -> rule2)) -> rule1) OR ((triple2 ((triple3) -> rule4)) -> rule1) OR ((triple2 ((triple4) -> rule7)) -> rule1) OR ((triple2 ((((triple2) -> rule5)) -> rule7)) -> rule1) OR ((triple2 ((((triple3 triple2) -> rule8)) -> rule7)) -> rule1))] Harry is round.[(triple6)] Harry is young.[(triple7 OR ((((triple3) -> rule2) triple4) -> rule6) OR ((((triple3) -> rule4) triple4) -> rule6) OR ((((triple4) -> rule7) triple4) -> rule6) OR ((((triple3) -> rule2) ((triple2) -> rule5)) -> rule6) OR ((((triple3) -> rule2) ((triple3 triple2) -> rule8)) -> rule6) OR ((((triple3) -> rule4) ((triple2) -> rule5)) -> rule6) OR ((((triple3) -> rule4) ((triple3 triple2) -> rule8)) -> rule6) OR ((((triple4) -> rule7) ((triple2) -> rule5)) -> rule6) OR ((((triple4) -> rule7) ((triple3 triple2) -> rule8)) -> rule6) OR ((((((triple2) -> rule5)) -> rule7) triple4) -> rule6) OR ((((((triple3 triple2) -> rule8)) -> rule7) triple4) -> rule6) OR ((((((triple2) -> rule5)) -> rule7) ((triple2) -> rule5)) -> rule6) OR ((((((triple2) -> rule5)) -> rule7) ((triple3 triple2) -> rule8)) -> rule6) OR ((((((triple3 triple2) -> rule8)) -> rule7) ((triple2) -> rule5)) -> rule6) OR ((((((triple3 triple2) -> rule8)) -> rule7) ((triple3 triple2) -> rule8)) -> rule6))] @1: Harry is green.[(((triple3) -> rule2) OR ((triple3) -> rule4) OR ((triple4) -> rule7) OR ((((triple2) -> rule5)) -> rule7) OR ((((triple3 triple2) -> rule8)) -> rule7))]
Erin is red.
("Erin" "is" "red" "+")
triple1
Harry is blue.
("Harry" "is" "blue" "+")
triple2
Harry is kind.
("Harry" "is" "kind" "+")
triple3
Harry is nice.
("Harry" "is" "nice" "+")
triple4
((triple2) -> (rule5 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
((triple3 triple2) -> (rule8 % int1))
Harry is nice.
("Harry" "is" "nice" "+")
int1
Harry is red.
("Harry" "is" "red" "+")
triple5
((triple3) -> (rule3 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
((triple2 ((triple3) -> (rule2 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((triple2 ((triple3) -> (rule4 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((triple2 ((triple4) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((triple2 ((((triple2) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((triple2 ((((triple3 triple2) -> (rule8 % int3))) -> (rule7 % int2))) -> (rule1 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is round.
("Harry" "is" "round" "+")
triple6
Harry is young.
("Harry" "is" "young" "+")
triple7
((((triple3) -> (rule2 % int2)) triple4) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((triple3) -> (rule4 % int2)) triple4) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((triple4) -> (rule7 % int2)) triple4) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
((((triple3) -> (rule2 % int3)) ((triple2) -> (rule5 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((triple3) -> (rule2 % int3)) ((triple3 triple2) -> (rule8 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((triple3) -> (rule4 % int3)) ((triple2) -> (rule5 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((triple3) -> (rule4 % int3)) ((triple3 triple2) -> (rule8 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((triple4) -> (rule7 % int3)) ((triple2) -> (rule5 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((triple4) -> (rule7 % int3)) ((triple3 triple2) -> (rule8 % int2))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
Harry is green.
("Harry" "is" "green" "+")
int3
((((((triple2) -> (rule5 % int3))) -> (rule7 % int2)) triple4) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple3 triple2) -> (rule8 % int3))) -> (rule7 % int2)) triple4) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple2) -> (rule5 % int3))) -> (rule7 % int2)) ((triple2) -> (rule5 % int3))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple2) -> (rule5 % int3))) -> (rule7 % int2)) ((triple3 triple2) -> (rule8 % int3))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple3 triple2) -> (rule8 % int3))) -> (rule7 % int2)) ((triple2) -> (rule5 % int3))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
((((((triple3 triple2) -> (rule8 % int3))) -> (rule7 % int2)) ((triple3 triple2) -> (rule8 % int3))) -> (rule6 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Harry is green.
("Harry" "is" "green" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
int3
Harry is green.
("Harry" "is" "green" "+")
((triple3) -> (rule2 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((triple3) -> (rule4 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((triple4) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((((triple2) -> (rule5 % int2))) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2
((((triple3 triple2) -> (rule8 % int2))) -> (rule7 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is nice.
("Harry" "is" "nice" "+")
int2