primStringEquality不减少

时间:2018-09-05 14:36:19

标签: agda

当要求Agda在以下程序上规范test时:

data Bool : Set where
  T : Bool
  F : Bool
{-# BUILTIN BOOL  Bool  #-}
{-# BUILTIN TRUE  T #-}
{-# BUILTIN FALSE F #-}

postulate String : Set
postulate primStringEquality : String → String → Bool
{-# BUILTIN STRING String #-}

test : Bool
test = primStringEquality "bar" "foo"

它返回primStringEquality "bar" "foo"而不是F。为什么?

1 个答案:

答案 0 :(得分:2)

它是primitive而不是postulate。我们还必须在原语之前声明BUILTIN STRING

postulate String : Set
{-# BUILTIN STRING String #-}

primitive primStringEquality : String → String → Bool