aboutsummaryrefslogtreecommitdiff
path: root/src/Compilers/Z
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-11-12 21:02:47 -0500
committerGravatar Jason Gross <jgross@mit.edu>2017-11-13 00:26:41 -0500
commit3aeb16c84f1554a5b6d4e63d5b417e1829bfbf18 (patch)
treeba5c565713d33cd8c30274b8b96fd7d4264b3919 /src/Compilers/Z
parent82500d94be615e82fdb4564ff0daac2f5dcb156c (diff)
More granularity in src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v
Diffstat (limited to 'src/Compilers/Z')
-rw-r--r--src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v b/src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v
index 199d4e0b8..0b9d364dd 100644
--- a/src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v
+++ b/src/Compilers/Z/Bounds/Pipeline/ReflectiveTactics.v
@@ -290,17 +290,25 @@ End with_round_up_list.
[PipelineCorrect] lemma to create side-conditions. It assumes the
goal is in exactly the form given in the conclusion of the
[PipelineCorrect] lemma. *)
-
+(** The [refine_PipelineSideConditions_constructor] subtactic splits
+ up the [PipelineSideConditions] record goal into multiple
+ subgoals, to be discharged by automation lower in this file
+ ([solve_post_reified_side_conditions]). *)
+Ltac refine_PipelineSideConditions_constructor :=
+ lazymatch goal with
+ | [ |- PipelineSideConditions ?opts ?evars _ ]
+ => simple refine {| Hevar := _ |};
+ cbv [b e' e_final e_final_newtype e e_pre_pkg e_pkg proj1_sig]
+ end.
Ltac refine_with_pipeline_correct opts :=
lazymatch goal with
| [ |- _ /\ ?castback ?fW = ?fZ ?arg ]
=> let lem := open_constr:(@PipelineCorrect _ opts _ _ _ _ _ _ {| e_pkg := _ |}) in
- simple refine (lem _ {| Hevar := _ |});
- cbv beta iota delta [b e' e_final e_final_newtype e e_pre_pkg e_pkg];
+ simple refine (lem _ _);
subst fW fZ
end;
[ eexists
- | cbv [proj1_sig].. ].
+ | refine_PipelineSideConditions_constructor ].
(** The tactic [solve_side_conditions] uses the above
reduction-and-proving-equality tactics to prove the