只有在命令成功后,才有方法在Ltac中打印(使用?)消息?喜欢的东西仅在战术成功时才打印消息
first [ a; idtac "a did it!" | b; idtac "b did!" | idtac "nope"; fail ]
这几乎工程,除了多个子目标导致打印多个消息:
Goal True /\ True.
split; idtac "Split did it!".
过滤上只是第一个目标似乎工作...
Goal True /\ True.
split; [ idtac "Split did it!" | .. ].
...除非没有:
Goal True /\ True.
tauto; [ idtac "Tauto did it!" | .. ].
我大概可以将两种模式合并为一种模式,但我并不太热衷于100%的点球命中。而这仍然不能解决完全实现目标的策略。 (我最感兴趣的是8.5之前的Coq的答案,因为8.5 Info
等为此提供了很好的设备,即使在8.5中,只能在某些点打印调试消息也会很有趣)
请注意,问题大约是8.4,而不是8.5。你在8.5中运行了这个例子,它确实只产生一条消息。 –
哦,我不知何故错过了。更新为Coq 8.4的解决方案。 –