Closed mattam82 closed 3 years ago
Magic! Do you have tips written somewhere about how you came up with these specific optimizations?
You have to know a bit the inner workings of the tactic but in general:
Params
declarations for polymorphic constants and even general ones that have a lot of arguments: this allows the "partial application" rule to fire just once (it handles finding Proper R (f x)
from a user-given Proper (R' ==> R) f
instance.Hint Extern 0 => solve [apply reflexivity] : typeclass_instance
:) that can apply to goals you wouldn't expect.subrelation R S
instances instead of rolling ones own logic to infer Proper (pointwise_relation R) (eq ==> R) f
seems to help here.In general to debug I just look at the trace, looking for a subgoal that gets a lot of tries (e.g. if 2.1.*
appears a lot then probably the problem lies in this subgoal, either it should not be generated or there is a weird choice being made there).
Another indication is when you backtrack to 2.1
after solving 4.2
, it means we went with a wrong choice at the beginning, so we should look at the 2.1
goal to undestand the problem.
Thanks!
It looks like it will be backwards compatible, yay!
If I read this right, we just gained 50seconds: With this PR:
-----------------------------------------------------------------------------------------------------
10m01.68s | 932696 ko | Total Time / Peak Mem
-----------------------------------------------------------------------------------------------------
0m33.87s | 660612 ko | Parsers/GenericRecognizerMin
0m31.71s | 680196 ko | Parsers/Refinement/PossibleTerminalsSets
0m25.96s | 713960 ko | Parsers/ParserFromParserADT
0m25.96s | 713960 ko | ─abstract
0m25.34s | 932696 ko | Parsers/BooleanRecognizerOptimized
0m20.77s | 824976 ko | Parsers/GenericRecognizerOptimized
0m18.51s | 539532 ko | Common/FMapExtensions
0m18.17s | 841848 ko | Parsers/BooleanRecognizerOptimizedReflectiveCorrectness
0m16.65s | 567316 ko | Parsers/SplitterFromParserADT
0m14.15s | 476752 ko | Parsers/Refinement/BinOpBrackets/MakeBinOpTable
0m11.89s | 789396 ko | Parsers/Reflective/LogicalRelations
0m10.87s | 582312 ko | Parsers/Refinement/IndexedAndAtMostOneNonTerminalReflective
0m10.55s | 514676 ko | Common/List/ListFacts
0m07.48s | 459312 ko | Parsers/StringLike/FirstCharSuchThat
0m07.35s | 496656 ko | Parsers/ContextFreeGrammar/Fix/ProdAbstractInterpretationDefinitions
0m06.90s | 500596 ko | Parsers/SimpleRecognizerCorrect
0m06.64s | 460104 ko | Parsers/StringLike/Properties
0m06.59s | 515228 ko | Parsers/ContextFreeGrammar/Fix/Fix
0m05.73s | 454632 ko | Parsers/Grammars/Tests
0m05.62s | 458036 ko | Common/Ensembles/IndexedEnsembles
0m05.41s | 586744 ko | Parsers/Refinement/IndexedAndAtMostOneNonTerminalReflectiveOpt
0m05.41s | 586744 ko | ─change
0m05.17s | 521756 ko | Parsers/Refinement/FixedLengthLemmas
0m00.67s | 439784 ko | Parsers/ContextFreeGrammar/Carriers
0m00.67s | 432096 ko | Parsers/Reflective/Syntax
0m00.66s | 436352 ko | Parsers/ContextFreeGrammar/Properties
0m00.66s | 437212 ko | Parsers/Reachable/ParenBalanced/Core
0m00.64s | 420168 ko | Common/LogicFacts
0m00.64s | 430180 ko | Common/SumType
0m00.64s | 441632 ko | Parsers/Reflective/Morphisms
0m00.63s | 483176 ko | Parsers/ContextFreeGrammar/Fix/PreInterface
0m00.63s | 479928 ko | Parsers/SimpleRecognizerOptimized
0m00.63s | 445856 ko | Parsers/Splitters/BruteForce
0m00.62s | 431208 ko | Common/i3list
0m00.61s | 422888 ko | Parsers/ContextFreeGrammar/SimpleTransfer
0m00.59s | 455408 ko | Parsers/BooleanRecognizerCorrect
0m00.58s | 425780 ko | Common/NatFacts
0m00.58s | 444152 ko | Parsers/GenericRecognizerEquality
0m00.58s | 495876 ko | Parsers/ParserImplementationOptimized
0m00.58s | 444120 ko | Parsers/Reachable/OnlyLast/ReachableParse
0m00.56s | 423508 ko | Common/String_as_OT
0m00.56s | 481036 ko | Parsers/ContextFreeGrammar/Fix/Interface
0m00.55s | 441072 ko | ADTRefinement/GeneralBuildADTRefinements
0m00.54s | 436740 ko | ADTRefinement/GeneralRefinements
0m00.54s | 444424 ko | Parsers/Reachable/All/ReachableParse
0m00.54s | 438344 ko | Parsers/WellFoundedParseProperties
0m00.53s | 423316 ko | Common/SetEq
0m00.52s | 432912 ko | Common/ilist2
0m00.52s | 456560 ko | Parsers/Reflective/ParserLogicalRelations
0m00.51s | 442928 ko | ADTRefinement/BuildADTRefinements/RefineAllMethods
0m00.50s | 439244 ko | ADTRefinement/Refinements/ADTRepInv
0m00.49s | 506856 ko | Parsers/Refinement/ReductionTactics
0m00.48s | 434504 ko | Common/List/DisjointFacts
0m00.48s | 441576 ko | Parsers/Reachable/MaybeEmpty/OfParse
0m00.47s | 446128 ko | Parsers/BooleanRecognizerEquality
0m00.47s | 443316 ko | Parsers/Reachable/OnlyFirst/ReachableParse
0m00.46s | 431484 ko | Parsers/ContextFreeGrammar/Reflective
0m00.46s | 455536 ko | Parsers/GenericRecognizerCorrect
0m00.45s | 437540 ko | Common/FixedPoints
0m00.45s | 431632 ko | Common/Telescope/Equality
0m00.45s | 429236 ko | Computation/Monad
0m00.44s | 420204 ko | Common/BoolFacts
0m00.44s | 420924 ko | Parsers/BaseTypesLemmas
0m00.43s | 419788 ko | Common/Instances
0m00.43s | 430136 ko | Computation/LogicLemmas
0m00.42s | 434736 ko | Common/Enumerable/BoolProp
0m00.42s | 421628 ko | Common/SetoidInstances
0m00.42s | 454088 ko | Parsers/GenericRecognizerOptimizedTactics
0m00.42s | 469092 ko | Parsers/ParserInterfaceReflective
0m00.41s | 433088 ko | Common/List/Operations
0m00.41s | 432596 ko | Computation/ApplyMonad
0m00.41s | 447380 ko | Parsers/SimpleBooleanRecognizerEquality
0m00.40s | 432176 ko | Common/Gensym
0m00.40s | 430236 ko | Common/List/FlattenList
0m00.40s | 431484 ko | Common/ilist3
With the previous one:
Time | Peak Mem | File Name
-----------------------------------------------------------------------------------------------------
10m51.99s | 890808 ko | Total Time / Peak Mem
-----------------------------------------------------------------------------------------------------
0m37.99s | 694300 ko | Parsers/Refinement/PossibleTerminalsSets
0m36.96s | 661000 ko | Parsers/GenericRecognizerMin
0m28.85s | 722848 ko | Parsers/ParserFromParserADT
0m28.04s | 890808 ko | Parsers/BooleanRecognizerOptimized
0m22.41s | 818288 ko | Parsers/GenericRecognizerOptimized
0m20.56s | 845788 ko | Parsers/BooleanRecognizerOptimizedReflectiveCorrectness
0m20.42s | 533896 ko | Common/FMapExtensions
0m18.27s | 568320 ko | Parsers/SplitterFromParserADT
0m16.77s | 477272 ko | Parsers/Refinement/BinOpBrackets/MakeBinOpTable
0m13.28s | 789144 ko | Parsers/Reflective/LogicalRelations
0m11.58s | 574960 ko | Parsers/Refinement/IndexedAndAtMostOneNonTerminalReflective
0m11.51s | 510584 ko | Common/List/ListFacts
0m10.38s | 520696 ko | Parsers/ContextFreeGrammar/Fix/Fix
0m08.18s | 460208 ko | Parsers/StringLike/FirstCharSuchThat
0m08.11s | 496636 ko | Parsers/ContextFreeGrammar/Fix/ProdAbstractInterpretationDefinitions
0m07.42s | 457640 ko | Parsers/StringLike/Properties
0m07.41s | 503016 ko | Parsers/SimpleRecognizerCorrect
0m06.67s | 500760 ko | Parsers/ContextFreeGrammar/Fix/FixRelated
0m06.21s | 448928 ko | Parsers/AbstractInterpretation/NonTerminalMap
0m06.18s | 457660 ko | Parsers/Grammars/Tests
0m05.93s | 501564 ko | Parsers/MinimalParseOfParse
0m05.88s | 517700 ko | Parsers/Refinement/FixedLengthLemmas
0m05.77s | 450668 ko | Common/Ensembles/IndexedEnsembles
0m05.69s | 586028 ko | Parsers/Refinement/IndexedAndAtMostOneNonTerminalReflectiveOpt
0m05.69s | 586028 ko | ─change
0m05.62s | 498248 ko | Parsers/Grammars/JSONTests
0m05.30s | 552752 ko | Parsers/Refinement/DisjointRulesRev
0m04.68s | 477508 ko | Common/FMapExtensions/LiftRelationInstances
0m04.57s | 499320 ko | Parsers/Refinement/EmptyLemmas
0m04.43s | 439640 ko | Parsers/Refinement/BinOpBrackets/ParenBalancedLemmas
0m04.35s | 517564 ko | Parsers/BooleanRecognizerOptimizedReflective
0m04.20s | 440396 ko | Parsers/GenericRecognizerExt
0m04.00s | 556080 ko | Parsers/Refinement/DisjointRules
0m03.77s | 465500 ko | Common/Wf2
0m03.77s | 441040 ko | Parsers/ContextFreeGrammar/Fix/Prod
0m03.77s | 465500 ko | ─rewrite
0m03.71s | 494436 ko | Parsers/ContextFreeGrammar/Fix/Correct
0m00.42s | 402980 ko | Parsers/BooleanRecognizerFull
0m00.42s | 418688 ko | Parsers/Reflective/ParserReify
0m00.42s | 413900 ko | Parsers/Reflective/ParserSemanticsOptimized
0m00.41s | 385384 ko | ADTNotation/BuildADTReplaceMethods
0m00.41s | 421428 ko | Common/Monad
0m00.41s | 420180 ko | Common/OptionFacts
0m00.41s | 431672 ko | Common/Sigma
0m00.41s | 431448 ko | Common/i3list2
0m00.41s | 430616 ko | Computation/LogicLemmas
0m00.41s | 449536 ko | Parsers/BooleanRecognizerTests
0m00.41s | 418812 ko | Parsers/ContextFreeGrammar/TransferProperties
0m00.41s | 435532 ko | Parsers/Grammars/JSON
0m00.41s | 435740 ko | Parsers/Grammars/JSONImpoverished
0m00.40s | 380088 ko | ADTNotation/BuildADTSig
0m00.40s | 411808 ko | Common/Ensembles/Cardinal
0m00.40s | 419232 ko | Common/UIP
0m00.40s | 400908 ko | Parsers/ContextFreeGrammar/Fix/FromAbstractInterpretationDefinitionsRelations
0m00.40s | 396284 ko | Parsers/Grammars/ExpressionNumPlusParen
0m00.40s | 385148 ko | Parsers/Grammars/JSComment
0m00.40s | 435212 ko | Parsers/Grammars/JSONImpoverishedOriginal
0m00.40s | 369708 ko | Parsers/Reflective/ParserSyntaxEquivalence
0m00.40s | 434268 ko | Parsers/Reflective/Semantics
0m00.39s | 398788 ko | ADTNotation/BuildComputationalADT
0m00.39s | 405844 ko | ADTRefinement/BuildADTRefinements/AddCache
0m00.39s | 396804 ko | ADTRefinement/BuildADTSetoidMorphisms
0m00.39s | 427904 ko | ADTRefinement/Refinements/HoneRepresentation
0m00.39s | 422732 ko | Common/Enumerable/ReflectiveForall
0m00.39s | 367016 ko | Common/StringBound
0m00.39s | 402168 ko | Common/i2list2
0m00.39s | 389000 ko | Parsers/ContextFreeGrammar/Precompute
0m00.39s | 423316 ko | Parsers/ContextFreeGrammar/SimpleCorrectnessLemmas
0m00.39s | 387936 ko | Parsers/Grammars/StringLiteral
0m00.39s | 390908 ko | Parsers/ParserInterface
Before the previous one:
Time | Peak Mem | File Name
----------------------------------------------------------------------------------------------------
9m37.63s | 933836 ko | Total Time / Peak Mem
----------------------------------------------------------------------------------------------------
0m33.23s | 775788 ko | Parsers/GenericRecognizerMin
0m29.36s | 698040 ko | Parsers/Refinement/PossibleTerminalsSets
0m25.21s | 723616 ko | Parsers/ParserFromParserADT
0m25.21s | 723616 ko | ─abstract
0m23.13s | 933836 ko | Parsers/BooleanRecognizerOptimized
0m19.05s | 847244 ko | Parsers/BooleanRecognizerOptimizedReflectiveCorrectness
0m18.63s | 823184 ko | Parsers/GenericRecognizerOptimized
0m15.45s | 534308 ko | Common/FMapExtensions
0m15.35s | 573396 ko | Parsers/SplitterFromParserADT
0m13.33s | 477880 ko | Parsers/Refinement/BinOpBrackets/MakeBinOpTable
0m11.52s | 652828 ko | Parsers/Refinement/IndexedAndAtMostOneNonTerminalReflective
0m10.89s | 779920 ko | Parsers/Reflective/LogicalRelations
0m08.76s | 511400 ko | Common/List/ListFacts
0m07.23s | 517236 ko | Parsers/ContextFreeGrammar/Fix/Fix
0m06.48s | 458460 ko | Parsers/StringLike/FirstCharSuchThat
0m06.11s | 552328 ko | Parsers/StringLike/LastChar
0m06.02s | 494920 ko | Parsers/ContextFreeGrammar/Fix/ProdAbstractInterpretationDefinitions
0m06.01s | 456636 ko | Parsers/StringLike/Properties
0m05.92s | 504320 ko | Parsers/MinimalParseOfParse
0m05.70s | 508800 ko | Parsers/SimpleRecognizerCorrect
0m05.55s | 500388 ko | Parsers/ContextFreeGrammar/Fix/FixRelated
0m05.32s | 456828 ko | Parsers/Grammars/Tests
0m04.95s | 519196 ko | Parsers/StringLike/OcamlString
0m04.91s | 496504 ko | Parsers/Grammars/JSONTests
0m04.78s | 452300 ko | Common/Ensembles/IndexedEnsembles
0m04.57s | 447912 ko | Parsers/AbstractInterpretation/NonTerminalMap
0m04.55s | 518928 ko | Parsers/Refinement/FixedLengthLemmas
0m04.54s | 586256 ko | Parsers/Refinement/IndexedAndAtMostOneNonTerminalReflectiveOpt
0m04.54s | 586256 ko | ─change
0m04.41s | 557204 ko | Parsers/Refinement/DisjointRulesRev
0m04.08s | 475472 ko | Common/FMapExtensions/LiftRelationInstances
0m03.78s | 517792 ko | Parsers/BooleanRecognizerOptimizedReflective
0m03.77s | 569796 ko | Parsers/Refinement/DisjointRules
0m03.77s | 492936 ko | Parsers/Refinement/EmptyLemmas
0m03.61s | 437648 ko | Parsers/Refinement/BinOpBrackets/ParenBalancedLemmas
0m03.42s | 440732 ko | Parsers/GenericRecognizerExt
0m03.30s | 456264 ko | Parsers/Grammars/JavaScript
0m03.28s | 464584 ko | Common/Wf2
0m03.11s | 578452 ko | Parsers/Refinement/SharpenedJSComment
0m03.03s | 492544 ko | Parsers/ContextFreeGrammar/Fix/Correct
0m02.92s | 442244 ko | Parsers/ContextFreeGrammar/Fix/Prod
0m02.92s | 445884 ko | Parsers/Refinement/BinOpBrackets/ParenBalancedGrammar
0m02.79s | 490992 ko | Common/FMapExtensions/Wf
0m02.77s | 451540 ko | Parsers/Refinement/FinishingLemma
0m02.71s | 445120 ko | Computation/Refinements/General
0m02.69s | 435100 ko | Parsers/StringLike/ForallChars
0m02.65s | 486076 ko | Parsers/ContextFreeGrammar/Fix/FromAbstractInterpretation
0m02.54s | 444028 ko | Common/Ensembles/EnsembleListEquivalence
0m02.51s | 627196 ko | Parsers/Refinement/SharpenedExpressionPlusParen
0m02.49s | 438592 ko | Parsers/Refinement/BinOpBrackets/ParenBalanced
0m02.48s | 624512 ko | Parsers/Refinement/SharpenedExpressionPlus
0m02.47s | 574028 ko | Parsers/Refinement/BinOpBrackets/BinOpRules
0m02.44s | 442052 ko | Common/List/ListMorphisms
0m02.42s | 448844 ko | Common
0m02.37s | 453576 ko | Parsers/RecognizerPreOptimized
0m02.36s | 451044 ko | Parsers/Reflective/SyntaxEquivalenceReflective
0m02.34s | 451188 ko | ADTRefinement/FixedPoint
0m02.33s | 437660 ko | Parsers/StringLike/LastCharSuchThat
0m02.33s | 437660 ko | ─apply
0m02.25s | 437948 ko | Parsers/Splitters/RDPList
0m02.16s | 568524 ko | Parsers/Refinement/SharpenedStringLiteral
0m02.06s | 434440 ko | Common/Wf1
0m02.06s | 434440 ko | ─rewrite
0m02.00s | 430692 ko | Common/BoundedLookup
0m01.97s | 434648 ko | Common/Ensembles/CombinatorLaws
0m01.93s | 615476 ko | Parsers/Refinement/SharpenedExpressionPlusParenParseTree
0m01.86s | 442868 ko | Parsers/GenericRecognizerBoolEquality
0m01.86s | 436548 ko | Parsers/StringLike/FirstChar
0m01.84s | 561592 ko | Parsers/Refinement/SharpenedABStar
0m01.75s | 370132 ko | Common/Frame
0m01.69s | 440644 ko | Common/StringFacts
0m01.68s | 447268 ko | Parsers/Reachable/ParenBalancedHiding/MinimalOfCore
0m01.66s | 438684 ko | Common/Enumerable/ReflectiveForallAggregate
0m01.62s | 453528 ko | Parsers/Reflective/SyntaxEquality
0m01.58s | 436640 ko | Common/List/PermutationFacts
0m01.51s | 557328 ko | Parsers/Refinement/SharpenedExpressionParen
0m01.50s | 554608 ko | Parsers/Refinement/DisjointLemmas
0m01.47s | 429080 ko | Common/DecideableEnsembles
0m01.45s | 439816 ko | Common/SetEqProperties
0m01.45s | 436904 ko | Computation/FixComp
0m01.36s | 441084 ko | Parsers/Reachable/ParenBalanced/MinimalOfCore
0m01.35s | 441084 ko | ─destruct
0m01.33s | 477512 ko | Parsers/ContextFreeGrammar/Fix/AsciiLattice
0m01.32s | 441904 ko | Common/MSetExtensions
0m01.32s | 450904 ko | Computation/Refinements/Iterate_Decide_Comp
0m01.32s | 433480 ko | Parsers/Grammars/JavaScriptAssignmentExpression
0m01.25s | 430728 ko | Computation/SetoidMorphisms
0m01.23s | 433660 ko | Parsers/StringLike/String
0m01.21s | 432264 ko | Computation/IfDec
0m01.19s | 434680 ko | Common/Ensembles/Morphisms
0m01.19s | 432164 ko | Common/Equality
0m01.16s | 447920 ko | Common/MSetBoundedLattice
0m01.15s | 465496 ko | Parsers/ParserImplementation
0m01.14s | 447276 ko | Parsers/ContextFreeGrammar/Fix/FromAbstractInterpretationDefinitions
0m01.13s | 438636 ko | Parsers/ContextFreeGrammar/Fix/Properties
0m01.12s | 438408 ko | Common/IterateBoundedIndex
0m01.12s | 438408 ko | ─assert
0m01.11s | 441188 ko | Computation/ListComputations
0m01.11s | 450892 ko | Parsers/Splitters/BruteForce
0m01.10s | 433156 ko | ADTRefinement/SetoidMorphisms
0m01.08s | 442188 ko | Parsers/Reachable/ParenBalanced/OfParse
0m01.06s | 439236 ko | ADTRefinement/BuildADTRefinements/HoneRepresentation
0m01.04s | 421608 ko | Common/NatFacts
0m01.02s | 439056 ko | Common/List/UpperBound
0m00.96s | 531036 ko | Parsers/ContextFreeGrammar/ExplorationUtil
0m00.92s | 552316 ko | Parsers/Refinement/SharpenedABStarParseTree
0m00.90s | 559828 ko | Parsers/Refinement/Tactics
0m00.87s | 435588 ko | Common/Enumerable
0m00.85s | 411520 ko | Computation/Decidable
0m00.85s | 494732 ko | Parsers/AbstractInterpretation/NonTerminalMapWf
0m00.83s | 430708 ko | Computation/FoldComp
0m00.80s | 436848 ko | Parsers/ContextFreeGrammar/ValidProperties
0m00.79s | 432596 ko | Parsers/Reachable/OnlyLast/MinimalReachableOfReachable
0m00.79s | 549664 ko | Parsers/Refinement/ExtractSharpenedABStar
0m00.78s | 430980 ko | Parsers/Reachable/MaybeEmpty/MinimalOfCore
0m00.77s | 360252 ko | Common/Wf
0m00.77s | 431064 ko | Parsers/Reachable/All/MinimalReachableOfReachable
0m00.76s | 551360 ko | Parsers/ExtrOcamlParsers
0m00.75s | 440960 ko | ADTRefinement/Refinements/ADTCache
0m00.75s | 438784 ko | Parsers/ContextFreeGrammar/Fold
0m00.74s | 432644 ko | Parsers/Reachable/OnlyFirst/MinimalReachableOfReachable
0m00.70s | 433808 ko | Parsers/ContextFreeGrammar/SimpleCorrectnessMorphisms
0m00.70s | 481684 ko | Parsers/SimpleRecognizerOptimized
0m00.69s | 438060 ko | Parsers/ContextFreeGrammar/Fix/Definitions
0m00.69s | 430848 ko | Parsers/Reflective/Syntax
0m00.67s | 438964 ko | Parsers/ContextFreeGrammar/Carriers
0m00.66s | 430780 ko | Common/i3list
0m00.65s | 430348 ko | Common/SumType
0m00.64s | 440548 ko | ADTNotation/BuildADT
0m00.62s | 435612 ko | Parsers/ContextFreeGrammar/Properties
0m00.62s | 497228 ko | Parsers/ParserImplementationOptimized
0m00.62s | 442024 ko | Parsers/Reachable/OnlyLast/ReachableParse
0m00.61s | 436672 ko | Parsers/Reachable/ParenBalanced/Core
0m00.60s | 438380 ko | Parsers/ContextFreeGrammar/ValidReflective
0m00.59s | 480656 ko | Parsers/ContextFreeGrammar/Fix/Interface
0m00.59s | 480916 ko | Parsers/ContextFreeGrammar/Fix/PreInterface
0m00.59s | 437820 ko | Parsers/WellFoundedParseProperties
0m00.55s | 430432 ko | Common/ilist2
0m00.55s | 439728 ko | Parsers/Reachable/All/ReachableParse
0m00.55s | 438824 ko | Parsers/Reflective/Morphisms
0m00.54s | 438384 ko | ADTRefinement/GeneralBuildADTRefinements
0m00.54s | 438244 ko | ADTRefinement/Refinements/ADTRepInv
0m00.54s | 457820 ko | Parsers/BooleanRecognizerCorrect
0m00.54s | 444096 ko | Parsers/GenericRecognizerEquality
0m00.54s | 454980 ko | Parsers/Reflective/ParserLogicalRelations
0m00.53s | 435980 ko | ADTRefinement/GeneralRefinements
0m00.51s | 440540 ko | ADTRefinement/BuildADTRefinements/RefineAllMethods
0m00.51s | 432744 ko | Common/List/DisjointFacts
0m00.51s | 408568 ko | Common/String_as_OT
0m00.51s | 440856 ko | Parsers/Reachable/MaybeEmpty/OfParse
0m00.51s | 507544 ko | Parsers/Refinement/ReductionTactics
0m00.50s | 470940 ko | Parsers/ParserInterfaceReflective
0m00.49s | 434568 ko | Common/FixedPoints
0m00.49s | 387824 ko | Parsers/ContextFreeGrammar/SimpleTransfer
0m00.49s | 457388 ko | Parsers/GenericRecognizerCorrect
0m00.48s | 435120 ko | Common/Enumerable/BoolProp
0m00.48s | 442760 ko | Parsers/Reachable/OnlyFirst/ReachableParse
0m00.47s | 431452 ko | Common/Gensym
0m00.47s | 351676 ko | Common/LogicFacts
0m00.47s | 437004 ko | Parsers/ContextFreeGrammar/Equality
0m00.47s | 430344 ko | Parsers/ContextFreeGrammar/Reflective
0m00.46s | 431836 ko | Common/ilist3
0m00.46s | 429164 ko | Computation/Monad
0m00.46s | 444840 ko | Parsers/BooleanRecognizerEquality
0m00.45s | 432024 ko | Common/List/Operations
0m00.45s | 430848 ko | Common/Telescope/Equality
0m00.45s | 434648 ko | Parsers/Reflective/PartialUnfold
0m00.45s | 437916 ko | Parsers/SimpleRecognizerExt
0m00.44s | 427868 ko | ADTRefinement/Refinements/HoneRepresentation
0m00.44s | 429100 ko | Common/List/FlattenList
0m00.44s | 448560 ko | Parsers/BooleanRecognizerTests
0m00.44s | 434116 ko | Parsers/Grammars/JSONImpoverished
0m00.43s | 429772 ko | Common/ilist
0m00.43s | 451760 ko | Parsers/GenericRecognizerOptimizedTactics
0m00.43s | 434236 ko | Parsers/Grammars/JSONImpoverishedOriginal
0m00.43s | 426108 ko | Parsers/Reflective/ParserSemantics
0m00.43s | 413944 ko | Parsers/Reflective/ParserSemanticsOptimized
0m00.43s | 426180 ko | Parsers/Reflective/ParserSoundness
0m00.42s | 445168 ko | Parsers/ParserADTSpecification
0m00.42s | 436168 ko | Parsers/Reflective/ParserSoundnessOptimized
0m00.42s | 445372 ko | Parsers/SimpleBooleanRecognizerEquality
0m00.41s | 432872 ko | Common/Sigma
0m00.41s | 402212 ko | Common/i2list2
0m00.41s | 430000 ko | Computation/LogicLemmas
0m00.41s | 408508 ko | Parsers/BaseTypesLemmas
0m00.40s | 397384 ko | Common/Enumerable/ReflectiveForallStaged
0m00.40s | 438640 ko | Parsers/BooleanRecognizerExt
0m00.40s | 402076 ko | Parsers/BooleanRecognizerFull
0m00.40s | 399128 ko | Parsers/ContextFreeGrammar/Fix/FromAbstractInterpretationDefinitionsRelations
0m00.40s | 372932 ko | Parsers/CorrectnessBaseTypes
0m00.40s | 386064 ko | Parsers/Grammars/StringLiteral
0m00.40s | 368160 ko | Parsers/Reflective/ParserPartialUnfold
0m00.40s | 433092 ko | Parsers/Reflective/Semantics
0m00.39s | 378008 ko | Common/Ensembles
0m00.39s | 390224 ko | Common/Ensembles/Equivalence
0m00.39s | 429788 ko | Computation/ApplyMonad
0m00.39s | 394100 ko | Parsers/Grammars/ExpressionNumPlusParen
0m00.39s | 388824 ko | Parsers/Grammars/Trivial
0m00.39s | 383932 ko | Parsers/Reachable/ParenBalancedHiding/WellFounded
0m00.39s | 386696 ko | Parsers/Reflective/Reify
0m00.39s | 375640 ko | Parsers/Reflective/SemanticsOptimized
0m00.39s | 411364 ko | Parsers/Reflective/SyntaxEquivalence
0m00.38s | 372344 ko | ADT/ADTHide
0m00.38s | 398236 ko | ADTInduction
0m00.38s | 403580 ko | ADTRefinement/BuildADTRefinements/AddCache
0m00.38s | 407596 ko | ADTRefinement/Refinements/RefineHideADT
0m00.38s | 422428 ko | Common/Enumerable/ReflectiveForall
0m00.38s | 429716 ko | Common/i3list2
0m00.38s | 389928 ko | Computation/FueledFix
0m00.38s | 371824 ko | Parsers/Grammars/ABStar
0m00.38s | 360808 ko | Parsers/Reachable/OnlyLast/ReachableWellFounded
0m00.38s | 368632 ko | Parsers/Reflective/Syntactify
0m00.37s | 367068 ko | ADT
0m00.37s | 384528 ko | ADTRefinement/BuildADTRefinements/SimplifyRep
0m00.37s | 387304 ko | Common/BoolFacts
0m00.37s | 413376 ko | Common/Ensembles/Cardinal
0m00.37s | 421732 ko | Common/Le
0m00.37s | 391884 ko | Common/Prod
0m00.37s | 378484 ko | Parsers/ContextFreeGrammar/Fix/Inject
0m00.37s | 399224 ko | Parsers/ContextFreeGrammar/PreNotations
0m00.37s | 368708 ko | Parsers/Grammars/EvalGrammarTactics
0m00.37s | 369012 ko | Parsers/Reachable/OnlyLast/Reachable
0m00.37s | 400472 ko | Parsers/Reachable/ParenBalancedHiding/Core
0m00.37s | 419112 ko | Parsers/Refinement/PreTactics
0m00.37s | 418900 ko | Parsers/Reflective/ParserReify
0m00.36s | 371864 ko | ADT/ADTSig
0m00.36s | 397988 ko | ADTNotation/BuildComputationalADT
0m00.36s | 371384 ko | ADTRefinement/Refinements/SimplifyRep
0m00.36s | 365752 ko | Common/StringBound
0m00.36s | 379356 ko | Parsers/ActionEvaluator
0m00.36s | 395496 ko | Parsers/ContextFreeGrammar/Notations
0m00.36s | 386852 ko | Parsers/ContextFreeGrammar/PreNotationsLemmas
0m00.36s | 383860 ko | Parsers/Grammars/JSComment
0m00.36s | 432328 ko | Parsers/Grammars/JSON
0m00.36s | 379276 ko | Parsers/Reachable/ParenBalanced/WellFounded
0m00.36s | 369864 ko | Parsers/Reflective/ParserSyntaxEquivalence
0m00.35s | 384444 ko | ADTNotation/BuildADTReplaceMethods
0m00.35s | 372600 ko | ADTRefinement
0m00.35s | 396912 ko | ADTRefinement/BuildADTSetoidMorphisms
0m00.35s | 386288 ko | ADTRefinement/Core
0m00.35s | 401288 ko | ADTRefinement/GeneralBuildADTTactics
0m00.35s | 379896 ko | ADTRefinement/Refinements/DelegateMethods
0m00.35s | 421252 ko | Common/Telescope/Instances
0m00.35s | 393836 ko | Common/ilist3_pair
0m00.35s | 361744 ko | Computation
0m00.35s | 356512 ko | Computation/Refinements/Tactics
0m00.35s | 363200 ko | Computation/SetoidEqMorphisms
0m00.35s | 377984 ko | Parsers/ContextFreeGrammar/ReflectiveLemmas
0m00.35s | 416548 ko | Parsers/ContextFreeGrammar/TransferProperties
0m00.35s | 374736 ko | Parsers/Grammars/FlatComments
0m00.35s | 394008 ko | Parsers/ParserInterface
0m00.34s | 379228 ko | ADTNotation/BuildADTSig
0m00.34s | 369976 ko | ADTRefinement/Refinements
0m00.34s | 347636 ko | Common/SetEq
0m00.34s | 428900 ko | Computation/Core
0m00.34s | 385864 ko | Parsers/ContextFreeGrammar/Precompute
0m00.34s | 367380 ko | Parsers/Reachable/All/Reachable
0m00.34s | 365720 ko | Parsers/Reachable/MaybeEmpty/Core
0m00.34s | 362896 ko | Parsers/Reflective/ParserSyntax
0m00.34s | 355272 ko | Parsers/Specification
0m00.34s | 372892 ko | Parsers/StringLike
0m00.33s | 381940 ko | ADT/ComputationalADT
0m00.33s | 370656 ko | ADTNotation
0m00.33s | 367844 ko | Parsers/GenericRecognizer
0m00.33s | 370120 ko | Parsers/Grammars/ExpressionParen
0m00.33s | 367844 ko | ─generalize
I'd rather move on to more interesting things than rework the whole dev to come back to the timings of before (and probably we can go even much faster with the proper declarations everywhere). Are you guys fine with this small bump in overall compile time? (I'll run a bench on the Coq side to confirm the numbers)
I'm running a bench on my machine and will post the diffs between various commits here once it's done.
In any case, though, the parsers part of this project is maintained just enough to provide testing results for Coq's CI, and I'm fine with accepting small slowdowns when developer time is better spent elsewhere, and the slowdowns are not indicative of the underlying tactics becoming slower, but are rather artifacts of the instances we set up.
So it seems like this PR gives us about a 14s speedup over the previous one, which itself did not have a meaningful impact on time.
Cool, thanks for checking!
This is another patch that greatly speeds up setoid_rewrite (removing some of the existing logic to handle pointwise relations, that are now better done by the Coq PR). Hopefully it is also backwards compatible, otherwise, I'll make an overlay for coq/coq#13969