aboutsummaryrefslogtreecommitdiff
path: root/src/Util
diff options
context:
space:
mode:
authorGravatar Jason Gross <jagro@google.com>2018-08-10 14:40:34 -0400
committerGravatar Jason Gross <jgross@mit.edu>2018-08-10 15:33:51 -0400
commit3e4207e23e26d30a61e95aca4172788f2279db6a (patch)
treea52ae9d9e98cddf94b5989ec119cfa9724efc196 /src/Util
parente832653f2eca18ed149f82a5a488a634a5887ee2 (diff)
Make Prod.eta_expand also work in the context
After | File Name | Before || Change | % Change -------------------------------------------------------------------------------------------------------------------- 72m53.69s | Total | 72m53.50s || +0m00.18s | +0.00% -------------------------------------------------------------------------------------------------------------------- 3m32.60s | Curves/Weierstrass/Projective | 3m37.14s || -0m04.53s | -2.09% 0m53.54s | Demo | 0m57.84s || -0m04.30s | -7.43% 3m49.48s | Curves/Montgomery/XZProofs | 3m46.84s || +0m02.63s | +1.16% 1m34.56s | Experiments/NewPipeline/Arithmetic | 1m31.58s || +0m02.98s | +3.25% 0m22.78s | Curves/Edwards/XYZT/Basic | 0m20.10s || +0m02.67s | +13.33% 5m07.48s | Experiments/NewPipeline/Toplevel1 | 5m06.40s || +0m01.08s | +0.35% 1m50.83s | Specific/NISTP256/AMD64/femul | 1m52.39s || -0m01.56s | -1.38% 8m44.06s | Experiments/SimplyTypedArithmetic | 8m44.91s || -0m00.85s | -0.16% 5m56.26s | Experiments/NewPipeline/SlowPrimeSynthesisExamples | 5m55.50s || +0m00.75s | +0.21% 3m11.28s | Curves/Montgomery/AffineProofs | 3m11.06s || +0m00.21s | +0.11% 2m12.80s | Specific/X25519/C64/ladderstep | 2m12.92s || -0m00.11s | -0.09% 1m37.06s | Experiments/NewPipeline/Toplevel2 | 1m36.99s || +0m00.06s | +0.07% 1m23.04s | Compilers/Named/MapCastInterp | 1m23.14s || -0m00.10s | -0.12% 1m18.41s | Specific/X2448/Karatsuba/C64/femul | 1m18.71s || -0m00.30s | -0.38% 1m17.79s | Experiments/NewPipeline/Rewriter | 1m18.20s || -0m00.41s | -0.52% 1m14.41s | Curves/Weierstrass/Jacobian | 1m14.37s || +0m00.03s | +0.05% 0m59.72s | Specific/X25519/C32/femul | 0m59.63s || +0m00.08s | +0.15% 0m49.26s | Compilers/Z/Named/RewriteAddToAdcInterp | 0m49.30s || -0m00.03s | -0.08% 0m47.21s | Compilers/Z/ArithmeticSimplifierInterp | 0m46.85s || +0m00.35s | +0.76% 0m42.99s | Specific/X25519/C32/fesquare | 0m42.76s || +0m00.23s | +0.53% 0m42.31s | Arithmetic/Karatsuba | 0m42.29s || +0m00.02s | +0.04% 0m41.58s | Experiments/NewPipeline/AbstractInterpretationWf | 0m41.62s || -0m00.03s | -0.09% 0m38.94s | p521_32.c | 0m38.94s || +0m00.00s | +0.00% 0m37.95s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery | 0m37.95s || +0m00.00s | +0.00% 0m36.98s | Experiments/NewPipeline/LanguageInversion | 0m37.11s || -0m00.13s | -0.35% 0m36.32s | Spec/Ed25519 | 0m36.81s || -0m00.49s | -1.33% 0m36.22s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery | 0m35.98s || +0m00.24s | +0.66% 0m33.55s | Specific/X25519/C32/freeze | 0m33.46s || +0m00.08s | +0.26% 0m32.73s | p521_64.c | 0m32.71s || +0m00.01s | +0.06% 0m31.31s | Compilers/Z/ArithmeticSimplifierWf | 0m31.44s || -0m00.13s | -0.41% 0m29.03s | Compilers/CommonSubexpressionEliminationWf | 0m29.04s || -0m00.00s | -0.03% 0m27.84s | Specific/NISTP256/AMD128/femul | 0m27.41s || +0m00.42s | +1.56% 0m25.79s | Experiments/NewPipeline/UnderLetsProofs | 0m25.88s || -0m00.08s | -0.34% 0m25.42s | Specific/X25519/C32/fecarry | 0m25.25s || +0m00.17s | +0.67% 0m23.60s | p384_32.c | 0m23.79s || -0m00.18s | -0.79% 0m22.35s | Experiments/NewPipeline/LanguageWf | 0m22.28s || +0m00.07s | +0.31% 0m21.53s | Arithmetic/Core | 0m21.55s || -0m00.01s | -0.09% 0m21.35s | Specific/X25519/C32/fesub | 0m21.34s || +0m00.01s | +0.04% 0m20.98s | Arithmetic/MontgomeryReduction/WordByWord/Abstract/Dependent/Proofs | 0m21.20s || -0m00.21s | -1.03% 0m20.88s | Specific/NISTP256/AMD64/fesub | 0m20.80s || +0m00.07s | +0.38% 0m20.78s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas | 0m20.83s || -0m00.04s | -0.24% 0m20.50s | Specific/X25519/C64/femul | 0m20.29s || +0m00.21s | +1.03% 0m19.33s | Specific/X25519/C32/Synthesis | 0m19.52s || -0m00.19s | -0.97% 0m19.27s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas | 0m19.44s || -0m00.17s | -0.87% 0m19.20s | Specific/X25519/C32/feadd | 0m19.36s || -0m00.16s | -0.82% 0m19.03s | Specific/NISTP256/AMD64/feadd | 0m19.01s || +0m00.01s | +0.10% 0m18.36s | Compilers/Z/CNotations | 0m18.36s || +0m00.00s | +0.00% 0m17.93s | Compilers/Named/MapCastWf | 0m18.05s || -0m00.12s | -0.66% 0m17.68s | Specific/X25519/C64/freeze | 0m17.65s || +0m00.03s | +0.16% 0m16.91s | Specific/X25519/C64/fesquare | 0m16.96s || -0m00.05s | -0.29% 0m16.34s | Curves/Edwards/AffineProofs | 0m16.25s || +0m00.08s | +0.55% 0m16.02s | Specific/NISTP256/AMD64/feopp | 0m15.89s || +0m00.12s | +0.81% 0m15.66s | Compilers/Named/ContextProperties/SmartMap | 0m15.74s || -0m00.08s | -0.50% 0m15.38s | Compilers/Named/ContextProperties/NameUtil | 0m15.52s || -0m00.13s | -0.90% 0m15.04s | Specific/NISTP256/AMD128/feadd | 0m14.78s || +0m00.25s | +1.75% 0m14.90s | Specific/NISTP256/AMD128/fesub | 0m14.84s || +0m00.06s | +0.40% 0m14.24s | Specific/NISTP256/AMD64/fenz | 0m14.21s || +0m00.02s | +0.21% 0m14.18s | Specific/X25519/C64/fecarry | 0m14.13s || +0m00.04s | +0.35% 0m14.08s | Arithmetic/Saturated/AddSub | 0m14.76s || -0m00.67s | -4.60% 0m13.84s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas | 0m13.82s || +0m00.01s | +0.14% 0m13.60s | Specific/NISTP256/AMD128/fenz | 0m13.56s || +0m00.03s | +0.29% 0m13.04s | Specific/X25519/C64/fesub | 0m13.04s || +0m00.00s | +0.00% 0m13.02s | Experiments/NewPipeline/CStringification | 0m13.10s || -0m00.08s | -0.61% 0m12.68s | Compilers/Z/Syntax/Equality | 0m12.68s || +0m00.00s | +0.00% 0m12.10s | Experiments/NewPipeline/GENERATEDIdentifiersWithoutTypesProofs | 0m12.02s || +0m00.08s | +0.66% 0m12.07s | Specific/NISTP256/AMD128/feopp | 0m12.14s || -0m00.07s | -0.57% 0m12.02s | Arithmetic/MontgomeryReduction/WordByWord/Abstract/Proofs | 0m12.11s || -0m00.08s | -0.74% 0m12.02s | Primitives/MxDHRepChange | 0m11.95s || +0m00.07s | +0.58% 0m11.99s | Specific/X25519/C64/feadd | 0m11.96s || +0m00.02s | +0.25% 0m11.58s | Arithmetic/Saturated/MontgomeryAPI | 0m11.54s || +0m00.04s | +0.34% 0m11.05s | LegacyArithmetic/Double/Proofs/Multiply | 0m10.98s || +0m00.07s | +0.63% 0m10.90s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas | 0m10.92s || -0m00.01s | -0.18% 0m10.63s | Arithmetic/Saturated/Core | 0m10.61s || +0m00.02s | +0.18% 0m09.81s | Specific/X2448/Karatsuba/C64/Synthesis | 0m09.78s || +0m00.03s | +0.30% 0m08.56s | LegacyArithmetic/Double/Proofs/ShiftRightDoubleWordImmediate | 0m08.58s || -0m00.01s | -0.23% 0m08.50s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery.ml | 0m08.47s || +0m00.02s | +0.35% 0m08.50s | LegacyArithmetic/ArchitectureToZLikeProofs | 0m08.45s || +0m00.05s | +0.59% 0m08.47s | Experiments/NewPipeline/GENERATEDIdentifiersWithoutTypes | 0m08.55s || -0m00.08s | -0.93% 0m08.38s | p384_64.c | 0m08.44s || -0m00.05s | -0.71% 0m08.29s | Compilers/Named/RegisterAssignInterp | 0m08.18s || +0m00.10s | +1.34% 0m08.11s | LegacyArithmetic/Double/Proofs/SpreadLeftImmediate | 0m08.16s || -0m00.05s | -0.61% 0m07.71s | Compilers/Named/CompileInterpSideConditions | 0m07.63s || +0m00.08s | +1.04% 0m07.50s | Compilers/InlineConstAndOpWf | 0m07.66s || -0m00.16s | -2.08% 0m07.14s | LegacyArithmetic/Double/Proofs/RippleCarryAddSub | 0m07.19s || -0m00.05s | -0.69% 0m06.92s | Specific/NISTP256/AMD64/Synthesis | 0m06.91s || +0m00.00s | +0.14% 0m06.63s | Arithmetic/Saturated/MulSplit | 0m06.54s || +0m00.08s | +1.37% 0m06.57s | Compilers/Z/Bounds/InterpretationLemmas/PullCast | 0m06.48s || +0m00.08s | +1.38% 0m06.32s | Util/ListUtil | 0m06.44s || -0m00.12s | -1.86% 0m06.22s | Compilers/InlineWf | 0m06.17s || +0m00.04s | +0.81% 0m06.21s | LegacyArithmetic/Pow2BaseProofs | 0m06.22s || -0m00.00s | -0.16% 0m05.94s | Specific/X25519/C64/Synthesis | 0m05.89s || +0m00.05s | +0.84% 0m05.71s | Compilers/LinearizeWf | 0m05.75s || -0m00.04s | -0.69% 0m05.54s | Compilers/Z/HexNotationConstants | 0m05.52s || +0m00.02s | +0.36% 0m05.44s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery.hs | 0m05.46s || -0m00.01s | -0.36% 0m05.42s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas.ml | 0m05.42s || +0m00.00s | +0.00% 0m05.08s | Compilers/WfProofs | 0m05.01s || +0m00.07s | +1.39% 0m04.71s | Specific/Framework/ArithmeticSynthesis/Montgomery | 0m04.72s || -0m00.00s | -0.21% 0m04.70s | LegacyArithmetic/InterfaceProofs | 0m04.72s || -0m00.01s | -0.42% 0m04.46s | Compilers/Z/BinaryNotationConstants | 0m04.55s || -0m00.08s | -1.97% 0m04.42s | Curves/Montgomery/Affine | 0m04.45s || -0m00.03s | -0.67% 0m04.41s | Compilers/Z/Bounds/Pipeline/Definition | 0m04.49s || -0m00.08s | -1.78% 0m04.24s | Experiments/NewPipeline/AbstractInterpretationProofs | 0m04.20s || +0m00.04s | +0.95% 0m04.06s | Compilers/Named/CompileWf | 0m04.10s || -0m00.04s | -0.97% 0m03.96s | Arithmetic/MontgomeryReduction/WordByWord/Proofs | 0m03.85s || +0m00.10s | +2.85% 0m03.96s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas.hs | 0m04.09s || -0m00.12s | -3.17% 0m03.94s | Experiments/NewPipeline/MiscCompilerPassesProofs | 0m04.02s || -0m00.07s | -1.99% 0m03.91s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas.ml | 0m03.92s || -0m00.00s | -0.25% 0m03.84s | p256_32.c | 0m03.72s || +0m00.11s | +3.22% 0m03.72s | LegacyArithmetic/Double/Proofs/ShiftRight | 0m03.67s || +0m00.05s | +1.36% 0m03.71s | secp256k1_32.c | 0m03.76s || -0m00.04s | -1.32% 0m03.67s | Compilers/EtaWf | 0m03.67s || +0m00.00s | +0.00% 0m03.58s | Compilers/Z/ArithmeticSimplifier | 0m03.57s || +0m00.01s | +0.28% 0m03.54s | Compilers/Z/Bounds/InterpretationLemmas/IsBoundedBy | 0m03.49s || +0m00.04s | +1.43% 0m03.37s | Specific/NISTP256/AMD128/Synthesis | 0m03.23s || +0m00.14s | +4.33% 0m03.32s | LegacyArithmetic/Double/Proofs/Decode | 0m03.41s || -0m00.09s | -2.63% 0m03.27s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas.hs | 0m03.25s || +0m00.02s | +0.61% 0m03.18s | LegacyArithmetic/Double/Proofs/ShiftLeft | 0m03.10s || +0m00.08s | +2.58% 0m03.03s | Compilers/Named/ContextProperties | 0m02.97s || +0m00.05s | +2.02% 0m03.02s | Compilers/InlineInterp | 0m03.04s || -0m00.02s | -0.65% 0m02.92s | Arithmetic/Saturated/Freeze | 0m02.64s || +0m00.27s | +10.60% 0m02.83s | Compilers/TestCase | 0m02.84s || -0m00.00s | -0.35% 0m02.78s | Compilers/Named/CompileInterp | 0m02.68s || +0m00.09s | +3.73% 0m02.69s | Spec/MontgomeryCurve | 0m02.71s || -0m00.02s | -0.73% 0m02.61s | Compilers/Named/ContextProperties/Proper | 0m02.60s || +0m00.00s | +0.38% 0m02.34s | Specific/NISTP256/FancyMachine256/Barrett | 0m02.24s || +0m00.09s | +4.46% 0m02.33s | Compilers/CommonSubexpressionEliminationProperties | 0m02.20s || +0m00.12s | +5.90% 0m02.32s | Specific/NISTP256/FancyMachine256/Montgomery | 0m02.33s || -0m00.01s | -0.42% 0m02.27s | Specific/NISTP256/FancyMachine256/Core | 0m02.32s || -0m00.04s | -2.15% 0m02.24s | curve25519_32.c | 0m02.13s || +0m00.11s | +5.16% 0m02.23s | Compilers/Z/Bounds/Relax | 0m02.22s || +0m00.00s | +0.45% 0m02.18s | Compilers/Z/RewriteAddToAdcInterp | 0m02.13s || +0m00.05s | +2.34% 0m02.10s | p224_32.c | 0m02.22s || -0m00.12s | -5.40% 0m02.06s | Specific/Framework/ArithmeticSynthesis/Defaults | 0m02.06s || +0m00.00s | +0.00% 0m02.04s | Compilers/Named/NameUtilProperties | 0m02.02s || +0m00.02s | +0.99% 0m01.94s | Compilers/Z/JavaNotations | 0m01.97s || -0m00.03s | -1.52% 0m01.93s | Util/ZUtil/AddGetCarry | 0m01.91s || +0m00.02s | +1.04% 0m01.84s | Compilers/WfReflective | 0m01.84s || +0m00.00s | +0.00% 0m01.82s | Arithmetic/Saturated/CoreUnfolder | 0m01.23s || +0m00.59s | +47.96% 0m01.71s | Util/Tuple | 0m01.79s || -0m00.08s | -4.46% 0m01.69s | Arithmetic/CoreUnfolder | 0m01.66s || +0m00.03s | +1.80% 0m01.69s | Specific/Framework/ReificationTypes | 0m01.67s || +0m00.02s | +1.19% 0m01.64s | Compilers/Named/WfFromUnit | 0m01.67s || -0m00.03s | -1.79% 0m01.63s | p256_64.c | 0m01.54s || +0m00.08s | +5.84% 0m01.54s | Specific/Framework/ArithmeticSynthesis/Base | 0m01.44s || +0m00.10s | +6.94% 0m01.52s | p224_64.c | 0m01.52s || +0m00.00s | +0.00% 0m01.50s | Compilers/Relations | 0m01.52s || -0m00.02s | -1.31% 0m01.49s | secp256k1_64.c | 0m01.55s || -0m00.06s | -3.87% 0m01.45s | Specific/Framework/OutputType | 0m01.45s || +0m00.00s | +0.00% 0m01.45s | curve25519_64.c | 0m01.51s || -0m00.06s | -3.97% 0m01.44s | Compilers/Named/InterpretToPHOASWf | 0m01.41s || +0m00.03s | +2.12% 0m01.42s | Experiments/NewPipeline/CLI | 0m01.37s || +0m00.04s | +3.64% 0m01.40s | LegacyArithmetic/Double/Proofs/BitwiseOr | 0m01.39s || +0m00.01s | +0.71% 0m01.35s | Specific/Framework/ArithmeticSynthesis/Karatsuba | 0m01.32s || +0m00.03s | +2.27% 0m01.34s | Curves/Edwards/XYZT/Precomputed | 0m01.38s || -0m00.03s | -2.89% 0m01.34s | Experiments/NewPipeline/StandaloneHaskellMain | 0m01.44s || -0m00.09s | -6.94% 0m01.33s | LegacyArithmetic/Double/Proofs/LoadImmediate | 0m01.34s || -0m00.01s | -0.74% 0m01.28s | Experiments/NewPipeline/Language | 0m01.27s || +0m00.01s | +0.78% 0m01.28s | Experiments/NewPipeline/RewriterProofs | 0m01.36s || -0m00.08s | -5.88% 0m01.26s | LegacyArithmetic/BaseSystemProofs | 0m01.27s || -0m00.01s | -0.78% 0m01.20s | Compilers/LinearizeInterp | 0m01.17s || +0m00.03s | +2.56% 0m01.20s | Experiments/NewPipeline/StandaloneOCamlMain | 0m01.28s || -0m00.08s | -6.25% 0m01.16s | Arithmetic/Saturated/UniformWeight | 0m00.96s || +0m00.19s | +20.83% 0m01.12s | Curves/Montgomery/AffineInstances | 0m01.11s || +0m00.01s | +0.90% 0m01.12s | Util/ZRange/CornersMonotoneBounds | 0m01.13s || -0m00.00s | -0.88% 0m01.11s | Compilers/MultiSizeTest | 0m01.09s || +0m00.02s | +1.83% 0m01.11s | Compilers/Z/RewriteAddToAdcWf | 0m01.10s || +0m00.01s | +0.90% 0m01.10s | Experiments/NewPipeline/CompilersTestCases | 0m01.08s || +0m00.02s | +1.85% 0m01.09s | Experiments/NewPipeline/AbstractInterpretation | 0m01.06s || +0m00.03s | +2.83% 0m01.04s | Specific/Framework/SynthesisFramework | 0m01.07s || -0m00.03s | -2.80% 0m01.01s | Specific/X25519/C32/CurveParameters | 0m00.98s || +0m00.03s | +3.06% 0m01.00s | Arithmetic/Saturated/WrappersUnfolder | 0m01.08s || -0m00.08s | -7.40% 0m00.97s | Compilers/Named/InterpretToPHOASInterp | 0m01.10s || -0m00.13s | -11.81% 0m00.94s | Compilers/WfInversion | 0m00.96s || -0m00.02s | -2.08% 0m00.94s | Compilers/Z/Bounds/Pipeline/ReflectiveTactics | 0m00.84s || +0m00.09s | +11.90% 0m00.89s | Arithmetic/Saturated/MulSplitUnfolder | 0m00.89s || +0m00.00s | +0.00% 0m00.89s | Compilers/Z/CommonSubexpressionElimination | 0m00.93s || -0m00.04s | -4.30% 0m00.89s | Specific/Framework/IntegrationTestDisplayCommon | 0m00.87s || +0m00.02s | +2.29% 0m00.86s | Specific/Framework/ArithmeticSynthesis/Freeze | 0m00.90s || -0m00.04s | -4.44% 0m00.85s | Arithmetic/Saturated/Wrappers | 0m00.76s || +0m00.08s | +11.84% 0m00.85s | Util/ZRange/BasicLemmas | 0m00.85s || +0m00.00s | +0.00% 0m00.84s | Specific/Framework/ArithmeticSynthesis/HelperTactics | 0m00.68s || +0m00.15s | +23.52% 0m00.83s | Compilers/Named/CompileProperties | 0m00.81s || +0m00.01s | +2.46% 0m00.83s | Compilers/Named/FMapContext | 0m00.85s || -0m00.02s | -2.35% 0m00.82s | Compilers/Named/AListContext | 0m00.81s || +0m00.00s | +1.23% 0m00.80s | Compilers/InterpByIsoProofs | 0m00.81s || -0m00.01s | -1.23% 0m00.80s | Compilers/MapCastByDeBruijnInterp | 0m00.85s || -0m00.04s | -5.88% 0m00.80s | Compilers/Z/Syntax/Util | 0m00.80s || +0m00.00s | +0.00% 0m00.80s | Specific/Framework/ReificationTypesPackage | 0m00.71s || +0m00.09s | +12.67% 0m00.79s | Compilers/MapCastByDeBruijnWf | 0m00.68s || +0m00.10s | +16.17% 0m00.79s | Compilers/Named/InterpSideConditionsInterp | 0m00.78s || +0m00.01s | +1.28% 0m00.78s | Specific/Framework/IntegrationTestTemporaryMiscCommon | 0m00.76s || +0m00.02s | +2.63% 0m00.77s | Compilers/CommonSubexpressionEliminationInterp | 0m00.62s || +0m00.15s | +24.19% 0m00.77s | Compilers/SmartMap | 0m00.69s || +0m00.08s | +11.59% 0m00.76s | Arithmetic/Saturated/FreezeUnfolder | 0m00.82s || -0m00.05s | -7.31% 0m00.76s | Compilers/InlineConstAndOpInterp | 0m00.80s || -0m00.04s | -5.00% 0m00.76s | LegacyArithmetic/Interface | 0m00.76s || +0m00.00s | +0.00% 0m00.76s | Specific/Framework/ArithmeticSynthesis/LadderstepPackage | 0m00.71s || +0m00.05s | +7.04% 0m00.76s | Specific/Framework/MontgomeryReificationTypes | 0m00.74s || +0m00.02s | +2.70% 0m00.76s | Specific/Framework/MontgomeryReificationTypesPackage | 0m00.75s || +0m00.01s | +1.33% 0m00.75s | Specific/Framework/ArithmeticSynthesis/Ladderstep | 0m00.69s || +0m00.06s | +8.69% 0m00.75s | Specific/Framework/ArithmeticSynthesis/MontgomeryPackage | 0m00.84s || -0m00.08s | -10.71% 0m00.75s | Util/ZBounded | 0m00.52s || +0m00.23s | +44.23% 0m00.74s | Arithmetic/Saturated/UniformWeightInstances | 0m00.75s || -0m00.01s | -1.33% 0m00.74s | Curves/Montgomery/XZ | 0m00.59s || +0m00.15s | +25.42% 0m00.72s | Arithmetic/MontgomeryReduction/WordByWord/Definition | 0m00.76s || -0m00.04s | -5.26% 0m00.72s | LegacyArithmetic/Double/Proofs/SelectConditional | 0m00.68s || +0m00.03s | +5.88% 0m00.72s | Specific/Framework/ArithmeticSynthesis/BasePackage | 0m00.66s || +0m00.05s | +9.09% 0m00.71s | Experiments/NewPipeline/MiscCompilerPasses | 0m00.73s || -0m00.02s | -2.73% 0m00.70s | Util/CPSUtil | 0m00.70s || +0m00.00s | +0.00% 0m00.69s | Specific/Framework/ArithmeticSynthesis/DefaultsPackage | 0m00.70s || -0m00.01s | -1.42% 0m00.69s | Specific/Framework/ArithmeticSynthesis/FreezePackage | 0m00.70s || -0m00.01s | -1.42% 0m00.68s | Specific/Framework/ArithmeticSynthesis/SquareFromMul | 0m00.73s || -0m00.04s | -6.84% 0m00.66s | Specific/Framework/ArithmeticSynthesis/KaratsubaPackage | 0m00.68s || -0m00.02s | -2.94% 0m00.64s | Compilers/CommonSubexpressionElimination | 0m00.66s || -0m00.02s | -3.03% 0m00.64s | Compilers/MapBaseTypeWf | 0m00.60s || +0m00.04s | +6.66% 0m00.63s | Compilers/WfReflectiveGen | 0m00.78s || -0m00.15s | -19.23% 0m00.62s | Compilers/Z/Bounds/Pipeline | 0m00.62s || +0m00.00s | +0.00% 0m00.62s | Compilers/Z/Syntax | 0m00.53s || +0m00.08s | +16.98% 0m00.60s | Compilers/Z/Named/RewriteAddToAdc | 0m00.64s || -0m00.04s | -6.25% 0m00.59s | Compilers/Z/Bounds/InterpretationLemmas/Tactics | 0m00.55s || +0m00.03s | +7.27% 0m00.59s | Compilers/Z/Bounds/MapCastByDeBruijnInterp | 0m00.59s || +0m00.00s | +0.00% 0m00.58s | Compilers/Named/WfInterp | 0m00.62s || -0m00.04s | -6.45% 0m00.58s | Compilers/Z/Bounds/RoundUpLemmas | 0m00.55s || +0m00.02s | +5.45% 0m00.58s | Compilers/Z/Reify | 0m00.61s || -0m00.03s | -4.91% 0m00.57s | Compilers/Z/Bounds/Pipeline/Glue | 0m00.59s || -0m00.02s | -3.38% 0m00.56s | Compilers/Z/Bounds/MapCastByDeBruijnWf | 0m00.56s || +0m00.00s | +0.00% 0m00.56s | Compilers/Z/InlineConstAndOpInterp | 0m00.49s || +0m00.07s | +14.28% 0m00.56s | Compilers/Z/MapCastByDeBruijnWf | 0m00.53s || +0m00.03s | +5.66% 0m00.56s | Util/Decidable/Decidable2Bool | 0m00.55s || +0m00.01s | +1.81% 0m00.55s | Compilers/InputSyntax | 0m00.53s || +0m00.02s | +3.77% 0m00.55s | Compilers/Z/ArithmeticSimplifierUtil | 0m00.58s || -0m00.02s | -5.17% 0m00.55s | LegacyArithmetic/Double/Proofs/ShiftLeftRightTactic | 0m00.53s || +0m00.02s | +3.77% 0m00.54s | Compilers/InterpWfRel | 0m00.52s || +0m00.02s | +3.84% 0m00.54s | Compilers/Z/Bounds/MapCastByDeBruijn | 0m00.54s || +0m00.00s | +0.00% 0m00.54s | LegacyArithmetic/ArchitectureToZLike | 0m00.55s || -0m00.01s | -1.81% 0m00.54s | LegacyArithmetic/BaseSystem | 0m00.53s || +0m00.01s | +1.88% 0m00.54s | LegacyArithmetic/Double/Core | 0m00.57s || -0m00.02s | -5.26% 0m00.53s | Compilers/Z/InlineConstAndOpWf | 0m00.48s || +0m00.05s | +10.41% 0m00.53s | Compilers/Z/MapCastByDeBruijnInterp | 0m00.58s || -0m00.04s | -8.62% 0m00.52s | Compilers/Z/Inline | 0m00.48s || +0m00.04s | +8.33% 0m00.52s | Compilers/Z/InlineInterp | 0m00.49s || +0m00.03s | +6.12% 0m00.51s | Compilers/Z/Bounds/Interpretation | 0m00.52s || -0m00.01s | -1.92% 0m00.51s | Compilers/Z/CommonSubexpressionEliminationInterp | 0m00.52s || -0m00.01s | -1.92% 0m00.51s | Compilers/Z/InlineConstAndOp | 0m00.44s || +0m00.07s | +15.90% 0m00.51s | Compilers/Z/InlineConstAndOpByRewriteWf | 0m00.49s || +0m00.02s | +4.08% 0m00.50s | Compilers/GeneralizeVarInterp | 0m00.48s || +0m00.02s | +4.16% 0m00.50s | Compilers/InlineConstAndOpByRewriteWf | 0m00.54s || -0m00.04s | -7.40% 0m00.50s | Compilers/Named/PositiveContext/DefaultsProperties | 0m00.49s || +0m00.01s | +2.04% 0m00.50s | Compilers/Reify | 0m00.44s || +0m00.06s | +13.63% 0m00.50s | Compilers/Z/InlineConstAndOpByRewriteInterp | 0m00.46s || +0m00.03s | +8.69% 0m00.50s | Compilers/ZExtended/MapBaseType | 0m00.48s || +0m00.02s | +4.16% 0m00.50s | Util/HList | 0m00.52s || -0m00.02s | -3.84% 0m00.50s | Util/ZRange | 0m00.52s || -0m00.02s | -3.84% 0m00.49s | Compilers/Z/RewriteAddToAdc | 0m00.53s || -0m00.04s | -7.54% 0m00.48s | Compilers/Z/CommonSubexpressionEliminationWf | 0m00.54s || -0m00.06s | -11.11% 0m00.48s | Compilers/Z/InterpSideConditions | 0m00.47s || +0m00.01s | +2.12% 0m00.47s | Compilers/Named/WeakListContext | 0m00.43s || +0m00.03s | +9.30% 0m00.47s | Compilers/Z/FoldTypes | 0m00.47s || +0m00.00s | +0.00% 0m00.47s | Compilers/Z/GeneralizeVarInterp | 0m00.44s || +0m00.02s | +6.81% 0m00.47s | Compilers/Z/InlineConstAndOpByRewrite | 0m00.46s || +0m00.00s | +2.17% 0m00.47s | Compilers/Z/Named/DeadCodeEliminationInterp | 0m00.46s || +0m00.00s | +2.17% 0m00.47s | LegacyArithmetic/Pow2Base | 0m00.46s || +0m00.00s | +2.17% 0m00.46s | Compilers/InterpWf | 0m00.44s || +0m00.02s | +4.54% 0m00.46s | Compilers/Z/InlineWf | 0m00.46s || +0m00.00s | +0.00% 0m00.46s | Compilers/Z/MapCastByDeBruijn | 0m00.48s || -0m00.01s | -4.16% 0m00.46s | Experiments/NewPipeline/UnderLets | 0m00.48s || -0m00.01s | -4.16% 0m00.45s | Compilers/Named/DeadCodeEliminationInterp | 0m00.43s || +0m00.02s | +4.65% 0m00.45s | Compilers/ZExtended/Syntax | 0m00.49s || -0m00.03s | -8.16% 0m00.45s | Specific/X25519/C64/CurveParameters | 0m00.46s || -0m00.01s | -2.17% 0m00.45s | Util/IdfunWithAlt | 0m00.39s || +0m00.06s | +15.38% 0m00.45s | Util/ZRange/Operations | 0m00.46s || -0m00.01s | -2.17% 0m00.44s | Compilers/GeneralizeVar | 0m00.35s || +0m00.09s | +25.71% 0m00.44s | Compilers/InlineConstAndOpByRewriteInterp | 0m00.48s || -0m00.03s | -8.33% 0m00.44s | Compilers/Named/RegisterAssign | 0m00.41s || +0m00.03s | +7.31% 0m00.44s | Specific/Framework/IntegrationTestDisplayCommonTactics | 0m00.75s || -0m00.31s | -41.33% 0m00.43s | Specific/Framework/CurveParameters | 0m00.46s || -0m00.03s | -6.52% 0m00.42s | Compilers/GeneralizeVarWf | 0m00.48s || -0m00.06s | -12.50% 0m00.42s | Compilers/Named/DeadCodeElimination | 0m00.35s || +0m00.07s | +20.00% 0m00.42s | Compilers/Z/GeneralizeVarWf | 0m00.44s || -0m00.02s | -4.54% 0m00.41s | Compilers/InlineConstAndOp | 0m00.42s || -0m00.01s | -2.38% 0m00.41s | Compilers/InterpProofs | 0m00.48s || -0m00.07s | -14.58% 0m00.41s | Compilers/Named/ContextDefinitions | 0m00.32s || +0m00.08s | +28.12% 0m00.40s | Util/AdditionChainExponentiation | 0m00.44s || -0m00.03s | -9.09% 0m00.39s | Compilers/Z/Named/DeadCodeElimination | 0m00.40s || -0m00.01s | -2.50% 0m00.39s | Specific/Framework/RawCurveParameters | 0m00.40s || -0m00.01s | -2.50% 0m00.38s | Compilers/ExprInversion | 0m00.38s || +0m00.00s | +0.00% 0m00.38s | Compilers/Named/PositiveContext | 0m00.51s || -0m00.13s | -25.49% 0m00.38s | Compilers/Tuple | 0m00.37s || +0m00.01s | +2.70% 0m00.38s | Compilers/Z/GeneralizeVar | 0m00.40s || -0m00.02s | -5.00% 0m00.38s | Compilers/ZExtended/InlineConstAndOpByRewriteWf | 0m00.39s || -0m00.01s | -2.56% 0m00.38s | Specific/Framework/CurveParametersPackage | 0m00.36s || +0m00.02s | +5.55% 0m00.38s | Specific/NISTP256/AMD128/CurveParameters | 0m00.36s || +0m00.02s | +5.55% 0m00.37s | Compilers/Named/ContextOn | 0m00.39s || -0m00.02s | -5.12% 0m00.37s | Compilers/Named/InterpretToPHOAS | 0m00.34s || +0m00.02s | +8.82% 0m00.37s | Compilers/ZExtended/InlineConstAndOpByRewriteInterp | 0m00.32s || +0m00.04s | +15.62% 0m00.37s | Specific/NISTP256/AMD64/CurveParameters | 0m00.37s || +0m00.00s | +0.00% 0m00.37s | Specific/X2448/Karatsuba/C64/CurveParameters | 0m00.37s || +0m00.00s | +0.00% 0m00.36s | Compilers/CommonSubexpressionEliminationDenote | 0m00.38s || -0m00.02s | -5.26% 0m00.36s | Compilers/FilterLive | 0m00.32s || +0m00.03s | +12.49% 0m00.36s | Compilers/InterpByIso | 0m00.31s || +0m00.04s | +16.12% 0m00.36s | Compilers/Named/EstablishLiveness | 0m00.34s || +0m00.01s | +5.88% 0m00.36s | Compilers/Named/ExprInversion | 0m00.30s || +0m00.06s | +20.00% 0m00.36s | Compilers/Named/MapCast | 0m00.34s || +0m00.01s | +5.88% 0m00.36s | Compilers/Named/Syntax | 0m00.39s || -0m00.03s | -7.69% 0m00.36s | Compilers/Z/OpInversion | 0m00.37s || -0m00.01s | -2.70% 0m00.36s | Compilers/Z/TypeInversion | 0m00.37s || -0m00.01s | -2.70% 0m00.36s | Compilers/ZExtended/InlineConstAndOpInterp | 0m00.30s || +0m00.06s | +20.00% 0m00.36s | Compilers/ZExtended/InlineConstAndOpWf | 0m00.36s || +0m00.00s | +0.00% 0m00.36s | Util/BoundedWord | 0m00.41s || -0m00.04s | -12.19% 0m00.36s | Util/ZRange/Show | 0m00.36s || +0m00.00s | +0.00% 0m00.35s | Compilers/FoldTypes | 0m00.29s || +0m00.06s | +20.68% 0m00.35s | Compilers/InlineConstAndOpByRewrite | 0m00.32s || +0m00.02s | +9.37% 0m00.35s | Compilers/Named/GetNames | 0m00.31s || +0m00.03s | +12.90% 0m00.35s | Compilers/Named/PositiveContext/Defaults | 0m00.38s || -0m00.03s | -7.89% 0m00.35s | Compilers/Named/SmartMap | 0m00.34s || +0m00.00s | +2.94% 0m00.35s | Compilers/Z/Bounds/Pipeline/OutputType | 0m00.39s || -0m00.04s | -10.25% 0m00.35s | Compilers/ZExtended/InlineConstAndOpByRewrite | 0m00.31s || +0m00.03s | +12.90% 0m00.34s | Compilers/Inline | 0m00.36s || -0m00.01s | -5.55% 0m00.34s | Compilers/Linearize | 0m00.34s || +0m00.00s | +0.00% 0m00.34s | Compilers/MapBaseType | 0m00.33s || +0m00.01s | +3.03% 0m00.34s | Compilers/MapCastByDeBruijn | 0m00.38s || -0m00.03s | -10.52% 0m00.34s | Compilers/Named/ContextProperties/Tactics | 0m00.39s || -0m00.04s | -12.82% 0m00.34s | Compilers/Named/CountLets | 0m00.33s || +0m00.01s | +3.03% 0m00.34s | Compilers/ZExtended/Syntax/Util | 0m00.34s || +0m00.00s | +0.00% 0m00.34s | Util/SideConditions/RingPackage | 0m00.27s || +0m00.07s | +25.92% 0m00.33s | Compilers/Named/Compile | 0m00.34s || -0m00.01s | -2.94% 0m00.33s | Compilers/Named/Context | 0m00.36s || -0m00.02s | -8.33% 0m00.33s | Compilers/Named/InterpSideConditions | 0m00.36s || -0m00.02s | -8.33% 0m00.33s | Compilers/Named/MapType | 0m00.35s || -0m00.01s | -5.71% 0m00.33s | Compilers/StripExpr | 0m00.32s || +0m00.01s | +3.12% 0m00.33s | Util/SideConditions/Autosolve | 0m00.23s || +0m00.10s | +43.47% 0m00.32s | Compilers/Named/IdContext | 0m00.35s || -0m00.02s | -8.57% 0m00.32s | Compilers/Named/Wf | 0m00.38s || -0m00.06s | -15.78% 0m00.31s | Compilers/ZExtended/InlineConstAndOp | 0m00.35s || -0m00.03s | -11.42% 0m00.30s | Compilers/CountLets | 0m00.34s || -0m00.04s | -11.76% 0m00.25s | Compilers/EtaInterp | 0m00.24s || +0m00.01s | +4.16% 0m00.13s | Compilers/RewriterWf | 0m00.14s || -0m00.01s | -7.14% 0m00.12s | Compilers/InterpSideConditions | 0m00.08s || +0m00.03s | +49.99% 0m00.12s | Util/Prod | 0m00.14s || -0m00.02s | -14.28% 0m00.08s | Compilers/Eta | 0m00.08s || +0m00.00s | +0.00% 0m00.07s | Compilers/RenameBinders | 0m00.05s || +0m00.02s | +40.00%
Diffstat (limited to 'src/Util')
-rw-r--r--src/Util/Prod.v25
1 files changed, 13 insertions, 12 deletions
diff --git a/src/Util/Prod.v b/src/Util/Prod.v
index 487674dfe..65dad5905 100644
--- a/src/Util/Prod.v
+++ b/src/Util/Prod.v
@@ -126,19 +126,20 @@ Ltac inversion_prod := repeat inversion_prod_step.
(** This turns a goal like [x = let v := p in let '(x, y) := f v in x
+ y)] into a goal like [x = fst (f p) + snd (f p)]. Note that it
inlines [let ... in ...] as well as destructuring lets. *)
-Ltac only_eta_expand_and_contract :=
- repeat match goal with
- | [ |- context[let '(x, y) := ?e in _] ]
- => rewrite (surjective_pairing e)
- | _ => rewrite <- !surjective_pairing
- end.
+Ltac only_eta_expand_and_contract_step :=
+ match goal with
+ | [ |- context[let '(x, y) := ?e in _] ]
+ => rewrite (surjective_pairing e)
+ | [ H : context[let '(x, y) := ?e in _] |- _ ]
+ => rewrite (surjective_pairing e) in H
+ | _ => rewrite <- !surjective_pairing
+ | [ H : context[(fst ?e, snd ?e)] |- _ ]
+ => rewrite <- !surjective_pairing in H
+ end.
+Ltac only_eta_expand_and_contract := repeat only_eta_expand_and_contract_step.
Ltac eta_expand :=
- repeat match goal with
- | _ => progress cbv beta iota zeta
- | [ |- context[let '(x, y) := ?e in _] ]
- => rewrite (surjective_pairing e)
- | _ => rewrite <- !surjective_pairing
- end.
+ repeat first [ progress cbv beta iota zeta
+ | only_eta_expand_and_contract_step ].
(** *** [subst_prod] *)
(** The tactic [subst_prod] is like [subst], but it works on equations