Эквивалентный стиль Изара будет:
have "P"
using some_lemma by fastforce
then have "Q"
by (simp split: prod.splits)
Где «P» представляет промежуточное целевое состояние после первого apply
.
В общем, все доказуемое может быть доказано как в Изаре, так и в стиле apply
; оба имеют свои сильные и слабые стороны.
Я лично использую стиль, в котором я пытаюсь структурировать свои доказательства снаружи-внутри: снаружи (например, индукция) Изара и, если необходимо, внутри (например, упрощение, низкоуровневые вещи) с помощью apply
.
В общем, хотя я рекомендую вам как можно дольше оставаться в Изаре.