Charlie is big. Charlie is blue. Charlie is quiet. Charlie is red. Charlie is rough. Charlie is round. Charlie is smart. Round things are big. If something is quiet and not rough then it is big. If something is smart then it is blue.
Charlie is big.
("Charlie" "is" "big" "+")
Charlie is blue.
("Charlie" "is" "blue" "+")
Charlie is quiet.
("Charlie" "is" "quiet" "+")
Charlie is red.
("Charlie" "is" "red" "+")
Charlie is rough.
("Charlie" "is" "rough" "+")
Charlie is round.
("Charlie" "is" "round" "+")
Charlie is smart.
("Charlie" "is" "smart" "+")
Round things are big.
((("something" "is" "round" "+")) -> ("something" "is" "big" "+"))
If something is quiet and not rough then it is big.
((("something" "is" "quiet" "+") ("something" "is" "rough" "~")) -> ("something" "is" "big" "+"))
If something is smart then it is blue.
((("something" "is" "smart" "+")) -> ("something" "is" "blue" "+"))
Charlie is red.
True
1
proof
[(triple4)]
("Charlie" "is" "red" "+")
triple4
Charlie is not big.
False
1
inv-proof
[(triple1 OR ((triple6) -> rule1))]
("Charlie" "is" "big" "-")
triple1
((triple6) -> (rule1 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
@0: Charlie is big.[(triple1 OR ((triple6) -> rule1))] Charlie is blue.[(triple2 OR ((triple7) -> rule3))] Charlie is quiet.[(triple3)] Charlie is red.[(triple4)] Charlie is rough.[(triple5)] Charlie is round.[(triple6)] Charlie is smart.[(triple7)]
Charlie is big.
("Charlie" "is" "big" "+")
triple1
((triple6) -> (rule1 % int1))
Charlie is big.
("Charlie" "is" "big" "+")
int1
Charlie is blue.
("Charlie" "is" "blue" "+")
triple2
((triple7) -> (rule3 % int1))
Charlie is blue.
("Charlie" "is" "blue" "+")
int1
Charlie is quiet.
("Charlie" "is" "quiet" "+")
triple3
Charlie is red.
("Charlie" "is" "red" "+")
triple4
Charlie is rough.
("Charlie" "is" "rough" "+")
triple5
Charlie is round.
("Charlie" "is" "round" "+")
triple6
Charlie is smart.
("Charlie" "is" "smart" "+")
triple7