gmalecha / mirror-core

A framework for extensible, reflective decision procedures.
Other
19 stars 5 forks source link

Get mirror-core building with Coq 8.10 #107

Closed JasonGross closed 5 years ago

JasonGross commented 5 years ago

Tested make with Coq 8.10.0 and 8.9.1. This builds with both of them assuming the version of coq-ext-lib you have is https://github.com/coq-community/coq-ext-lib/pull/76.

There were three errors that needed fixing:

  1. The universe inconsistency fixed by https://github.com/coq-community/coq-ext-lib/pull/76
  2. Unless Refine Instance Mode is set (I think it's deprecated and going away), Instance foo := <partial term>. Proof. <more stuff>. Defined. is no longer valid, and instead you need to refine with the partial term. Rather than just setting Refine Instance Mode, I've changed the instance declarations over for more forward-compatibility.
  3. Apparently the order in which return match inference is done changed and match got more eager about eliminating impossible branches. This was causing a later destruct to fail. Adding return _ forced a non-dependent return clause, allowing the later destruct to succeed.
gmalecha commented 5 years ago

Thanks!