精益 4 'unknown identifier Proof'
Lean 4 'unknown identifier Proof'
我在使用 Lean 4 时遇到了问题。
我在 Propositions and Proofs 部分阅读文档时 运行 进入了它。在作为类型的命题下,文档介绍了 Proof
类型:
We could then introduce, for each element p : Prop
, another type Proof p
, for the type of proofs of p
.
下面显示了检查 Proof
类型的代码片段,其中 returns Proof : Prop → Type
:
#check Proof -- Proof : Prop → Type
当我尝试 运行 这段代码时,出现以下错误:
example.lean:3:7: error: unknown identifier 'Proof'
暗示lean找不到Proof
类型。这是我的问题,如何让 Lean 识别 Proof
?
谢谢!
不存在名为 Proof
的类型。文档提到它作为如何实施精益的示例,但继续解释为什么没有那样实施。
《精益4中的定理证明》还在建设中(实际上精益4本身还在快速变化),所以你可能会发现里面有很多问题。然而,在这种情况下,我认为问题在于它是在假设性地谈论一种 可以 建立的方式,而实际上这并不是在精益中完成的方式。
这是使这些代码块真正编译的一种方法:
namespace TPIL
axiom Prop' : Type
axiom And : Prop' → Prop' → Prop'
axiom Or : Prop' → Prop' → Prop'
axiom Not : Prop' → Prop'
axiom Implies : Prop' → Prop' → Prop'
axiom Proof : Prop' → Type
variable (p q r : Prop')
#check And p q -- Prop'
#check Or (And p q) r -- Prop'
#check Implies (And p q) (And q p) -- Prop'
#check Proof -- Proof : Prop' → Type
axiom and_comm (p q : Prop') : Proof (Implies (And p q) (And q p))
variable (p q : Prop')
#check and_comm p q -- Proof (Implies (And p q) (And q p))
axiom modus_ponens : (p q : Prop') → Proof (Implies p q) → Proof p → Proof q
axiom implies_intro : (p q : Prop') → (Proof p → Proof q) → Proof (Implies p q)
您必须使用 Prop'
或 «Prop»
,因为 Prop
是关键字。
我在使用 Lean 4 时遇到了问题。
我在 Propositions and Proofs 部分阅读文档时 运行 进入了它。在作为类型的命题下,文档介绍了 Proof
类型:
We could then introduce, for each element
p : Prop
, another typeProof p
, for the type of proofs ofp
.
下面显示了检查 Proof
类型的代码片段,其中 returns Proof : Prop → Type
:
#check Proof -- Proof : Prop → Type
当我尝试 运行 这段代码时,出现以下错误:
example.lean:3:7: error: unknown identifier 'Proof'
暗示lean找不到Proof
类型。这是我的问题,如何让 Lean 识别 Proof
?
谢谢!
不存在名为 Proof
的类型。文档提到它作为如何实施精益的示例,但继续解释为什么没有那样实施。
《精益4中的定理证明》还在建设中(实际上精益4本身还在快速变化),所以你可能会发现里面有很多问题。然而,在这种情况下,我认为问题在于它是在假设性地谈论一种 可以 建立的方式,而实际上这并不是在精益中完成的方式。
这是使这些代码块真正编译的一种方法:
namespace TPIL
axiom Prop' : Type
axiom And : Prop' → Prop' → Prop'
axiom Or : Prop' → Prop' → Prop'
axiom Not : Prop' → Prop'
axiom Implies : Prop' → Prop' → Prop'
axiom Proof : Prop' → Type
variable (p q r : Prop')
#check And p q -- Prop'
#check Or (And p q) r -- Prop'
#check Implies (And p q) (And q p) -- Prop'
#check Proof -- Proof : Prop' → Type
axiom and_comm (p q : Prop') : Proof (Implies (And p q) (And q p))
variable (p q : Prop')
#check and_comm p q -- Proof (Implies (And p q) (And q p))
axiom modus_ponens : (p q : Prop') → Proof (Implies p q) → Proof p → Proof q
axiom implies_intro : (p q : Prop') → (Proof p → Proof q) → Proof (Implies p q)
您必须使用 Prop'
或 «Prop»
,因为 Prop
是关键字。