MetaCoq / metacoq

Metaprogramming, verified meta-theory and implementation of Coq in Coq
https://metacoq.github.io
MIT License
380 stars 82 forks source link

Support primitive array terms #998

Closed mattam82 closed 11 months ago

mattam82 commented 1 year ago

This carries around primitive arrays down the MetaCoq pipeline. I tried to impact as little as possible the derivations, by using nested inductive types for auxiliary judgements. We now have a typing judgement for primitive arrays (modelled as lists, as array not nestable), and they get erased to just a default value and list of elements. In pcuic and erasure we use a bunch of generic lemmas for automating the proofs on the prim_val container, which works pretty well. We have reduction on arrays but they are not considered in evaluation yet, this will be the subject of a later PR. Interesting points:

yforster commented 1 year ago

ping @ed-hermoreyes (is Mireia also on github?), maybe file your changes introducing explicit admits as a PR against the primitive-arrays branch?

JasonGross commented 11 months ago

@mattam82 is there some issue with quotation here that required disabling it?