用什么样的Isabelle库来表示某个函数是线性顺序(在某个集合上) 在我的伊莎贝尔形式化中,我处理的是有限的自然数集,在这些集上,我想考虑具有线性顺序性质的函数。

用什么样的Isabelle库来表示某个函数是线性顺序(在某个集合上) 在我的伊莎贝尔形式化中,我处理的是有限的自然数集,在这些集上,我想考虑具有线性顺序性质的函数。,isabelle,Isabelle,我看到图书馆里有几种不同的订单形式,但我不确定要重复使用哪一种。在大多数情况下,我想检查这些函数是否为线性序的函数将通过使用库运算符(如来定义,我真的不知道是否有更好的理论可以使用,但您给出的引理(仍然在修复之后)是假的(给定的关系是不可伸缩的,而预期的关系应该是自反的). 以下是两个正确的版本: lemma "linear_order_on {1::nat, 2} {(a::nat, b) . {a, b} ⊆ {1::nat, 2} ∧ a ≤ b}" unfolding linear_

我看到图书馆里有几种不同的订单形式,但我不确定要重复使用哪一种。在大多数情况下,我想检查这些函数是否为线性序的函数将通过使用库运算符(如
来定义,我真的不知道是否有更好的理论可以使用,但您给出的引理(仍然在修复之后)是假的(给定的关系是不可伸缩的,而预期的关系应该是自反的). 以下是两个正确的版本:

lemma "linear_order_on {1::nat, 2} {(a::nat, b) . {a, b} ⊆ {1::nat, 2} ∧ a ≤ b}"
  unfolding linear_order_on_def partial_order_on_def preorder_on_def
    refl_on_def total_on_def trans_def antisym_def
  by auto

lemma "strict_linear_order_on {1::nat, 2} {(a::nat, b) . {a, b} ⊆ {1::nat, 2} ∧ a < b}"
  unfolding strict_linear_order_on_def partial_order_on_def preorder_on_def
    irrefl_def total_on_def trans_def antisym_def
  by auto
{1::nat,2}{(a::nat,b){a,b}⊆ {1::nat,2}∧ A.≤ b} " 展开线性_顺序_在_def上部分_顺序_在_def上预顺序_在_def上 refl_on_def total_on_def trans_def antisym_def 自动 引理{1::nat,2}{(a::nat,b)。{a,b}⊆ {1::nat,2}∧ a
所述引理(含蕴涵)为假,因为您给出的关系包括{1,2}x{1,2}的整个补码。我想你想用连词来代替暗示。谢谢,布莱恩,修正了!(引理修复后,问题仍然存在。)谢谢,勒伊,事实上——严格的线性顺序是我一直在寻找的。因此,感谢你为我解决了两个问题:一个是我上面提到的(但实际上没有),另一个是我确实有(但没有在上面提到);-)
lemma "linear_order_on {1::nat, 2} {(a::nat, b) . {a, b} ⊆ {1::nat, 2} ∧ a ≤ b}"
  unfolding linear_order_on_def partial_order_on_def preorder_on_def
    refl_on_def total_on_def trans_def antisym_def
  by auto

lemma "strict_linear_order_on {1::nat, 2} {(a::nat, b) . {a, b} ⊆ {1::nat, 2} ∧ a < b}"
  unfolding strict_linear_order_on_def partial_order_on_def preorder_on_def
    irrefl_def total_on_def trans_def antisym_def
  by auto