【问题标题】:How to prove reverse nil is nil in Lean如何在精益中证明反向零是零
【发布时间】:2020-03-14 08:13:39
【问题描述】:

我已经在列表上定义了一个反向函数,我试图证明一个简单的属性,即空列表的反向是空的。它应该可以通过反身性来证明:

def reverse (t : list α) : list α :=
list.rec_on t nil (λ x l r, r ++ [x])

#reduce reverse nil --outputs nil

lemma mylemma: reverse nil = nil := refl

然而,当我运行这段代码时,我得到一个错误:

don't know how to synthesize placeholder
context:
⊢ Type

这是什么意思?

【问题讨论】:

    标签: theorem-proving formal-verification lean


    【解决方案1】:

    Lean 无法从上下文推断右侧空列表的类型。 显式传递类型参数:

    lemma mylemma: reverse (nil) = @nil α :=
    by refl
    

    【讨论】:

      猜你喜欢
      • 2021-11-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多