メソッドは、メソッド、および をdefault
内部的に呼び出します。これらのサポート名はありません ( については、これは2008 年の Isabelle メーリング リストで既に議論されています)。したがって、システムを で動作させる方法はありません。そのスレッドでは、次の 2 つの重要な点について言及しています。rule
unfold_locales
intro_classes
case
unfold_locales
case_name
default
ロケール階層がフラットである場合、基本的にはロケールの名前であるルールunfold_locales
を適用するだけです。ロケールの複雑な階層がある場合、どの解釈が既に利用可能かをチェックし、それに応じてルールを組み合わせます。Foo.intro
Foo
.intro
cases
ケース名を取得する正規の方法です。
したがって、case_name
属性を使用してケース名を手動で取得できます。
interpretation Foo "λ _ . True"
proof(cases rule: Foo.intro[case_names 0 Suc])
もちろん、複数回必要な場合は、定理にケース名をタグ付けすることもできます。
lemmas Foo_intro[case_names 0 Suc] = Foo.intro
でのケース名のサポートの問題unfold_locales
は、どのサブゴールがどのロケール継承に由来するかを実装が追跡しないことです。時間があれば、ケース名のサポートを自由に実装してください。