최근에 how to drop an unwanted premise in an apply-style proof을 알게 된 지금 불필요한 변수을 삭제하는 방법에 대해 궁금합니다. 즉, y
이 A
, B
또는 C
에 표시되지 않는 경우 내가 목표를적용 스타일의 목표에 변수 놓기
1. !!x y z. A ⟹ B ⟹ C
이 있다고 가정합니다. 어떻게 그것을 다음과 같이 변형 할 수 있습니까?
1. !!x z. A ⟹ B ⟹ C
최근에 how to drop an unwanted premise in an apply-style proof을 알게 된 지금 불필요한 변수을 삭제하는 방법에 대해 궁금합니다. 즉, y
이 A
, B
또는 C
에 표시되지 않는 경우 내가 목표를적용 스타일의 목표에 변수 놓기
1. !!x y z. A ⟹ B ⟹ C
이 있다고 가정합니다. 어떻게 그것을 다음과 같이 변형 할 수 있습니까?
1. !!x z. A ⟹ B ⟹ C
triv_forall_equality
은 실제로 중복 매개 변수를 제거하는 순수한 규칙입니다. ML 전술로 수행하는 prune_params_tac
도 있으며, 모든 부 목적에 적용됩니다. 후자는 실용 상 거의 필요하지 않기 때문에 Isar proof 방법으로 노출되지 않습니다. simp
및와 같은 도구는 기본적으로 이미 포함되어 있습니다.
(simp only: triv_forall_equality)
을 통한 접근은 많은 상황에서 효과가 있지만 참고할 만하다. Isabelle/HOL의 only
수식어는 주어진 단순한 규칙을 사용하여 "유일한"것보다 조금 더 많이합니다. 그것은 놀람이나 혼란을 일으킬 수있는 산술 해법을 포함합니다. 대신 infolding 식 c = t
의 재 작성 임의의 사용 단지 역사적 사고있다 :
작은 개념하다가가 있지만 당신이 (unfold triv_forall_equality)
을 사용할 수는 ISAR 방법 언어 내에서 정확하게 prune_params_tac
을 모방합니다.
간단한 :
apply simp
이 트릭을 할 것입니다. 당신이 목표 상태에있는 다른 변환을 수행하지 않으려면, 당신은 시도 할 수 있습니다 : 불필요한 메타 한정사를 제거하지만, 그 목표의 상태를 수정하지 않습니다
apply (simp only: triv_forall_equality)
합니다.