Types ';真正意义上的国际';和';雷亚尔';在伊莎贝尔?
伊莎贝尔的Types ';真正意义上的国际';和';雷亚尔';在伊莎贝尔?,types,isabelle,Types,Isabelle,伊莎贝尔的int、real和int是什么?它们听起来有点像类型,但通常类型的编写方式类似于x::real,它们的编写方式类似于real x 我无法证明以下陈述 "S ((n*x)+(-x)) = S (n*x)*C (-x) + C (n*x)*S (-x)" 我注意到伊莎贝尔写的是: S (real_of_int (int (n * x) + - int x)) = S (real (n * x)) * C (real_of_int (- int x)) + C (real (n * x)
int
、real
和int
是什么?它们听起来有点像类型,但通常类型的编写方式类似于x::real
,它们的编写方式类似于real x
我无法证明以下陈述
"S ((n*x)+(-x)) = S (n*x)*C (-x) + C (n*x)*S (-x)"
我注意到伊莎贝尔写的是:
S (real_of_int (int (n * x) + - int x)) =
S (real (n * x)) * C (real_of_int (- int x)) + C (real (n * x)) * S (real_of_int (- int x))
所以我希望能够理解这些是什么意思。当一个人使用复杂的_Main(或基于它的逻辑,如
HOL分析
,HOL概率
等)时,Isabelle支持从nat、int和rat强制到reals。如果类型不适合,则会自动添加这些类型
即如果f::real⇒ real
,n::nat
和i::int
:
f n ↝ f (real n)
f i ↝ f (real_of_int i)
其中real::nat⇒ real
是nat
到real
强制(范围固定为real的的缩写)和real\u int::real⇒ int
是int
的的缩写,其中范围固定为real
强制本质上是不同数字类型之间的态射,因此有许多可用的态射引理:of_nat(l+n)=of_nat l+of_nat n
等。最好的方法是只使用of_nat
和of_int
而不是real.
缩写来搜索它们