Fiona is nice. Fiona is red. Fiona is young. Harry is blue. Harry is green. Harry is kind. Harry is nice. Harry is red. Harry is round. Harry is young. If someone is kind then they are green. If someone is round and red then they are kind. All blue people are young. Nice people are round. Kind people are red. If Fiona is blue and Fiona is round then Fiona is nice.
Fiona is nice.
("Fiona" "is" "nice" "+")
Fiona is red.
("Fiona" "is" "red" "+")
Fiona is young.
("Fiona" "is" "young" "+")
Harry is blue.
("Harry" "is" "blue" "+")
Harry is green.
("Harry" "is" "green" "+")
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 someone is kind then they are green.
((("someone" "is" "kind" "+")) -> ("someone" "is" "green" "+"))
If someone is round and red then they are kind.
((("someone" "is" "round" "+") ("someone" "is" "red" "+")) -> ("someone" "is" "kind" "+"))
All blue people are young.
((("someone" "is" "blue" "+")) -> ("someone" "is" "young" "+"))
Nice people are round.
((("someone" "is" "nice" "+")) -> ("someone" "is" "round" "+"))
Kind people are red.
((("someone" "is" "kind" "+")) -> ("someone" "is" "red" "+"))
If Fiona is blue and Fiona is round then Fiona is nice.
((("Fiona" "is" "blue" "+") ("Fiona" "is" "round" "+")) -> ("Fiona" "is" "nice" "+"))
Harry is nice.
True
1
proof
[(triple7)]
("Harry" "is" "nice" "+")
triple7
Harry is not green.
False
1
inv-proof
[(triple5 OR ((triple6) -> rule1) OR ((((triple9 triple8) -> rule2)) -> rule1) OR ((((((triple7) -> rule4) triple8) -> rule2)) -> rule1))]
("Harry" "is" "green" "-")
triple5
((triple6) -> (rule1 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((((triple9 triple8) -> (rule2 % int2))) -> (rule1 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
((((((triple7) -> (rule4 % int3)) triple8) -> (rule2 % int2))) -> (rule1 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Fiona is round.
True
2
proof
[(((triple1) -> rule4))]
("Fiona" "is" "round" "+")
((triple1) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is not round.
False
2
inv-proof
[(((triple1) -> rule4))]
("Fiona" "is" "round" "-")
((triple1) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is kind.
True
4
proof
[(((((triple1) -> rule4) triple2) -> rule2))]
("Fiona" "is" "kind" "+")
((((triple1) -> (rule4 % int2)) triple2) -> (rule2 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is not kind.
False
4
inv-proof
[(((((triple1) -> rule4) triple2) -> rule2))]
("Fiona" "is" "kind" "-")
((((triple1) -> (rule4 % int2)) triple2) -> (rule2 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is green.
True
5
proof
[(((((((triple1) -> rule4) triple2) -> rule2)) -> rule1))]
("Fiona" "is" "green" "+")
((((((triple1) -> (rule4 % int3)) triple2) -> (rule2 % int2))) -> (rule1 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
Fiona is not green.
False
5
inv-proof
[(((((((triple1) -> rule4) triple2) -> rule2)) -> rule1))]
("Fiona" "is" "green" "-")
((((((triple1) -> (rule4 % int3)) triple2) -> (rule2 % int2))) -> (rule1 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3
@0: Fiona is nice.[(triple1)] Fiona is red.[(triple2)] Fiona is young.[(triple3)] Harry is blue.[(triple4)] Harry is green.[(triple5 OR ((triple6) -> rule1) OR ((((triple9 triple8) -> rule2)) -> rule1) OR ((((((triple7) -> rule4) triple8) -> rule2)) -> rule1))] Harry is kind.[(triple6 OR ((triple9 triple8) -> rule2) OR ((((triple7) -> rule4) triple8) -> rule2))] Harry is nice.[(triple7)] Harry is red.[(triple8 OR ((triple6) -> rule5))] Harry is round.[(triple9 OR ((triple7) -> rule4))] Harry is young.[(triple10 OR ((triple4) -> rule3))] @1: Fiona is round.[(((triple1) -> rule4))] @2: Fiona is kind.[(((((triple1) -> rule4) triple2) -> rule2))] @3: Fiona is green.[(((((((triple1) -> rule4) triple2) -> rule2)) -> rule1))]
Fiona is nice.
("Fiona" "is" "nice" "+")
triple1
Fiona is red.
("Fiona" "is" "red" "+")
triple2
Fiona is young.
("Fiona" "is" "young" "+")
triple3
Harry is blue.
("Harry" "is" "blue" "+")
triple4
Harry is green.
("Harry" "is" "green" "+")
triple5
((triple6) -> (rule1 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
((((triple9 triple8) -> (rule2 % int2))) -> (rule1 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
((((((triple7) -> (rule4 % int3)) triple8) -> (rule2 % int2))) -> (rule1 % int1))
Harry is green.
("Harry" "is" "green" "+")
int1
Harry is kind.
("Harry" "is" "kind" "+")
int2
Harry is round.
("Harry" "is" "round" "+")
int3
Harry is kind.
("Harry" "is" "kind" "+")
triple6
((triple9 triple8) -> (rule2 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
((((triple7) -> (rule4 % int2)) triple8) -> (rule2 % int1))
Harry is kind.
("Harry" "is" "kind" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
int2
Harry is nice.
("Harry" "is" "nice" "+")
triple7
Harry is red.
("Harry" "is" "red" "+")
triple8
((triple6) -> (rule5 % int1))
Harry is red.
("Harry" "is" "red" "+")
int1
Harry is round.
("Harry" "is" "round" "+")
triple9
((triple7) -> (rule4 % int1))
Harry is round.
("Harry" "is" "round" "+")
int1
Harry is young.
("Harry" "is" "young" "+")
triple10
((triple4) -> (rule3 % int1))
Harry is young.
("Harry" "is" "young" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
((triple1) -> (rule4 % int1))
Fiona is round.
("Fiona" "is" "round" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
((((triple1) -> (rule4 % int2)) triple2) -> (rule2 % int1))
Fiona is kind.
("Fiona" "is" "kind" "+")
int1
Fiona is round.
("Fiona" "is" "round" "+")
int2
Fiona is green.
("Fiona" "is" "green" "+")
((((((triple1) -> (rule4 % int3)) triple2) -> (rule2 % int2))) -> (rule1 % int1))
Fiona is green.
("Fiona" "is" "green" "+")
int1
Fiona is kind.
("Fiona" "is" "kind" "+")
int2
Fiona is round.
("Fiona" "is" "round" "+")
int3