aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jason Gross <jagro@google.com>2018-08-29 18:15:40 -0400
committerGravatar Jason Gross <jasongross9@gmail.com>2018-08-29 19:43:55 -0400
commit110378645750852c9e122e0a6d2a855c1fcbadf8 (patch)
tree415ccd64f2d41a4d86c5ae32fddaeb6a4580a331 /src
parentd0d6431ba6049b918ecb6d65dae360a2505fddee (diff)
Do less reduction in split_in_context
After | File Name | Before || Change | % Change -------------------------------------------------------------------------------------------------------------------- 54m00.14s | Total | 54m01.40s || -0m01.25s | -0.03% -------------------------------------------------------------------------------------------------------------------- 8m44.70s | Experiments/SimplyTypedArithmetic | 8m47.82s || -0m03.12s | -0.59% 4m42.62s | Experiments/NewPipeline/Toplevel1 | 4m41.46s || +0m01.16s | +0.41% 6m02.87s | Experiments/NewPipeline/SlowPrimeSynthesisExamples | 6m02.41s || +0m00.45s | +0.12% 4m11.22s | Experiments/NewPipeline/RewriterRulesGood | 4m10.37s || +0m00.84s | +0.33% 2m10.87s | Specific/X25519/C64/ladderstep | 2m11.16s || -0m00.28s | -0.22% 1m52.00s | Specific/NISTP256/AMD64/femul | 1m52.11s || -0m00.10s | -0.09% 1m44.19s | Experiments/NewPipeline/Toplevel2 | 1m44.18s || +0m00.00s | +0.00% 1m31.56s | Experiments/NewPipeline/Arithmetic | 1m31.54s || +0m00.02s | +0.02% 1m22.26s | Experiments/NewPipeline/RewriterWf2 | 1m22.63s || -0m00.36s | -0.44% 1m21.47s | Compilers/Named/MapCastInterp | 1m21.21s || +0m00.25s | +0.32% 1m18.74s | Specific/X2448/Karatsuba/C64/femul | 1m18.82s || -0m00.07s | -0.10% 0m59.94s | Specific/X25519/C32/femul | 0m59.63s || +0m00.30s | +0.51% 0m43.50s | Specific/X25519/C32/fesquare | 0m43.67s || -0m00.17s | -0.38% 0m41.97s | Experiments/NewPipeline/AbstractInterpretationWf | 0m41.98s || -0m00.00s | -0.02% 0m38.54s | p521_32.c | 0m38.49s || +0m00.04s | +0.12% 0m37.42s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery | 0m37.34s || +0m00.07s | +0.21% 0m34.28s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery | 0m34.28s || +0m00.00s | +0.00% 0m33.92s | Specific/X25519/C32/freeze | 0m33.78s || +0m00.14s | +0.41% 0m31.87s | p521_64.c | 0m32.02s || -0m00.15s | -0.46% 0m29.06s | Compilers/CommonSubexpressionEliminationWf | 0m29.05s || +0m00.00s | +0.03% 0m27.85s | Specific/NISTP256/AMD128/femul | 0m27.79s || +0m00.06s | +0.21% 0m25.54s | Experiments/NewPipeline/UnderLetsProofs | 0m25.62s || -0m00.08s | -0.31% 0m25.22s | Specific/X25519/C32/fecarry | 0m25.35s || -0m00.13s | -0.51% 0m23.60s | p384_32.c | 0m23.68s || -0m00.07s | -0.33% 0m22.47s | Experiments/NewPipeline/AbstractInterpretationZRangeProofs | 0m22.54s || -0m00.07s | -0.31% 0m22.45s | Experiments/NewPipeline/LanguageWf | 0m22.45s || +0m00.00s | +0.00% 0m21.36s | Specific/X25519/C32/fesub | 0m21.48s || -0m00.12s | -0.55% 0m20.99s | Specific/NISTP256/AMD64/fesub | 0m20.82s || +0m00.16s | +0.81% 0m20.96s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas | 0m20.94s || +0m00.01s | +0.09% 0m20.63s | Specific/X25519/C64/femul | 0m20.74s || -0m00.10s | -0.53% 0m19.94s | Specific/X25519/C32/Synthesis | 0m19.83s || +0m00.11s | +0.55% 0m19.19s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas | 0m18.89s || +0m00.30s | +1.58% 0m19.19s | Specific/X25519/C32/feadd | 0m19.18s || +0m00.01s | +0.05% 0m19.09s | Specific/NISTP256/AMD64/feadd | 0m19.03s || +0m00.05s | +0.31% 0m17.85s | Compilers/Named/MapCastWf | 0m17.83s || +0m00.02s | +0.11% 0m17.67s | Specific/X25519/C64/freeze | 0m17.67s || +0m00.00s | +0.00% 0m17.04s | Specific/X25519/C64/fesquare | 0m17.00s || +0m00.03s | +0.23% 0m15.86s | Specific/NISTP256/AMD64/feopp | 0m15.92s || -0m00.06s | -0.37% 0m15.52s | Compilers/Named/ContextProperties/SmartMap | 0m15.56s || -0m00.04s | -0.25% 0m15.22s | Compilers/Named/ContextProperties/NameUtil | 0m15.35s || -0m00.12s | -0.84% 0m15.08s | Specific/NISTP256/AMD128/feadd | 0m14.98s || +0m00.09s | +0.66% 0m14.67s | Specific/NISTP256/AMD128/fesub | 0m14.85s || -0m00.17s | -1.21% 0m14.28s | Specific/NISTP256/AMD64/fenz | 0m14.27s || +0m00.00s | +0.07% 0m14.19s | Specific/X25519/C64/fecarry | 0m14.22s || -0m00.03s | -0.21% 0m14.02s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas | 0m13.88s || +0m00.13s | +1.00% 0m13.86s | Specific/NISTP256/AMD128/fenz | 0m13.72s || +0m00.13s | +1.02% 0m13.08s | Specific/X25519/C64/fesub | 0m13.06s || +0m00.01s | +0.15% 0m12.50s | Experiments/NewPipeline/AbstractInterpretationProofs | 0m12.50s || +0m00.00s | +0.00% 0m12.39s | Util/ZRange/LandLorBounds | 0m12.36s || +0m00.03s | +0.24% 0m12.31s | Specific/NISTP256/AMD128/feopp | 0m12.29s || +0m00.02s | +0.16% 0m11.95s | Specific/X25519/C64/feadd | 0m11.88s || +0m00.06s | +0.58% 0m10.54s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas | 0m10.66s || -0m00.12s | -1.12% 0m09.87s | Specific/X2448/Karatsuba/C64/Synthesis | 0m09.88s || -0m00.01s | -0.10% 0m08.60s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery.ml | 0m08.54s || +0m00.06s | +0.70% 0m08.49s | p384_64.c | 0m08.56s || -0m00.07s | -0.81% 0m08.03s | Compilers/Named/RegisterAssignInterp | 0m08.06s || -0m00.03s | -0.37% 0m07.57s | Compilers/Named/CompileInterpSideConditions | 0m07.59s || -0m00.01s | -0.26% 0m07.40s | Compilers/InlineConstAndOpWf | 0m07.38s || +0m00.02s | +0.27% 0m07.06s | Specific/NISTP256/AMD64/Synthesis | 0m07.16s || -0m00.10s | -1.39% 0m06.44s | Compilers/Z/Bounds/InterpretationLemmas/PullCast | 0m06.56s || -0m00.11s | -1.82% 0m06.20s | Compilers/InlineWf | 0m06.30s || -0m00.09s | -1.58% 0m06.05s | Specific/X25519/C64/Synthesis | 0m06.03s || +0m00.01s | +0.33% 0m05.68s | Compilers/LinearizeWf | 0m05.74s || -0m00.06s | -1.04% 0m05.58s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery.hs | 0m05.49s || +0m00.08s | +1.63% 0m05.55s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas.ml | 0m05.42s || +0m00.12s | +2.39% 0m05.10s | Compilers/WfProofs | 0m05.02s || +0m00.08s | +1.59% 0m04.67s | Experiments/NewPipeline/RewriterWf1 | 0m04.73s || -0m00.06s | -1.26% 0m04.56s | Compilers/Z/Bounds/Pipeline/Definition | 0m04.56s || +0m00.00s | +0.00% 0m04.14s | Compilers/Named/CompileWf | 0m04.12s || +0m00.01s | +0.48% 0m04.06s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas.hs | 0m04.12s || -0m00.06s | -1.45% 0m04.02s | Experiments/NewPipeline/MiscCompilerPassesProofs | 0m03.96s || +0m00.05s | +1.51% 0m03.89s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas.ml | 0m03.89s || +0m00.00s | +0.00% 0m03.80s | p256_32.c | 0m03.74s || +0m00.05s | +1.60% 0m03.75s | secp256k1_32.c | 0m03.86s || -0m00.10s | -2.84% 0m03.67s | Compilers/EtaWf | 0m03.73s || -0m00.06s | -1.60% 0m03.44s | Compilers/Z/Bounds/InterpretationLemmas/IsBoundedBy | 0m03.42s || +0m00.02s | +0.58% 0m03.41s | Specific/NISTP256/AMD128/Synthesis | 0m03.34s || +0m00.07s | +2.09% 0m03.29s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas.hs | 0m03.29s || +0m00.00s | +0.00% 0m02.99s | Compilers/InlineInterp | 0m03.08s || -0m00.08s | -2.92% 0m02.99s | Compilers/Named/ContextProperties | 0m02.96s || +0m00.03s | +1.01% 0m02.88s | Compilers/TestCase | 0m02.85s || +0m00.02s | +1.05% 0m02.66s | Compilers/Named/CompileInterp | 0m02.68s || -0m00.02s | -0.74% 0m02.32s | Specific/NISTP256/FancyMachine256/Core | 0m02.26s || +0m00.06s | +2.65% 0m02.32s | Specific/NISTP256/FancyMachine256/Montgomery | 0m02.29s || +0m00.02s | +1.31% 0m02.26s | Specific/NISTP256/FancyMachine256/Barrett | 0m02.28s || -0m00.02s | -0.87% 0m02.18s | Compilers/Z/Bounds/Relax | 0m02.22s || -0m00.04s | -1.80% 0m02.10s | p224_32.c | 0m02.09s || +0m00.01s | +0.47% 0m02.08s | Compilers/Z/RewriteAddToAdcInterp | 0m02.09s || -0m00.00s | -0.47% 0m02.02s | Compilers/Named/NameUtilProperties | 0m02.06s || -0m00.04s | -1.94% 0m02.01s | curve25519_32.c | 0m02.02s || -0m00.01s | -0.49% 0m01.98s | Compilers/WfReflective | 0m01.85s || +0m00.12s | +7.02% 0m01.68s | Compilers/Named/WfFromUnit | 0m01.61s || +0m00.06s | +4.34% 0m01.67s | p224_64.c | 0m01.68s || -0m00.01s | -0.59% 0m01.65s | secp256k1_64.c | 0m01.64s || +0m00.01s | +0.60% 0m01.64s | p256_64.c | 0m01.52s || +0m00.11s | +7.89% 0m01.52s | Compilers/Relations | 0m01.60s || -0m00.08s | -5.00% 0m01.45s | Compilers/Named/InterpretToPHOASWf | 0m01.53s || -0m00.08s | -5.22% 0m01.44s | Experiments/NewPipeline/CLI | 0m01.40s || +0m00.04s | +2.85% 0m01.39s | curve25519_64.c | 0m01.37s || +0m00.01s | +1.45% 0m01.28s | Experiments/NewPipeline/StandaloneHaskellMain | 0m01.24s || +0m00.04s | +3.22% 0m01.25s | Experiments/NewPipeline/StandaloneOCamlMain | 0m01.29s || -0m00.04s | -3.10% 0m01.21s | Compilers/LinearizeInterp | 0m01.20s || +0m00.01s | +0.83% 0m01.07s | Specific/Framework/SynthesisFramework | 0m01.11s || -0m00.04s | -3.60% 0m01.03s | Compilers/Z/RewriteAddToAdcWf | 0m01.08s || -0m00.05s | -4.62% 0m00.98s | Compilers/Z/Bounds/Pipeline/ReflectiveTactics | 0m01.01s || -0m00.03s | -2.97% 0m00.96s | Compilers/Named/InterpretToPHOASInterp | 0m01.03s || -0m00.07s | -6.79% 0m00.96s | Specific/Framework/IntegrationTestDisplayCommon | 0m00.95s || +0m00.01s | +1.05% 0m00.90s | Experiments/NewPipeline/RewriterProofs | 0m00.94s || -0m00.03s | -4.25% 0m00.89s | Compilers/Named/CompileProperties | 0m00.83s || +0m00.06s | +7.22% 0m00.82s | Compilers/InterpByIsoProofs | 0m00.90s || -0m00.08s | -8.88% 0m00.80s | Compilers/InlineConstAndOpInterp | 0m00.74s || +0m00.06s | +8.10% 0m00.74s | Compilers/MapCastByDeBruijnInterp | 0m00.85s || -0m00.10s | -12.94% 0m00.73s | Compilers/CommonSubexpressionEliminationInterp | 0m00.78s || -0m00.05s | -6.41% 0m00.66s | Compilers/Z/Bounds/Pipeline | 0m00.72s || -0m00.05s | -8.33% 0m00.65s | Compilers/MapCastByDeBruijnWf | 0m00.62s || +0m00.03s | +4.83% 0m00.60s | Compilers/MapBaseTypeWf | 0m00.61s || -0m00.01s | -1.63% 0m00.59s | Compilers/Z/Reify | 0m00.60s || -0m00.01s | -1.66% 0m00.58s | Compilers/Z/Bounds/InterpretationLemmas/Tactics | 0m00.58s || +0m00.00s | +0.00% 0m00.56s | Compilers/InputSyntax | 0m00.51s || +0m00.05s | +9.80% 0m00.56s | Compilers/Z/Bounds/Pipeline/Glue | 0m00.55s || +0m00.01s | +1.81% 0m00.55s | Compilers/InterpWfRel | 0m00.55s || +0m00.00s | +0.00% 0m00.54s | Compilers/InterpWf | 0m00.47s || +0m00.07s | +14.89% 0m00.54s | Compilers/Z/Bounds/MapCastByDeBruijnInterp | 0m00.53s || +0m00.01s | +1.88% 0m00.54s | Compilers/Z/Bounds/RoundUpLemmas | 0m00.60s || -0m00.05s | -9.99% 0m00.53s | Compilers/InlineConstAndOpByRewriteWf | 0m00.56s || -0m00.03s | -5.35% 0m00.53s | Compilers/Z/Bounds/MapCastByDeBruijn | 0m00.51s || +0m00.02s | +3.92% 0m00.53s | Compilers/Z/Bounds/MapCastByDeBruijnWf | 0m00.56s || -0m00.03s | -5.35% 0m00.53s | Compilers/Z/GeneralizeVarWf | 0m00.49s || +0m00.04s | +8.16% 0m00.53s | Compilers/Z/MapCastByDeBruijnInterp | 0m00.54s || -0m00.01s | -1.85% 0m00.52s | Compilers/GeneralizeVarInterp | 0m00.52s || +0m00.00s | +0.00% 0m00.52s | Compilers/Z/InlineInterp | 0m00.48s || +0m00.04s | +8.33% 0m00.51s | Compilers/Z/InlineWf | 0m00.44s || +0m00.07s | +15.90% 0m00.50s | Compilers/Z/Bounds/Interpretation | 0m00.51s || -0m00.01s | -1.96% 0m00.50s | Compilers/Z/CommonSubexpressionEliminationInterp | 0m00.49s || +0m00.01s | +2.04% 0m00.49s | Compilers/Z/GeneralizeVarInterp | 0m00.45s || +0m00.03s | +8.88% 0m00.49s | Compilers/Z/InlineConstAndOpWf | 0m00.46s || +0m00.02s | +6.52% 0m00.48s | Compilers/InterpProofs | 0m00.46s || +0m00.01s | +4.34% 0m00.48s | Compilers/InterpRewriting | 0m00.43s || +0m00.04s | +11.62% 0m00.48s | Compilers/Reify | 0m00.54s || -0m00.06s | -11.11% 0m00.48s | Specific/Framework/IntegrationTestDisplayCommonTactics | 0m00.52s || -0m00.04s | -7.69% 0m00.47s | Compilers/Z/CommonSubexpressionEliminationWf | 0m00.50s || -0m00.03s | -6.00% 0m00.47s | Compilers/Z/MapCastByDeBruijnWf | 0m00.48s || -0m00.01s | -2.08% 0m00.47s | Compilers/Z/Named/DeadCodeEliminationInterp | 0m00.44s || +0m00.02s | +6.81% 0m00.46s | Compilers/Named/DeadCodeEliminationInterp | 0m00.55s || -0m00.09s | -16.36% 0m00.45s | Compilers/Z/InlineConstAndOpByRewriteWf | 0m00.45s || +0m00.00s | +0.00% 0m00.45s | Compilers/Z/InlineConstAndOpInterp | 0m00.49s || -0m00.03s | -8.16% 0m00.43s | Compilers/GeneralizeVarWf | 0m00.46s || -0m00.03s | -6.52% 0m00.42s | Compilers/Z/Bounds/Pipeline/OutputType | 0m00.40s || +0m00.01s | +4.99% 0m00.35s | Compilers/ZExtended/InlineConstAndOpWf | 0m00.32s || +0m00.02s | +9.37% 0m00.32s | Compilers/ZExtended/InlineConstAndOpByRewriteWf | 0m00.32s || +0m00.00s | +0.00% 0m00.30s | Compilers/Named/ContextProperties/Tactics | 0m00.37s || -0m00.07s | -18.91% 0m00.30s | Compilers/ZExtended/InlineConstAndOpInterp | 0m00.40s || -0m00.10s | -25.00% 0m00.06s | Util/Tactics/SplitInContext | 0m00.06s || +0m00.00s | +0.00% 0m00.05s | Util/Tactics | 0m00.06s || -0m00.00s | -16.66%
Diffstat (limited to 'src')
-rw-r--r--src/Experiments/NewPipeline/Toplevel1.v6
-rw-r--r--src/Experiments/SimplyTypedArithmetic.v2
-rw-r--r--src/Util/Tactics/SplitInContext.v10
3 files changed, 11 insertions, 7 deletions
diff --git a/src/Experiments/NewPipeline/Toplevel1.v b/src/Experiments/NewPipeline/Toplevel1.v
index 01018c3e2..6eeee9f48 100644
--- a/src/Experiments/NewPipeline/Toplevel1.v
+++ b/src/Experiments/NewPipeline/Toplevel1.v
@@ -232,7 +232,7 @@ Module Ring.
Lemma Good : GoodT.
Proof.
- split_and.
+ split_and; simpl in *.
repeat match goal with
| [ H : context[andb _ true] |- _ ] => setoid_rewrite andb_true_r in H
end.
@@ -441,7 +441,7 @@ Module MontgomeryStyleRing.
Qed.
Lemma Good : GoodT.
Proof.
- split_and.
+ split_and; simpl in *.
repeat match goal with
| [ H : context[andb _ true] |- _ ] => setoid_rewrite andb_true_r in H
end.
@@ -839,7 +839,7 @@ Module Pipeline.
| _ => eassumption || reflexivity
end.. ].
{ subst; split; [ | assumption ].
- split_and.
+ split_and; simpl in *.
split; [ solve [ eauto with nocore ] | ].
{ intros; match goal with H : _ |- _ => erewrite H; clear H end; eauto.
transitivity (type.app_curried (Interp (PartialEvaluateWithListInfoFromBounds e arg_bounds)) arg1).
diff --git a/src/Experiments/SimplyTypedArithmetic.v b/src/Experiments/SimplyTypedArithmetic.v
index abbf08a05..92799222e 100644
--- a/src/Experiments/SimplyTypedArithmetic.v
+++ b/src/Experiments/SimplyTypedArithmetic.v
@@ -2173,7 +2173,7 @@ Module Ring.
Lemma Good : GoodT.
Proof.
- split_and.
+ split_and; simpl in *.
eapply subsetoid_ring_by_ring_isomorphism;
cbv [ring_opp ring_add ring_sub ring_mul ring_encode F.sub] in *;
repeat match goal with
diff --git a/src/Util/Tactics/SplitInContext.v b/src/Util/Tactics/SplitInContext.v
index 3ff313197..dd4e424a3 100644
--- a/src/Util/Tactics/SplitInContext.v
+++ b/src/Util/Tactics/SplitInContext.v
@@ -5,9 +5,13 @@ Require Export Crypto.Util.FixCoqMistakes.
Ltac split_in_context_by ident funl funr tac :=
repeat match goal with
| [ H : context p [ident] |- _ ] =>
- let H0 := context p[funl] in let H0' := eval simpl in H0 in assert H0' by (tac H);
- let H1 := context p[funr] in let H1' := eval simpl in H1 in assert H1' by (tac H);
- clear H
+ let H0 := context p[funl] in
+ let H1 := context p[funr] in
+ let H0' := (eval cbv beta in H0) in
+ let H1' := (eval cbv beta in H1) in
+ assert H0' by (tac H);
+ assert H1' by (tac H);
+ clear H
end.
Ltac split_in_context ident funl funr :=
split_in_context_by ident funl funr ltac:(fun H => apply H).