diff options
author | Jason Gross <jgross@mit.edu> | 2018-10-25 13:20:01 -0400 |
---|---|---|
committer | Jason Gross <jgross@mit.edu> | 2018-10-25 13:20:01 -0400 |
commit | 8a3eda8ee4ca1df293ba47802959a4474a117412 (patch) | |
tree | 11b3253b71b0fc053215a308adb828f98967e7c8 /src | |
parent | b74097519133647f0ee2bd105bda0a866072e9a0 (diff) |
Add value_interp_related1
Diffstat (limited to 'src')
-rw-r--r-- | src/Experiments/NewPipeline/RewriterWf1.v | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/Experiments/NewPipeline/RewriterWf1.v b/src/Experiments/NewPipeline/RewriterWf1.v index 6ec85700a..d91ec0e69 100644 --- a/src/Experiments/NewPipeline/RewriterWf1.v +++ b/src/Experiments/NewPipeline/RewriterWf1.v @@ -1327,6 +1327,26 @@ Module Compilers. then UnderLets.interp ident_interp else (fun x => x)). + Fixpoint value'_interp_related1 + {with_lets1 t} + : @value' var with_lets1 t + -> var t + -> Prop + := match t return value' _ t -> var t -> Prop with + | type.base t + => fun v1 v2 + => expr.interp ident_interp (UnderLets_maybe_interp with_lets1 v1) + == v2 + | type.arrow s d + => fun (f1 : value' _ s -> value' _ d) (f2 : var s -> var d) + => forall x1 x2, + @value'_interp_related1 _ s x1 x2 + -> @value'_interp_related1 _ d (f1 x1) (f2 x2) + end. + + Definition value_interp_related1 {t} : @value var t -> var t -> Prop + := value'_interp_related1. + Fixpoint value'_interp_related {with_lets1 with_lets2 t} : @value' var with_lets1 t |