というレコード タイプを作成しgraph
、適切な「のサブグラフである」関係を定義しました。ord
グラフのセットとサブグラフの関係が一緒になって順序を形成すること、つまりクラスのインスタンスであることを示したいと思います。しかし、私はそれを機能させることができません。これが私の最小限の作業例です:
theory John imports
Main
begin
typedecl node
record graph =
nodes :: "node set"
edges :: "(node × node) set"
definition subgraph :: "graph ⇒ graph ⇒ bool"
(infix "⊑" 50)
where
"G ⊑ H ≡
nodes G ⊆ nodes H ∧ edges G ⊆ edges H"
lemma "(GREATEST H. H ⊑ G) = G"
oops
end
エラーが発生します:
Type unification failed: No type arity graph_ext :: ord"
instantiation graph :: ord
や などを入力してみinstantiation graph_ext :: ord
ましたが、何もうまくいかないようです。何か案は?