aboutsummaryrefslogtreecommitdiff
path: root/src/Specific
diff options
context:
space:
mode:
authorGravatar Jason Gross <jgross@mit.edu>2017-10-13 18:21:26 -0400
committerGravatar Jason Gross <jasongross9@gmail.com>2017-10-18 23:01:29 -0400
commit3c7ca12e20b936012cec2f4bd8eb3e4906b37dc4 (patch)
tree768b8a544c876783a51b802858877998d0026729 /src/Specific
parentd97aed63127761f1815e0d774bcec281b1a46c3f (diff)
Stronger pose_proof_tuple
Diffstat (limited to 'src/Specific')
-rw-r--r--src/Specific/Framework/ArithmeticSynthesis/HelperTactics.v11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Specific/Framework/ArithmeticSynthesis/HelperTactics.v b/src/Specific/Framework/ArithmeticSynthesis/HelperTactics.v
index e2bc9e6e0..5e3c8603b 100644
--- a/src/Specific/Framework/ArithmeticSynthesis/HelperTactics.v
+++ b/src/Specific/Framework/ArithmeticSynthesis/HelperTactics.v
@@ -44,9 +44,16 @@ Ltac pose_correct_if_Z v mkeqn id :=
id.
Ltac pose_proof_tuple ls :=
+ let t := type of ls in
lazymatch ls with
- | pair ?x ?y => pose_proof_tuple x; pose_proof_tuple y
- | ?ls => pose proof ls
+ | prod ?x ?y => pose_proof_tuple x; pose_proof_tuple y
+ | conj ?x ?y => pose_proof_tuple x; pose_proof_tuple y
+ | _
+ => lazymatch eval hnf in t with
+ | prod ?x ?y => pose_proof_tuple (fst ls); pose_proof_tuple (snd ls)
+ | and ?x ?y => pose_proof_tuple (proj1 ls); pose_proof_tuple (proj2 ls)
+ | _ => pose proof ls
+ end
end.
Ltac make_chained_carries_cps' sz wt s c a carry_chains :=