大小未知的有限列表

Finite list with unknown size

我在尝试使用 math-comp 库定义一些结构时有点困惑。我想定义一个结构,其功能范围从一组值到 returning 其他值列表。我正在尝试将此结构定义为 finType 但它失败了(我认为这是因为我正在 returning 一个未知大小的列表)。

例如:

Section MySection.

    Variables F V : finType.

    Structure m := M {
        f : {ffun F -> seq V};
        ...
    }.

(* Using the PcanXXXMixin family of lemmas *)

    Lemma can_m_of_prod : cancel prod_of_m m_of_prod.
      Proof. by case. Qed.

    ...

    Definition m_finMixin := CanFinMixin can_m_of_prod.

这会引发错误 Unable to unify

我认为问题在于我正在使用 seq,这不是有限的。我不确定如何描述它只会 return 有限列表。我想我可能会使用 n 元组,但这需要事先指定一个大小(我可以包括大小以及 F 值吗?我不确定在这个表示法中会是什么样子)。

我是否遗漏了什么或者是否有其他方法似乎更合适?

提前致谢!

我建议你直接在类型上指定绑定函数。例如,这在 Stefania Dumbrava 的博士论文中用于限制签名的最大数量,如果你知道这个技巧,效果很好:

f : {ffun n -> (bound ...).-tuple A}

通常 bound := \max_S ...,因此它与理论的其余部分配合得很好。