据我所知方法induct并case负责设置命名案例。因此,我看不出有一种方法default可以按照您的要求进行。
你可以引入一个新规则,比如
lemma foo_rule [case_names 0 Suc]:
assumes "P 0"
and "⋀n. P n ⟹ P (Suc n)"
shows "foo P"
using assms by (simp add: foo_def)
或者喜欢
lemmas foo_rule [case_names 0 Suc] =
conjI [THEN foo_def [THEN meta_eq_to_obj_eq, THEN iffD2], rule_format]
如果你有这样的倾向。然后使用
interpretation foo "λ_. True"
proof (induct rule: foo_rule)
偶然我发现声明foo_rule [case_names 0 Suc, induct type]允许你省略规则名称,即
interpretation foo "λ_. True"
proof (induct)
但我可以想象这会打破现有的默认归纳规则。