A должен быть рыцарем, а B - лжецом.
Докажем прежде всего, что только рыцарь может высказать утверждение вида "Если P, то я лжец". Напомним, что истинное высказывание следует из любого высказывания. Значит, если высказывание "Я лжец" истинно, то полное высказывание "Если P, то я лжец". также истинно. Но если я лжец, то никакое истинное высказывание не могло бы принадлежать мне. Следовательно, высказывая утверждение "Если P, то я лжец", я должен быть рыцарем.
Итак, A должен быть рыцарем. Следовательно, верно также, что если B - рыцарь, то A - лжец (потому что A настаивает на истинности этого высказывания). Тогда B не может быть рыцарем, так как в противном случае A должен бы быть лжецом, а он им не является /Любое высказывание, из которого следует ложное высказывание, должно быть ложным, так как из истинного высказывания не может следовать ложное высказывание. В решении задачи 113 из высказывания "В - рыцарь" следует ложное высказывание "А - лжец". Значит, высказывание "В - рыцарь" должно быть ложным. Это еще один вариант доказательства от противного/. Следовательно, B - лжец.