이자벨에서 예를 들어 자연수의 불평등의 다음과 같은 정의를 생각해이자벨에서 유도 적으로 정의 된 관계의 비 반사성을 어떻게 증명할 수 있습니까?
inductive unequal :: "nat ⇒ nat ⇒ bool" where
zero_suc: "unequal 0 (Suc _)" |
suc_zero: "unequal (Suc _) 0" |
suc_suc: "unequal n m ⟹ unequal (Suc n) (Suc m)"
내가 unequal
의 irreflexivity을 증명하려는, 즉, ¬ unequal n n
입니다. 설명을 위해이 날 처음 고안 보조 정리를 ¬ unequal (n + m) (n + m)
을 증명하지 말라 : 처음 두 경우
lemma "¬ unequal (n + m) (n + m)"
proof
assume "unequal (n + m) (n + m)"
then show False
proof (induction "n + m" "n + m" arbitrary: n m)
case zero_suc
then show False by simp
next
case suc_zero
then show False by simp
next
case suc_suc
then show False by presburger
qed
qed
을 False
는 사소한 가정 0 = n + m
및 Suc _ = n + m
에서 추론 할 수 있어야합니다.
나는 다음과 같은 패턴에 따라, 즉, ¬ unequal n n
의 증거가 유사한 방법으로 수행 할 수 있다는 기대 : 특히
lemma "¬ unequal n n"
proof
assume "unequal n n"
then show False
proof (induction n n arbitrary: n)
case zero_suc
then show False sorry
next
case suc_zero
then show False sorry
next
case suc_suc
then show False sorry
qed
qed
를, 내가 기대하는 처음 두 경우에, I 가정은 0 = n
및 Suc _ = n
입니다. 그러나 나는 아무런 가정도 얻지 못한다. 즉, 아무것도 얻지 못하도록 False
을 증명하도록 요청 받았다. 왜 그런가, 그리고 어떻게하면 불평등의 증거를 수행 할 수 있을까?
'불평등'에 대한 유도는 실제로 내가 원했던 것입니다. 나의 실제 문제는 불평등에 관한 문제가 아니라 bisimilarity입니다. 이 상황에서 설명하는 솔루션은 실제로 옵션이 아닙니다. 그리고 나는 왜 '불공평'에 대한 귀납법이 여기서 효과가 없는지 이해하지 못합니다. 결국 그것은'n + m '을 사용한 예제에서 작동했습니다. –
Isabelle/Isar Reference Manual에있는 '유도 (induction)'증명 방법에 관한 부분을주의 깊게 공부 한 후에, 나는 나의 문제에 대한 해결책을 발견했다. 나는 곧 질문에 직접 대답 할 것이다. 그럼에도 불구하고, 당신의 노력에 감사드립니다. –
확인. 나는 너의 대답을 고대하고있다. – Bruno