-
Notifications
You must be signed in to change notification settings - Fork 650
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
rm problematic variables under beta redexes for evar instantiation #19833
base: master
Are you sure you want to change the base?
Conversation
coq/test-suite/bugs/bug_3209.v Lines 28 to 74 in ac0fd36
@coqbot run full ci |
249c5fd
to
7f21d39
Compare
@coqbot run full ci |
@coqbot bench |
CI seems to pass, let's see what the bench says |
🏁 Bench results:
🐢 Top 25 slow downs┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ TOP 25 SLOW DOWNS │ │ │ │ OLD NEW DIFF %DIFF Ln FILE │ ├──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ 181.8180 184.5120 2.6940 1.48% 233 coq-fiat-crypto-with-bedrock/rupicola/bedrock2/deps/riscv-coq/src/riscv/Proofs/DecodeByExtension.v.html │ │ 64.2200 65.4450 1.2250 1.91% 609 coq-fiat-crypto-with-bedrock/rupicola/bedrock2/bedrock2/src/bedrock2Examples/lightbulb.v.html │ │ 118.6330 119.8150 1.1820 1.00% 22 coq-fiat-crypto-with-bedrock/src/Rewriter/Passes/ArithWithCasts.v.html │ │ 100.8180 101.9350 1.1170 1.11% 968 coq-performance-tests-lite/src/fiat_crypto_via_setoid_rewrite_standalone.v.html │ │ 100.8290 101.9120 1.0830 1.07% 999 coq-performance-tests-lite/src/fiat_crypto_via_setoid_rewrite_standalone.v.html │ │ 37.7530 38.6120 0.8590 2.28% 3 coq-fiat-crypto-with-bedrock/src/ExtractionJsOfOCaml/WithBedrock/fiat_crypto.v.html │ │ 3.1310 3.8670 0.7360 23.51% 490 coq-stdlib/Reals/Cauchy/ConstructiveCauchyRealsMult.v.html │ │ 35.9650 36.6870 0.7220 2.01% 2 coq-fiat-crypto-with-bedrock/src/ExtractionJsOfOCaml/fiat_crypto.v.html │ │ 29.3860 30.0440 0.6580 2.24% 12 coq-fourcolor/theories/proof/job001to106.v.html │ │ 37.9980 38.6500 0.6520 1.72% 548 coq-fiat-crypto-with-bedrock/rupicola/bedrock2/compiler/src/compiler/MMIO.v.html │ │ 37.7830 38.4160 0.6330 1.68% 3 coq-fiat-crypto-with-bedrock/src/ExtractionJsOfOCaml/bedrock2_fiat_crypto.v.html │ │ 23.4270 24.0350 0.6080 2.60% 12 coq-fourcolor/theories/proof/job554to562.v.html │ │ 235.7310 236.3260 0.5950 0.25% 141 coq-fiat-crypto-with-bedrock/src/UnsaturatedSolinasHeuristics/Tests.v.html │ │ 28.7890 29.3690 0.5800 2.01% 12 coq-fourcolor/theories/proof/job589to610.v.html │ │ 18.1350 18.7010 0.5660 3.12% 12 coq-fourcolor/theories/proof/job315to318.v.html │ │ 32.5100 33.0020 0.4920 1.51% 12 coq-fourcolor/theories/proof/job439to465.v.html │ │ 28.4150 28.9000 0.4850 1.71% 12 coq-fourcolor/theories/proof/job563to588.v.html │ │ 18.1840 18.6620 0.4780 2.63% 12 coq-fourcolor/theories/proof/job311to314.v.html │ │ 17.1880 17.6420 0.4540 2.64% 841 coq-fiat-crypto-with-bedrock/src/Curves/Weierstrass/Jacobian/CoZ.v.html │ │ 132.9790 133.4320 0.4530 0.34% 155 coq-fiat-crypto-with-bedrock/src/UnsaturatedSolinasHeuristics/Tests.v.html │ │ 28.8190 29.2710 0.4520 1.57% 12 coq-fourcolor/theories/proof/job323to383.v.html │ │ 21.4710 21.9230 0.4520 2.11% 12 coq-fourcolor/theories/proof/job542to545.v.html │ │ 26.3790 26.8280 0.4490 1.70% 12 coq-fourcolor/theories/proof/job190to206.v.html │ │ 28.1970 28.6430 0.4460 1.58% 32 coq-fiat-crypto-with-bedrock/src/Bedrock/End2End/X25519/MontgomeryLadderRISCV.v.html │ │ 31.8960 32.3290 0.4330 1.36% 97 coq-vst/veric/binop_lemmas5.v.html │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ 🐇 Top 25 speed ups┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ TOP 25 SPEED UPS │ │ │ │ OLD NEW DIFF %DIFF Ln FILE │ ├─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ │ 19.9280 18.6320 -1.2960 -6.50% 601 coq-mathcomp-odd-order/theories/PFsection9.v.html │ │ 94.2060 93.1810 -1.0250 -1.09% 20 coq-fiat-crypto-with-bedrock/src/Rewriter/Passes/NBE.v.html │ │ 5.0740 4.3970 -0.6770 -13.34% 2089 coq-mathcomp-ssreflect/mathcomp/ssreflect/order.v.html │ │ 2.3330 1.8280 -0.5050 -21.65% 202 coq-stdlib/setoid_ring/Ncring_tac.v.html │ │ 11.3080 10.8330 -0.4750 -4.20% 2103 coq-mathcomp-ssreflect/mathcomp/ssreflect/order.v.html │ │ 39.2860 38.8180 -0.4680 -1.19% 835 coq-fiat-crypto-with-bedrock/src/Fancy/Compiler.v.html │ │ 1.4590 1.0520 -0.4070 -27.90% 1142 coq-stdlib/FSets/FMapAVL.v.html │ │ 46.6240 46.2620 -0.3620 -0.78% 110 coq-bedrock2/bedrock2/src/bedrock2Examples/full_mul.v.html │ │ 18.2200 17.9230 -0.2970 -1.63% 6 coq-fiat-crypto-with-bedrock/rupicola/bedrock2/deps/riscv-coq/src/riscv/Proofs/DecodeEncodeCSR.v.html │ │ 6.9580 6.6680 -0.2900 -4.17% 872 coq-mathcomp-analysis/theories/derive.v.html │ │ 24.3850 24.0960 -0.2890 -1.19% 558 coq-bedrock2/bedrock2/src/bedrock2Examples/insertionsort.v.html │ │ 46.7250 46.4400 -0.2850 -0.61% 110 coq-fiat-crypto-with-bedrock/rupicola/bedrock2/bedrock2/src/bedrock2Examples/full_mul.v.html │ │ 12.7380 12.4710 -0.2670 -2.10% 1555 coq-fiat-crypto-with-bedrock/src/Util/FSets/FMapTrie.v.html │ │ 7.8700 7.6060 -0.2640 -3.35% 602 coq-unimath/UniMath/CategoryTheory/EnrichedCats/Limits/Examples/StructureEnrichedLimits.v.html │ │ 42.4250 42.1630 -0.2620 -0.62% 50 coq-fiat-crypto-with-bedrock/src/Bedrock/Field/Synthesis/Examples/p224_64_new.v.html │ │ 0.7330 0.4720 -0.2610 -35.61% 870 coq-stdlib/MSets/MSetRBT.v.html │ │ 7.2010 6.9800 -0.2210 -3.07% 130 coq-category-theory/Functor/Strong/Product.v.html │ │ 0.8980 0.6860 -0.2120 -23.61% 204 coq-stdlib/setoid_ring/Ncring_tac.v.html │ │ 5.7890 5.5850 -0.2040 -3.52% 888 coq-vst/veric/binop_lemmas4.v.html │ │ 26.9200 26.7170 -0.2030 -0.75% 68 coq-fiat-crypto-with-bedrock/rupicola/bedrock2/deps/riscv-coq/src/riscv/Proofs/VerifyDecode.v.html │ │ 5.7760 5.5770 -0.1990 -3.45% 196 coq-fiat-crypto-with-bedrock/src/Bedrock/Field/Synthesis/Examples/p224_64_new.v.html │ │ 43.0720 42.8740 -0.1980 -0.46% 834 coq-vst/veric/binop_lemmas4.v.html │ │ 0.3340 0.1370 -0.1970 -58.98% 11 coq-stdlib/Reals/Abstract/ConstructiveLimits.v.html │ │ 18.7530 18.5560 -0.1970 -1.05% 31 coq-engine-bench-lite/coq/PerformanceDemos/pattern.v.html │ │ 0.3260 0.1300 -0.1960 -60.12% 1045 coq-stdlib/Reals/Abstract/ConstructiveReals.v.html │ └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ |
Bench results look like mostly noise, especially from the CPU column. As far as I'm concerned, this could be good to go with just needs a changelog and a review from @coq/pretyper-maintainers. @Tragicus , could you add a test-suite example that fails on master and passes with this change? |
doc/changelog/02-specification-language/19833-evd-inst-beta.rst
Outdated
Show resolved
Hide resolved
Co-authored-by: Jason Gross <jasongross9@gmail.com>
Extracted from #19822 as suggested here.
The unification algorithm sometimes fails on problems of the form ?a = t because variables that are not in the scope of ?a appear in t. We can easily solve the problem when the variable appears in a beta-redex, as in (fun _ => t) x.
Fixes / closes #????
make doc_gram_rsts
.