我正尝试使用Z3Prover来证明女士或老虎问题,如下所述:
共有三个房间。每个都包含一位女士或一只老虎,但不能同时包含两者。此外, 一个房间里有一位女士,另外两个房间里有老虎。每个房间都有一个 符号,最多三个符号之一是真实的。这三个标志是:
Room I: A TIGER IS IN THIS ROOM.
Room II: A LADY IS IN THIS ROOM.
Room III: A TIGER IS IN ROOM II.
哪个房间有女士?
我知道答案是那位女士在1号房里,所以第三个陈述是正确的,而其他陈述是错误的。但是我不知道如何在Z3中编写布尔证明,有人可以帮我吗?
答案 0 :(得分:2)
这是一种方法:
<p-calendar
[ngModel]="convertToDate(myTimestamp)"
[locale]="calenderTranslateService.getTranslationForCalendar()"
(onSelect)="convertToTimestamp($event)"
[dateFormat]="calenderTranslateService.getDateFormatForCalendar()">
</p-calendar>
此编码中有一些冗余,例如关于老虎和女士计数的最后两个条件相互暗示。但这很明显。
运行此命令时,我得到:
toDate(timestamp) {
if (timestamp==null) return null;
return new Date(timestamp);
}
确实说夫人在1号房,只有第三个标志是正确的。 (此外,这是唯一的解决方案,因为在while循环中断言其否定会导致不满意的情况。)