I am making the following inductive definition:
inductive path :: "('m ⇒ 'w list ⇒ bool) ⇒ 'w ⇒ 'w list set "
for Rf w
where
"[w] ∈ path Rf w"
| "⟦wl ∈ path Rf w ; Rf m (last wl # vl); v ∈ list.set vl⟧ ⟹ wl @ [v] ∈ path Rf w "
And got an error message:
Proofs for inductive predicate(s) "path"
Ill-formed introduction rule ""
w0 = w ⟹ [w0] ∈ path Rf w
Conclusion of introduction rule must be an inductive predicate
May I please ask what is wrong here? Many thanks!
Okay all my bad, never minds. I forgot that I should write "inductive_set" instead of "inductive". Sorry!
Last updated: Dec 21 2024 at 16:20 UTC