我正在学习COQ而且我仍然坚持参加其中一本书练习。这本书没有给我一个解决方案,所以我不知道该怎么做。我做过第一个。我必须将这些语句翻译成谓词逻辑:
h0 : Everybody knows somebody
h1 : Nobody doesn't know anybody.
h2 : Everybody knows somebody
h3 : A footballer is known by everybody.
h4 : Footballers only know footballers.
h5 : There is somebody who only knows one person.
代码:
Section Stadium.
Variable Fans : Set.
Variable Knows : Fans -> Fans -> Prop.
Variable Footballer : Fans -> Prop.
Hypothesis h0 : forall x: Fans, exists y: Fans, Knows x y.
End Stadium
你能帮帮忙吗?非常感谢你!
答案 0 :(得分:3)
我认为这些定义是为您提供的,因此“每个人”都由Fans
的成员代表。
你有什么困扰?
例如,h1说“没有人不认识任何人”。这归结为“不是某人不认识任何人的情况”。现在您有两种方法可以继续:
您手动编码“某人不认识任何人”,只是否定它。
(或)您重复使用h0,注意到它的否定是“某人不认识任何人”。
要谈论足球运动员,您只需验证变量x : Fans
是否满足Footballer x ->
。
例如,h3将从:
forall x, Footballer x -> (* here, you encode "everybody knows x" *)
也许h5有点难。编码“只有一个人”的一种方法是说他知道一个人p0,如果他知道另一个人p1,那么p1 = p0。
如果没有您觉得困难的详细信息,很难为您提供一个不是解决方案的有用答案。