diff options
author | Jason Gross <jgross@mit.edu> | 2018-10-24 16:29:05 -0400 |
---|---|---|
committer | Jason Gross <jgross@mit.edu> | 2018-10-24 16:29:05 -0400 |
commit | e76a588c1040132e0d401b26186844d2e4ada0f8 (patch) | |
tree | 75ae32a8b17029b40880f23071f7591128ee508f /src | |
parent | 8caaa7d70e62de31827c420a802cc8b87aa6cbc3 (diff) |
Add GallinaReify.reify_as_interp
Diffstat (limited to 'src')
-rw-r--r-- | src/Experiments/NewPipeline/Language.v | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/Experiments/NewPipeline/Language.v b/src/Experiments/NewPipeline/Language.v index 1d263e291..bd668c50e 100644 --- a/src/Experiments/NewPipeline/Language.v +++ b/src/Experiments/NewPipeline/Language.v @@ -1645,6 +1645,16 @@ Module Compilers. end. End reify. + Fixpoint reify_as_interp {t : type} {struct t} + : type.interp base.interp t -> @expr (type.interp base.interp) t + := match t return type.interp base.interp t -> expr t with + | type.arrow s d + => fun (f : type.interp base.interp s -> type.interp base.interp d) + => (λ x , @reify_as_interp d (f x))%expr + | type.base t + => @base.reify _ t + end. + Definition Reify_as (t : type) (v : forall var, value var t) : Expr t := fun var => reify (v _). |