Stream: Beginner Questions

Topic: Ill-formed introduction rule


view this post on Zulip Yiming Xu (Oct 04 2024 at 03:56):

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!

view this post on Zulip Yiming Xu (Oct 04 2024 at 04:11):

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