Isabelle 如何使用单词

Isabelle 如何使用单词,isabelle,Isabelle,在~~/src/HOL/word/word.thy中有一个名为word\u rsplit的函数 definition word_rsplit :: "'a :: len0 word => 'b :: len word list" where "word_rsplit w = map word_of_int (bin_rsplit (len_of TYPE ('b)) (len_of TYPE ('a), uint w))" 我想把一个32字分成四个8字,这个功能似乎很完美 引理

~~/src/HOL/word/word.thy
中有一个名为
word\u rsplit
的函数

definition word_rsplit :: "'a :: len0 word => 'b :: len word list" where
  "word_rsplit w = 
  map word_of_int (bin_rsplit (len_of TYPE ('b)) (len_of TYPE ('a), uint w))"
我想把一个
32字
分成四个
8字
,这个功能似乎很完美

引理
word\u rcat(word\u rsplit w)=w
对我也很有用


因此,我需要知道如何使用
word\u rsplit
,如何指定
'a
=32和
'b
=8。

要获得特定单词类型的
word\u rsplit
变体,只需给出显式类型约束即可。例如,您希望将一个
32个单词
拆分为几个
8个单词
s的示例可以指定如下:

word_rsplit :: 32 word => 8 word list"
示例:

value "(word_rsplit :: 32 word ⇒ 8 word list) 1024"
产生

"[0, 0, 4, 0]"
  :: "8 word list"

谢谢!现在看来很合理。