Dave is blue. Dave is red. Dave is white. Erin is blue. Erin is furry. Erin is green. Erin is not red. Erin is round. Erin is white. Fiona is not blue. Fiona is furry. Fiona is green. Fiona is nice. Fiona is not red. Fiona is round. Fiona is white. If Dave is green then Dave is not furry. If Erin is white then Erin is furry. If Dave is blue and Dave is nice then Dave is green. If Dave is red and Dave is white then Dave is nice. If something is blue and not red then it is nice. All blue things are white.
Dave is blue.
("Dave" "is" "blue" "+")
Dave is red.
("Dave" "is" "red" "+")
Dave is white.
("Dave" "is" "white" "+")
Erin is blue.
("Erin" "is" "blue" "+")
Erin is furry.
("Erin" "is" "furry" "+")
Erin is green.
("Erin" "is" "green" "+")
Erin is not red.
("Erin" "is" "red" "-")
Erin is round.
("Erin" "is" "round" "+")
Erin is white.
("Erin" "is" "white" "+")
Fiona is not blue.
("Fiona" "is" "blue" "-")
Fiona is furry.
("Fiona" "is" "furry" "+")
Fiona is green.
("Fiona" "is" "green" "+")
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is not red.
("Fiona" "is" "red" "-")
Fiona is round.
("Fiona" "is" "round" "+")
Fiona is white.
("Fiona" "is" "white" "+")
If Dave is green then Dave is not furry.
((("Dave" "is" "green" "+")) -> ("Dave" "is" "furry" "-"))
If Erin is white then Erin is furry.
((("Erin" "is" "white" "+")) -> ("Erin" "is" "furry" "+"))
If Dave is blue and Dave is nice then Dave is green.
((("Dave" "is" "blue" "+") ("Dave" "is" "nice" "+")) -> ("Dave" "is" "green" "+"))
If Dave is red and Dave is white then Dave is nice.
((("Dave" "is" "red" "+") ("Dave" "is" "white" "+")) -> ("Dave" "is" "nice" "+"))
If something is blue and not red then it is nice.
((("something" "is" "blue" "+") ("something" "is" "red" "~")) -> ("something" "is" "nice" "+"))
All blue things are white.
((("something" "is" "blue" "+")) -> ("something" "is" "white" "+"))
Erin is round.
True
1
proof
[(triple8)]
("Erin" "is" "round" "+")
triple8
Erin is not green.
False
1
inv-proof
[(triple6)]
("Erin" "is" "green" "-")
triple6
Dave is nice.
True
3
proof
[(((triple2 triple3) -> rule4) OR ((triple2 ((triple1) -> rule6)) -> rule4))]
("Dave" "is" "nice" "+")
((triple2 triple3) -> (rule4 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((triple2 ((triple1) -> (rule6 % int2))) -> (rule4 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Erin is not nice.
False
3
inv-proof
[(((triple4 triple7) -> rule5))]
("Erin" "is" "nice" "-")
((triple4 triple7) -> (rule5 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Dave is green.
True
5
proof
[(((triple1 ((triple2 triple3) -> rule4)) -> rule3) OR ((triple1 ((triple2 ((triple1) -> rule6)) -> rule4)) -> rule3))]
("Dave" "is" "green" "+")
((triple1 ((triple2 triple3) -> (rule4 % int2))) -> (rule3 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((triple1 ((triple2 ((triple1) -> (rule6 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
Dave is not green.
False
5
inv-proof
[(((triple1 ((triple2 triple3) -> rule4)) -> rule3) OR ((triple1 ((triple2 ((triple1) -> rule6)) -> rule4)) -> rule3))]
("Dave" "is" "green" "-")
((triple1 ((triple2 triple3) -> (rule4 % int2))) -> (rule3 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((triple1 ((triple2 ((triple1) -> (rule6 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
Dave is not furry.
True
6
proof
[(((((triple1 ((triple2 triple3) -> rule4)) -> rule3)) -> rule1) OR ((((triple1 ((triple2 ((triple1) -> rule6)) -> rule4)) -> rule3)) -> rule1))]
("Dave" "is" "furry" "-")
((((triple1 ((triple2 triple3) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Dave is not furry.
("Dave" "is" "furry" "-")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
((((triple1 ((triple2 ((triple1) -> (rule6 % int4))) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Dave is not furry.
("Dave" "is" "furry" "-")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is white.
("Dave" "is" "white" "+")
int4
Dave is furry.
False
6
inv-proof
[(((((triple1 ((triple2 triple3) -> rule4)) -> rule3)) -> rule1) OR ((((triple1 ((triple2 ((triple1) -> rule6)) -> rule4)) -> rule3)) -> rule1))]
("Dave" "is" "furry" "+")
((((triple1 ((triple2 triple3) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Dave is not furry.
("Dave" "is" "furry" "-")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
((((triple1 ((triple2 ((triple1) -> (rule6 % int4))) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Dave is not furry.
("Dave" "is" "furry" "-")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is white.
("Dave" "is" "white" "+")
int4
@0: Dave is blue.[(triple1)] Dave is red.[(triple2)] Dave is white.[(triple3 OR ((triple1) -> rule6))] Erin is blue.[(triple4)] Erin is furry.[(triple5 OR ((triple9) -> rule2) OR ((((triple4) -> rule6)) -> rule2))] Erin is green.[(triple6)] Erin is not red.[(triple7)] Erin is round.[(triple8)] Erin is white.[(triple9 OR ((triple4) -> rule6))] Fiona is furry.[(triple11)] Fiona is green.[(triple12)] Fiona is nice.[(triple13)] Fiona is not blue.[(triple10)] Fiona is not red.[(triple14)] Fiona is round.[(triple15)] Fiona is white.[(triple16)] @1: Dave is nice.[(((triple2 triple3) -> rule4) OR ((triple2 ((triple1) -> rule6)) -> rule4))] Erin is nice.[(((triple4 triple7) -> rule5))] @2: Dave is green.[(((triple1 ((triple2 triple3) -> rule4)) -> rule3) OR ((triple1 ((triple2 ((triple1) -> rule6)) -> rule4)) -> rule3))] @3: Dave is not furry.[(((((triple1 ((triple2 triple3) -> rule4)) -> rule3)) -> rule1) OR ((((triple1 ((triple2 ((triple1) -> rule6)) -> rule4)) -> rule3)) -> rule1))]
Dave is blue.
("Dave" "is" "blue" "+")
triple1
Dave is red.
("Dave" "is" "red" "+")
triple2
Dave is white.
("Dave" "is" "white" "+")
triple3
((triple1) -> (rule6 % int1))
Dave is white.
("Dave" "is" "white" "+")
int1
Erin is blue.
("Erin" "is" "blue" "+")
triple4
Erin is furry.
("Erin" "is" "furry" "+")
triple5
((triple9) -> (rule2 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
((((triple4) -> (rule6 % int2))) -> (rule2 % int1))
Erin is furry.
("Erin" "is" "furry" "+")
int1
Erin is white.
("Erin" "is" "white" "+")
int2
Erin is green.
("Erin" "is" "green" "+")
triple6
Erin is not red.
("Erin" "is" "red" "-")
triple7
Erin is round.
("Erin" "is" "round" "+")
triple8
Erin is white.
("Erin" "is" "white" "+")
triple9
((triple4) -> (rule6 % int1))
Erin is white.
("Erin" "is" "white" "+")
int1
Fiona is furry.
("Fiona" "is" "furry" "+")
triple11
Fiona is green.
("Fiona" "is" "green" "+")
triple12
Fiona is nice.
("Fiona" "is" "nice" "+")
triple13
Fiona is not blue.
("Fiona" "is" "blue" "-")
triple10
Fiona is not red.
("Fiona" "is" "red" "-")
triple14
Fiona is round.
("Fiona" "is" "round" "+")
triple15
Fiona is white.
("Fiona" "is" "white" "+")
triple16
Dave is nice.
("Dave" "is" "nice" "+")
((triple2 triple3) -> (rule4 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
((triple2 ((triple1) -> (rule6 % int2))) -> (rule4 % int1))
Dave is nice.
("Dave" "is" "nice" "+")
int1
Dave is white.
("Dave" "is" "white" "+")
int2
Erin is nice.
("Erin" "is" "nice" "+")
((triple4 triple7) -> (rule5 % int1))
Erin is nice.
("Erin" "is" "nice" "+")
int1
Dave is green.
("Dave" "is" "green" "+")
((triple1 ((triple2 triple3) -> (rule4 % int2))) -> (rule3 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
((triple1 ((triple2 ((triple1) -> (rule6 % int3))) -> (rule4 % int2))) -> (rule3 % int1))
Dave is green.
("Dave" "is" "green" "+")
int1
Dave is nice.
("Dave" "is" "nice" "+")
int2
Dave is white.
("Dave" "is" "white" "+")
int3
Dave is not furry.
("Dave" "is" "furry" "-")
((((triple1 ((triple2 triple3) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Dave is not furry.
("Dave" "is" "furry" "-")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
((((triple1 ((triple2 ((triple1) -> (rule6 % int4))) -> (rule4 % int3))) -> (rule3 % int2))) -> (rule1 % int1))
Dave is not furry.
("Dave" "is" "furry" "-")
int1
Dave is green.
("Dave" "is" "green" "+")
int2
Dave is nice.
("Dave" "is" "nice" "+")
int3
Dave is white.
("Dave" "is" "white" "+")
int4