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.
缩写来搜索它们