教类型检查器2 ^ e≢0

123omnomnom

假设我已2 ^ e ≢ 0针对所有对象进行了显示e

module Question where

open import Data.Nat
open import Data.Nat.DivMod
open import Relation.Binary.PropositionalEquality

postulate 2^e≢0 : (e : ℕ) → 2 ^ e ≢ 0

我现在希望类型检查器在以下情况下使用此知识:

postulate lemma : (m e : ℕ) → m / 2 ^ e ≤ m

在这里,类型检查器抱怨2 ^ e除数,错误消息为_≢0_6 : Relation.Nullary.Decidable.Core.False ((2 ^ e) ≟ 0)

有没有办法使决策程序使用我的2^e≢0引理?

我可以提出以下解决方法,这似乎有点笨拙。我的想法是使用一个显然非零的除数suc x并证明它等于2 ^ e

postulate lemma′ : (m e x : ℕ) → suc x ≡ 2 ^ e → m / suc x ≤ m

类似地,我可以使用Agda的div-helper内置函数代替,/然后传递x给它suc x

但是我在想,是否可以教类型检查器新的技巧而不是使用替代方法。

先生

除被除数和除数外,还_/_采用一个隐式参数,这是除数不等于0的证明。

如文件中divmod.agda所述,此参数隐式的原因是,当除数的形式suc n为时可以推断出该参数。例如,以下定义类型检查正确,因为2定义上等于suc 1

four : ℕ
four = 8 / 2

但是,对于给定nm / n不会直接进行敲击,因为在一般情况下无法推断出证明。如果不能,则需要直接将其作为附加隐式参数的实例传递。

就您而言,除数在命题上不等于0,但在定义上不等于0,这意味着您必须执行以下过程:

postulate lemma : ∀ {m e} → (m / 2 ^ e) {fromWitnessFalse (2^e≢0 {e})} ≤ m

为了能够使用,fromWitnessFalse您需要在文件中添加以下导入:

open import Relation.Nullary.Decidable.Core

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQLite,ASCII字符0x20至0x7E检查约束

来自分类Dev

为什么2a0 ++等于2a1,但2e0 ++等于3?

来自分类Dev

如何使用检查器测试此适用实例?(没有用于CoArbitrary的实例(验证e0 [Char]))

来自分类Dev

哪种时间戳格式为“ 07:df:01:0e:0e:28:2a:39”?

来自分类Dev

哪种时间戳格式为“ 07:df:01:0e:0e:28:2a:39”?

来自分类Dev

私有方法“active_for_authentication?” 调用 #<User:0x00007f2d0e04d3e0>

来自分类Dev

从Node.js中的firebird中选择时,未知值<Buffer d2 f3 f0 e0 e5 e2 e0 20>

来自分类Dev

我的Fritz盒中的未知以太类型0x88e1和0x8912

来自分类Dev

如何修复“无法将类型为‘__NSCFNumber’(0x116e337d8)的值转换为‘NSDictionary’(0x116e34818)”的错误。

来自分类Dev

[UINavigationController setGoalName:]:无法识别的选择器已发送到实例0x7964e2c0

来自分类Dev

[UITableViewCell menuImage]:无法识别的选择器已发送到实例0x10bb1e5e0

来自分类Dev

无法将“__NSCFNumber”(0x25418e000)类型的值转换为“NSString”

来自分类Dev

在Python 2.x中将u'\ xe0'转换为'\ u00E0'吗?

来自分类Dev

无法连接服务器。错误:0x8007000E

来自分类Dev

Android 模拟器白屏(E/SurfaceFlinger:GL 错误 0x0502)

来自分类Dev

10行的-(B2 * SUM(C2:E2)> 0)的数组公式?

来自分类Dev

量角器-在e2e测试中检查字符串的最佳方法是不为空

来自分类Dev

如何检查是否选中了用于量角器e2e测试的复选框

来自分类Dev

如何检查是否选中了用于量角器e2e测试的复选框

来自分类Dev

NotOLE2FileException:无效的标头签名;读取0x0000000000000000,预期为0xE11AB1A1E011CFD0

来自分类Dev

sudo apt-get在ec2 instace类型上安装apache2:ami-e0efab88失败

来自分类Dev

这是错误的E / Surface:getSlotFromBufferLocked:未知缓冲区:0xa2ae2310吗?

来自分类Dev

0x50E2DF58(msvcp120d.dll)的未处理异常

来自分类Dev

需要解释bash grep正则表达式grep -E'(^ | [^ 0-9。])'2 * .c

来自分类Dev

DataContractSerializer-名称不能以“。”开头 字符,十六进制值0x2E

来自分类Dev

Python2“在一个文件中提高e [0],e [1],e [2]”和python3版本

来自分类Dev

为什么是Array.new(10){| e | e = e + 2}产生[0 2 4 6 8 10 12 14 16 18]?

来自分类Dev

错误:无法将“NSNull”(0x10e404918)类型的值转换为“NSString”(0x10d5fac60)。(lldb)

来自分类Dev

是类型检查器错误吗?

Related 相关文章

  1. 1

    SQLite,ASCII字符0x20至0x7E检查约束

  2. 2

    为什么2a0 ++等于2a1,但2e0 ++等于3?

  3. 3

    如何使用检查器测试此适用实例?(没有用于CoArbitrary的实例(验证e0 [Char]))

  4. 4

    哪种时间戳格式为“ 07:df:01:0e:0e:28:2a:39”?

  5. 5

    哪种时间戳格式为“ 07:df:01:0e:0e:28:2a:39”?

  6. 6

    私有方法“active_for_authentication?” 调用 #<User:0x00007f2d0e04d3e0>

  7. 7

    从Node.js中的firebird中选择时,未知值<Buffer d2 f3 f0 e0 e5 e2 e0 20>

  8. 8

    我的Fritz盒中的未知以太类型0x88e1和0x8912

  9. 9

    如何修复“无法将类型为‘__NSCFNumber’(0x116e337d8)的值转换为‘NSDictionary’(0x116e34818)”的错误。

  10. 10

    [UINavigationController setGoalName:]:无法识别的选择器已发送到实例0x7964e2c0

  11. 11

    [UITableViewCell menuImage]:无法识别的选择器已发送到实例0x10bb1e5e0

  12. 12

    无法将“__NSCFNumber”(0x25418e000)类型的值转换为“NSString”

  13. 13

    在Python 2.x中将u'\ xe0'转换为'\ u00E0'吗?

  14. 14

    无法连接服务器。错误:0x8007000E

  15. 15

    Android 模拟器白屏(E/SurfaceFlinger:GL 错误 0x0502)

  16. 16

    10行的-(B2 * SUM(C2:E2)> 0)的数组公式?

  17. 17

    量角器-在e2e测试中检查字符串的最佳方法是不为空

  18. 18

    如何检查是否选中了用于量角器e2e测试的复选框

  19. 19

    如何检查是否选中了用于量角器e2e测试的复选框

  20. 20

    NotOLE2FileException:无效的标头签名;读取0x0000000000000000,预期为0xE11AB1A1E011CFD0

  21. 21

    sudo apt-get在ec2 instace类型上安装apache2:ami-e0efab88失败

  22. 22

    这是错误的E / Surface:getSlotFromBufferLocked:未知缓冲区:0xa2ae2310吗?

  23. 23

    0x50E2DF58(msvcp120d.dll)的未处理异常

  24. 24

    需要解释bash grep正则表达式grep -E'(^ | [^ 0-9。])'2 * .c

  25. 25

    DataContractSerializer-名称不能以“。”开头 字符,十六进制值0x2E

  26. 26

    Python2“在一个文件中提高e [0],e [1],e [2]”和python3版本

  27. 27

    为什么是Array.new(10){| e | e = e + 2}产生[0 2 4 6 8 10 12 14 16 18]?

  28. 28

    错误:无法将“NSNull”(0x10e404918)类型的值转换为“NSString”(0x10d5fac60)。(lldb)

  29. 29

    是类型检查器错误吗?

热门标签

归档