Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix Induct_on for mutually/nested recursive types #10

Open
mn200 opened this issue Sep 5, 2011 · 0 comments
Open

Fix Induct_on for mutually/nested recursive types #10

mn200 opened this issue Sep 5, 2011 · 0 comments
Assignees

Comments

@mn200
Copy link
Member

mn200 commented Sep 5, 2011

Example problem:

val _ = Hol_datatype `ptree = Leaf of 'ts | Node of 'nts => ptree list`
val ptsize_def = Define`
   (ptsize (Leaf t) = 1) /\
   (ptsize (Node nt ps) = ptsizel ps + 1) /\
   (ptsizel [] = 0) /\
   (ptsizel (p::ps) = ptsize p + ptsizel ps)
`
val ptsize_gt0 = prove(
   ``!t. 0 < ptsize t``,
   Induct_on `t` (* raises exception *)
);

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

@ghost ghost assigned mn200 Sep 5, 2011
mn200 added a commit that referenced this issue Jul 31, 2014
This is a start, of sorts, on having a go at github issue #10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant