删除元组的 tcast

Removing tcast for tuples

我被这样的目标平等所束缚(我认为细节并不重要):

tcast tc0
[tuple of take i (s_bs bs) ++ drop i.+1 (s_bs bs) ++ [:: [ffun⇒ 0]]] 
=
...

我如何摆脱 tcasttuple 回到简单的 seq(我尝试了 val_inj 技巧,但这似乎删除类型转换)?

提前致谢。

再见,

皮埃尔

给出一个准确的答案有点困难,因为你没有提供任何可重现的测试用例。但是您可以尝试使用以下引理重写您的目标,一旦您应用了 val_inj.

Lemma val_tcast {T} m n (tc : n = m) (x : n.-tuple T) :
  val (tcast tc x) = val x.
Proof. now case tc. Qed.

我认为,至少在我必须处理的情况下,正确使用使用 tcastEtnth_nth 的重写(强制转换为 nat),然后通过 /= 的部分评估,摆脱了 tcast