aboutsummaryrefslogtreecommitdiff
path: root/src/Experiments/NewPipeline/AbstractInterpretationWf.v
Commit message (Collapse)AuthorAge
* move src/Experiments/NewPipeline/ to src/Gravatar Andres Erbsen2019-01-09
|
* Guarantee that casting always returns inrangeGravatar Jason Gross2018-10-12
| | | | | | | | | | | | | | We fuse the bounds relaxation pass with the abstract interpretation pass by folding bounds relaxation into the annotation method. This allows us to not need any particular assumptions about what happens when you cast outside the range. We can therefore now guarantee that the output of casting is always bounded by the given range (rather, by the normalized version of the range), which will be required to take advantage of bounds information in the rewriter (because otherwise we're not guaranteed that casting something to within a range actually outputs something within that range).
* Finish interp proof of abstract interpretationGravatar Jason Gross2018-09-14
| | | | | | | This was an enormous pain, because although we don't actually bounds-analyze higher-order functions, we need to make sure that we discard the bounds information about them in exactly the same way in multiple places.
* Don't fuse annotationsGravatar Jason Gross2018-08-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was causing issues with proving things, and isn't really needed. Instead, we just check if the current annotation is exactly the state we're attempting to annotate with; if it is, then we don't double up on identical annotations. After | File Name | Before || Change | % Change -------------------------------------------------------------------------------------------------------------------- 17m54.46s | Total | 17m52.24s || +0m02.21s | +0.20% -------------------------------------------------------------------------------------------------------------------- 5m55.78s | Experiments/NewPipeline/SlowPrimeSynthesisExamples | 5m55.41s || +0m00.37s | +0.10% 4m32.97s | Experiments/NewPipeline/Toplevel1 | 4m33.59s || -0m00.62s | -0.22% 1m35.89s | Experiments/NewPipeline/Toplevel2 | 1m35.77s || +0m00.11s | +0.12% 0m39.24s | p521_32.c | 0m38.50s || +0m00.74s | +1.92% 0m38.16s | Experiments/NewPipeline/AbstractInterpretationWf | 0m38.52s || -0m00.36s | -0.93% 0m37.42s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery | 0m37.34s || +0m00.07s | +0.21% 0m34.59s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery | 0m34.58s || +0m00.01s | +0.02% 0m32.58s | p521_64.c | 0m31.97s || +0m00.60s | +1.90% 0m23.66s | p384_32.c | 0m23.63s || +0m00.03s | +0.12% 0m21.02s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas | 0m20.88s || +0m00.14s | +0.67% 0m18.92s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas | 0m18.84s || +0m00.08s | +0.42% 0m13.91s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas | 0m13.99s || -0m00.08s | -0.57% 0m12.56s | Experiments/NewPipeline/CStringification | 0m12.61s || -0m00.04s | -0.39% 0m10.51s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas | 0m10.66s || -0m00.15s | -1.40% 0m08.55s | p384_64.c | 0m08.46s || +0m00.08s | +1.06% 0m08.51s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery.ml | 0m08.61s || -0m00.09s | -1.16% 0m05.59s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery.hs | 0m05.56s || +0m00.03s | +0.53% 0m05.43s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas.ml | 0m05.34s || +0m00.08s | +1.68% 0m04.00s | Experiments/NewPipeline/AbstractInterpretationProofs | 0m03.07s || +0m00.93s | +30.29% 0m04.00s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas.hs | 0m04.04s || -0m00.04s | -0.99% 0m03.91s | secp256k1_32.c | 0m03.93s || -0m00.02s | -0.50% 0m03.87s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas.ml | 0m03.84s || +0m00.03s | +0.78% 0m03.84s | p256_32.c | 0m03.78s || +0m00.06s | +1.58% 0m03.33s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas.hs | 0m03.32s || +0m00.01s | +0.30% 0m02.12s | p224_32.c | 0m02.10s || +0m00.02s | +0.95% 0m02.11s | curve25519_32.c | 0m02.03s || +0m00.08s | +3.94% 0m01.56s | p256_64.c | 0m01.55s || +0m00.01s | +0.64% 0m01.53s | p224_64.c | 0m01.55s || -0m00.02s | -1.29% 0m01.50s | secp256k1_64.c | 0m01.51s || -0m00.01s | -0.66% 0m01.44s | curve25519_64.c | 0m01.51s || -0m00.07s | -4.63% 0m01.38s | Experiments/NewPipeline/CLI | 0m01.22s || +0m00.15s | +13.11% 0m01.30s | Experiments/NewPipeline/StandaloneHaskellMain | 0m01.16s || +0m00.14s | +12.06% 0m01.25s | Experiments/NewPipeline/StandaloneOCamlMain | 0m01.25s || +0m00.00s | +0.00% 0m01.04s | Experiments/NewPipeline/CompilersTestCases | 0m01.08s || -0m00.04s | -3.70% 0m01.00s | Experiments/NewPipeline/AbstractInterpretation | 0m01.05s || -0m00.05s | -4.76%
* Finish relax interp proofsGravatar Jason Gross2018-08-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After | File Name | Before || Change | % Change -------------------------------------------------------------------------------------------------------------------- 17m50.60s | Total | 17m59.23s || -0m08.63s | -0.80% -------------------------------------------------------------------------------------------------------------------- 0m02.92s | Experiments/NewPipeline/AbstractInterpretationProofs | 0m07.06s || -0m04.13s | -58.64% 5m55.40s | Experiments/NewPipeline/SlowPrimeSynthesisExamples | 5m56.43s || -0m01.03s | -0.28% 0m38.25s | Experiments/NewPipeline/AbstractInterpretationWf | 0m40.00s || -0m01.75s | -4.37% 0m23.76s | p384_32.c | 0m25.24s || -0m01.47s | -5.86% 4m32.74s | Experiments/NewPipeline/Toplevel1 | 4m31.77s || +0m00.97s | +0.35% 1m36.34s | Experiments/NewPipeline/Toplevel2 | 1m35.98s || +0m00.36s | +0.37% 0m38.76s | p521_32.c | 0m38.53s || +0m00.22s | +0.59% 0m37.08s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery | 0m37.15s || -0m00.07s | -0.18% 0m35.15s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery | 0m34.38s || +0m00.76s | +2.23% 0m32.29s | p521_64.c | 0m32.14s || +0m00.14s | +0.46% 0m20.50s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas | 0m20.86s || -0m00.35s | -1.72% 0m18.69s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas | 0m18.91s || -0m00.21s | -1.16% 0m13.51s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas | 0m13.95s || -0m00.43s | -3.15% 0m12.46s | Experiments/NewPipeline/CStringification | 0m12.60s || -0m00.13s | -1.11% 0m10.36s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas | 0m10.52s || -0m00.16s | -1.52% 0m08.55s | p384_64.c | 0m08.77s || -0m00.21s | -2.50% 0m08.52s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery.ml | 0m08.83s || -0m00.31s | -3.51% 0m05.38s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas.ml | 0m05.43s || -0m00.04s | -0.92% 0m05.34s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery.hs | 0m05.42s || -0m00.08s | -1.47% 0m04.01s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas.ml | 0m03.85s || +0m00.15s | +4.15% 0m03.88s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas.hs | 0m04.08s || -0m00.20s | -4.90% 0m03.77s | secp256k1_32.c | 0m03.83s || -0m00.06s | -1.56% 0m03.76s | p256_32.c | 0m03.80s || -0m00.04s | -1.05% 0m03.18s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas.hs | 0m03.25s || -0m00.06s | -2.15% 0m02.10s | p224_32.c | 0m02.14s || -0m00.04s | -1.86% 0m02.03s | curve25519_32.c | 0m02.06s || -0m00.03s | -1.45% 0m01.60s | p256_64.c | 0m01.67s || -0m00.06s | -4.19% 0m01.59s | p224_64.c | 0m01.58s || +0m00.01s | +0.63% 0m01.53s | secp256k1_64.c | 0m01.68s || -0m00.14s | -8.92% 0m01.42s | Experiments/NewPipeline/CLI | 0m01.38s || +0m00.04s | +2.89% 0m01.38s | curve25519_64.c | 0m01.39s || -0m00.01s | -0.71% 0m01.16s | Experiments/NewPipeline/StandaloneHaskellMain | 0m01.21s || -0m00.05s | -4.13% 0m01.16s | Experiments/NewPipeline/StandaloneOCamlMain | 0m01.25s || -0m00.09s | -7.20% 0m01.02s | Experiments/NewPipeline/CompilersTestCases | 0m01.03s || -0m00.01s | -0.97% 0m01.01s | Experiments/NewPipeline/AbstractInterpretation | 0m01.07s || -0m00.06s | -5.60%
* Add another GeneralizeVar pass to add support for using Wf3Gravatar Jason Gross2018-08-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Otherwise we'd have to pipe Wf3 hypotheses around everywhere After | File Name | Before || Change | % Change -------------------------------------------------------------------------------------------------------------------- 18m48.53s | Total | 18m30.49s || +0m18.04s | +1.62% -------------------------------------------------------------------------------------------------------------------- 5m55.03s | Experiments/NewPipeline/SlowPrimeSynthesisExamples | 5m50.73s || +0m04.29s | +1.22% 0m21.32s | Experiments/NewPipeline/LanguageWf | 0m17.25s || +0m04.07s | +23.59% 0m25.28s | p384_32.c | 0m21.48s || +0m03.80s | +17.69% 4m33.01s | Experiments/NewPipeline/Toplevel1 | 4m32.74s || +0m00.26s | +0.09% 1m35.79s | Experiments/NewPipeline/Toplevel2 | 1m34.92s || +0m00.86s | +0.91% 0m40.01s | Experiments/NewPipeline/AbstractInterpretationWf | 0m39.96s || +0m00.04s | +0.12% 0m38.51s | p521_32.c | 0m38.23s || +0m00.28s | +0.73% 0m37.03s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery | 0m37.16s || -0m00.12s | -0.34% 0m34.59s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery | 0m34.79s || -0m00.19s | -0.57% 0m31.94s | p521_64.c | 0m31.91s || +0m00.03s | +0.09% 0m23.22s | Experiments/NewPipeline/UnderLetsProofs | 0m23.36s || -0m00.14s | -0.59% 0m21.06s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas | 0m20.44s || +0m00.61s | +3.03% 0m18.85s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas | 0m18.53s || +0m00.32s | +1.72% 0m13.79s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas | 0m13.46s || +0m00.32s | +2.45% 0m12.59s | Experiments/NewPipeline/CStringification | 0m12.66s || -0m00.07s | -0.55% 0m10.61s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas | 0m10.38s || +0m00.22s | +2.21% 0m08.82s | p384_64.c | 0m08.04s || +0m00.78s | +9.70% 0m08.62s | Experiments/NewPipeline/ExtractionOCaml/word_by_word_montgomery.ml | 0m08.54s || +0m00.08s | +0.93% 0m07.09s | Experiments/NewPipeline/AbstractInterpretationProofs | 0m06.82s || +0m00.26s | +3.95% 0m05.46s | Experiments/NewPipeline/ExtractionHaskell/word_by_word_montgomery.hs | 0m05.48s || -0m00.02s | -0.36% 0m05.42s | Experiments/NewPipeline/ExtractionOCaml/unsaturated_solinas.ml | 0m05.44s || -0m00.02s | -0.36% 0m04.01s | secp256k1_32.c | 0m03.32s || +0m00.69s | +20.78% 0m03.97s | Experiments/NewPipeline/ExtractionHaskell/unsaturated_solinas.hs | 0m03.87s || +0m00.10s | +2.58% 0m03.86s | Experiments/NewPipeline/ExtractionOCaml/saturated_solinas.ml | 0m03.95s || -0m00.09s | -2.27% 0m03.84s | p256_32.c | 0m03.30s || +0m00.54s | +16.36% 0m03.81s | Experiments/NewPipeline/MiscCompilerPassesProofs | 0m03.88s || -0m00.06s | -1.80% 0m03.28s | Experiments/NewPipeline/ExtractionHaskell/saturated_solinas.hs | 0m03.16s || +0m00.11s | +3.79% 0m02.16s | p224_32.c | 0m01.77s || +0m00.39s | +22.03% 0m02.03s | curve25519_32.c | 0m01.96s || +0m00.06s | +3.57% 0m01.68s | p256_64.c | 0m01.41s || +0m00.27s | +19.14% 0m01.57s | p224_64.c | 0m01.41s || +0m00.16s | +11.34% 0m01.54s | secp256k1_64.c | 0m01.44s || +0m00.10s | +6.94% 0m01.52s | curve25519_64.c | 0m01.33s || +0m00.18s | +14.28% 0m01.38s | Experiments/NewPipeline/CLI | 0m01.42s || -0m00.04s | -2.81% 0m01.31s | Experiments/NewPipeline/RewriterProofs | 0m01.33s || -0m00.02s | -1.50% 0m01.25s | Experiments/NewPipeline/StandaloneOCamlMain | 0m01.21s || +0m00.04s | +3.30% 0m01.24s | Experiments/NewPipeline/StandaloneHaskellMain | 0m01.25s || -0m00.01s | -0.80% 0m01.07s | Experiments/NewPipeline/AbstractInterpretation | 0m01.12s || -0m00.05s | -4.46% 0m00.98s | Experiments/NewPipeline/CompilersTestCases | 0m01.04s || -0m00.06s | -5.76%
* Start setting up abs-int interp proofsGravatar Jason Gross2018-08-06