删除元组的 tcast
Removing tcast for tuples
我被这样的目标平等所束缚(我认为细节并不重要):
tcast tc0
[tuple of take i (s_bs bs) ++ drop i.+1 (s_bs bs) ++ [:: [ffun⇒ 0]]]
=
...
我如何摆脱 tcast
和 tuple
回到简单的 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.
我认为,至少在我必须处理的情况下,正确使用使用 tcastE
和 tnth_nth
的重写(强制转换为 nat
),然后通过 /=
的部分评估,摆脱了 tcast
。
我被这样的目标平等所束缚(我认为细节并不重要):
tcast tc0
[tuple of take i (s_bs bs) ++ drop i.+1 (s_bs bs) ++ [:: [ffun⇒ 0]]]
=
...
我如何摆脱 tcast
和 tuple
回到简单的 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.
我认为,至少在我必须处理的情况下,正确使用使用 tcastE
和 tnth_nth
的重写(强制转换为 nat
),然后通过 /=
的部分评估,摆脱了 tcast
。