Manipular objetos do mesmo tipo

Boa noite colegas, estou com um problema e não sei dizer se é complexo ou simples, pois bem eis o próprio:

Se trata sobre regras de inferência, Modus Pones Tollens e por ai vai, porém no meu problema eu terei a seguinte entrada:

W -> R
?
R

cada linha representa um objeto String.

ps o caractere “?” pode substituindo qualquer premissa.

? -> R
W
R

tenho que substituir o caractere “?” pela premissa correta através das regras que já tenho, por exemplo:

Modus Ponens

P -> Q
P
Q

nesse caso a saída do aplicativo ficaria assim:

W -> R
W
R

no momento estou sem ideias para resolver essa substituição.

desde já agradeço.

não entendi o seu problema, cara…

você quer que ele receba a premissa como um parâmetro e retorne a conclusão?

Uma regra de inferência é composta por uma ou mais premissas e uma conclusão, levando isso em consideração eu tenho que receber as premissas e a conclusão, o que vai resultar em alguma regra de inferência, porem a entrada é dada dessa forma:

W -> R
?
R

com uma interrogação, esta interrogação q tenho que substituir pela premissa correta.