给定函数f:
definition f :: "real => real"
where "f x = x"
我可以证明,当n趋于0时,f(x + n)倾向于f(x)由下面的引理
lemma "(λn. f(x+n)) -- 0 --> f x"
unfolding f_def
apply (auto intro!: tendsto_eq_intros)
done
作为进一步的步骤,我想表明当(y-x)趋于0时,f(x +(y-x))倾向于f(x)。基本上,让n = y-x。
我无法解决这个问题,因为我无法替代lambda运算符,甚至不能让n = y-x。
我该如何解决这个问题?
答案 0 :(得分:0)
融合始终需要一个功能来识别哪些变化。但是,声明" (y - x)
倾向于0
"不会使变化部分明确。哪个变量有变化?如果x
已修复并且y
发生了更改,那么您可以将其表达为(%y. x - y)
,如果x
和y
都发生变化,那么它就是%(x, y). x - y
}。
一旦确定,您就可以使用合成定理LIM_compose_eventually
来限制。但请注意,at
内部使用的过滤器-- _ -->
不会评估目标点本身的功能。例如,(%n. f (x + n)) -- 0 --> f x
成立,(%n. if n = 0 then 10000 else f (x + n)) -- 0 --> f x
成立。因此,如果函数%y. x - y
等于邻域中的0
,则该定理将不起作用。在这种情况下,您应该能够直接证明您的结果。
答案 1 :(得分:0)
你可以证明
“(λ(x,y)。x-y) - 0 - >(0 :: real)”
将其改写为:
“(λx.fstx - snd x) - (0,0) - >(0 :: real)”
然后tendsto_eq_intros应该可以工作。
答案 2 :(得分:0)
您从限制的 h-form 或 delta-x表单开始。我在这里用我的非正式限制符号将其翻译成我认为HOL表示法的含义:
F1: limit[h -> 0]f(x + h) = f(x)
让h = y - x
。现在,定义了 delta-x 。通过简单的替换,我得到了这个:
F2: limit[(y - x) -> 0]f(x + (y - x)) = f(x)
为了理解它,我这样说:
对于固定值
x
,y
变为x
,因此|y - x|
变为零,限制为f(x)
。
在长答案中,我使用epsilon-delta定义展开F2
以检查限制公式是否有效。
将所有内容转换为HOL,并使用非缩写表示法,我得到了这个:
lemma "(((λy x. f(x + (y - x))) x) ---> f x) (at (0::real))"
apply(simp add: f_def )
by(metis tendsto_const)
您可以查看我的答案中的详细信息和评论,看看我是否正确。需要注意公式f(x + (y - x)) = f(y)
。
我在底部包含了一个完整的理论,但首先要详细说明。
正如A. Lochbihler提到的那样,我认为起点是决定我们在做什么空间。它是1变量还是2变量微积分?
你的函数f
是1变量的,所以我认为它是一个硬性要求。这意味着我尽力不采用2变量函数的限制。
我认为问题主要是将标准限制符号与HOL限制符号相匹配。
我切换到非缩写的HOL符号表示限制:(f ---> L) (at a)
。这是给我自己的,它来自Topological_Spaces.thy#l1868:
(*abbreviation
LIM :: "('a::topological_space ⇒ 'b::topological_space) ⇒ 'a ⇒ 'b ⇒ bool"
("((_)/ -- (_)/ --> (_))" [60, 0, 60] 60) where
"f -- a --> L ≡ (f ---> L) (at a)" *)
在这里,我现在使用自己的符号给出两种不同形式的限制:
F0: limit[x -> c]f(x) = f(c)
F1: limit[h -> 0]f(x + h) = f(x)
我通过简单替换获得第三种形式,如上所示:
F2: limit[(y - x) -> 0]f(x + (y - x)) = f(x)
F2
的两种HOL形式位于理论的底部,即:
lemma "(((λy x. f(x + (y - x))) x) ---> f x) (at (0::real))"
apply(simp add: f_def )
by(metis tendsto_const)
lemma
fixes g :: "real => real => real"
assumes "g = (λy x. f(x + (y - x)))"
shows "((g x) ---> f x) (at (0::real))"
apply(simp add: f_def assms)
by(metis tendsto_const)
这是从Notepad ++复制的理论,所以它都是ASCII字符。
theory i150128a_limits
imports Complex_Main begin
(*abbreviation
LIM :: "('a::topological_space => 'b::topological_space) => 'a => 'b => bool"
("((_)/ -- (_)/ --> (_))" [60, 0, 60] 60) where
"f -- a --> L \<equiv> (f ---> L) (at a)" *)
--{*| F0: limit[x -> c]f(x) = f(c) |*}
(*Constant c is fixed, and x will vary to c, so (x - c) or (c - x) goes
to 0.*)
--{*| F1: limit[h -> 0]f(x + h) = f(x) |*}
(*For a fixed value of variable 'x', 'h' will vary to 0, so
'(x + h)' will go to x.
Limit definition for this limit:
ALL e > 0. EX d > 0. if 0 < |h - 0| < d then |f(x + h) - f(x)| < e.
So, if 'f x = x', then 0 < |h| < d --> |x + h - x| = |h| < e. Let d = e.*)
--{*| HAVE: f definition |*}
definition "f x = (x::real)"
--{*| HAVE: The lemma formula. It appears to match up with F1 above. For a
fixed value of variable 'x', the bound variable 'h' in formula
'(\<lambda>h. f(x + h))' will vary to 0. |*}
term "((\<lambda>h. f(x + h)) ---> f x) (at (0::real))"
--{*| LET: h = y - x. |*}
--{*| By substitution in F1: |*}
--{*| F2: limit[(y - x) -> 0]f(x + (y - x)) = f(x) |*}
(*Similar to F1, for a fixed x, y goes to x, so (x - y) and (y - x) will
go to zero.*)
(* ALL e > 0. EX d > 0.
if 0 < |(y - x) - 0| < d then |f(x + (y - x)) - f(x)| < e.
If 'f x = x' then if 0 < |y - x| < d
then |x + (y - x) - x| = |y - x| < e. Again, let d = e. *)
--{*| In the next lemma, 'g = ((\<lambda>y x. f(x + (y - x))) x)' is a
1-variablefunction in which 'y' varies to 'x', as in F2 above.
There is'x' in the 'shows' formula, which is a free variable. Though
it is a variable, for a fixed 'x', the 'x' in 'g' is the same 'x' as
in 'f x'.|*}
lemma
fixes g :: "real => real => real"
assumes "g = (\<lambda>y x. f(x + (y - x)))"
shows "((g x) ---> f x) (at (0::real))"
apply(simp add: f_def assms)
by(metis tendsto_const)
--{*| The consolidated form. |*}
lemma "(((\<lambda>y x. f(x + (y - x))) x) ---> f x) (at (0::real))"
apply(simp add: f_def )
by(metis tendsto_const)
end
答案 3 :(得分:0)
我不解释为什么我这样操作,但我无法编辑其他答案,而HOL公式是错误的。纠正这样的事情会导致混乱,所以我会试着远离这一切。
我的纠正最终变得冗长,这可能被视为造成更加混乱。如果我的2个答案被删除,我真的不在乎。我只想尝试以几种方式纠正自己。早些时候,我提交了第一个答案的编辑。如果它通过,事情变得更加混乱。
关于错误的简短回答是,在lambda演算函数中,我有y x
我应该放x y
,这不会有允许lemma
被证明。一个教训是,一个人不能证明任何不真实的东西(假设HOL的一致性),但是一个人可以证明一些无意义的东西,我已经知道,证明了许多毫无意义的事情。
更正了,它是这样的:
--{*| The consolidated form CORRECTED AND BOGUS. |*}
lemma "(((%x y. f(x + (y - x))) x) ---> f x) (at (0::real))"
apply(simp add: f_def )
(*GOAL: (%y::real. y) -- 0::real --> x*)
oops
h
调查为delta x
在我看来,问题的基础围绕着试图在标准限制公式中明确h
的含义。
我认为这是一次合法的练习。可以简单地看出不同的限制公式是等价的,但是,对于一个特定的人,不知道如何在HOL中形成琐碎的事情会使事情变得非常微不足道,其中最终结果甚至可能是&#34的情况;这是一个微不足道的问题,为什么它的形式化并不简单?&#34; 。
h form
转换为x - c
表单,未能在HOL form
从我的角度来看,这主要与两个问题有关:
h = x - c
的内容,其中c
是常量,但
x - c
h
的地方,我不知道OP究竟是什么并且正在思考,但我将1变量,连续函数的极限作为起点,因为他的f
相当于{{1 }}。在这里,我使用我的非正式表示法:
id
在我的第一个问题中,我说&#34;对于固定的x,y变化为x&#34;。然而,这是1变量微积分,所以只有一件事变化,而且F0: limit[x -> c]f(x) = f(c).
。x
。在公式中,c
是常量。现在,健康的偏执狂,我正在寻找我的个人数学家说,&#34;是的,当然。那是微不足道的。&#34;如果我第一次感到有些困惑,那会是什么呢?它可能会再一次似曾相识。
我想用 delta x 来思考,所以我让h = x - c
,然后我用下一个F0
替换F1
:
F1: limit[h -> 0]f(c + h) = f(c).
我根本不喜欢这个。 h
的使用通常不会发挥作用。我的答案越来越长,因为我觉得有必要说出类似的东西,我会看到类似于这个微积分书的东西,但我想找到它完全正式化的地方。我在限制和衍生部分查看了Apostol的真实分析书,我没有看到h
的任何草率使用,但后来我没有看到任何h
的用法。 1}}我看了很短的时间,而且我没有时间继续寻找。&#34;
无论如何,我想明确h
是什么,所以我明白了:
F2: limit[(x - c) -> 0]f(c + (x - c)) = f(c).
= F3: limit[(x - c) -> 0]f(x) = f(c).
基于一本典型的微积分书&#34;在斯图尔特的教科书中,作者将阐明h
是什么,这里是斯图尔特做的一点,在h -> 0
的使用范围内:
请注意,
x
接近c
[实际上,&#39; a&#39;在书中,h
接近0(因为h = x - c
),所以斜率的表达式...... [斯图尔特,第6页,第145页]
形式化完全在他的括号中,&#34;(因为h = x - c
)&#34;,这根本没有形式化。但是,他的书并不是一本关于真实分析的完全正式的书,尽管它很严格。
存在两难问题,h
的目的是强调f(c + h)
,h
将会变为0.但如果你做了替换,那么你最后只有f(x)
,如F3
。在替换之后,f
中的变量没有变为0.我们回到x
前往c
,与我的起点{{1}一样}}
最后,考虑一下这个HOL引理:
F0
这不是我需要的,但它代表了我的需要。我需要一个固定的常数lemma
"((%x. f(c + (x - c))) ---> f c) (at (0::real))"
apply(simp add: f_def )
(*GOAL: (%x::real. x) -- 0::real --> c*)
oops
。单凭0并不好,因为基本上说c
将会变为0.我需要说的是x
将为0。
我不知道如何解决所有问题。
涉及一些简单的简化,例如x - c
,但正确的答案不是,&#34;嗯,它&#39;在平凡的情况下,你能看到吗?&#34;我是这么认为的,但我也可以犯下最微不足道的错误。