当简化引理时,为什么程序不终止程序?
我正在使用isabelle使用函数apptransfrule(env n)r
来简化引理 r是一个大型公式,并带有数百个连词。实际上,当R很小时,可以终止此过程。有人可以告诉我简化的程序做什么吗?是什么原因导致卡住?谢谢!
lemma abs_NI_Remote_GetX_PutX_Home_ref :
"[|M <= N;dst <= M|]
==> absTransfRule (env N) M (NI_Remote_GetX_PutX_Home_ref N dst) =
NI_Remote_GetX_PutX_Home_ref M dst"
"[|M <= N;dst > M|]
==> absTransfRule (env N) M (NI_Remote_GetX_PutX_Home_ref N dst) =
ABS_NI_Remote_GetX_PutX_Home M"
unfolding NI_Remote_GetX_PutX_Home_ref_def
NI_Remote_GetX_PutX_Home_ref_def ABS_NI_Remote_GetX_PutX_Home_def apply(auto simp
add: Let_def )
done
这是对问题的附加描述 [1]: https://i.sstatic.net/gdanr.gdanr.png [2]: https://i.sstatic.net/syfoz.png [3]: https://i.sstatic.net/z1qko.png
I'm using Isabelle to simplify a lemma using a functionabsTransfRule (env N) r
and the r is a big formula with conjunctions of hundreds of conjuntals. In fact, when the r is small, this process can be terminated. Can someone tell me what does the simplifying procedure do? What causes the stuck? Thanks!
lemma abs_NI_Remote_GetX_PutX_Home_ref :
"[|M <= N;dst <= M|]
==> absTransfRule (env N) M (NI_Remote_GetX_PutX_Home_ref N dst) =
NI_Remote_GetX_PutX_Home_ref M dst"
"[|M <= N;dst > M|]
==> absTransfRule (env N) M (NI_Remote_GetX_PutX_Home_ref N dst) =
ABS_NI_Remote_GetX_PutX_Home M"
unfolding NI_Remote_GetX_PutX_Home_ref_def
NI_Remote_GetX_PutX_Home_ref_def ABS_NI_Remote_GetX_PutX_Home_def apply(auto simp
add: Let_def )
done
This is an additional description of the problem
[1]: https://i.sstatic.net/GdaNr.png
[2]: https://i.sstatic.net/syfOZ.png
[3]: https://i.sstatic.net/Z1QKO.png
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论