Я пытаюсь доказать теорему, что если n > 0
, то g n b = True
(см. Ниже). Это так, потому что g (Suc n) b
только звонит g 0 True
. К сожалению, у меня нет такого факта в моей индукции, когда я пытаюсь доказать g 0 b
. Как я могу закончить доказательство (что мне нужно заменить sorry
)?Индукция по рекурсивной функции с завихрением
fun g :: "nat ⇒ bool ⇒ bool" where
"g (Suc n) b = g n True" |
"g 0 b = b"
theorem
fixes n::nat and b::bool
assumes "n > 0"
shows "g n b"
proof (induct n b rule: g.induct)
fix n
fix b
assume "g n True"
thus "g (Suc n) b" by (metis g.simps(1))
next
fix b
show "g 0 b" sorry
qed