当简化引理时,为什么程序不终止程序?

发布于 2025-02-12 22:06:27 字数 1047 浏览 0 评论 0原文

我正在使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文