如何在 Agda 中声明公理?
How to declare axioms in Agda?
我正在阅读“代数驱动设计”一书,在第二章中它开始设计一个简单的代数系统,如下所示:
data Tile
haskell :: Tile
sandy :: Tile
cw :: Tile -> Tile
∀ (t :: Tile).
cw (cw (cw (cw t))) = t
它从那里开始建立。所以我想如果我能有一个证明助手来跟进就好了。
我看到有人用 Coq here 做这个,我想肯定也可以在 Agda 中做,但我不知道如何定义公理,就像在 Coq 示例中定义的那样(Axiom cw : Tile -> Tile.
).
请记住,我对实际实现这里的功能不感兴趣,我只需要根据一些公理做代数运算。
Axiom
的 Agda 等价物是 postulate
,其工作方式应该基本相同。
我正在阅读“代数驱动设计”一书,在第二章中它开始设计一个简单的代数系统,如下所示:
data Tile
haskell :: Tile
sandy :: Tile
cw :: Tile -> Tile
∀ (t :: Tile).
cw (cw (cw (cw t))) = t
它从那里开始建立。所以我想如果我能有一个证明助手来跟进就好了。
我看到有人用 Coq here 做这个,我想肯定也可以在 Agda 中做,但我不知道如何定义公理,就像在 Coq 示例中定义的那样(Axiom cw : Tile -> Tile.
).
请记住,我对实际实现这里的功能不感兴趣,我只需要根据一些公理做代数运算。
Axiom
的 Agda 等价物是 postulate
,其工作方式应该基本相同。