Я хочу иметь возможность доказать утверждение индукцией по n (типа nat). Он состоит из условного оператора, антецедент которого истинен только при n> = 2. Условное выражение, антецедент которого ложно, всегда истинно. Итак, я хотел бы доказать случаи n = 0, n = 1 и n = 2 отдельно от основного индуктивного шага. Можно ли провести доказательство по индукции с тремя базовыми случаями, подобными следующему:
lemma "P (n::nat) --> Q"
proof (induct n)
case 0
show ?case sorry
next
case 1
show ?case sorry
next
case 2
show ?case sorry
next
case (Suc n)
show ?case sorry
qed
В нынешнем виде это, похоже, не работает. Вместо этого я мог бы доказать "P (n+2) --> Q"
по индукции, но это было бы не столь сильное утверждение. Я рассматриваю случай, разделенный на _3 _, _ 4_ и "n>=2"
, и доказываю только последний случай по индукции.