primStringEquality 不减少
primStringEquality not reducing
当要求 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"
它returns primStringEquality "bar" "foo"
而不是F
。为什么?
平等的 primitive
而不是 postulate
。我们还必须在基元之前声明 BUILTIN STRING
。
postulate String : Set
{-# BUILTIN STRING String #-}
primitive primStringEquality : String → String → Bool
当要求 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"
它returns primStringEquality "bar" "foo"
而不是F
。为什么?
平等的 primitive
而不是 postulate
。我们还必须在基元之前声明 BUILTIN STRING
。
postulate String : Set
{-# BUILTIN STRING String #-}
primitive primStringEquality : String → String → Bool