Dave is furry. Dave is kind. Dave is nice. Nice things are kind. All kind things are green. If Dave is furry and Dave is quiet then Dave is big. If something is big and furry then it is green. If Dave is furry and Dave is kind then Dave is green. If Dave is furry and Dave is red then Dave is quiet. If something is green then it is red. All furry, big things are nice.
Dave is furry.
("Dave" "is" "furry" "+")
Dave is kind.
("Dave" "is" "kind" "+")
Dave is nice.
("Dave" "is" "nice" "+")
Nice things are kind.
((("something" "is" "nice" "+")) -> ("something" "is" "kind" "+"))
All kind things are green.
((("something" "is" "kind" "+")) -> ("something" "is" "green" "+"))
If Dave is furry and Dave is quiet then Dave is big.
((("Dave" "is" "furry" "+") ("Dave" "is" "quiet" "+")) -> ("Dave" "is" "big" "+"))
If something is big and furry then it is green.
((("something" "is" "big" "+") ("something" "is" "furry" "+")) -> ("something" "is" "green" "+"))
If Dave is furry and Dave is kind then Dave is green.
((("Dave" "is" "furry" "+") ("Dave" "is" "kind" "+")) -> ("Dave" "is" "green" "+"))
If Dave is furry and Dave is red then Dave is quiet.
((("Dave" "is" "furry" "+") ("Dave" "is" "red" "+")) -> ("Dave" "is" "quiet" "+"))
If something is green then it is red.
((("something" "is" "green" "+")) -> ("something" "is" "red" "+"))
All furry, big things are nice.
((("something" "is" "furry" "+") ("something" "is" "big" "+")) -> ("something" "is" "nice" "+"))
Dave is nice.
True
1
proof
[(triple3 OR ((triple1 ((triple1 ((triple1 ((((triple2) -> rule2)) -> rule7)) -> rule6)) -> rule3)) -> rule8) OR ((triple1 ((triple1 ((triple1 ((((triple1 triple2) -> rule5)) -> rule7)) -> rule6)) -> rule3)) -> rule8))]
("Dave" "is" "nice" "+")
triple3
((triple1 ((triple1 ((triple1 ((((triple2) -> (rule2 % int5))) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule8 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is quiet.
("Dave" "is" "quiet" "+")
int3
Dave is red.
("Dave" "is" "red" "+")
int4
Dave is green.
("Dave" "is" "green" "+")
int5
((triple1 ((triple1 ((triple1 ((((triple1 triple2) -> (rule5 % int5))) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule8 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is quiet.
("Dave" "is" "quiet" "+")
int3
Dave is red.
("Dave" "is" "red" "+")
int4
Dave is green.
("Dave" "is" "green" "+")
int5
Dave is not kind.
False
1
inv-proof
[(triple2 OR ((triple3) -> rule1))]
("Dave" "is" "kind" "-")
triple2
((triple3) -> (rule1 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is green.
True
2
proof
[(((triple2) -> rule2) OR ((triple1 triple2) -> rule5) OR ((((triple3) -> rule1)) -> rule2) OR ((triple1 ((triple3) -> rule1)) -> rule5))]
("Dave" "is" "green" "+")
((triple2) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
((triple1 triple2) -> (rule5 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
((((triple3) -> (rule1 % int2))) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
((triple1 ((triple3) -> (rule1 % int2))) -> (rule5 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is not green.
False
2
inv-proof
[(((triple2) -> rule2) OR ((triple1 triple2) -> rule5) OR ((((triple3) -> rule1)) -> rule2) OR ((triple1 ((triple3) -> rule1)) -> rule5))]
("Dave" "is" "green" "-")
((triple2) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
((triple1 triple2) -> (rule5 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
((((triple3) -> (rule1 % int2))) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
((triple1 ((triple3) -> (rule1 % int2))) -> (rule5 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is red.
True
3
proof
[(((((triple2) -> rule2)) -> rule7) OR ((((triple1 triple2) -> rule5)) -> rule7) OR ((((((triple3) -> rule1)) -> rule2)) -> rule7) OR ((((triple1 ((triple3) -> rule1)) -> rule5)) -> rule7))]
("Dave" "is" "red" "+")
((((triple2) -> (rule2 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
((((triple1 triple2) -> (rule5 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
((((((triple3) -> (rule1 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
((((triple1 ((triple3) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
Dave is not red.
False
3
inv-proof
[(((((triple2) -> rule2)) -> rule7) OR ((((triple1 triple2) -> rule5)) -> rule7) OR ((((((triple3) -> rule1)) -> rule2)) -> rule7) OR ((((triple1 ((triple3) -> rule1)) -> rule5)) -> rule7))]
("Dave" "is" "red" "-")
((((triple2) -> (rule2 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
((((triple1 triple2) -> (rule5 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
((((((triple3) -> (rule1 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
((((triple1 ((triple3) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
Dave is quiet.
True
5
proof
[(((triple1 ((((triple2) -> rule2)) -> rule7)) -> rule6) OR ((triple1 ((((triple1 triple2) -> rule5)) -> rule7)) -> rule6) OR ((triple1 ((((((triple3) -> rule1)) -> rule2)) -> rule7)) -> rule6) OR ((triple1 ((((triple1 ((triple3) -> rule1)) -> rule5)) -> rule7)) -> rule6))]
("Dave" "is" "quiet" "+")
((triple1 ((((triple2) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
((triple1 ((((triple1 triple2) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
((triple1 ((((((triple3) -> (rule1 % int4))) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is kind.
("Dave" "is" "kind" "+")
int4
((triple1 ((((triple1 ((triple3) -> (rule1 % int4))) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is kind.
("Dave" "is" "kind" "+")
int4
Dave is not quiet.
False
5
inv-proof
[(((triple1 ((((triple2) -> rule2)) -> rule7)) -> rule6) OR ((triple1 ((((triple1 triple2) -> rule5)) -> rule7)) -> rule6) OR ((triple1 ((((((triple3) -> rule1)) -> rule2)) -> rule7)) -> rule6) OR ((triple1 ((((triple1 ((triple3) -> rule1)) -> rule5)) -> rule7)) -> rule6))]
("Dave" "is" "quiet" "-")
((triple1 ((((triple2) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
((triple1 ((((triple1 triple2) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
((triple1 ((((((triple3) -> (rule1 % int4))) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is kind.
("Dave" "is" "kind" "+")
int4
((triple1 ((((triple1 ((triple3) -> (rule1 % int4))) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is kind.
("Dave" "is" "kind" "+")
int4
@0: Dave is furry.[(triple1)] Dave is kind.[(triple2 OR ((triple3) -> rule1))] Dave is nice.[(triple3 OR ((triple1 ((triple1 ((triple1 ((((triple2) -> rule2)) -> rule7)) -> rule6)) -> rule3)) -> rule8) OR ((triple1 ((triple1 ((triple1 ((((triple1 triple2) -> rule5)) -> rule7)) -> rule6)) -> rule3)) -> rule8))] @1: Dave is green.[(((triple2) -> rule2) OR ((triple1 triple2) -> rule5) OR ((((triple3) -> rule1)) -> rule2) OR ((triple1 ((triple3) -> rule1)) -> rule5))] @2: Dave is red.[(((((triple2) -> rule2)) -> rule7) OR ((((triple1 triple2) -> rule5)) -> rule7) OR ((((((triple3) -> rule1)) -> rule2)) -> rule7) OR ((((triple1 ((triple3) -> rule1)) -> rule5)) -> rule7))] @3: Dave is quiet.[(((triple1 ((((triple2) -> rule2)) -> rule7)) -> rule6) OR ((triple1 ((((triple1 triple2) -> rule5)) -> rule7)) -> rule6) OR ((triple1 ((((((triple3) -> rule1)) -> rule2)) -> rule7)) -> rule6) OR ((triple1 ((((triple1 ((triple3) -> rule1)) -> rule5)) -> rule7)) -> rule6))] @4: Dave is big.[(((triple1 ((triple1 ((((triple2) -> rule2)) -> rule7)) -> rule6)) -> rule3) OR ((triple1 ((triple1 ((((triple1 triple2) -> rule5)) -> rule7)) -> rule6)) -> rule3) OR ((triple1 ((triple1 ((((((triple3) -> rule1)) -> rule2)) -> rule7)) -> rule6)) -> rule3) OR ((triple1 ((triple1 ((((triple1 ((triple3) -> rule1)) -> rule5)) -> rule7)) -> rule6)) -> rule3))]
Dave is furry.
("Dave" "is" "furry" "+")
triple1
Dave is kind.
("Dave" "is" "kind" "+")
triple2
((triple3) -> (rule1 % int1))
Dave is kind.
("Dave" "is" "kind" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
triple3
((triple1 ((triple1 ((triple1 ((((triple2) -> (rule2 % int5))) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule8 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is quiet.
("Dave" "is" "quiet" "+")
int3
Dave is red.
("Dave" "is" "red" "+")
int4
Dave is green.
("Dave" "is" "green" "+")
int5
((triple1 ((triple1 ((triple1 ((((triple1 triple2) -> (rule5 % int5))) -> (rule7 % int4))) -> (rule6 % int3))) -> (rule3 % int2))) -> (rule8 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is big.
("Dave" "is" "big" "+")
int2
Dave is quiet.
("Dave" "is" "quiet" "+")
int3
Dave is red.
("Dave" "is" "red" "+")
int4
Dave is green.
("Dave" "is" "green" "+")
int5
Dave is green.
("Dave" "is" "green" "+")
((triple2) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
((triple1 triple2) -> (rule5 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
((((triple3) -> (rule1 % int2))) -> (rule2 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
((triple1 ((triple3) -> (rule1 % int2))) -> (rule5 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is kind.
("Dave" "is" "kind" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
((((triple2) -> (rule2 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
((((triple1 triple2) -> (rule5 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
((((((triple3) -> (rule1 % int3))) -> (rule2 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
((((triple1 ((triple3) -> (rule1 % int3))) -> (rule5 % int2))) -> (rule7 % int1))
Dave is red.
("Dave" "is" "red" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is kind.
("Dave" "is" "kind" "+")
int3
Dave is quiet.
("Dave" "is" "quiet" "+")
((triple1 ((((triple2) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
((triple1 ((((triple1 triple2) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
((triple1 ((((((triple3) -> (rule1 % int4))) -> (rule2 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is kind.
("Dave" "is" "kind" "+")
int4
((triple1 ((((triple1 ((triple3) -> (rule1 % int4))) -> (rule5 % int3))) -> (rule7 % int2))) -> (rule6 % int1))
Dave is quiet.
("Dave" "is" "quiet" "+")
int1
Dave is red.
("Dave" "is" "red" "+")
int2
Dave is green.
("Dave" "is" "green" "+")
int3
Dave is kind.
("Dave" "is" "kind" "+")
int4
Dave is big.
("Dave" "is" "big" "+")
((triple1 ((triple1 ((((triple2) -> (rule2 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is quiet.
("Dave" "is" "quiet" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
int3
Dave is green.
("Dave" "is" "green" "+")
int4
((triple1 ((triple1 ((((triple1 triple2) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is quiet.
("Dave" "is" "quiet" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
int3
Dave is green.
("Dave" "is" "green" "+")
int4
((triple1 ((triple1 ((((((triple3) -> (rule1 % int5))) -> (rule2 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is quiet.
("Dave" "is" "quiet" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
int3
Dave is green.
("Dave" "is" "green" "+")
int4
Dave is kind.
("Dave" "is" "kind" "+")
int5
((triple1 ((triple1 ((((triple1 ((triple3) -> (rule1 % int5))) -> (rule5 % int4))) -> (rule7 % int3))) -> (rule6 % int2))) -> (rule3 % int1))
Dave is big.
("Dave" "is" "big" "+")
int1
Dave is quiet.
("Dave" "is" "quiet" "+")
int2
Dave is red.
("Dave" "is" "red" "+")
int3
Dave is green.
("Dave" "is" "green" "+")
int4
Dave is kind.
("Dave" "is" "kind" "+")
int5