Types 皮尔斯'中的评价关系;s的书:“的意义”;一个关系满足一个规则,如果……”;

Types 皮尔斯'中的评价关系;s的书:“的意义”;一个关系满足一个规则,如果……”;,types,programming-languages,Types,Programming Languages,皮尔斯在他的Def中写道。3.5.2: 对于规则的每个实例,如果关系满足规则, 要么结论在关系中,要么前提之一在关系中 不是 因此,这意味着如果一个关系(这是一组术语对,其中对表示为t->t')包含元素true->false,那么该关系也满足图3-1中给出的规则,因为Def 3.5.2不禁止在关系中存在此类元素,这些元素不是规则结论的实例 因此,换句话说,元素true->false不是E-IF结论的一个实例,因此定义3.5.2没有说明true->false是否符合图3-1中的规则。Def 3.5

皮尔斯在他的Def中写道。3.5.2:

对于规则的每个实例,如果关系满足规则, 要么结论在关系中,要么前提之一在关系中 不是

因此,这意味着如果一个关系(这是一组术语对,其中对表示为t->t')包含元素
true->false
,那么该关系也满足图3-1中给出的规则,因为Def 3.5.2不禁止在关系中存在此类元素,这些元素不是规则结论的实例

因此,换句话说,元素
true->false
不是E-IF结论的一个实例,因此定义3.5.2没有说明
true->false
是否符合图3-1中的规则。Def 3.5.2仅讨论具有形式为“if….then….->..”的关系元素,但没有明确禁止(或实际说明)元素的存在,例如
true->false

问题:我的理解正确吗


是的,你是对的。一个关系可以满足规则,同时也包含规则未对正的对

例如,如果
R
是文本中显示的求值关系,它满足图3-1中的所有规则,那么关系
R
加上您的对
true->false
也满足所有规则。这是有意义的,因为任何关系都必须单独满足每个规则;如果我们不允许额外的对,那么关系
{if-true-then-true-else-false->true,if-false-then-true-else-false->false}
将不能单独满足E-IfTrue,因为第二个元素不能通过E-IfTrue进行对正。如果关系不能单独满足单个规则,那么它就不能满足所提供的所有三个规则。因此,当满足推理规则时,允许额外的“不合理”对


也就是说,下一个定义3.5.3通过指定满足所有三个规则的最小关系,明确地从讨论的特定关系中省略了像
true->false
这样的对。虽然我们可以讨论一个更大的关系,但这一限制意味着,用皮尔斯的话来说,“一个声明
t->t'
是可以推导的,只要它是符合规则的。”

这个问题似乎是离题的,因为它对于我们这些汗流浃背、眉头紧锁的黑客来说太理论化了。尝试一下在Hmmm的软皮肤、芳香的象牙塔居民。。。。我不认为它对这个社区来说太数学化,毕竟,这是本科(BSc)课程材料。理解皮尔斯的书对于任何有自尊心的程序员来说都是必不可少的。但是谢谢你的评论,我正好喜欢这个问题。你找到答案了吗?@EJoshuaS我认为HPFMark说SOF不会给出答案是正确的。。。将这个问题转移到CS可能会更好我只是不知道如何移动它。顺便说一句,我可能已经找到了答案,但两年后我离开了这个话题,以至于我几乎忘记了一切,我需要一天的时间来刷新我的头脑,重新理解这个问题本身。